Антон

Антон

С нами с 12 апреля 2018; Место в рейтинге пользователей: #135

Простой(или нет) способ обновить кеш страницы у клиента.

Столкнулся с такой ситуацией: клиент захотел сделать рескин сайта, я всё переверстал, но штука в том, что все картинки закешированы в браузерах у тех, кто уже был на сайте, и если с файлами стилей или яваскриптом я могу сделать style.css?ver=2 с сылкой на стильник, то все картинки во всех шаблонах и чанках так не обновишь.
Погуглив немного я понял, что можно либо шаманить с возвращаемыми хедерами, либо для всех изображений менять урл. Первый вариант не очень, потому что тогда картинки будут вообще всегда заново грузиться, а нам надо только при их реальном изменении. Возможно есть какой-то трюк с Last-modified, но я до него недогуглился.
Тогда я решил сделать простой плагин на событие OnWebPagePrerender, который бы перехватывал страницу перед отправкой пользователю и просто менял все урлы для картинок:
<?php
if ($modx->event->name == 'OnWebPagePrerender') {
    $output = &$modx->resource->_output;
    $output = str_replace('.png',".png?ver=" . $modx->getOption('assets_version'),$output);
    $output = str_replace('.jpg',".jpg?ver=" . $modx->getOption('assets_version'),$output);   
}
Антон
06 января 2019, 03:10
10
289
+11

Не работает &where в pdoResources

Всем привет!
Что-то не могу догнать, что я делаю не так. Вызов pdoPage:
[[!pdoPage?
    &snippet=`pdoResources`
    &parents=`[[*id]]`
    &tpl=`tpl.catalog-item`
    &includeTVs=`s,img,obj-type,city,address`
    &sortby=`[[!#GET.sortby:default=`publishedon`]]`
    &sortdir=`[[!#GET.sortdir:default=`DESC`]]`
    &where=`{[[!#GET.towns:!empty=`"city:IN": "[[!explode? str=`[[!#GET.towns]]`]]"[[!#GET.types:!empty=` ,`]] `]][[!#GET.types:!empty=` "obj-type:IN": "[[!explode? str=`[[!#GET.types]]`]]"`]]}`
    &limit=`9`
]]
Чтоб не парсить в голове условие where, привожу во что оно превращается:
{"city:IN": "["Москва","Санкт-Петербург"]" , "obj-type:IN": "["Торговые Центры","Бизнес центры ","Гипер и супермаркеты"]"}
Итого: Твшки в пдоРесурс проброшены, они точно есть у ресурсов, джейсон валидный(вроде как), но, тем не менее, условие where вообще никак не влияет на выборку. Есть оно или нет, выводятся все ресурсы. Что я не так делаю?
Антон
25 июня 2018, 13:39
219
0

Опять про права доступа к ресурсам

Всем привет. Возможно я плохой гуглер, но мне не удалось найти информации о том, как можно закрыть для гостей определенную часть сайта. И я говорю не про 1-2 ресурса, тут всё понятно — админ тулз или стандартные группы ресурсов, а если у меня очень много ресурсов, которые должны видеть только пользователи конкретных групп? Иными словами, возможности проставить права вручную для каждого ресурса у меня нет. Как закрыть доступ для, допустим, ресурса и всех его детей?
Антон
12 апреля 2018, 13:04
149
0