webp не отображается

Правила раздела: faq.php?mode=okay
Модератор: Модераторы

Aleks
Aleks
Репутация: 56
Сообщения: 387
Зарегистрирован: 24.05.2021
С нами: 2 года 11 месяцев

Сообщение #21 Aleks » 05.09.2023, 18:09

norfin
При импорте товаров не импортируются изображения с конкретного сайта (пробные фото с другого сайта закачиваются). Фото в формате jpg.
В коде страницы товара с проблемой можно увидеть, что ссылка на фото товара почему-то содержит в себе ссылку на сайт, с которого это фото должно было скачиваться:
../files/resized/products/https%253A%252F%252Fnew-partner.vm.ua%252Fimage%252Fcache%252FDoc-108832-500x500.600x800.jpg
На demookay фото тоже не подгружается, хотя сама ссылка на фото для скачивания рабочая:
https://new-partner.vm.ua/image/cache/Doc-108832-500x500.jpg
Права на папки files, originals, resized, products стоят 775
Что это? Сайт блокирует доступ для скачивания картинок?

Сайт не блокирует доступ для скачивания картинок и originals и resized. Тестировал.
В папке resized имеете файлы ...500x500.600x800.jpg. Физический размер 600х800 не получится, будет 500х500. Ресайз системы не увеличивает картинки.
На сайте new-partner все оригинальные картинки имеют 1500х1500 весом более 300кб. Потом их ресайзят в 500х500. Для поклонников такого ресайза - можете эту логику объяснить? Трудозатраты и размеры дискового пространства как объяснение не надо. Зачем загружать 1500х1500 и ресайзить в 500х500, если можно загрузить 500х500.
Ну и по логике жанра - попробуйте отключить Поддержку webp.

korshunov
korshunov
Репутация: 148
Сообщения: 1862
Зарегистрирован: 03.12.2015
С нами: 8 лет 4 месяца
Skype

Сообщение #22 korshunov » 06.09.2023, 13:31

norfin писал(а):Сейчас другая интересная ситуация:

При импорте товаров не импортируются изображения с конкретного сайта (пробные фото с другого сайта закачиваются). Фото в формате jpg.
В коде страницы товара с проблемой можно увидеть, что ссылка на фото товара почему-то содержит в себе ссылку на сайт, с которого это фото должно было скачиваться:
../files/resized/products/https%253A%252F%252Fnew-partner.vm.ua%252Fimage%252Fcache%252FDoc-108832-500x500.600x800.jpg
На demookay фото тоже не подгружается, хотя сама ссылка на фото для скачивания рабочая:
https://new-partner.vm.ua/image/cache/Doc-108832-500x500.jpg
Права на папки files, originals, resized, products стоят 775

Что это? Сайт блокирует доступ для скачивания картинок?

Очень возможно, что сторонний сайт блокирует скачивание картинок. Встречалось подобное неоднократно.
А по Вашей рабочей ссылке у меня картинка в браузере не открывается...

Добавлено спустя 27 минут 45 секунд:
Aleks писал(а):На сайте new-partner все оригинальные картинки имеют 1500х1500 весом более 300кб. Потом их ресайзят в 500х500. Для поклонников такого ресайза - можете эту логику объяснить? Трудозатраты и размеры дискового пространства как объяснение не надо. Зачем загружать 1500х1500 и ресайзить в 500х500, если можно загрузить 500х500.

Объяснение простое и тривиальное.
Вот-первых, логика "загружают 1500х1500, потом их ресайзят в 500х500" - изобретение исключительно Ваше. А реально по такой логике никто не работает

Работают так: загружают ОДИН РАЗ размер 1500х1500, а потом делают МНОГО разных ресайзов. Например, на демосайте можно увидеть
1. В админке в списке товаров 55x55,
2. В админке на стр отдельного товара 300x120,
3. На витрине в списке товаров 600x800,
4. На витрине на стр отдельного товара 1800x1800 и 700x800,
5. На витрине на стр корзины 70x70,
6. И еще есть разные места с другими размерами.

А если вдруг дизайнер захотел изменить размер картинки, то все делается простейшей правкой в шаблоне. Или захотел добавить новый размер - тоже крайне просто. Можно даже часто менять размеры. Даже экзотические ходы возможны, например, на выходной день один размер, на будний другой. Или например, для товаров разных категорий можно легко делать картинки разных размеров, если специфика товаров потребует.

