Всего 123 791 комментарий

Богдан
03 марта 2013, 16:47
0
Да вроде работает пока… Выхожу и вхожу в админку нормально.
Степанов Александр
03 марта 2013, 16:46
0
Сделал так, все работает (вытягиваю только поля «полное имя»).

$q=$modx->newQuery('modUser');
$q->select(array(
        'modUser.id',
        'p.fullname'
));
$q->innerJoin('modUserProfile', 'p','modUser.id = p.internalKey');
$q->where(array('p.comment'=>'18'));
$result = $modx->getCollection('modUser', $q);

Еще раз, спасибо всем.
Богдан
03 марта 2013, 16:44
0
Спасибо, Василий, посмотрю какой метод на практике лучше.
Степанов Александр
03 марта 2013, 13:56
0
Логично предположить, что если мы хотим взять выборку по какому-то из полей профиля, то код будет

$query = '18';
$c = $modx->newQuery('modUser');
$c->innerJoin ('modUserProfile','Profile');
$c->where(array('Profile.comment:LIKE' => '%'.$query.'%'));
$users = $modx->getCollection('modUser',$c);

на что MODX начинает ругаться… что не так?
Василий Краковецкий
03 марта 2013, 13:03
0
Видел вот такой сниппет от самого Боба Рея — bobsguides.com/refreshcache-tutorial.html он легко находится в диспетчере пакетов по названию, и хотя действует намноооого дольше чем предложенный Василием wget, но вот для «простых смертных», не знакомых с wget'ом его вполне можно советовать, как не быстрое, но действенное решение для данной задачи.
Виталий Киреев
03 марта 2013, 12:56
0
А почему может быть такое, что больше 59М в apc.ini память не устанавливается? При рестарте php5-fpm выдает [fail]. htop показывает около 150 свободного при этом.
Василий Краковецкий
03 марта 2013, 12:50
0
ага, ошибочка на ночь глядя небольшая :)
Василий Наумкин
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 знак подчеркивания является служебным символом (как и %) и означает, что на его месте может стоять один любой символ.