Обновление закэшированных изображений

#
Обновление закэшированных изображений
Добрый день. Изображения товаров и инфо.элементов кэшируются на клиенте. И если они обновятся на сайте - то у пользователя все-равно будут старые картинки, пока время кэша не закончится или кэш не сбросят вручную.
Обычно это решается добавлением времени загрузки файла к названию, например tort.jpg?16122018

Отсюда вопрос: можно ли в xsl получить время загрузки картинки или еще какой-нибудь индикатор обновления изображения?
Модератор
#
Re: Обновление закэшированных изображений
XSL о ваших файлах на сервере ничего не знает и не должен знать, не его ума эти вопросы.
#
Re: Обновление закэшированных изображений
Однако он знает название файла, разрешение ксртинки, а для доп свойств так еще и вес файла..
Понятное дело, что ему передает эту инфу контроллер)
Модератор
#
Re: Обновление закэшированных изображений
lipton_ice_tea,
но это не означает проверку существования и дату на сервере, при каждой генерации дергать картинки на сервере как бы весьма ресурсоемко. Не хотите кэшировать картинки - перенастройте кэширование для нужной папки на сервере или добавляйте ?rand-int к ссылкам на картинку.
#
Re: Обновление закэшированных изображений
hostcms,
Да, не означает. Эти данные очевидно записываются в базу при загрузке картинки через панель администрирования.
И меня как-раз интересует, записывается ли какая-нибудь информация о времени загрузки изображения. Но получается, что нет.

Сейчас попробовал вытаскивать информацию о том, загружается ли новое изображение в товар ИМ, или нет через хук на событии Admin_Form_Action_Controller_Type_Edit.onBeforeExecute , но пока не нашел подобной информации.
#
Re: Обновление закэшированных изображений
Покопавшись в контроллере, понял:

1) что когда пользователь загружает новое малое изображение, то отсутствует значение $controller->_formValues['small_image']

2) что бы изменить ссылку на изображение, достаточно задать
$object = $controller->getObject();
$object->__set('image_small', $object->__get('image_small').'?12345');

Таким образом мы меняем имя с  'small_item_164.jpg' на 'small_item_164.jpg?12345'
И новое имя файла начинает отображаться в xsl.
Но есть одно НО! Такой способ работает только, когда изображение не загружается через панель администрирования!
Т.е. получается, что обновлять имя файла мы можем мы можем только, если оно не загружается заново.

А нужно делать наоборот: обновлять только тогда, когда загружается новый файл
Авторизация