Контролировать кэширование файлов CSS и JS MiniShop2

В MiniShop2 встроена система контроля клиентского кэширования, но она негибкая, и учитывает лишь версию Minishop2, тогда как в реальной жизни файлик может быть отредактирован и без обновления пакета. И Вот тут возникает проблема с файлом JS, так как CSS можно просто отключить в настройках и подключить его вручную, наладив контроль кэширования. Со скриптами все сложнее, так как на системной настройке завязан вывод конфига. В общем, все это можно поправить в файле

/core/components/minishop2/model/minishop2/minishop2.class.php

Находим строчку

$js = trim($this->modx->getOption('ms2_frontend_js'));

и вносим правки. Например такие:

if (preg_match('/\.js$/i', $js)) {
  $config['vl']=str_replace('type="text/javascript"',"",$config['vl']);
  
  $js_file = str_replace($config['pl'], $config['vl'], $js);
  $file_path = MODX_BASE_PATH.$js_file;
  if(file_exists($file_path)){
    $js_file .= "?file_version=".md5_file($file_path);
  }else{
  	$js_file = str_replace($config['pl'], $config['vl'], $js);
  }
  $this->modx->regClientScript($js_file);
}

В итоге получаем адрес скрипта:

.../default.js?file_version=9cf6e2309ea8cf75b836ab6abe5393f4

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

Комментарии (0)

  1. Напишите первый комментарий
*Комментарий будет опубликован после проверки модератором

[MODx] Генератор настроек MIGX

[MODx, MIGx] Документация на русском по MIGX

[MODX] Импорт и экспорт в MiniShop2. Реализация 1

[MODx] minishop2 tips

[JS] Маска для ввода телефона +7(___)___-__-__

[MODx, miniShop2] Генерация YML для выгрузки в маркет

Как включить HTTPS (SSL) в MODX - Подробная инструкция

[MODx] Подсказки по API

[OpenCart] Вывести на главную все категории с картинками

[MODx, MIGX] Примеры использования

[MODx] Сайт на обслуживании (выключить сайт)

Универсальная форма обратной связи — feedBackForm

[PHP, JSON] Пример перевода с помощью Yandex Translate API

[MODx, Gallery] Галерея. Вывести обложки альбомов и фотографии

Расширение свойств товаров minishop2

[Opencart] Вернуть английский язык, если вы его удалили

[OpenCart] Вывести модуль напрямую через контроллер

[MODx, Quip] Более рабочий вариант.

[MODX, MIGX] Вывести getImageList только если он не пустой

[MODX, MIGX] Тип поля "Список ресурсов" (resourcelist) с ограничением по родителю (parents)

Красивое адаптивное меню под pdoMenu

[MODx] Создать источник файлов

[MODx] Вывод tv-параметров в формате [название TV] - [значение TV]

[PHP] Простое логирование

[MODX] Вывести список всех опций MiniShop2

Все записи