Ответить Новая тема Новый опрос 
Всего: 2 1 2 >
 Знаки вопросов в кратком тексте
Rovik


Новичок
Сообщений: 53
Регистрация: 27-05-2010


02-06-2010 03:31
Поиском не нашел...
Проблема следующая: в последних просмотренных товарах, новостях и т.п. везде где текст обрезается иногда выползают знаки вопросов как на картинке. Но не всегда, а при каких то определенных комбинациях что ли. Например в коде:
Код:
$news[] = array('id' => $cms['id_cms'],
        'title' => $cms['meta_title'],
        'brief' => trim(substr(strip_tags($cms['content']), 0, intval($config['PS_CMS_LENGTH']))),
        'rewrite'=> $cms['link_rewrite']);

конструкция trim(substr(strip_tags($cms['content']), 0, intval($config['PS_CMS_LENGTH']))) выдаест такие знаки вопросов. Но если проверить $cms['content'], то в нем текст приходит нормальный. Видимо какая то функция некорректно обрабатывает кириллицу в UTF...

Может кто нибудь встречался с такой проблемой?


Изображения:
screen.jpg - Размер файла3.27KB, Скачиваний: 482 (Нажмите для увеличения)
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
artyrnik
Новичок
Сообщений: 16
Регистрация: 05-05-2010


02-06-2010 04:38
база в UTF8?
в файле classes/MySQL.php функция connect должна выглядеть так
Код:
public function connect()
        {
                if ($this->_link = @mysql_connect($this->_server, $this->_user, $this->_password))
                {
                        if(!$this->set_db($this->_database))
                                die(Tools::displayError('The database selection cannot be made.'));
                }
                else
                        die(Tools::displayError('Link to database cannot be established.'));
                /* UTF-8 support */
                if (!mysql_query('SET NAMES \'utf8\'', $this->_link))
                        die(Tools::displayError('PrestaShop Fatal error: no utf-8 support. Please check your server configuration.'));
                /* Disable some MySQL limitations */
                mysql_query('SET GLOBAL SQL_MODE=\'\'', $this->_link);
                return $this->_link;
        }
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Rovik


Новичок
Сообщений: 53
Регистрация: 27-05-2010


02-06-2010 15:53
Да, база в UTF. Замена тескта функции не помогла.
Попробовал поставить другой Денвер, с PHP 5.3.1, на нем в модуле Просмотренные товары без знаков вопроса уже, а вот модуль новостей (в примере который) так же выводит...


Сообщение отредактировано Rovik 02-06-2010 11:54 ...
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


02-06-2010 15:59
Версия и сборка престы?
substr => mb_substr() или используем Tools::substr()
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Rovik


Новичок
Сообщений: 53
Регистрация: 27-05-2010


02-06-2010 16:40
Сборка 0.7 от prestadev. Спасибо, как раз такое решение (mb_substr вместо substr) и подглядел на php.net, помогло.


Сообщение отредактировано Rovik 02-06-2010 12:41 ...
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Jafar
Новичок
Сообщений: 28
Регистрация: 12-03-2010


03-06-2010 04:09
есть похожая проблема, не работает поиск. при попытке Добавить потерянные товары к индексации
Безымянный.jpg - Размер файла14.0KB (Нажмите для увеличения)
выдает ошибку
Код:
Array
(
    [0] => Column 'id_word' cannot be null
    [1] => Array
        (
            [0] => (6387,(SELECT id_word FROM ps_search_word WHERE word = 'холодил�' AND id_lang = 3 LIMIT 1),3)
        )
)
END

substr не используется. есть какие то предложения?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Алекс


Администратор
Сообщений: 4516
Откуда: Красноярск
Регистрация: 29-05-2009


03-06-2010 12:56
Цитата:( Jafar @ 03-06-2010 05:09 Смотреть сообщение )
substr не используется. есть какие то предложения?
/classes/Search. php
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Jafar
Новичок
Сообщений: 28
Регистрация: 12-03-2010


03-06-2010 13:52
помогло
Цитата:
Tools::substr()
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
staut82
Cпециалист
Сообщений: 169
Откуда: Киев
Регистрация: 22-05-2010


30-06-2010 02:02
Цитата:( Алекс @ 02-06-2010 10:59 Смотреть сообщение )
Версия и сборка престы?
substr => mb_substr() или используем Tools::substr()

а где это прописывать?
 
Вне форума
ПМ Отправить эл.сообщение 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
LexusZP
Новичок
Сообщений: 13
Регистрация: 11-10-2010


19-10-2010 23:41
все ставил с нуля, настроил, работало как часы, забил 73 товара, забиваю 74 товар выбивает ошибку:
Array
(
[0] => Column 'id_word' cannot be null
[1] => Array
(
[0] => (74,(SELECT id_word FROM ps_search_word WHERE word = 'ноутбук�' AND id_lang = 4 LIMIT 1),3)
)

)


END
не индексирует - выдает ту же ошибку, но товар в каталог сохраняет в любом случае.
перечитал все, перепробовал все, нефига не помогло, в /classes/poisk.html изначально прописано Tools::substr() версия 1.3.2
Потом снес все, сохранил базу, переставил заново, залил базу и все заработало, буквально на 4 добавленные позиции.
Подскажите в чем может быть проблема?
 
Вне форума
ПМ 
Щелкните, и это сообщение будет добавлено в ваш ответ как цитата Цитировать этот ответ
Ответить Новая тема Новый опрос 
Всего: 2 1 2 >