Всего 99 220 комментариев

Василий Наумкин
03 марта 2013, 11:17
0
index.php лучше убрать, иначе /manager/index.php зациклит и ты не сможешь войти в админку.
Ян Такушевич
03 марта 2013, 10:44
0
У меня ваш код выдает вот такую ошибку:

Fatal error: Call to undefined method modUser_mysql::innerJoin()
Ян Такушевич
03 марта 2013, 10:20
0
Чтобы для каждого конкретного случая не писать отдельный сниппет, можно использовать switch: modx.com/extras/package/switch
Богдан
03 марта 2013, 10:11
0
Для Apache можно добавить в .htaccess:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*index\.(htm(l)?|php)\ HTTP/
RewriteRule ^(([^/]+/)*)index\.(htm(l)?|php)$ http://mysitename\.com/$1 [R=301,L]
Эффект тот же.
Василий Наумкин
03 марта 2013, 08:33
0
Есть одна проблема: wget добавляет index.html для контеёнеров и получает 404.

Если ты используешь Nginx — то добавь своему сайту правило
location ~ ^\/(.*?)\/index\.(html|php)$ {
	rewrite	^\/(.*?)\/ /$1/ permanent;
}
Василий Наумкин
03 марта 2013, 08:05
0
Немного почитал еще маны и вот итоговая команда:
wget -m -np -nv --spider -l 10 http://sitename.ru/
Здесь wget работает в режиме «паука» и просто дёргает страницы, не загружая их.

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

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

Это не быстро, но гарантированно загонит в кэш ВСЕ страницы, которые доступны по ссылкам. То есть, даже динамические, типа вывода каталога с разбивкой на страницы.
Василий Наумкин
03 марта 2013, 06:49
0
Спасибо за подтверждение, добавил в документацию.
Василий Краковецкий
03 марта 2013, 04:16
0
Окак, не знал… Хотя в нашем случае это не особо бы повлияло на результат, но замечание действительно полезное!
Andrey Grachov
03 марта 2013, 04:14
0
Потому что при использовании LIKE знак подчеркивания является служебным символом (как и %) и означает, что на его месте может стоять один любой символ.
Василий Краковецкий
03 марта 2013, 03:50
0
Что заэкранировать? Если мы получаем айдишник от пользователя с фронтеда, и он является числом, то достаточно прописать
$id = (int) $_GET['id_from_user'];
а в остальных случаях модикс прекрасно обо всем позаботится.
Или вы про знак подчеркивания? А его, простите, зачем экранировать?
Andrey Grachov
02 марта 2013, 23:39
0
Только не забыть заэкранировать _ :)
Иван Бондаренко
02 марта 2013, 23:16
0
Спасибо за этот комментарий. Несколько часов пытался дать ума HybridAuth на MODX Cloud. Вылезала надпись «You cannot access this page directly». Добавил по вашему совету эту строку и о чудо! Все работает!
Василий Краковецкий
02 марта 2013, 21:35
0
Чето типо того:
$query = '"c_id":"18"';
$c = $modx->newObject('modUser');
$c->innerJoin ('modUserProfile','Profile');
$c->where(array('Profile.extended:LIKE' => '%'.$query.'%'));
$users = $modx->getCollection('modUser',$c);
там все в json хранится
Константин Баранов
02 марта 2013, 20:01
0
первый вариант хотел использовать, второй для ситуации тоже подходит, спасибо
Вячеслав Серков
02 марта 2013, 19:43
0
Если не ошибаюсь, то состояние корзины записывается в cookies, возможно еще в сессию, которая так же хранится в бд
alex cernobai
02 марта 2013, 16:21
0
а если просто использовать такую конструкцию?
[[$[[*context_key]]-company-name]]
для дефолтного контектста нужно в название чанка добавить префикс.
Василий Наумкин
02 марта 2013, 16:10
1
0
Не нужно так делать. Для логики нужно писать сниппеты, а не программировать на фильтрах.

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 условий\проверок — не вопрос.