Вывод изображений в карточке и fancybox без ресайза

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

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

Сообщение #1 Aleks » 01.10.2023, 14:25

Совместными усилиями мы создали рабочий код для вывода изображений в карточке и fancybox без ресайза.

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

<a href="{$config->original_images_dir}{$image->filename}" data-fancybox="we2"  data-width="600" class="swiper-slide">
            <img>
<img src="{$config->original_images_dir}{$image->filename}" width="400" alt="{$b->name|escape}" title="{$b->name|escape}"/>
           </img>                     
</a>

Можно посмотреть здесь:
viewtopic.php?f=9&t=3345&start=20
Обязательно необходимо в папку originals\products поместить файл .htaccess с текстом:
order deny, allow
Allow from all
иначе картинки не будут показаны.
Тестировал на локалке и в сети на бесплатном хостинге. Работает исправно.
Но на основном сайте строка с fancybox не работает.
В папку resized\products помещаются файлы прежнего вида: abcd.800x800.jpg.
Т.е. ресайз срабатывает. Но в папку для ресайза вставляются картинки оригинального размера.
Проверил: опции 800:800 нет на сайте.
Fancybox за ресайз не отвечает. Если удалить его, то картинки по клику в карточке открываются, не листаются, но файлы вида abcd.800x800.jpg помещаются в папку для ресайза.

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

Сообщение #2 korshunov » 02.10.2023, 05:32

Aleks писал(а):Но на основном сайте строка с fancybox не работает.

Надо хотя бы ссылку давать, по которой не работает. А если великий секрет, то и упоминать не надо на открытом форуме, разрабатывать в режиме секретности.

И вообще - слов написано много, но четко не сказано, что Вам не нравится.
Если считаете, что НЕ должны файлы ресайза образовываться, то надо это ТОЧНО указывать.

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

Сообщение #3 Aleks » 02.10.2023, 07:16

Ссылку давать? Какую, сайта на котором установлен этот код? И что вы там увидите? Ничего! Код работает.
Мною выше написано, что в папку для ресайза все равно вставляются картинки со строки с fancybox. И приведен пример подобных файлов.
Вам что, дать доступ по FTP посмотреть на сайте папку resized? Ну увидите там файлы, пример: abcd.800:800.jpg. И шо? А ничего.
Посмотреть файл product.tpl? А там код, который приведен выше.
И что еще точнее указать про ресайз? Прочтите еще раз первую строку моего поста. Или сходите по ссылке и еще раз перечитайте на ней содержание.
Если у вас есть что сказать как изменить строку:
<a href="{$config->original_images_dir}{$image->filename}" data-fancybox="we2" data-width="600" class="swiper-slide">,чтобы здесь ресайз не работал
то пожалуйста. Будем благодарны.

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

Сообщение #4 korshunov » 02.10.2023, 08:30

Aleks писал(а):Ссылку давать? Какую, сайта на котором установлен этот код? И что вы там увидите? Ничего! Код работает.
Мною выше написано, что в папку для ресайза все равно вставляются картинки со строки с fancybox. И приведен пример подобных файлов.
Вам что, дать доступ по FTP посмотреть на сайте папку resized? Ну увидите там файлы, пример: abcd.800:800.jpg. И шо? А ничего.
Посмотреть файл product.tpl? А там код, который приведен выше.
И что еще точнее указать про ресайз? Прочтите еще раз первую строку моего поста. Или сходите по ссылке и еще раз перечитайте на ней содержание.

Опять много слов, непонятно к чему и зачем. Надо говорить ТОЧНО, что именно Вам не нравится или что считаете ошибкой.

Aleks писал(а):Ссылку давать? Какую, сайта на котором установлен этот код? И что вы там увидите?

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

Aleks писал(а):Мною выше написано, что в папку для ресайза все равно вставляются картинки со строки с fancybox.

Готов поспорить, например, на 1000$, что это не так. Правда, для точного анализа и выяснения потребуется тот же FTP, с которым у Вас туго...

Aleks писал(а):Если у вас есть что сказать как изменить строку:
<a href="{$config->original_images_dir}{$image->filename}" data-fancybox="we2" data-width="600" class="swiper-slide">,чтобы здесь ресайз не работал
то пожалуйста. Будем благодарны.

Работа этой строки никак не сказывается на работе ресайза. И работа этой строки ресайз НЕ вызывает. Если Вы изучали хоть немного HTML, то должны знать, что эта строка лишь задает ссылку. Если у Вас есть хоть какие-то доказательства того, что именно эта строка вызывает ресайз, приводите...