А теперь представьте, что дизайнер решил изменить размер картинки с 500х500 на 500х400. По методу пользователя Alex надо массово обработать с помощью какой-то программы и перезагрузить тысячи картинок. Мало кому такое понравится, если это придется делать периодически.

Интересно, переделал ли пользователь Aleks работу с картинками в Okay. Если да, хотелось бы узнать детали. Насколько я понимаю, на этом пути сложностей ужас как много...

Aleks
Aleks
Репутация: 56
Сообщения: 387
Зарегистрирован: 24.05.2021
С нами: 2 года 11 месяцев

Сообщение #23 Aleks » 06.09.2023, 16:29

korshunov
Очень возможно, что сторонний сайт блокирует скачивание картинок. Встречалось подобное неоднократно.
А по Вашей рабочей ссылке у меня картинка в браузере не открывается...
Сайт new-partner не блокирует скачивание картинок. Скачал даже оригиналы 1500х1500, которые на сайте не видны. Ссылка открывается с форума, а также при вводе ее в адресную строку браузера. Ваш браузер не того значит.
По поводу ресайза. Ресайз в Okay картинки не увеличивает!!!. Да в этом и нет смысла, качество будет хуже. Напишите хоть 2000х2000 в product. В имени файла будут эти значения, но картинка будет иметь свой начальный физический размер.
Алгоритм работы с картинками простой. Сначала определимся с максимальным размером оригинальных картинок, которые будут открываться в карточке. И пишем этот размер в файлах шаблона. Например, 800х800, 1000х1000 или иное нужное. И вот этот оригинал и загружаем на сайт.
Т.е. отпадает нужда в ресайзе картинок для карточки. Вот здесь вопрос: как отменить ресайз для карточки и установить вывод картинок из originals?
А все остальные ресайзы оставляем здравствовать и 55х55 и 60х60 и 70х70 и прочую мелочь. Можете эти размеры менять как Вам угодно.
Более того, я всю эту мелочь привел к одному размеру 60х60. Результат: количество картинок на сайте в resized уменьшилось более чем в 2 раза.
Отменил водяной знак, ибо без водяного знака можно сохранить из карточки, не открывая картинку в fancybox. Загружаю изображения с готовым водяным знаком. Еще минус в resized тысячи файлов вроде 1800х1800W
По поводу изменения размера оригинальных картинок в шаблоне по хотению дизайнера в любой день недели или фазы луны. Наверное, таких чудаков среди пользователей Okay нет. По крайней мере в интернет-магазине никто это делать не будет.
Мораль: я сделал так как мне нужно и удобнее. Каждый волен использовать в той или иной мере мой метод, но утверждать что это неверно/неправильно ни у кого нет никаких оснований.
А вот совет как отменить ресайз картинки в карточке и установить вывод изображений из originals с благодарностью приму.

makki M
makki M
Репутация: 199
Сообщения: 697
Зарегистрирован: 12.08.2016
С нами: 7 лет 8 месяцев
Откуда: Киев
Сайт

Сообщение #24 makki » 06.09.2023, 18:26

Aleks писал(а):А вот совет как отменить ресайз картинки в карточке и установить вывод изображений из originals с благодарностью приму.
попробуйте так

Код: Выделить всё

<img src="{$rootUrl}/{$config->original_images_dir|escape}{$image->filename}"/>
Cоздание и расширение функционала интернет-магазина на платформе OkayCMS 2 (с 3-й и 4-й версией не работаю)

korshunov
korshunov
Репутация: 148
Сообщения: 1862
Зарегистрирован: 03.12.2015
С нами: 8 лет 4 месяца
Skype

Сообщение #25 korshunov » 07.09.2023, 07:00

Aleks писал(а):Сайт new-partner не блокирует скачивание картинок. Скачал даже оригиналы 1500х1500, которые на сайте не видны. Ссылка открывается с форума, а также при вводе ее в адресную строку браузера.

Открывается у меня при использовании VPN.

А вообще,чтоб заявлять "Сайт new-partner не блокирует скачивание картинок", надо провести серьезное исследование, и скачивать картинки тысячами. Нередко бывает, что блокирование применяется при большом числе запросов. Сомневаюсь, что Вы проводили объемные эксперименты.


Aleks писал(а):По поводу ресайза. Ресайз в Okay картинки не увеличивает!!!. Да в этом и нет смысла, качество будет хуже. Напишите хоть 2000х2000 в product. В имени файла будут эти значения, но картинка будет иметь свой начальный физический размер.

