Андрей
С нами с 09 апреля 2015; Место в рейтинге пользователей: #68Подсчёт значений из присоединённой таблицы на xPDO
Сегодня понадобилось вывести список блогов с подсчетом количества тикетов внутри. Желательно, за один запрос, и чтобы обращал внимание на состояние дочернего тикета.
В итоге вышел простой и быстрый сниппет getSections:
В итоге вышел простой и быстрый сниппет getSections:
Добавляем товар в корзину с параметрами (checkbox)
Пытаюсь добавить в корзину товар с параметрами.
Создал TV с именем add, в нём через запятую указываю значения.
Переделал сниппет для фильтрации. Вызывается [[*add:checkbox]], всё хорошо.
Создал TV с именем add, в нём через запятую указываю значения.
Переделал сниппет для фильтрации. Вызывается [[*add:checkbox]], всё хорошо.
Про xPDO
Эта заметка назревала уже очень давно, полгода минимум. Вокруг замечательного MODX Revolution сломано много копий. Ходят слухи, что он «тормозной», «прожорливый» и «неповоротливый». И главным виновником всегда называют xPDO.
Конечно, это чушь и цель заметки — развенчание мифов. Закрыть, наконец, вопрос с «тормозами» и «прожорливостью». Показать, насколько Revolution удобен и гибок, что он позволяет работать как через ORM xPDO, так и без него — через обычный PDO.
Конечно, это чушь и цель заметки — развенчание мифов. Закрыть, наконец, вопрос с «тормозами» и «прожорливостью». Показать, насколько Revolution удобен и гибок, что он позволяет работать как через ORM xPDO, так и без него — через обычный PDO.
Работа с кэшерами в Revolution
Не все знают, что MODX Revolution умеет работать с разными системами кэширования, для чего применяет следующие классы:
- xPDOFileCache — стандартный обработчик по умолчанию, хранит кэш в файлах.
- cache.xPDOAPCCache — обработчик для расширения php-apc
- cache.xPDOMemCached — обработчик для memcached. Есть заметка про него
- cache.xPDOMemCache — обработчик для memcache.
- cache.xPDOWinCache — обработчик для wincache. Это для windows хостингов, на IIS.
MODX_API_MODE и процессоры
В рамках выполнения одной хитрой задачи, потребовалось написать скрипт, который будет запускаться по cron и что-то делать с MODX.
Проблемы, в общем то нет, вопрос изучен, но выплыл интересный глюк.
А именно: не работали процессоры для создания/обновления ресурсов.
То есть, процессор для логина — нормально, контекст mgr — нормально, а при попытке создать ресурс — просто пустая error.
Выложил вопрос на официальном форуме и никто мне не ответил. Пришлось разбираться самостоятельно, глубоко копая исходники.
Проблемы, в общем то нет, вопрос изучен, но выплыл интересный глюк.
А именно: не работали процессоры для создания/обновления ресурсов.
То есть, процессор для логина — нормально, контекст mgr — нормально, а при попытке создать ресурс — просто пустая error.
Выложил вопрос на официальном форуме и никто мне не ответил. Пришлось разбираться самостоятельно, глубоко копая исходники.
Как правильно выставить права на файлы?
Доброе время суток!
Подскажите, пожалуйста, каким файлам нужно присвоить права 777?
Не могу найти в интернете рекомендаций на этот счет. Пока, я на все файлы ставляю 777, а иначе установщик отказывает устанавливать движеок.
Подскажите, пожалуйста, каким файлам нужно присвоить права 777?
Не могу найти в интернете рекомендаций на этот счет. Пока, я на все файлы ставляю 777, а иначе установщик отказывает устанавливать движеок.
Ошибка modTemplateVar: Attempt to set NOT NULL field type to NULL
В журнале ошибок появляется вот такое сообщение:
На работе сайта это никак не отражается. Все работает, но хотелось бы понять и убрать.
Ошибка появляется только после загрузки тех страниц, где есть MIGX.
Похоже, в нем проблема.
Стоит Modx 2.2.4 + свежий MIGX.
Помогите, пожалуйста, разобраться.
(ERROR @ /index.php) modTemplateVar: Attempt to set NOT NULL field type to NULL
На работе сайта это никак не отражается. Все работает, но хотелось бы понять и убрать.
Ошибка появляется только после загрузки тех страниц, где есть MIGX.
Похоже, в нем проблема.
Стоит Modx 2.2.4 + свежий MIGX.
Помогите, пожалуйста, разобраться.
Как не хакать сторонние классы
Бывает, что вы используете какой-то сниппет или компонент, и он немного вас не устраивает. Вам нужно поправить буквально пару строк, но вы понимаете, что при обновлении эти измения пропадут.
Что же делать?
Все просто — нужно расширить сторонний класс своими методами. По сути, это очень похоже на «классные процессоры», только без процессоров и использовать можно везде — это стандартная возможность ООП.
Что же делать?
Все просто — нужно расширить сторонний класс своими методами. По сути, это очень похоже на «классные процессоры», только без процессоров и использовать можно везде — это стандартная возможность ООП.
Как работать с MODX Api
Регулярно встречаю в сети разные велосипеды про то, как подключиться к MODX снаружи для работы с его Api. Даже на официальном сайте это описано сложновато.
Процессоры в MODX
В MODX есть файлы-процессоры, это php скрипты, которые выполняют определенные функции. Загляните в /core/model/modx/processors, и вы увидите, как их много.
Работать с процессорами можно из любого сниппета или плагина при помощи метода runProcessor:
Работать с процессорами можно из любого сниппета или плагина при помощи метода runProcessor:
$response = $modx->runProcessor('action/path/to/processor',$arrayOfProperties,$otherOptions);
В ответ мы получаем объект modProcessorResponse, со всеми его методами.