Рубрики
Без рубрики

Как создать страницу с TV в MODX Evo [без библиотек]

Данная статья содержит пример программного кода, который можно вставить в сниппет, ориентированный на MODX Evolution (проверял на версии 1.0.10), и он будет генерировать новые документы а-ля страницы с заданным TV параметрами, заблаговременно подготовленными посредством админки CMS.

<?php
include_once "manager/processors/cache_sync.class.processor.php";
global $modx;
// Установка свойств нового ресурса:
$new_document = array(
  'pagetitle' => 'Авто-статья',
  'content' => 'Данная страница сгенерирована автоматически.';
  'longtitle' => '',
  'description' => '',
  'alias' => '',
  'published' => 1,
  'parent' => 0,
  'introtext' => '',
  'template' => 4, // - идентификатор существующего шаблона
  'searchable' => 1,
  'cacheable' => 1,
  'createdby' => 1,
  'createdon ' => time(),
  'editedby' => 1,
  'editedon ' => time()
);
// Вставка новой страницы в базу данных:
$newDocId = $modx->db->insert( $new_document, $modx->getFullTableName('site_content') );
$new_tv = array(  'contentid' => $newDocId,
'tmplvarid' => '4', // - идентификатор TV
'value' => 'Привет человекам!!!', // - значение TV
);
$newTvId = $modx->db->insert( $new_tv, $modx->getFullTableName('site_tmplvar_contentvalues') );
// Очистка кэша:
$sync = new synccache();
$sync->setCachepath("assets/cache/");
$sync->setReport(false);
$sync->emptyCache();
return   print_r(
  array( 'интификатор документа' => $newDocId, 'интификатор TV параметра' => $newTvId, ), true) ;
?>

Как этим всем пользоваться:

Открываем приложение под названием phpMyAdmin и смотрим табличку modx_site_tmplvars. По имени вашего TV параметра, который вы добавляете и прикрепляете к шаблону через Менеджер стандартным путем заранее, находите интересующую строчку. Запоминаете значение поля ID, — идентификатор переменной темплейта.

В массиве $new_tv меняете целое число в ‘tmplvarid’ => ‘4’ на ваш айдишник.

Ну и третий момент. Т.к. это демонстрационный набросок не забываем поменять значение возвращаемое сниппетом, — сейчас это массив с print_r().

p.s. Взято на сайте red-book-cms_ru

Добавить комментарий