Как добавить страницу с TV параметрами в MODX Evolution [программно]

Данная статья содержит пример программного кода, который можно вставить в сниппет, ориентированный на 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 
  '<pre>' . print_r(
    array(
      'интификатор документа' => $newDocId, 
      'интификатор TV параметра' => $newTvId, 
    ), true) . '</pre>';
?>

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

  1. Открываем приложение под названием phpMyAdmin и смотрим табличку modx_site_tmplvars. По имени вашего TV параметра, который вы добавляете и прикрепляете к шаблону через Менеджер стандартным путем заранее, находите интересующую строчку. Запоминаете значение поля ID, — идентификатор переменной темплейта.
  2. В массиве $new_tv меняете целое число в 'tmplvarid' => '4' на ваш айдишник.
  3. Ну и третий момент. Т.к. это демонстрационный набросок не забываем поменять значение возвращаемое сниппетом, — сейчас это массив с print_r().
Опубликовано 29-08-2013 в 11:20


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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Свежие комментарии

  • Иван: к записи Привет всем, доброго времени суток! Я излазил весь »
  • Александер: к записи Потом пригляделся, вроде Вы не это имели в виду и »
  • Александер: к записи У Вас не русифицируется, потому что не везде включ »
  • Администратор: к записи Это надо использовать функции вашей CMS. »
  • Alex: к записи Ребят, а подскажите пожалуйста, как реализовать с »
  • Владимир: к записи А как теперь будет выглядеть ссылка для перехода н »
  • Администратор: к записи Не знаю. »

Статистика спама

Последние твиты