Алексей Карташов
С нами с 04 февраля 2013; Место в рейтинге пользователей: #58Зачем нужен action.php в компонентах?
Всем привет!
Напомните, пожалуйста, зачем нужен action.php для обработки ajax-запросов в компонентах?
Т.е. я понимаю, что некоторые компоненты врубают MODX_API_MODE, чтобы modx не запускал системный обработчик запросов (который будет проверять статус сайта, загружать необходимый ресурс, отдавать соответствующие ошибки и вот это вот всё), и можно было бы просто обработать запрос и отдать какой-то результат (закрыв сессию).
Но
Напомните, пожалуйста, зачем нужен action.php для обработки ajax-запросов в компонентах?
Т.е. я понимаю, что некоторые компоненты врубают MODX_API_MODE, чтобы modx не запускал системный обработчик запросов (который будет проверять статус сайта, загружать необходимый ресурс, отдавать соответствующие ошибки и вот это вот всё), и можно было бы просто обработать запрос и отдать какой-то результат (закрыв сессию).
Но
[sql] Как добавить произвольную строку в выборку?
Всем привет!
Пните в нужную сторону, пожалуйста. Простая вроде задачка, а решения что-то не видно.
Вот есть запрос, который выбирает, скажем, ресурсы и который собирается через newQuery. Есть несколько условий для выборки в WHERE, которые генерируются в зависимости от других условий.
Вопрос — как с учётом имеющихся в запросе условий добавить в выборку строку с произвольным id?
Проще объясню на примере:
Пните в нужную сторону, пожалуйста. Простая вроде задачка, а решения что-то не видно.
Вот есть запрос, который выбирает, скажем, ресурсы и который собирается через newQuery. Есть несколько условий для выборки в WHERE, которые генерируются в зависимости от других условий.
Вопрос — как с учётом имеющихся в запросе условий добавить в выборку строку с произвольным id?
Проще объясню на примере:
Super MODx SEO-strict +ускоряем фронтенд
Михаил задал вопрос про канонизацию урлов в MODx.
Писал ему ответ, но понял, что он слишком большой. Поэтому переписал в статью.
Поехали.
Писал ему ответ, но понял, что он слишком большой. Поэтому переписал в статью.
Поехали.
Улучшения админ-меню. Раскрытие по клику и не только
Проскочил тут вопрос про скорость раскрытия верхнего меню в админке.
И вспомнилось мне, как меня жутко бесит это hover-меню.
Сколько раз я матерился случайно нажимая на случайный пункт на внезапно раскрывшемся подменю.
Или когда оно внезапно закрывается в самый неподходящий момент, потому что курсор вышел на доли секунды на пару пикселей за его пределы и приходится заново елозить мышкой в поисках нужного пункта и ждать эти грёбанные анимации…
Короче, выбрал время и, собственно, встречайте:
И вспомнилось мне, как меня жутко бесит это hover-меню.
Сколько раз я матерился случайно нажимая на случайный пункт на внезапно раскрывшемся подменю.
Или когда оно внезапно закрывается в самый неподходящий момент, потому что курсор вышел на доли секунды на пару пикселей за его пределы и приходится заново елозить мышкой в поисках нужного пункта и ждать эти грёбанные анимации…
Короче, выбрал время и, собственно, встречайте:
Возможно баг вывода tv-фильтров в mFilter2
Сел тут посмотреть mSearch2/mFilter2, что к чему да почему и наткнулся на баг (возможно).
Залогинить юзера на фронте, если он залогинен в админке
Всем привет!
Суть задачи описана в заголовке.
И, казалось бы, что может быть проще? В плагине пишем вот это:
Уж не знаю почему, но юзер не то чтобы на фронте не логинится, в добавок — убивается его mgr-сессия, т.е. из админки разлогинивает.
Знаю, что такой вопрос когда-то проскакивал, но найти его не смог. Помогите, пожалуйста. Может кто подобную задачу решал уже?
Суть задачи описана в заголовке.
И, казалось бы, что может быть проще? В плагине пишем вот это:
switch ($modx->event->name) {
сase 'OnHandleRequest':
if ($modx->context->key == 'mgr') { return; }
// если залогинен в 'mgr' и не залогинен в текущем контексте
if ($modx->user->hasSessionContext('mgr') && !$modx->user->hasSessionContext($modx->context->key)) {
// логиним юзера в текущем контексте
$modx->user->addSessionContext($modx->context->key);
}
// die(var_dump($modx->user->hasSessionContext('mgr')).' '.var_dump($modx->user->hasSessionContext($modx->context->key)));
break;
}
Но чот не работат.Уж не знаю почему, но юзер не то чтобы на фронте не логинится, в добавок — убивается его mgr-сессия, т.е. из админки разлогинивает.
Знаю, что такой вопрос когда-то проскакивал, но найти его не смог. Помогите, пожалуйста. Может кто подобную задачу решал уже?
Наследуемость полей у расширяемых xPDO-классов
Всем привет!
Смотрите, когда в своих компонентах мы наследуемся от, допустим, modResource, то в схеме мы пропишем следущее:
Теперь то, что хочу сделать я.
У меня есть пара десятков сущностей (и, соответственно, таблиц), у каждой из которых должен быть определённый набор полей, вроде «кем создан», «когда создан», «активно», «удалено» и т.д.
Так вот по аналогии с расширением класса modResource подумалось мне сделать вот так:
Так вот.
Смотрите, когда в своих компонентах мы наследуемся от, допустим, modResource, то в схеме мы пропишем следущее:
<model package="myPackage" baseClass="xPDOObject" platform="mysql" defaultEngine="MyISAM" phpdoc-package="myPackage" phpdoc-subpackage="" version="1.1">
<object class="myObject" extends="modResource">
</object>
</model>
И, собственно, всё — объект myObject унаследует все поля, их свойства и методы от класса modResource.Теперь то, что хочу сделать я.
У меня есть пара десятков сущностей (и, соответственно, таблиц), у каждой из которых должен быть определённый набор полей, вроде «кем создан», «когда создан», «активно», «удалено» и т.д.
Так вот по аналогии с расширением класса modResource подумалось мне сделать вот так:
<model package="myPackage" baseClass="xPDOObject" platform="mysql" defaultEngine="MyISAM" phpdoc-package="myPackage" phpdoc-subpackage="" version="1.1">
<object class="myObjectTemplate" extends="xPDOSimpleObject">
<field key="active" dbtype="tinyint" precision="1" attributes="unsigned" phptype="integer" null="false" default="0" />
<field key="deleted" dbtype="tinyint" precision="1" attributes="unsigned" phptype="integer" null="false" default="0" />
<field key="createdby" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="false" default="0" />
<field key="createdon" dbtype="int" precision="20" attributes="unsigned" phptype="timestamp" null="false" default="0" />
<field key="deletedby" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="false" default="0" />
<field key="deletedon" dbtype="int" precision="20" attributes="unsigned" phptype="timestamp" null="false" default="0" />
<!-- в действительности будет ещё десяток таких полей + индексы к ним -->
</object>
<object class="myObjectOne" table="my_object_one" extends="myObjectTemplate">
<field key="my_object_one_field" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="false" default="0" />
</object>
<object class="myObjectTwo" table="my_object_two" extends="myObjectTemplate">
<field key="my_object_two_field" dbtype="int" precision="10" attributes="unsigned" phptype="integer" null="false" default="0" />
</object>
</model>
Таким образом, имеем объект-«шаблон», у которого прописаны определённые поля и не прописана таблица. И остальные классы, которые расширяют этот класс-«шаблон» и добавляют в себя собственные столбцы (коряво выразился, знаю).Так вот.
На post запросах отваливается php5-fpm
Всем привет!
Если обычно в вопросах, касаемых linux, у меня кривые руки и сам всё ломаю, то теперь я не при чём :-)
В общем, система debian 7.
Добавил dotdeb-репозитории и обновился:
Всё прошло нормально. Т.е. по сути обычный апдейт.
Но вот после этого
Если обычно в вопросах, касаемых linux, у меня кривые руки и сам всё ломаю, то теперь я не при чём :-)
В общем, система debian 7.
Добавил dotdeb-репозитории и обновился:
sudo apt-get update
Почему-то не всё смогло скачаться (это вывод в консоли):{здесь список скачавшихся пакетов}
Err http://ppa.launchpad.net wheezy/main Sources
404 Not Found
Err http://ppa.launchpad.net wheezy/main i386 Packages
404 Not Found
{здесь список скачавшихся пакетов}
W: Failed to fetch http://ppa.launchpad.net/nginx/stable/ubuntu/dists/wheezy/main/source/Sources 404 Not Found
W: Failed to fetch http://ppa.launchpad.net/nginx/stable/ubuntu/dists/wheezy/main/binary-i386/Packages 404 Not Found
E: Some index files failed to download. They been ignored, or old ones used instead.
Ну, думаю, ладно. Проапгрейдимся:sudo apt-get upgrade
Всё прошло нормально. Т.е. по сути обычный апдейт.
Но вот после этого
nginx периодически отдаёт 404 на тяжёлых скриптах
Всем привет!
В общем, nginx периодически отваливается на тяжёлых скриптах.
Т.е. есть у меня сниппет, который ресайзит одну (но большую) картинку. И раз-через-раз страница открывается с 404 ошибкой. При чём я бы понял, если бы дело было в таймаутах, но тут ведь как — nginx может через 2 секунды отдать 404, а может думать секунд 10 и потом спокойно открыть страничку с отресайзенной картинкой. Магия.
В общем, nginx периодически отваливается на тяжёлых скриптах.
Т.е. есть у меня сниппет, который ресайзит одну (но большую) картинку. И раз-через-раз страница открывается с 404 ошибкой. При чём я бы понял, если бы дело было в таймаутах, но тут ведь как — nginx может через 2 секунды отдать 404, а может думать секунд 10 и потом спокойно открыть страничку с отресайзенной картинкой. Магия.
Актуализация данных в mysql-таблице. Много данных.
Всем привет!
Ситуация такая.
Есть в базе таблица, скажем, с десятью тысячами строк. Их будет и 100 тысяч, и миллион, и гораздо больше.
И есть внешний источник этих данных, т.е. api стороннего сайта, откуда эти данные по крону вытягиваются.
Количество данных увеличивается постоянно. И с каждым разом с внешнего сайта нужно вытягивать всё больше и больше.
Задача — держать данные в таблице в актуальном состоянии, в соответствии с этим внешним источником.
Вопрос — как такое лучше провернуть?)
Какие я вижу варианты:
Ситуация такая.
Есть в базе таблица, скажем, с десятью тысячами строк. Их будет и 100 тысяч, и миллион, и гораздо больше.
И есть внешний источник этих данных, т.е. api стороннего сайта, откуда эти данные по крону вытягиваются.
Количество данных увеличивается постоянно. И с каждым разом с внешнего сайта нужно вытягивать всё больше и больше.
Задача — держать данные в таблице в актуальном состоянии, в соответствии с этим внешним источником.
Вопрос — как такое лучше провернуть?)
Какие я вижу варианты: