Найти в Дзене
SСhaos

MODX Revolution работа с ресурсами через API

При работе с любыми сайтами часто встречаются операции, которые нужно проводить постоянно без участия пользователя, так как они требуют большого количество времени выполнения. В тоже время скрипт, написанный один раз может прослужить Вам в течении многих лет, забрав на себя очень много часов работы. Для примера такого сайта можно взять интернет каталог или магазин, в котором постоянно нужно обновлять цены, добавлять новые товары, удалять/деактивировать старые. В рамках данной задачи и рассмотрим методы MODX API, которые нам могут пригодиться. Начальный блок для подключение в скрипте возможности работы с API MODX. define('MODX_API_MODE', true); require_once('/путь до сайта/index.php'); $modx=new modX(); $modx->initialize('web'); // если у вас другой контекст то напишите его имя Создание ресурса Modx $response = $modx->runProcessor('resource/create', array( 'template' => 2, // идентификатор шаблона 'isfolder' => 0, // является ли ресурс папкой 'published' => 1, // ресурс опубликован
Оглавление

При работе с любыми сайтами часто встречаются операции, которые нужно проводить постоянно без участия пользователя, так как они требуют большого количество времени выполнения. В тоже время скрипт, написанный один раз может прослужить Вам в течении многих лет, забрав на себя очень много часов работы.

Для примера такого сайта можно взять интернет каталог или магазин, в котором постоянно нужно обновлять цены, добавлять новые товары, удалять/деактивировать старые.

В рамках данной задачи и рассмотрим методы MODX API, которые нам могут пригодиться.

Начальный блок для подключение в скрипте возможности работы с API MODX.

define('MODX_API_MODE', true);
require_once('/путь до сайта/index.php');
$modx=new modX();
$modx->initialize('web'); // если у вас другой контекст то напишите его имя

Создание ресурса Modx

$response = $modx->runProcessor('resource/create', array(
'template' => 2, // идентификатор шаблона
'isfolder' => 0, // является ли ресурс папкой
'published' => 1, // ресурс опубликован
'pagetitle' => 'Название ресурса',
'parent' => 1, // идентификатор ресурса родителя
'alias' => 'name_resource' // если вы настроили автоматическую генерацию, то задавать здесь его не нужно
));

Получим объект созданного ресурса

$newId = $response->response['object']['id'];
$resource = $modx->getObject('modResource', $newId);

Получение полей ресурса

echo $resource->get('pagetitle');

Редактирование полей ресурса

$resource->setContent($message); // контент для вывода на странице
$resource->set('template', 5); // меняем шаблон ресурса
$resource->save(); // не забываем сохранить

Получение TV-полей

$resource->getTVValue('images'); // здесь можно использовать идентификатор TV-поля вместо его alias

Редактирование TV-полей

$resource->setTVValue('images', '/images/i.jpg'); // аналогично можно использовать идентификатор TV-поля

Удаление ресурса

$resource->set('deleted', '1'); // ресурс перестанет быть доступен на сайте но в админке его все еще можно будет увидеть
$resource->save(); // не забываем сохранить

Полное удаление ресурса

$resource->remove();

Данный набор функций практически полностью покрывает задачи, которые требуются от вашего скрипта.

З.Ы. А еще мы пишем много полезной информации в блоге Стократ. Добро пожаловать.