Ресурсы в MODx Revolution, MODx API

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

// Получаем объект
$resource = $modx->newObject('modResource');
// Устанавливаем заголовок
$resource->set('pagetitle', 'Заголовок страницы'); 
// Устанавливаем расширенный заголовок
$resource->set('longtitle', 'Расширенный заголовок'); 
// ссылка
$resource->set('alias', 'link');
// Под какого родителя поместить
$resource->set('parent', '0'); 
// Описание
$resource->set('description', "Описание");
// Опубликован
$resource->setContent('published', 1);
// Текст статьи
$resource->setContent('Текст статьи');
// Сохранение
$resource->save();

Список возможнных параметров:

  • id (int - идентификатор ресурса)
  • pagetitle (text)
  • isfolder (int 0/1)
  • longtitle (text)
  • description (text)
  • alias (text)
  • published (int 0/1)
  • introtext (text - оно же Аннотация)
  • content (text)
  • template (int - id идентификатор шаблона)
  • menuindex (int)
  • searchable (int 0/1)
  • cacheable (int 0/1)
  • createdby (int - id идентификатор пользователя)
  • editedby (int - id идентификатор пользователя)
  • deleted (int 0/1)
  • deletedby (int - id идентификатор пользователя)
  • publishedby (int - id идентификатор пользователя)
  • createdon (date - дата первого сохранения)
  • publishedon (date - дата публикации последнего изменения)
  • editedon (date - дата редактирования его в последний раз)
  • menutitle (text)
  • hidemenu (int 0/1)

Создание ресурса с помощью процессора

// массив с данными
$data = array(
    'parent' => -1,
    'pagetitle' => 'Заголовок страницы', 
    'longtitle' => 'Расширенный заголовок', 
    'alias' => 'link',
    'description' => "Описание",
    'content' => 'Текст статьи'
)    

// выполнение процессора    
$response = $modx->runProcessor('resource/create', $data);

// если ошибка 
if($response->isError()){
    echo "Произошла ошибка". $response->getMessage();
}
else{
    echo "Документ создан";
}

Изменение данных ресурса

// Выполняем поиск по заголовку 
$resource = $modx->getObject('modResource', array('pagetitle' => 'Заголовок страницы'));

// Если нашли ресурс
if (is_object($resource)) {
    // Устанавливаем заголовок
    $resource->set('pagetitle', 'Другой заголовок страницы'); 
    // Сохранение
    $resource->save();
} else {
    echo 'Документ не найден';
}

Изменение данных ресурса с помощью процессора

// Выполняем поиск по заголовку 
$resource = $modx->getObject('modResource', array('pagetitle' => 'Заголовок страницы'));
if (is_object($resource)) {
    // преобразуем объект в массив
    $resource = $resource->toArray();
    // изменим заголовок страницы
    $resource["pagetitle"] = 'Новый заголовок страницы';
    // выполнение процессора    
    $response = $modx->runProcessor('resource/update', $resource);
    
    // если ошибка 
    if($response->isError()){
        echo "Произошла ошибка". $response->getMessage();
    }
    else{
        echo "Документ изменен";
    }
} else {
    echo "Документ не найден";
}

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

// Выполняем поиск по заголовку 
$resource = $modx->getObject('modResource', array('pagetitle' => 'Заголовок страницы'));
if (is_object($resource)) {
  // ставим пометку на удаление
   $resource->set('deleted', '1');
   $resource->save();
} else {
    echo "Документ не найден";
}
// Выполняем поиск по заголовку 
$resource = $modx->getObject('modResource', array('pagetitle' => 'Заголовок страницы'));
if (is_object($resource)) {
   // полное удаление        
   $resource->remove();  
} else {
    echo "Документ не найден";
}

Удаление ресурса с помощью процессора

// Выполняем поиск по заголовку 
$resource = $modx->getObject('modResource', array('pagetitle' => 'Заголовок страницы'));
// передаем объект и переводим в массив
$response = $modx->runProcessor('resource/delete', $resource->toArray());

if($response->isError()){
    echo "Произошла ошибка". $response->getMessage();
}
else{
    echo "Документ помечен на удаление";
}