Что хотите этим сказать? Так устроен ресайз еще со времен Simpla, на основе которой создавались первые версии Okay. Это, по-моему, разумно и целесообразно.

Aleks писал(а):А все остальные ресайзы оставляем здравствовать и 55х55 и 60х60 и 70х70 и прочую мелочь. Можете эти размеры менять как Вам угодно.
Более того, я всю эту мелочь привел к одному размеру 60х60. Результат: количество картинок на сайте в resized уменьшилось более чем в 2 раза.

Ага, значит, ресайз Вам пригодился.
А ранее Вы заявляли, что не нужен совсем ресайз.
Полагаю, попробовали уже загружать готовые картинки разных размеров, оценили трудности и благоразумно отказались по причине экономии своих собственных трудовых ресурсов...

Aleks писал(а):По поводу изменения размера оригинальных картинок в шаблоне по хотению дизайнера в любой день недели или фазы луны. Наверное, таких чудаков среди пользователей Okay нет. По крайней мере в интернет-магазине никто это делать не будет.

Что хотите этим сказать? Этот момент был охарактеризован как экзотический, то есть причудливый, необычный, и стало быть, редко встречающийся.

Aleks писал(а):А вот совет как отменить ресайз картинки в карточке и установить вывод изображений из originals с благодарностью приму.
- "как отменить ресайз картинки" - легче легкого - убрать в шаблоне (шаблонах) {resize ...}
- "установить вывод изображений из originals" - Совет Вам был дан еще неделю тому назад в посте 28.08.2023, 08:42, Вы не среагировали.

Aleks
Aleks
Репутация: 56
Сообщения: 387
Зарегистрирован: 24.05.2021
С нами: 2 года 11 месяцев

Сообщение #26 Aleks » 07.09.2023, 10:07

1. Сомневаюсь, что Вы проводили объемные эксперименты.
-Вы правы: не проводил объемные эксперименты с тысячами картинок. Ибо это мне не нужно. Скачал за пару минут более сотни original и resize.
Так что скорее всего там нет блокировки. А вообще-то тотальной защиты от скачивания изображений нет.
2.Что хотите этим сказать? Так устроен ресайз еще со времен Simpla, на основе которой создавались первые версии Okay. Это, по-моему, разумно и целесообразно.
-А хочу сказать, что в Resized наблюдается несоответствие имени файлов с его физическим разрешением.
3.Ага, значит, ресайз Вам пригодился. А ранее Вы заявляли, что не нужен совсем ресайз.
-Неверно утверждаете. О том, что ресайз не нужен я нигде не утверждал и не писал. Не надо мне приписывать то, что я не писал на форуме.
Более того, вы невнимательны при чтении постов. 27.08.2023, 17:53 мною написано:..." Напрашивается простое решение: загружать картинку нужного размера, и вывод на просмотр пользователем напрямую, без ресайза. Ну а превью и прочее надо.
4.Совет Вам был дан еще неделю тому назад в посте 28.08.2023, 08:42.
-Ваш совет касался брендов.
<img src="{$config->original_brands_dir}{$b->image}" alt="{$b->name|escape}" title="{$b->name|escape}"/>
Пока результата нет. Вы сами тестировали этот код?

korshunov
korshunov
Репутация: 148
Сообщения: 1862
Зарегистрирован: 03.12.2015
С нами: 8 лет 4 месяца
Skype

Сообщение #27 korshunov » 07.09.2023, 12:45

Aleks писал(а):2.Что хотите этим сказать? Так устроен ресайз еще со времен Simpla, на основе которой создавались первые версии Okay. Это, по-моему, разумно и целесообразно.
-А хочу сказать, что в Resized наблюдается несоответствие имени файлов с его физическим разрешением.

Если имеете в виду случай, когда запрашивается размер больше оригинала, то это нормально и так и задумано. А как по-Вашему правильно? При запросе на изображение в миллион пикс по ширине и высоте каков должен быть результат?

Aleks писал(а):3.Ага, значит, ресайз Вам пригодился. А ранее Вы заявляли, что не нужен совсем ресайз.
-Неверно утверждаете. О том, что ресайз не нужен я нигде не утверждал и не писал. Не надо мне приписывать то, что я не писал на форуме.
Более того, вы невнимательны при чтении постов. 27.08.2023, 17:53 мною написано:..." Напрашивается простое решение: загружать картинку нужного размера, и вывод на просмотр пользователем напрямую, без ресайза. Ну а превью и прочее надо.

