Max3w
-
Публикаций
5 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные Max3w
-
-
Все правильно, проблема решалась просто переменную $product->features по случайности переписывал модуль похожих товаров стоящий выше...
Поменял местами код и все вывелось. Тему можно закрывать.
-
В админке, в свойствах товара присвоены значения, в таблице в БД s_options я их вижу. В фильтре в категории они тоже есть. Этих значений нету в самом товаре.
Собственно вопрос как вывести эти значения в самом товаре?
В файле ProductView.php у меня есть переменная:
$product->features = $this->features->get_product_options(array('product_id'=>$product->id));
Дальше в самой карточке товара product.tpl я пытаюсь получить эти свойства
{$product->features|@debug_print_var}
Все что я получаю это null. Как это исправить? И что должно быть в таблице s_products - featured?
Или как мне выдернуть свойства товара из БД? Но вобще ж они должны передаваться в сам товар насколько я понимаю. А они не передаются.
-
Еще раз подытожу.
1) В /resize/resize.php добавляем код в самый конец
$webp_filename = preg_replace('/\.[^.]+$/','',$resized_filename).".webp"; $info = getimagesize($resized_filename); if (file_exists($webp_filename)) { } else { if ($info['mime'] == 'image/jpeg') { $imagetoconvert = imagecreatefromjpeg($resized_filename); imagewebp($imagetoconvert, $webp_filename, 80); imagedestroy($resized_filename); } elseif ($info['mime'] == 'image/png') { $imagetoconvert = imagecreatefrompng($resized_filename); imagewebp($imagetoconvert, $webp_filename, 80); imagedestroy($resized_filename); } }
2) В .htaccess
AddType image/webp .webp <IfModule mod_rewrite.c> RewriteCond %{HTTP_ACCEPT} image/webp RewriteCond %{DOCUMENT_ROOT}/$1.webp -f RewriteRule (.+)\.(jpe?g|png)$ $1.webp [T=image/webp,E=accept:1] </IfModule> <IfModule mod_headers.c> Header append Vary Accept env=REDIRECT_accept </IfModule> ExpiresActive On #кэшировать флэш и изображения на год ExpiresByType image/x-icon "access 1 year" ExpiresByType image/jpeg "access 1 year" ExpiresByType image/png "access 1 year" ExpiresByType image/gif "access 1 year" ExpiresByType image/webp "access 1 year"
3) Потом на сайте смотрим путь к картинкам товаров, обычно это /files/products. На хостинге по фтп меняем имя папки на products2 к примеру, создаем новую папку products пустую. Обновляем любую страницу на сайте. Новые картинки должны сгенерироватся в папке products и иметь свою вторую версию в webp.
4) Если картинки не герерируются - создаем в корне сайта файл phpinfo.php с содержимым
<?php phpinfo(); ?> <?php $file='1.jpg'; $image= imagecreatefromjpeg($file); imagewebp($image,'1.webp',80); imagedestroy($image); echo ($file); ?>
Смотрим версию php, для работы функции imagewebp создания нужна версия php 5.5+
Загружаем в корень сайта картинку с именем 1.jpg
Открываем в браузере ссылку имя вашего сайта/phpinfo.php
Мотаем в самый низ, если строка echo ($file); вывела 1.jpg - имя загруженой картинки - значит со стороны хостинга все работает, в корне должна появится картинка 1.webp
Если вывелась ошибка "вызов неопределенной функции imagewebp ()" - значит пинаем хостера/обновляем php.
5) Проверить работоспособность метода - первый признак это то что гугл перестает ругаться на оптимизацию формата картинок. Второй - жмем правой на картинке - проверить - вкладка Network - выбрать img, обновить страницу через ctrl+r, и посмотреть тип картинки. На товарах должен быть webp. Надо осознать что если вы скачаете на пк то получите .jpg, но это не показатель, браузер ориентируется по типу и грузит webp а не jpg. На jpg у вас в коде просто остаются ссылки.
-
В 19.01.2021 в 16:40, get31 сказал:
Попробовал с этим решением работает, webp создается, но с эти кодом не работает
вот с эти не работает, кто-то сталкивался с данной проблемой?
Перед внесением изменений в htaccess, попросите уточните у хостера и попросите отключить обработку расширений jpg|jpeg|gif|png на стороне сервера. Некоторые хостеры (например хостингукраина и thehost) передают статику и картинки на nginx, и правила htaccess на них не действуют.
После отключения обработки статики этого правила редиректа заработают.
Так же надо не забывать добавить кеширование, т.к. сервер уже не будет обрабатывать картинки
ExpiresActive On
#кэшировать флэш и изображения на год
ExpiresByType image/x-icon "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/webp "access 1 year"
Вставить свойство товара из фильтра
в Общие вопросы по функционалу и дизайну
Опубликовано