Автор Тема: Вместо логотипа отображается вопросительный знак  (Прочитано 551 раз)

08 Июня 2014, 19:04:48
  • Новичок
  • *
  • Сообщений: 28
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Здравствуйте.
Помогите, пожалуйста, разобраться новичку.
Установил на денвере Prestasop 1.5.6.2, обновил до версии 1.6.0.6(кроме шаблона, поскольку он мне больше нравиться).
Начал оптимизировать под себя, отключил несколько модулей, подключил новые, изменил расположение модулей в графическом редакторе.
Однако, когда попытался загрузить файл главного логотипа(настройка/шаблоны), в админке и на сайте вместо него отражается знак вопроса.
Пробовал загружать разные по формату и размеру изображения - меняется только размер окошка со знаком вопроса на сайте.
Пробовал чистить кэш - не помогает, попробовал вернуть состояние модулей на место - тот же результат.
Вылечилось только удалением б.д. и файлов сайта и перезагрузкой их на сохраненную версию, которую я сохранил до оптимизации.
Базу и файлы с глюком в виде вопроса сохранил и хочу разобраться в причинах такого поведения программы.
Беспокоит, что такой глюк может появиться в дальнейшем при работе сайта.
Скрин я прилагаю, если кому нужны будут б.д. и файлы сайта, могу скинуть на е-майл.
09 Июня 2014, 12:28:00
Ответ #1
  • Ветеран
  • *****
  • Сообщений: 13630
  • Репутация: +14563/-1
  • Сообщество PrestaShop
    • Просмотр профиля
Очистите кеш.
Проверьте путь к лого, оно должно быть в папке /img/logo.jpg (logo.png).
09 Июня 2014, 15:07:19
Ответ #2
  • Новичок
  • *
  • Сообщений: 28
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Кеш я чистил - не помогает.
А при сохранении файла логотипа из админки в папке /img появляется файл с таким названием импульс-1402169546.jpg в виде абракадабры. Любым графическим редактором он открывается нормально, а в админке и на сайте вместо него вопросительный знак.
09 Июня 2014, 15:31:52
Ответ #3
  • Ветеран
  • *****
  • Сообщений: 980
  • Репутация: +5/-0
  • Иногда заглядываю
    • Просмотр профиля
    • Помощь патентообладателям по продаже патентов.
Кеш я чистил - не помогает.
А при сохранении файла логотипа из админки в папке /img появляется файл с таким названием импульс-1402169546.jpg в виде абракадабры. Любым графическим редактором он открывается нормально, а в админке и на сайте вместо него вопросительный знак.

Похоже в названии файла есть кирилица, оставьте одни цифры и посмотрите.
Не боги горшки обжигают, не зачем им такой хренью заниматься.
09 Июня 2014, 19:00:02
Ответ #4
  • Новичок
  • *
  • Сообщений: 28
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Пробовал оставлять одни цифры в названии файла - не помогает
Все равно после сохранения в админке логотипа в папке /img появляется
файл с названием импульс-1402325636, то есть меняются только цифры
То же самое происходит при попытке установить логотип по умолчанию - logo_invoice.jpg
Кстати, заметил интересную особенность - в генерируемых счетах pdf логотип
отображается нормально, никаких знаков вопроса в них нет.
09 Июня 2014, 19:53:53
Ответ #5
  • Модератор
  • Ветеран
  • *****
  • Сообщений: 86330
  • Репутация: +25417/-0
  • Сообщество PrestaShop
    • Просмотр профиля
К вас проблемы с кодировкой в базе или на сайте.

Можно исправить название лого в ручную.
1. Закакачайте лого на сервер в папку img. Присвойте файлу имя "logo.jpg".
2. Посмотрите в бд значение параметра PS_LOGO
SELECT *
FROM `ps_configuration`
WHERE `name` = 'PS_LOGO';
3. Если имя отличается от "logo.jpg", то измените его.
4. Проверьте шаблон header.tpl
<div id="header_logo">
<a href="{$base_dir}" title="{$shop_name|escape:'html':'UTF-8'}">
<img class="logo img-responsive" src="{$logo_url}" alt="{$shop_name|escape:'html':'UTF-8'}"{if $logo_image_width} width="{$logo_image_width}"{/if}{if $logo_image_height} height="{$logo_image_height}"{/if}/>
</a>
</div>
5. Проверьте класс FrontController.php
public function initLogoAndFavicon()
{
$mobile_device = $this->context->getMobileDevice();

if ($mobile_device && Configuration::get('PS_LOGO_MOBILE'))
$logo = self::$link->getMediaLink(_PS_IMG_.Configuration::get('PS_LOGO_MOBILE').'?'.Configuration::get('PS_IMG_UPDATE_TIME'));
else
$logo = self::$link->getMediaLink(_PS_IMG_.Configuration::get('PS_LOGO'));

return array(
    'favicon_url' => _PS_IMG_.Configuration::get('PS_FAVICON'),
                    'logo_image_width' => ($mobile_device == false ? Configuration::get('SHOP_LOGO_WIDTH') : Configuration::get('SHOP_LOGO_MOBILE_WIDTH')),
            'logo_image_height' => ($mobile_device == false ? Configuration::get('SHOP_LOGO_HEIGHT') : Configuration::get('SHOP_LOGO_MOBILE_HEIGHT')),
            'logo_url' => $logo
  );
}
09 Июня 2014, 21:09:05
Ответ #6
  • Новичок
  • *
  • Сообщений: 28
  • Репутация: +0/-0
  • Сообщество PrestaShop
    • Просмотр профиля
Спасибо DarinSr.
Ваш совет действительно очень помог.
Логотип таким образом успешно установился.
Мои действия:
1. Переименовал логотип в папке /img на локальном сервере в файл logo.jpg
2. Изменил параметр PS_LOGO в б.д.
После этого все заработало.
Класс FrontController.php было все один в один как в Вашей подсказке, так, что там ничего не менял.
А в header.tpl отличия только в ...<img class="logo img-responsive"..... у меня было просто .......<img class="logo"......
Попробовал и так и так - без разницы, логотип на месте.
А что обозначает img-responsive не подскажете?