Поэтому "изменить строку ... чтобы здесь ресайз не работал" невозможно НИКАК.

Скорее всего, вызывается ресайз 800х800 у Вас совсем в другом месте. Именно для этого я просил дать URL, чтобы хоть код HTML страницы посмотреть.

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

Сообщение #5 Aleks » 02.10.2023, 13:23

Спасибо г. korshunov за ответ.
Проверил и не раз код страницы. Нет там ничего. что могло бы вызывать ресайз. В файле product.tpl нет стороннего кода. Только с дефолта.
Да и строки верные, без resized:
<a href="files/originals/products/s45576.jpg" data-fancybox="we2" data-width="600" class="swiper-slide">
<img>
<img src="files/originals/products/s45576.jpg" width="400" alt="" title=""/>
</img>
</a>
Вы готовы выложить $1000, увидев в папке resized файлы (пример) abcd.800x800.jpg при вставленном нашем коде?
Они есть. Иначе зачем я это все писал?
И читайте внимательно мой пост. Там сказано. что проверил в сети на другом хостинге. И там такой ситуации нет.
Следовательно, возможно, ненужный ресайз обусловлен настройками сервера.
Отправлю запрос хостеру.
И возникла еще одна версия такого ресайза: это оишбка CMS. Так написан этот ресайз.
Факты:
1. Оказывается не все изображения помещаются в папку resized. Некоторых файлов там и в помине нет.
2. В head.tpl закомментировал строки в {* Images for social networks *} с resize.
На сайте социальные кнопки скрыты. Раньше файлы такого ресайза массово помещались в resized. Сейчас нет.
Но все равно некоторые файлы регулярно помещаются, а ведь их ресайз отключен.
Значит в локалке и на бесплатном хостинге эта ошибка не проявилась. А вот на толковом сервере она и вылезла.

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

Сообщение #6 korshunov » 02.10.2023, 15:20

Aleks писал(а):Спасибо г. korshunov за ответ.
Проверил и не раз код страницы. Нет там ничего. что могло бы вызывать ресайз. В файле product.tpl нет стороннего кода. Только с дефолта.
Да и строки верные, без resized:
<a href="files/originals/products/s45576.jpg" data-fancybox="we2" data-width="600" class="swiper-slide">
<img>
<img src="files/originals/products/s45576.jpg" width="400" alt="" title=""/>
</img>
</a>

Не пойдет так. Это болтовня пустая. Надо писать точно, какой текст проверяли, откуда, как проверяли, приводить текст ПОЛНЫЙ и проч.

Aleks писал(а):Вы готовы выложить $1000, увидев в папке resized файлы (пример) abcd.800x800.jpg при вставленном нашем коде?

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

Aleks писал(а):Там сказано. что проверил в сети на другом хостинге. И там такой ситуации нет.
Следовательно, возможно, ненужный ресайз обусловлен настройками сервера.

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

Aleks писал(а):И возникла еще одна версия такого ресайза: это оишбка CMS. Так написан этот ресайз.

А вообще это Ваше замечание несерьезное - такие обычно дают ДРУГИЕ посетители форума, которые не владеют полной информацией, а лишь небрежными описаниями от ТС. А тот, кто сам творит изменения на сайте, должен бы ТОЧНО выяснять, а не гадать...

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

Сообщение #7 Aleks » 02.10.2023, 17:18

Насчет болтовни пустой о $1000. Так вот конкретика:
Я писал: "Мною выше написано, что в папку для ресайза все равно вставляются картинки со строки с fancybox".
Вы в ответ:
"Готов поспорить, например, на 1000$, что это не так. Правда, для точного анализа и выяснения потребуется тот же FTP, с которым у Вас туго..."
И как это не так, ведь они действительно вставляются. Здесь вы милостивый государь пытаетесь извратить истину, о которой у меня точные сведения.
Если вы считаете, что я от нечего делать придумал эту ошибку, тогда зачем вы вступили в полемику?
Насчет версии об ошибке CMS. И чем она несерьезная? Она что, не имеет права быть озвучена? Неужели все так гладко у CMS? Вам ли это не знать!
И о творении изменений на сайте. Насчет выяснения не сомневайтесь, работаем.
Мораль: хотелось бы г. korshunov, услышать ваши хоть бы какие-нибудь предположения о данной ситуации. если они у вас есть(?). Ведь к созданию кода вы причастны.
А эти ваши нравоучения ни нам, ни форумчанам ни к чему.

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

