🤟
Support Morozov&Pimnev
  • Введение
    • Покупка модуля
    • Версия модуля
    • Обновление модуля
    • Переустановить модуль
    • Оставить отзыв
    • Продление периода технической поддержки
    • Вопросы, поддержка и предложения
  • AmoCRM
    • Создание ключа интеграции
    • Установка модуля
    • Добавление сета настроек
    • Пользователи сайта
    • События (хуки)
    • Настройки
    • Планировщик задач
  • Bitrix24
    • Создание ключа интеграции
    • Установка модуля
    • Добавление сета настроек
    • События (хуки)
    • Настройки
    • Планировщик задач
  • MegaPost
    • Технические требования
    • Установка модуля
    • Создание ключа API
    • DaData
    • Настройки макета
    • Подключение XSL и ТДС
    • События (хуки) и др
    • Настройка MegaPost
      • СДЭК
      • Почта России
      • Boxberry
      • DPD
      • ПЭК
      • Деловые линии
      • Энергия
      • Яндекс GO
      • Мой склад [HostCMS]
    • MegaPost условия
    • Зависимые поля
    • Тип платежной системы
    • Карточка товара
    • Вывод карты ПВЗ
    • Выгрузка заказов в ЛК
    • Изменение названий тарифов
    • Город для расчета
    • Добавление доставки
    • Шаблон карточки заказа
    • MegaPost_Command_Controller
    • Работа с Яндекс картой (ymaps)
    • Обновление модуля
    • Отладка
    • Возможные ошибки
  • RetailCRM
    • Создание ключа доступа к API
    • Установка модуля
    • Добавление магазина
    • Экспорт товаров в RetailCRM через ICML
    • Настройка триггера для создания/обновления заказов из RetailCRM в HostCMS
    • Выгрузка ранее сделанных заказов в RetailCRM
    • События (хуки)
    • Настройки
    • Планировщик задач
  • Мультиязычность
    • Установка модуля
    • Создание ключа Яндекс.Облако
    • Настройка модуля
    • Создание языков
    • Настройка макета
    • Сущность язык
    • Настройка SEO заголовков
    • Настройка HREFLANG
    • Интернационализация в XSL-шаблонах
    • Интернационализация в макетах
    • Интернационализация в ТДС или собственных php файлах
    • Работа с объектами ORM
    • Sitemap
    • Хлебные крошки
    • Массовый перевод
  • Мультирегиональность
    • Установка модуля
    • Настройка модуля
    • Создание регионов
    • Настройки городов
    • Настройка макета
    • Работа с объектами ORM
    • Настройка SEO заголовков
    • Свои Яндекс/Google счетчики и другие скрипты для региона
    • Sitemap
    • Шорткоды
    • Импорт регионов
    • Версии элементов
    • Ограничение по складу
    • Morphos
    • Хлебные крошки
  • Умные фильтры
    • Установка модуля
    • Настройка модуля
    • Настройки макета
    • Подключение XSL и ТДС
    • Вывод фильтра
    • Sitemap
    • Типы свойств для фильтрации
    • Пресеты
    • SEO-фильтр
    • Производители
    • Виды сортировки
    • Свойства товара, доступные для группы товаров
  • Маркетинг
    • Установка модуля
    • Настройка модуля
    • Скидки от суммы заказа
    • Условия
      • Подарки
      • Купон в подарок
    • Приоритетность
  • Улучшенный выбор города
    • Установка модуля
    • Настройка модуля
    • Настройка макета
    • Работа с объектами ORM
  • GeoIP
    • Установка модуля
    • Список сервисов
    • Настройка модуля
    • Проверка IP в ЦА
    • Работа с данными
    • Корзина
  • MegaImport
    • Технические требования
    • Установка модуля
    • Добавление импорта
      • Вкладка «Основные»
        • Тип импорта
        • Тип файла
      • Вкладка «Наценки»
      • Вкладка «Условия»
      • Вкладка «Расписание»
    • Модификации
    • Соответствие полей
    • Отчет импорта
    • Xpath
    • Планировщик задач
    • Возможные ошибки
  • MARKET
    • Установка шаблона
    • Настройка шаблона
    • Поиск
    • Google reCAPTCHA
    • Jivo чат
    • Яндекс.Метрика
      • Электронная коммерция
      • Цель: заказ
      • Цель: телефон/email
      • Цель: отправка форм
    • Настройки виджета
    • Дизайн: меню
    • Дизайн: главная
      • 👉 Сообщения
      • Главный баннер
      • Баннера на слайдере
      • Преимущества
      • Популярные категории
      • Популярные предложения
      • Выгодные предложения
      • Товары дня
      • Категории хиты
      • Баннер средний
      • Стоит приглядеться
      • Отзывы о нас
      • Последние новости
      • Рады видеть вас в нашем маркете
      • Вы ранее смотрели
      • Производители
      • Подписка
    • Дизайн: товары
      • Лейблы: Эксклюзив / Хиты продаж / Рекомендуем
      • Карточка товара
    • Дизайн: о компании
    • Социальные сети
    • Мессенджеры
    • Доп. модули
    • Обновление
  • Сборщик отзывов
    • Технические требования
    • Установка модуля
    • Настройка модуля
    • Настройка макета
    • Планировщик задач
    • Отправка SMS
  • Подписка на товар
    • Установка модуля
    • Настройка модуля
    • Настройка макета
    • Список подписок
    • Отчеты
    • Настройка XSL шаблона товара
    • Отправка SMS
  • Telegram Bot
    • Создание бота и ключа интеграции
    • Установка модуля
    • Настройка модуля
    • HTML style
    • Core_Meta
  • Telegram Bot v2
    • Создание бота и ключа интеграции
    • Установка модуля
    • Добавление магазина
    • TelegramBot пользователи
    • Подписка на уведомления
    • Авторизация
    • HTML style
    • Core_Meta
  • Брошенная корзина x2
    • Установка модуля
    • Настройка макета
  • 🔥Полезности
    • Сброс кэш изображений
    • Удобная авторизация в ЦА
    • Memcache*d
    • Core_Auth::logged()
    • Update хук
