Советы TXP

Вызов своей функции после добавления/редактирования статьи в Textpattern

Опубликовано
Комментарии Нет

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

К примеру, для того чтобы исполнить свой php-код после того, как Вы добавили или отредактировали статью, есть эвенты: article_posted и article_saved. Первый вызывается сразу после создания новой статьи, а второй сразу же после редактирования уже существующей.

Вот боевой пример:

if (@txpinterface == 'admin') {
  register_callback('s2l_article_new_save', 'article_posted');
  register_callback('s2l_article_save', 'article_saved');
}
function s2l_article_new_save($event, $step, $rs) {
  var_dump($rs[ID]);  // получаем ID-статьи
  // ... свой код ...
}
function s2l_article_save($event) {
  global $vars;
  $incoming = array_map('assert_string', psa($vars));
  var_dump($incoming[ID]);    // получаем ID-статьи
  // ... свой код ...
}

Хотелось бы немного заострить внимание на эвенте article_saved и функции из примера s2l_article_save. Если Вы в этой функции попытаетесь вывести что-либо на экран (содержимое переменной / значение строки / содержимое массива и т.д.), то ничего не получите. Это связано с тем, что сразу же после event`а article_saved идет редирект на существующую статью и Вы просто не успеете их увидеть. Евент article_saved используется только для модификации содержимого базы данных.

Автор
Категории Создание плагинов

Комментарии

Нет комментариев к данной статье.

Комментарии

Поля обозначенные как * требуются обязательно. Перед постингом всегда делайте просмотр своего комментария.





← Старые Новые →