Перейти к содержимому


Фото
* * * * * 10 голосов

Убираем Токен Из Адреса Изображения


  • Чтобы отвечать, сперва войдите на форум
98 ответов в теме

#41 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 14.02.2016 - 20:40

В логе Вам ошибка расписана вплоть до файла и строки. В остальном надо разбираться именно на Вашем сервере с возможными особенностями сервера или Вашего шаблона или Вашей реализации оной разработки...



#42 evoname

evoname
  • Пользователь
  • 34 сообщений

Опубликовано 15.02.2016 - 06:24

В логе Вам ошибка расписана вплоть до файла и строки. В остальном надо разбираться именно на Вашем сервере с возможными особенностями сервера или Вашего шаблона или Вашей реализации оной разработки...

Я смотрел 321-ю строку, ее я никак не правил. Насколько я понимаю, там идет просто операция чтения файла. Но система вероятно ищет файл не по тому пути и подозреваю, что дело как раз в отсутствии в имени файла токена.

		// Читаем изображение
		if(!$thumb->readImage($src_file))
			return false;

Что касается "реализации", то я сделал все по инструкции в шапке данной темы. Шаблон у меня стандартный.



#43 evoname

evoname
  • Пользователь
  • 34 сообщений

Опубликовано 15.02.2016 - 09:00

Ошибка была в конфликте с instantclick'ом... Разобрался, поставил no-instant для изображений и все стало открываться.



#44 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 19.08.2016 - 10:31

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

 

Задача получить адрес без $token-на
но при это запретить произвольную нарезку изображений.

 

Если на сайте показывается файл некоторых размеров С ВОДЯНЫМ ЗНАКОМ, то сообразительные конкуренты могут легко получать изображения БЕЗ ВОДЯНОГО ЗНАКА...



#45 DaVinci

DaVinci
  • Фрилансер
  • 805 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 19.08.2016 - 13:16

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

 

 

Если на сайте показывается файл некоторых размеров С ВОДЯНЫМ ЗНАКОМ, то сообразительные конкуренты могут легко получать изображения БЕЗ ВОДЯНОГО ЗНАКА...

 

обновил первый пост, учитываем водяной знак

$size = ($width?$width:0).'x'.($height?$height:0).($set_watermark?"w":'');

Изменено: DaVinci, 19.08.2016 - 13:26


#46 Gass509

Gass509
  • Пользователь
  • 16 сообщений
  • Дизайн, SEO, Пользователь
  • Откуда:Nezhin

Опубликовано 13.09.2016 - 21:51

Да очень полезное!!! Большое спасибо!



#47 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 01.10.2016 - 10:37

Встретился сайт с таким кодом в product.tpl

{if category->id==65}
{$product->image->filename|resize:1200:1200}
{else}
{$product->image->filename|resize:400:400}
{/if}

Задумка проста: захотелось показать в одной категории картинки большего размера 1200х1200, а в прочих - меньшего 400х400.  В этой несложной ситуации предложенный метод будет разрешать каждый из ресайзов 1200х1200, 400х400 для ВСЕХ  картинок...

 

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

Легко придумать и другие подобные ситуации, где предложенный метод даст подобные ошибки.

 

Дополнительно ошибки могут возникать при использовании доработок для ресайза картинок, не относящихся к товарам...



#48 Maksclub

Maksclub

    Помогаю с Симплой и c PHP

  • Фрилансер
  • 1 357 сообщений
  • Дизайн, Программирование, Верстка, Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Москва

Опубликовано 02.10.2016 - 15:14

Дополнительно ошибки могут возникать при использовании доработок для ресайза картинок, не относящихся к товарам...

 

Это нужно уточнить в описании доработки.

 

Kors, у меня вопрос -- дефолтно разве кроме изображений товаров еще что-то ресайзится?


Изменено: Maksclub, 02.10.2016 - 15:14


#49 Kors

Kors
  • Фрилансер
  • 3 522 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Россия

Опубликовано 02.10.2016 - 15:55

В Simpla дефолтно, кроме изображений товаров, ничего не ресайзится.
 



#50 Igoresh

Igoresh
  • Пользователь
  • 4 сообщений
  • Заказчик, Пользователь
  • Версия CMS:2.x
  • Откуда:Хабаровск Pоссия

Опубликовано 05.04.2017 - 05:28

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

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

 

в Design.php добавляем код

        $size = ($width?$width:0).'x'.($height?$height:0).($set_watermark?"w":'');
        $image_sizes = array();
        if($this->settings->image_sizes)
            $image_sizes = explode('|',$this->settings->image_sizes);
        if(!in_array($size, $image_sizes)){
            $image_sizes[] = $size;
            $this->settings->image_sizes = implode('|',$image_sizes);
        }

 

В Image.php добавляем код

        $size = ($width?$width:0).'x'.($height?$height:0).($set_watermark?"w":'');
        $image_sizes = array();
        if($this->settings->image_sizes)
            $image_sizes = explode('|',$this->settings->image_sizes);
        if(!in_array($size, $image_sizes)){
            header("http/1.0 404 not found");
            exit();
        }

 

Заранее спасибо. :D



#51 DaVinci

DaVinci
  • Фрилансер
  • 805 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 05.04.2017 - 13:04

Design.php

 

https://youtu.be/_gubu6-wljM?t=24s

 

Image.php

 

https://youtu.be/_gubu6-wljM?t=42s



#52 DaVinci