Powered by GitBook
On this page
  1. Полезности

Сброс кэш изображений

v >= 6.9.5

PreviousНастройка макетаNextУдобная авторизация в ЦА

Last updated 1 year ago

Разместите код хука () в файле bootstrap.php

class My_File_Time
{
    static public function onBeforeRedeclaredGetXml($object)
    {
        $modelName = $object->getModelName();
    
        switch ($modelName)
        {
            case 'informationsystem_item':
            case 'informationsystem_group':
            case 'shop_item':
            case 'shop_group':
            
                if($object->image_small)
                {
                    $fileSmall = strpos($modelName, '_group') === FALSE ? $object->getItemPath() : $object->getGroupPath();
                    $fileSmall .= $object->image_small;
    
                    if(is_file($fileSmall))
                    {
                        $object->addEntity(
                            Core::factory('Core_Xml_Entity')
                                ->name('image_small_time')
                                ->value('?'.filemtime($fileSmall))
                        );
                    }
                }
    
                if($object->image_large)
                {
                    $fileLarge = strpos($modelName, '_group') === FALSE ? $object->getItemPath() : $object->getGroupPath();
                    $fileLarge .= $object->image_large;
    
                    if(is_file($fileLarge))
                    {
                        $object->addEntity(
                            Core::factory('Core_Xml_Entity')
                                ->name('image_large_time')
                                ->value('?'.filemtime($fileLarge))
                        );
                    }
                }
                    
                break;
            case 'property_value_file':
            
                if($object->file_small)
                {
                    $fileSmall = $object->getSmallFilePath();
    
        	    if(is_file($fileSmall))
        	    {
                        $object->addEntity(
                            Core::factory('Core_Xml_Entity')
                                ->name('file_small_time')
                                ->value('?'.filemtime($fileSmall))
                        );
        	    }
                }
    			
                if($object->file)
                {
                    $fileSmall = $object->getLargeFilePath();
    
                    if(is_file($fileSmall))
                    {
                        $object->addEntity(
                            Core::factory('Core_Xml_Entity')
                                ->name('file_time')
                                ->value('?'.filemtime($fileSmall))
                        );
                    }
                }
                
                break;
        }
    }
}

// группы информационных систем
Core_Event::attach('informationsystem_group.onBeforeRedeclaredGetXml', array('My_File_Time', 'onBeforeRedeclaredGetXml'));
// информационные элементы
Core_Event::attach('informationsystem_item.onBeforeRedeclaredGetXml', array('My_File_Time', 'onBeforeRedeclaredGetXml'));
// группы магазина
Core_Event::attach('shop_group.onBeforeRedeclaredGetXml', array('My_File_Time', 'onBeforeRedeclaredGetXml'));
// товары
Core_Event::attach('shop_item.onBeforeRedeclaredGetXml', array('My_File_Time', 'onBeforeRedeclaredGetXml'));
// доп. свойства типа файл
Core_Event::attach("property_value_file.onBeforeRedeclaredGetXml", array('My_File_Time', 'onBeforeRedeclaredGetXml'));

В ваших XSL-шаблонах добавьте новый тег к пути изображений image_..._time

...
<xsl:template match="shop_item">
    ...
    <img src="{dir}{image_small}{image_small_time}" />
    <img src="{dir}{image_large}{image_large_time}" />
    
    <xsl:for-each select="property_value[tag_name='image_dop'][file !='']">
        <img src="{../dir}{file_small}{file_small_time}" />
        <img src="{../dir}{file}{file_time}" />
    </xsl:for-each>
    ...
</xsl:template>
...
🔥
подробнее