Базовые функции из Modx Revo API

апрель 27 , 2015
Метки:

Рассмотрим базовые функции применения API Modx Revo, такие как получение документа, поля документа, дополнительного параметра, вызов сниппетов и чанков.

Подключаем Modx API.

Пример взят из этой статьи

    define('MODX_API_MODE', true);
    require_once($_SERVER['DOCUMENT_ROOT'].'/index.php');
    $modx = new modX();
    $modx->initialize('web');

Получаем коллекцию документов

    $docs = $modx->getCollection('modResource', array('parent' => 3));
    // Перебираем документы
    foreach ($docs as $doc) {
        echo $doc->id.' - '.$doc->pagetitle;
    }

Еще один способ получения коллекции.
Он "шире" первого и позволяет задавать дополнительные условия, например, сортировку

    $q = $modx->newQuery('modResource');
    $q->where(array(
        'parent' => 5
    ));
    $q->sortby('menuindex', 'asc');
    $docs = $modx->getCollection('modResource', $q);

Получаем документ

    $doc = $modx->getObject('modResource', 14);
    // Или так
    $doc = $modx->getObject('modResource', array('alias' => 'our-alias'));

Получаем поля документа

    echo $doc->pagetitle.' - '.$doc->content;

Работаем с tv-параметрами

    $tags = $doc->getTVValue('tags');
    echo $tags;
    $tags = 'Modx, Modx API, бекэнд';
    $doc->setTVValue('tags', $tags);

Примечание
При создании нового ресурса, если мы назначаем ему TV-параметр, то нужно вызвать метод save() после каждого задания параметра. В противном случае есть вариант, что дополнительный параметр не сохранится.

Вызываем сниппет с параметрами

    $res = $modx->runSnippet('print_word', array('word' => 'test'));
    echo $res; 

Получаем и выводим содержимое чанка

    $chunk = $modx->getChunk('item_post');
    echo $chunk;
Метки:
Заходите в группу в контакте - https://vk.com/webdevkin
Анонсы статей, обсуждения интернет-магазинов, vue, фронтенда, php, гита.
Истории из жизни айти и обсуждение кода.
Как Вам статья? Оцените!