Да, действительно, Вы написали, что для превью надо использовать резайз. А как определяете, для каких случаев нужен ресайз и когда не нужен (вывод на просмотр напрямую)?

Aleks писал(а):4.Совет Вам был дан еще неделю тому назад в посте 28.08.2023, 08:42.
-Ваш совет касался брендов.

Во-первых, совет Вам был дан в общем. Во-вторых, Вам был дан пример применения совета с точным кодом для конкретного места в конкретном шаблоне. Вы, похоже, совсем невнимательно отнеслись...

Aleks писал(а):Вы сами тестировали этот код?

Тестировал в точности как описал, работает.

Aleks
Aleks
Репутация: 56
Сообщения: 387
Зарегистрирован: 24.05.2021
С нами: 2 года 11 месяцев

Сообщение #28 Aleks » 07.09.2023, 15:19

Спасибо г. korshunov
Ваше
<img src="{$config->original_brands_dir}{$b->image}" alt="{$b->name|escape}" title="{$b->name|escape}"/>.
заработало.
Даже не могу назвать причину начальной ошибки. Видимо, что-то пошло не так при вставке кода в main.
Сейчас вставил по-новому и заработало с первой попытки.
В originals\brands вставил htaccess (Allow from all).
Это проба пера. на сайт ставить не буду. На сайте только замена ресайза для карточки.
Там посложнее ситуация, надо учесть и для fancybox

Aleks
Aleks
Репутация: 56
Сообщения: 387
Зарегистрирован: 24.05.2021
С нами: 2 года 11 месяцев

Сообщение #29 Aleks » 09.09.2023, 16:11

Спасибо г. korshunov и makki.
Ваши коды исправно работа.т для brands. Но в product.tpl не работают. Испробовал много вариантов, но нет результата.
Нужна хотя бы загрузка картинок из originals для fancybox.
Польза от этого решения весомая: в resized не будет файлов с водяным знаком.
Папка resized доступна только админу, а эти файлы ему не нужны.

korshunov
korshunov
Репутация: 148
Сообщения: 1862
Зарегистрирован: 03.12.2015
С нами: 8 лет 4 месяца
Skype

Сообщение #30 korshunov » 09.09.2023, 17:19

Aleks писал(а):Ваши коды исправно работа.т для brands. Но в product.tpl не работают. Испробовал много вариантов, но нет результата.

Так пишите детально, что и как испробовал, хотя бы 3-4 варианта из многих...

Aleks
Aleks
Репутация: 56
Сообщения: 387
Зарегистрирован: 24.05.2021
С нами: 2 года 11 месяцев

Сообщение #31 Aleks » 10.09.2023, 14:48