Сообщение #8 korshunov » 03.10.2023, 06:35

Aleks писал(а):Насчет болтовни пустой о $1000. Так вот конкретика:
Я писал: "Мною выше написано, что в папку для ресайза все равно вставляются картинки со строки с fancybox".
Вы в ответ:
"Готов поспорить, например, на 1000$, что это не так. Правда, для точного анализа и выяснения потребуется тот же FTP, с которым у Вас туго..."
И как это не так, ведь они действительно вставляются.

Здесь Вы отождествляете два РАЗНЫХ утверждения:
У1. вставляются картинки со строки с fancybox,
У2. они действительно вставляются.

Там вот мое предложение о пари было именно по поводу У1. А если Вы по ходу молчаливо заменили его на У2, то, конечно, ерунда выходит.

Если Вы в папке для ресайза картинки видите, то реально
Р1. Это означает только то, что они когда-то вставились.
Р2. Но это НЕ означает даже, что они вставляются сейчас. И вообще, что значит "вставляются", надо конкретизировать, когда, при каких действиях.
Р3. Самое главное, это НЕ означает, что они вставляются именно со строки с fancybox, которую Вы указали в первом посте.

Aleks писал(а):Насчет версии об ошибке CMS. И чем она несерьезная? Она что, не имеет права быть озвучена? Неужели все так гладко у CMS?

Уже объяснил, почему несерьезная, повторю:

korshunov писал(а):А вообще это Ваше замечание несерьезное - такие обычно дают ДРУГИЕ посетители форума, которые не владеют полной информацией, а лишь небрежными описаниями от ТС. А тот, кто сам творит изменения на сайте, должен бы ТОЧНО выяснять, а не гадать...

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

Aleks писал(а):Мораль: хотелось бы г. korshunov, услышать ваши хоть бы какие-нибудь предположения о данной ситуации. если они у вас есть(?).

Уже высказывал свои предположения:

korshunov писал(а):Работа этой строки никак не сказывается на работе ресайза. И работа этой строки ресайз НЕ вызывает. Если Вы изучали хоть немного HTML, то должны знать, что эта строка лишь задает ссылку. Если у Вас есть хоть какие-то доказательства того, что именно эта строка вызывает ресайз, приводите...

Еще высказывал несколько наводящих соображений для Вас, на которые Вы по делу не среагировали. Например:
НС1. задуматься и объяснить, почему Вы считаете именно строку с fancybox ответственной за появление нежелательных ресайзов, то есть проверить именно У1, а не заменять его на У2,
НС2. не высказывать просто предположения (типа 'ошибка CMS', 'настройки сервера'), а проверять их и сообщать конкретные проверенные результаты,
НС3. писать точно, как проводите свои проверки, приводить тексты ПОЛНЫЕ и проч.

Дам еще раз совет: подумайте в первую очередь о НС1.

Я проверил Ваше предположение У1, по моим результатам оно неверно.
Интересно, как Вы проверяли. Подозреваю, что, во-первых, никак, а во-вторых, возможно, даже не знаете, как проверять.

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

Сообщение #9 Aleks » 03.10.2023, 10:09

Читайте внимательно мой первый пост.
Вы пишите:"Самое главное, это НЕ означает, что они вставляются именно со строки с fancybox, которую Вы указали в первом посте."
В моем первом посте:"Fancybox за ресайз не отвечает. Если удалить его, то картинки по клику в карточке открываются, не листаются, но файлы вида abcd.800x800.jpg помещаются в папку для ресайза."
У вас: "Р2. Но это НЕ означает даже, что они вставляются сейчас. И вообще, что значит "вставляются", надо конкретизировать, когда, при каких действиях.
Р3. Самое главное, это НЕ означает, что они вставляются именно со строки с fancybox, которую Вы указали в первом посте."
Вставляются именно сейчас. Удаляю все файлы, помещенные благодаря первой строке в resized, они снова появляются при открытии в карточке fancybox.
Именно из-за строки с fancybox и происходит размещение файлов abcd.800x800.jpg в resized. Удаляю ее - нет этих файлов.
Но это не означает что именно она виновна. Она, возможно, лишь катализатор.
Ошибка, наверное, все-таки в CMS. И факты в подтверждение: При отмене resize для {* Images for social networks *} в head.tpl данные файлы с параметрами от {*<link rel="image_src" href="{$product->image->filename|resize:330:300}">*} все равно появляются в resized.

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

