Cyrax_02

Cyrax_02

С нами с 04 августа 2013; Место в рейтинге пользователей: #250

warnings не отобр.в логах php, но отобр.в л-х modx

Не знаю, связано это с modx или нет.
В настройках php прописал отображение всех сообщений:
error_reporting= E_ALL | E_STRICT
Apache перезагружал. В итоге все ошибки, приводящие к останову выполнения кода, в логах веб-сервера отображаются. А более «мягкие» ошибки, которые НЕ приводят к останову кода (например, в php-функцию передаётся параметр некорректного типа), в логах веб-сервера по-прежнему НЕ отображаются.
При этом в логах modx эти «мягкие» ошибки отображаются. В чём дело? Не пойму.

Может, это modx их перехватывает? Если да, то как сделать так, чтобы эти «мягкие» ошибки выводились также и в логи веб-сервера?
Cyrax_02
30 мая 2014, 15:39
modx.pro
904
0

Как заставить xpdo НЕ заключать значение в кавычки

Вопрос простой: как заставить xpdo НЕ заключать значение в кавычки:
$query->where(array(array('tvTable3.value:IS' => null),
                    array('tvTable3.value:=' => ''),
                    array('tvTable3.value:<' => 0)),
                    xPDOQuery::SQL_OR);

Здесь мы нуль заключается в кавычки:
`tvTable3`.`value` IS NULL OR `tvTable3`.`value` = '' OR `tvTable3`.`value` <= '0'

Можно, конечно, отказаться от ключа и всё условие целиком записать в качестве значения:
$query->where(array(array('tvTable3.value:IS' => null),
                    array('tvTable3.value:=' => ''),
                    array('tvTable3.value <= 0')),
                    xPDOQuery::SQL_OR);
Но в этом случае мы исключаем значение 0 из xpdo-обработки.
Cyrax_02
21 апреля 2014, 05:20
modx.pro
2 171
0

Ваше мнение: Flash или HTML5 для реклам. баннеров

Вопрос, конечно, не вписывается в тематику данного сайта, но хотел бы узнать ваше личное мнение, Василий, по данному вопросу:
На сегодняшний день разрабатывать рекламные анимированные баннеры для сайта целесообразнее на Flash или HTML5? В данный момент не могу определиться. Дайте конструктивные выкладки.
Cyrax_02
20 марта 2014, 14:30
modx.pro
1 598
0

'resource/delete' без удаления дочерних ресурсов

В продолжение этой темы:
Удаление ресурсов в MODX Revolution

Вопрос: как «сказать» процессору 'resource/delete', что удалять дочерние ресурсы не нужно?
Cyrax_02
18 марта 2014, 11:51
modx.pro
2 755
0

Артефакты MinifyX при его вызове через runSnippet

MinifyX можно использовать двумя способами:

Вариант 1. Как обычно:
[[!MinifyX? &cssSources=`/css/st.css` &minifyCss = `1` &forceUpdate = `0`
            &registerCss = `placeholder`
            &cacheFolder=`css/min/` &cssFilename = `css1`]]
[[+MinifyX.css]]

Вариант 2. Вызываем в собственном сниппете через $modx->runSnippet():
$modx->runSnippet('MinifyX', array('cssSources' => '/css/st.css', 'minifyCss' => 1, 'forceUpdate' => 0,
                                                   'registerCss' => 'placeholder',
                                                   'cacheFolder' => 'css/min/', 'cssFilename' => 'css2'));
return $modx->placeholders['MinifyX.css'];

Так вот. Во втором варианте наблюдаются следующие артефакты (весь кэш в браузере полностью отключил, браузер перезагрузил):
Cyrax_02
12 декабря 2013, 18:44
modx.pro
2 049
0

pdoTools::getChunk -обработка прочих прейсхолдеров

Вопрос такой. pdoTools::getChunk() самостоятельно обрабатывает только те плейсхолдеры, которые указаны вторым параметром? Все остальные плейсхолдеры (за исключением лексикона) обрабатывает стандартный парсер modx?

И для того, чтобы pdoTools::getChunk() самостоятельно обработал все плейсхолдеры modx (не передавая их стандартному парсеру), необходимо:
а) либо вторым параметром передавать что-то вроде array_merge($placeholders, $modx->placeholders);
б) либо перегрузить метод pdoTools::getChunk(), добавив обработку плейсхолдеров modx, не указанных вторым параметром
Cyrax_02
08 декабря 2013, 15:11
modx.pro
2
5 044
0

Как проверять TV-поля одновр. и на '', и на NULL

Для определённости рассмотрим функционал сниппета pdoResources.
Проблема заключается в том, что классическим форматом JSONxPDO в параметре &where в общем случае невозможно указать проверку значения некоторого TV-поля одновременно и на пустое значение, и на NULL. В каких случаях может понадобиться такая проверка — напишу ниже.

Для примера возьмём параметр introtext (в БД modX это поле может принимать значения NULL)
Казалось бы, чего проще:
&where=`{"introtext":"", "OR:introtext:IS":null}`
Но проблема здесь в том, что в конечном запросе перед нашим условием в преобладающем большинстве случаев будут стоять ещё и другие условия, которые де факто будут объединены с нашим условием логикой «AND», причём наше условие в скобки взято не будет. В итоге в конечном запросе мы получим следующее условие:
WHERE (<i>прочие условия</i> AND `modResource`.`introtext` = '' OR `modResource`.`introtext` IS NULL)
Как видим, логика нарушена.
Cyrax_02
09 августа 2013, 16:59
modx.pro
6
5 998
0

revo ImportX: вызов сниппетов, указанных в CSV

Cyrax_02
05 августа 2013, 05:47
modx.pro
1 540
0

revo: importX в режиме "update" НЕ создаёт ресурсы

Cyrax_02
05 августа 2013, 05:40
modx.pro
3 039
0