Финансовая поддержка VPS, бесплатные дополнения и docs Донаты оплачивают сервер и двигают бесплатные дополнения MODX и документацию. Поддержать

Всего 126 143 комментария

Василий Наумкин
Василий Наумкин
Немного почитал еще маны и вот итоговая команда:
wget -m -np -nv --spider -l 10 http://sitename.ru/
Здесь wget работает в режиме «паука» и просто дёргает страницы, не загружая их.

Еще можно еще придумать скрипт, который будет одновременно запускать несколько копий wget, направленных на разные разделы сайта для ускоренной генерации кэша.

Полезный параметр -l 10 ограничивает глубину выборки ссылок, его можно уменьшить, для скорости.
Василий Наумкин
Василий Наумкин
Лично у меня только один вариант — консольный скрипт с wget, который пробежит по всем страницам и закачает их, генерируя тем самым кэш.
wget -m -np -nv -A .html http://sitename.ru/ > /dev/null

Это не быстро, но гарантированно загонит в кэш ВСЕ страницы, которые доступны по ссылкам. То есть, даже динамические, типа вывода каталога с разбивкой на страницы.
Василий Краковецкий
Василий Краковецкий
Что заэкранировать? Если мы получаем айдишник от пользователя с фронтеда, и он является числом, то достаточно прописать
$id = (int) $_GET['id_from_user'];
а в остальных случаях модикс прекрасно обо всем позаботится.
Или вы про знак подчеркивания? А его, простите, зачем экранировать?
Василий Наумкин
Василий Наумкин
Не нужно так делать. Для логики нужно писать сниппеты, а не программировать на фильтрах.

switch ($modx->context->key) {
	case 'en' : $chunk = 'en-company-name'; break;
	case 'de' : $chunk = 'de-company-name'; break;
	default: $chunk = 'company-name'; break;
}
return $modx->getChunk($chunk);

И выглядит понятнее, и работает быстрее, и добавить еще 10 условий\проверок — не вопрос.