Сообщение #10 korshunov » 03.10.2023, 11:34

Aleks писал(а):Читайте внимательно мой первый пост.
Вы пишите:"Самое главное, это НЕ означает, что они вставляются именно со строки с fancybox, которую Вы указали в первом посте."
В моем первом посте:"Fancybox за ресайз не отвечает. Если удалить его, то картинки по клику в карточке открываются, не листаются, но файлы вида abcd.800x800.jpg помещаются в папку для ресайза."

Начать с того, что файлов *.800x800.jpg в стандартной поставке Okay 4.4.0 вообще НЕТ. Видимо, в шаблонах у Вас где-то изменялось.

У меня на свежеустановленной 4.4.0:
1. стандартно при открытии страницы товара образуются файлы *.700x800.jpg,
2. если удалить в product.tpl код с resize:700:800, то они уже НЕ образуются.
3. если удалить в product.tpl код с resize:700:800, и вставить Ваш код из первого поста, то они также НЕ образуются.
Что вполне понятно и логично.

Если они у Вас все же появляются, то причина в другом.
Ресайз устроен так: он срабатывает при вызове ссылки типа
http://domain/files/resized/products/okay_sport4.700x800.jpg
если файл не существует.

Такая ссылка чаще всего присутствует на стр товара в теге img. Но может возникать и в иных ситуациях:
С1. Любой пользователь интернета в браузере может набрать ссылку.
С2. Любой сторонний сайт может на СВОЮ страницу вставить <img> со ссылкой.
С3. 1С (или другие программы) при соответствующих условиях могут скачивать ресайз-файлы.
С4. Разные поисковики или агрегаторы могут иметь такие ссылки и время от времени обновлять их. Или проводить парсинг кода страниц сайта и запоминать эти ссылки.

Если влияние С1, С2 в Вашей ситуации крайне маловероятно, то С4 очень даже возможно. Если Вы действуете на работающем сайте и например, предоставляете этим поисковикам фиды, которые содержат ссылки на ресайз-файлы товаров.

Aleks писал(а):И факты в подтверждение: При отмене resize для {* Images for social networks *} в head.tpl данные файлы с параметрами от {*<link rel="image_src" href="{$product->image->filename|resize:330:300}">*} все равно появляются в resized.

А тут как раз вероятнее всего и проявляется С4 во всей красе.

Если Вы хотите точно знать причину, то надо анализировать логи или даже создавать свои логи вызовов ресайза и анализировать инициаторов...

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

Сообщение #11 Aleks » 03.10.2023, 17:26

Спасибо г. korshunov за ответ.
Он меня натолкнул на одну мысль о причине "ошибки". Проверяю на основном сайте и пробном на бесплатном хостинге.
На последнем сайте полностью удалил блок {* Images for social networks *} в head.tpl, картинки пока поступают, удаляю. Удаленные больше не появляются.
Первичные результаты проверки свидетельствуют, что виной, возможно, является CMS.
А если быть точным, то мелкая оплошность, допущенная разработчиком.

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

Сообщение #12 korshunov » 04.10.2023, 05:47

Aleks писал(а):Первичные результаты проверки свидетельствуют, что виной, возможно, является CMS.
А если быть точным, то мелкая оплошность, допущенная разработчиком.

Хорошо бы быть еще более точным и сразу писать детали:
1. Как проводится проверка,
2. Каковы первичные результаты,
3. Что говорит о вине CMS,
4. В чем состоит оплошность.

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

Сообщение #13 Aleks » 04.10.2023, 08:23

Нет нужды все описывать.
Привожу выдержку из лога сайта. И Вам все станет понятно.
/files/resized/products/s30002720.600x600.jpg Googlebot-Image/1.0
/files/resized/products/s30002720d.600x600.jpg Googlebot-Image/1.0
Теперь смотрим файл robots.txt у дефолта и на сайте:
У всех User-agent
Disallow: /compiled/
Disallow: /resize/
А надо resized
Т.е. Гугль давно просканировал и проиндексировал папку resized/products и теперь при открытии картинки в fancybox имем то, что имеем.
Вы правы "А тут как раз вероятнее всего и проявляется С4 во всей красе".
И как с этим бороться? Наверное, самый простой путь - это постоянно удалять эти файлы. Удаленные файлы, как правило, вновь не появляются в resized.
resized отредактировал.


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

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


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

   

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

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

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