Nikita

Nikita

С нами с 18 февраля 2013; Место в рейтинге пользователей: #301

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

Столкнулся с такой ситуацией: клиент захотел сделать рескин сайта, я всё переверстал, но штука в том, что все картинки закешированы в браузерах у тех, кто уже был на сайте, и если с файлами стилей или яваскриптом я могу сделать 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
modx.pro
11
517
+11

Оптимизация сайта на MODX

Мне дали задание оптимизировать сайт https://mebmart.by для https://developers.google.com/speed/pagespeed/insights/. Я с задачей оптимизации сталкиваюсь первый раз. К сожалению, инструкций по оптимизации сайта на MODX не нашел. Поэтому хочу сделать такую инструкцию. Надеюсь, в комментариях, более опытные разработчика подскажут что и как еще можно сделать.
Александр
06 августа 2018, 00:08
modx.pro
17
2 371
+5

Лечение зараженных сайтов на modhost.pro

Привет, друзья!

Как многие уже заметили, в MODX недавно обнаружили критическую уязвимость. Заключается она в том, что одним простым запросом можно залить произвольный файл на сайт, и выполнить его. Это может быть шел, вредоносный скрипт, что угодно.

Простота атаки и беспечность владельцев сайтов привели к тому, что я уже неделю разгребаю последствия этой атаки на modhost.pro. Итак, что нужно делать, чтобы вылечить свои сайты?
Василий Наумкин
31 июля 2018, 09:57
modx.pro
17
5 995
+19

Как авторизировать пользователя?

Здравствуйте. Встала необходимость через php авторизировать пользователя. Я знаю как это сделать на процессорах, но там нужен пароль. А есть ли возможность авторизировать пользователя по логину, без пароля?
Николай
10 мая 2018, 07:18
modx.pro
3
485
0

Изменяем форму заказа minishop2

За год работы с минишопом я понял одну вещь — никто не знает как просто и быстро кастомизировать стандартную форму заказов. Для меня это довольно частая задача, по этому соберу тут несколько приемов которыми сам пользуюсь:


Pavel Zarubin
22 апреля 2018, 02:16
modx.pro
71
2 935
+41

Gallery как ТВ

Всем привет!

Помню уже давно возникал вопрос, как вывести превью фотографий для TV Gallery.
В Интернете есть готовое решение, но нет готового пакета (вроде бы).
Поэтому я решила исправить данный пробел.
тут лежит мой fork https://github.com/wax100/Gallery
а тут — собранный пакет, но версия там 1.5.3 https://yadi.sk/d/kkRsf37r3SCnGS
Может стоит в настройках вручную указать последнюю версию 1.7.0?
Ставить лучше после удаления Gallery (не проверяла как встанет на уже установленную).
В общем, пробуйте и пишите комменты
Инструкция.
Создать ТВ и выбрать там galleryalbumview
Пользоваться)
PS отправила автору пулреквест, надеюсь все верно
yani
08 февраля 2018, 11:08
modx.pro
11
1 823
+6

Сортировка поля size в Minishop2

Ввожу размер товара в поле size (S,M,L,XL,XXL), далее сохраняю товар.
c1a4c9f8650ef2eaae7b0392b00c84ab-full.png
Обновляю страницу в админке и поле меняет сортировку (XXL,XL,L,M,S)
8d8ff7f7327496f9682c73e987ce9c18-full.png
На странице сайта тоже самое. При входе на страницу товара одна сортировка. При обновлении страницы другая.
{'!msOptions' | snippet:[
                            'options'=>'size',
                            'tpl'=>'m_msOptions',
                         ]}

{foreach $options as $name => $values}
                        {foreach $values as $value}
                            <input type="radio" value="{$value}" id="{$value}" name="options[{$name}]"><label for="{$value}">{$value}</label></option>
                        {/foreach}
        {/foreach}
Костромин Игорь
29 января 2018, 10:56
modx.pro
2
1 116
0

Заперт символов при автосоздании алиаса. Как сделать?

При автоматическом создании алиаса получается:
Книга «Название»
Создаётся адрес:
kniga-«nazvanie»
Как запретить кавычки, чтобы было:
kniga-nazvanie

И можно ли как-то перегенерировать все адреса на сайте уже без кавычек (или других символов), чтобы не править вручную?
websfera
20 ноября 2017, 10:36
modx.pro
1
1 122
0

[modRetailCRM 2.0] - глобальное обновление

Представляю крупное обновление компонента для связи вашего сайта с RetailCRM — modRetailCRM 2.0.
Это одно большое изменение, так как компонент по сути написан с нуля. Это связано с тем, что разработчики RetailCRM сменили версию API и полностью переписали библиотеку, которая используется в компоненте.


Николай Савин
18 ноября 2017, 22:32
modx.pro
3
2 497
+7

msProducts фильтрация товаров по размеру, цвету

Всем привет! Не могу отфильтровать товары в каталоге по размеру, цвету. По цене фильтрует легко. С чем это связано?
Собственно код:
{$_modx->runSnippet('!pdoPage', [
	'parents' => $_modx->resource.id,
	'element' => 'msProducts',
	'ajaxMode' => 'default',
	'limit' => '8',
	'where' => '{"Data.size:IN":["1200x600","213x313"]}',
	'tpl' => '@FILE chunks/productsMainRow.tpl',
])}
По цене и др. фильтрация работает:
{$_modx->runSnippet('!pdoPage', [
	'parents' => $_modx->resource.id,
	'element' => 'msProducts',
	'ajaxMode' => 'default',
	'limit' => '8',
	'where' => '{"Data.price:IN":["720","20"]}',
	'tpl' => '@FILE chunks/productsMainRow.tpl',
])}

Ответ:
Не уверен, что решение правильное, но оно точно работает и может кому пригодится.
{$_modx->runSnippet('!pdoPage', [
	'parents' => $_modx->resource.id,
	'element' => 'msProducts',
	'limit' => '2',
	'optionFilters' => '{"size:=":"1200x600","OR:size:=":"213x313","OR:size:=":"222x444"}',
	'tpl' => '@FILE chunks/productsMainRow.tpl',
])}
max.pevnev
29 августа 2017, 10:40
modx.pro
1
1 623
0