Перейти к содержанию
Официальный форум поддержки Simpla

Max3w

Пользователь
  • Публикаций

    5
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные Max3w

  1. Все правильно, проблема решалась просто переменную $product->features по случайности переписывал модуль похожих товаров стоящий выше...

    Поменял местами код и все вывелось. Тему можно закрывать. 

  2. В админке, в свойствах товара присвоены значения, в таблице в БД 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? 

    Или как мне выдернуть свойства товара из БД? Но вобще ж они должны передаваться в сам товар насколько я понимаю. А они не передаются.

  3. Еще раз подытожу.

    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 у вас в коде просто остаются ссылки.  

     

  4. В 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"

×
×
  • Создать...