DaVinci
  • Фрилансер
  • 805 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 05.04.2017 - 13:12

Встретился сайт с таким кодом в product.tpl

{if category->id==65}
{$product->image->filename|resize:1200:1200}
{else}
{$product->image->filename|resize:400:400}
{/if}

Задумка проста: захотелось показать в одной категории картинки большего размера 1200х1200, а в прочих - меньшего 400х400.  В этой несложной ситуации предложенный метод будет разрешать каждый из ресайзов 1200х1200, 400х400 для ВСЕХ  картинок...

 

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

Легко придумать и другие подобные ситуации, где предложенный метод даст подобные ошибки.

 

Дополнительно ошибки могут возникать при использовании доработок для ресайза картинок, не относящихся к товарам...

 

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


Изменено: DaVinci, 05.04.2017 - 13:12


#53 ahmed

ahmed
  • Пользователь
  • 172 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 05.04.2017 - 13:31

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

 

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

Думаю, потом будет забавная дискуссия об ошибках и исправлениях (подсказка - грубую логическую ошибку Вы допускаете даже в цитированной фразе)...


Изменено: ahmed, 05.04.2017 - 13:31


#54 DaVinci

DaVinci
  • Фрилансер
  • 805 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 05.04.2017 - 13:54

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

Изменено: DaVinci, 05.04.2017 - 14:13


#55 ahmed

ahmed
  • Пользователь
  • 172 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 05.04.2017 - 14:23

Путем не сложного запроса к базе проверяем иды товаров к которым относится данный файл, далее берем категории в которых участвует товар, если в одной из категорий есть ограничения по размерам берем их и проверяем на соответствие в запрашиваемых размерах. ВСЕ!

 

"если в одной из категорий есть ограничения по размерам" - А что это такое, не очень понятно. Если Вы собираетесь УСТАНАВЛИВАТЬ возможность таких ограничений, то это можно делать очень по-разному.  Если можно, конкретизируйте свое видение...



#56 DaVinci

DaVinci
  • Фрилансер
  • 805 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 05.04.2017 - 14:24

"если в одной из категорий есть ограничения по размерам" - А что это такое, не очень понятно. Если Вы собираетесь УСТАНАВЛИВАТЬ возможность таких ограничений, то это можно делать очень по-разному.  Если можно, конкретизируйте свое видение...

 

вы читаете не внимательно:

 

достаточно вывести в настройки категории все доступные размеры и отметить те которые доступны для конкретной категории


Изменено: DaVinci, 05.04.2017 - 14:32


#57 DaVinci

DaVinci
  • Фрилансер
  • 805 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 05.04.2017 - 14:29

"если в одной из категорий есть ограничения по размерам" - А что это такое, не очень понятно. Если Вы собираетесь УСТАНАВЛИВАТЬ возможность таких ограничений, то это можно делать очень по-разному.  Если можно, конкретизируйте свое видение...

 

Обратите внимание на название темы! Я прокомментировал возможность ограничить размеры для каждой категории но это не говорит о том что обсуждаемый вопрос относится к данной теме. Реализация ограничения крайне проста, я ответил как это можно реализовать и этого достаточно. Если у вас есть интерес ко всем возможным реализациям ограничения размеров ресайза - создайте соответствующую тему и ждите собеседников. Прошу вас вести дискуссию относящуюся к первому посту данной темы.

 

Ранее Корс отметил

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

 

все именно так. 


Изменено: DaVinci, 05.04.2017 - 14:38


#58 ahmed

ahmed
  • Пользователь
  • 172 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 05.04.2017 - 15:20

вы читаете не внимательно:

 

достаточно вывести в настройки категории все доступные размеры и отметить те которые доступны для конкретной категории

 

Не очень понятно. Имеете и виду, что в админке у категории создать поле, в которое вписывать размеры? Или что иное?

 

Может, если это так несложно, выложите полный код вместо общих фраз? Быстрее было бы...

 

А вопрос в чистом виде как раз по теме. Ибо в первом посте темы сказано "но при это запретить произвольную нарезку изображений".   А пока выходит, что произвольная нарезка как раз и не запрещена - пример дан в #47...



#59 DaVinci

DaVinci
  • Фрилансер
  • 805 сообщений
  • Программирование, Верстка
  • Версия CMS:1.x, 2.x
  • Откуда:SimplaDev.ru

Опубликовано 05.04.2017 - 15:24

Не очень понятно. Имеете и виду, что в админке у категории создать поле, в которое вписывать размеры? Или что иное?

 

Может, если это так несложно, выложите полный код вместо общих фраз? Быстрее было бы...

 

А вопрос в чистом виде как раз по теме. Ибо в первом посте темы сказано "но при это запретить произвольную нарезку изображений".   А пока выходит, что произвольная нарезка как раз и не запрещена - пример дан в #47...

 

хорошо, уточню – запретить произвольную нарезку изображений, тех размеров, которые не заданы в настройках сайта



#60 ahmed

ahmed
  • Пользователь
  • 172 сообщений
  • Программирование, Пользователь
  • Версия CMS:2.x
  • Откуда:Россия

Опубликовано 05.04.2017 - 17:29

хорошо, уточню – запретить произвольную нарезку изображений, тех размеров, которые не заданы в настройках сайта

 

Это не "уточню". Это значит - запутаю еще дальше, написав явно бессмысленную фразу. Потому как в Simpla  стандартно в настройках сайта не задается никаких размеров.






0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых