We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 48195
    • 2 Posts
    С системой не знаком, в php разбираюсь хорошо, с различными системами тоже достаточно быстро, но есть задачка, связанная с modx, времени на полное освоение с нуля нет, потому пишу сюда:
    Есть таблица в БД с некоторыми данными (не связанная с системой, но в той-же базе). Необходимо на страницах выводить данные из этой базы в соответствии с некоторыми условиями, в том числе - внешний вид.

    Как примерно планирую:
    1. написать функцию, которая будет выбирать данные из этой таблицы, в зависимости от переданных параметров.
    2. Написать снипет, который вызывает данную функцию и подготавливает массив.
    3. Результат передать в некоторый шаблонизатор.

    В принципе - 1 и 2, как я понял, можно объединить.

    В связи с чем вопросы (нужен пример или ссылка на раздел документации):
    1. как в снипете получить данные из базы (коннект, запрос, разбор результата)?
    2. как можно создавать небольшие шаблоны? Если правильно понял, то теоретически можно создать 2 снипета - один готовит данные, второй - шаблон. Подтвердите или опишите, как правильно сделать.

    Заранее - спасибо.
      • 49529
      • 196 Posts
      как в снипете получить данные из базы (коннект, запрос, разбор результата)?

      Через XPDO Query?
      http://rtfm.modx.com/xpdo/2.x/class-reference/xpdo/xpdo.query

      как можно создавать небольшие шаблоны?
      Первое, что приходит в голову - через getChunk
      http://rtfm.modx.com/revolution/2.x/developing-in-modx/other-development-resources/class-reference/modx/modx.getchunk

      А вообще, есть тема в официальной документации:
      http://rtfm.modx.com/revolution/2.x/developing-in-modx/basic-development/snippets/templating-your-snippets
        • 48195
        • 2 Posts
        Спасибо, но оказалось, что используется версия modx 1.0.10
        Я там не нашел xPDO, да и из той документации часть методов недоступна.

        Пришлось использовать $modx->db. А вместо чанков удобнее оказалось использовать проброс снипетов... Правда основной снипет у меня должен был возвращать массив, а оказалось, что он возвращает строку - пришлось в основном сериализовать, в остальных - десериализовать, затем использовать.