OkayCMS 4.2.1 дефолт на локалке. Имя сайта на локалке orig421
1. Заменяем picture на img.
Для fancybox: $image->filename|resize:1800:1800:w заменяем на $config->original_products_dir}{$b->image,
пробовал вместо $config- ставить из оригинала $image- ,результат тот же.
Система работает исправно. Карточка открывается. Но изображения нет. Правой кнопкой по окошку и Сохранить ссылку.
Ссылка следующая: orig421/products/telefon-meizu-m3-note-16-gb
При клике по окошку в карточке срабатывает fancybox. Появляется небольшое пустое окошко. Сохраняем ссылку, она та же.
Т.е. все работает штатно, но картинки отсутствуют.
2. Важно. Для brands <img src="{$config->original_brands_dir}{$b->image}" width="80" alt="{$b->name|escape}" title="{$b->name|escape}"/>
протестировал с width="80". Можно ставить и height. Работает исправно.
Т.о., если загружать изображения из originals с использованием Вашего кода, то открываются хорошие возможности для любого изменения размера картинок в карточке и для fancybox. При этом в resized этих файлов не будет.

Код: Выделить всё

    {foreach $product->images as $i=>$image}
   <a href="{$config->original_products_dir}{$b->image}" data-fancybox="we2" class="swiper-slide">
         <img>
     <img src="{$config->original_products_dir}{$b->image}" alt="{$b->name|escape}" title="{$b->name|escape}"/>
          </img>
       </a>
    {/foreach}

makki M
makki M
Репутация: 199
Сообщения: 697
Зарегистрирован: 12.08.2016
С нами: 7 лет 8 месяцев
Откуда: Киев
Сайт

Сообщение #32 makki » 10.09.2023, 19:33

Код: Выделить всё

    {foreach $product->images as $i=>$image}
   <a href="{$config->original_products_dir}{$image}" data-fancybox="we2" class="swiper-slide">
   <img src="{$rootUrl}/{$config->original_images_dir|escape}{$image->filename}" alt="{$product->name|escape}" title="{$product->name|escape}"/>

       </a>
    {/foreach}
Cоздание и расширение функционала интернет-магазина на платформе OkayCMS 2 (с 3-й и 4-й версией не работаю)

Aleks
Aleks
Репутация: 56
Сообщения: 387
Зарегистрирован: 24.05.2021
С нами: 2 года 11 месяцев

Сообщение #33 Aleks » 10.09.2023, 22:38

Спасибо makki. Тестировал. При клике по превью вместо карточки выводит сообщение на чистом экране:
Телефон Meizu M3 Note 16Gb В наличии
Артикул:
Менял original_images_dir на original_products_dir - результат тот же.
Ваш код, наверное, подходит для OkayCMS 2. На 4-ой не хочет работать.
Будем утром разбираться. Оно мудренее.

korshunov
korshunov
Репутация: 148
Сообщения: 1862
Зарегистрирован: 03.12.2015
С нами: 8 лет 4 месяца
Skype

Сообщение #34 korshunov » 11.09.2023, 05:13

Aleks писал(а):1. Заменяем picture на img.
Для fancybox: $image->filename|resize:1800:1800:w заменяем на $config->original_products_dir}{$b->image,
пробовал вместо $config- ставить из оригинала $image- ,результат тот же.
Система работает исправно. Карточка открывается. Но изображения нет.

Написано весьма небрежно. Если Вы это делаете на дефолтном шаблоне product.tpl, то при таком подходе работать и не должно. На одну ошибку Вам уже указал makki - неверная переменная $config->... (у него в коде, кстати, тоже абы как - в одном месте переменная верная, в другом - нет).

Если чуть внимательно посмотреть на коротенький код, можно быстро найти вторую ошибку - $b->image в указанном месте НЕ определено.

У меня работает, если вместо
<a href="{$image->filename|resize:1800:1800:w}" data-fancybox="we2" class="swiper-slide">
вставляю
<a href="{$config->original_images_dir}{$image->filename}" data-fancybox="we2" class="swiper-slide">
И не забыть в files/originals/.htaccess настроить доступ.
Вроде бы все крайне просто...

Aleks
Aleks
Репутация: 56
Сообщения: 387
Зарегистрирован: 24.05.2021
С нами: 2 года 11 месяцев

Сообщение #35 Aleks » 15.09.2023, 10:44

Полный код, рабочий. Исправно выводит изображения в карточке и fancybox (и всю галерею если таковая имеется) из originals.
Ресайз для изображений в карточке и для fancybox полностью отменен. Fancybox выводит оригинал изображений.
WIDTH для изображений в карточке ваш любимый или любой. Можно ставить и height.
Проверено на локалке v4.2.1, на v4.4.0 в demo и в сети.
Можно добавить параметры в:
<a href="{$config->original_images_dir}{$image->filename}" data-fancybox="we2" data-width="700" data-height="700" data-protect="true" class="swiper-slide">
Fancybox будет выводить изображения согласно указанным размерам.
Параметр data-protect="true" отключает правую кнопку мыши. Обычным способом сохранить изображение невозможно.
В fancybox есть возможность добавлять на изображение водяной знак: надо вставить в fancybox небольшие JS и класс CSS.
Будем пробовать.
{foreach $product->images as $i=>$image}
<a href="{$config->original_images_dir}{$image->filename}" data-fancybox="we2" class="swiper-slide">
<img>
<img src="{$config->original_images_dir}{$image->filename}" width="400" alt="{$b->name|escape}" title="{$b->name|escape}"/>
</img>
</a>
{/foreach}


Название раздела: Вопросы по работе с OkayCMS
Правила раздела: faq.php?mode=okay

Быстрый ответ


Введите код в точности так, как вы его видите. Регистр символов не имеет значения.
Код подтверждения

   

Вернуться в «Вопросы по работе с OkayCMS»

Кто сейчас на форуме (по активности за 5 минут)

Сейчас этот раздел просматривают: 138 гостей