Как программно обновить значение TV-параметра в MODX Evolution

Итак, предположим, что вы уже создали  себе TV-параметр, прикрепили / прилепили его к определенным шаблонам, и теперь стоит задача в программном обновлении значения этого Template Variable. Тогда далее в статье вас ожидает решение данного вопроса.

Сниппет, обновляющий значение TV параметра в MODX Evolution

1. Создайте сниппет, заполните его примерно следующим содержимым:

<?php
$tv_id = 6; // TV, hits - мой TV-параметр.
$hits = $modx->getTemplateVar('hits');//print_r($hits);
$tv = array(
  'contentid' => $modx->documentObject['id'],
  'value' => ++$hits['value'],
);
$updateResult = $modx->db->update( $tv, $modx->getFullTableName('site_tmplvar_contentvalues'), 'tmplvarid = "' . $tv_id . '"' );
print 'Просмотров: '. ++$hits['value'];
?>

Идентификатор TV параметра ($tv_id) у вас разумеется будет свой, и скорее всего не 6, как у меня.

2. Поместите некэшируемый вызов вашего сниппета в нужный вам шаблон. И все. При каждом просмотре / открытии веб-страницы, где будет вызываться заданный программный код, TV параметр будет прибавляться на единичку. Только учтите, что есть такое явление, как модиксовый кэш.

Идентификатор «телевизора» можно всегда узнать в системной таблице site_tmplvars. Поле id.

Дополнительная информация:

  • $modx->documentObject['id'] — получаем идентификатор текущего документа.
  • $modx->getFullTableName(‘site_tmplvar_contentvalues’) — получаем полное имя таблицы site_tmplvar_contentvalues, которую будем обновлять, ведь там храняться значения TV-параметров.
  • Получаем информацию о TV-параметре для текущего документа — $modx->getTemplateVar(‘hits’), чтобы узнать его значение обращаемся к атрибуту под названием value. Если, что непонятно, воспользуйтесь PHP-функцией print_r(), которая всегда готова выручить.

P.S. Проверено мною на MODX Evolution 1.0.8.

Опубликовано 5-12-2013 в 12:27


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

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

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











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

  • krasnov8953: к записи Не работает как мне кажется строчка $newTvId = $ »
  • Dimanski: к записи ничего не понимаю. Ставлю ModX на хостинг r01.ru »
  • Дмитрий: к записи Спасибо! Очень выручили. С битриксом беда, а прав »
  • леонид: к записи как сделать что были в ряд? у меня получается по о »
  • Администратор: к записи Статический IP. »
  • Steel: к записи Администратор, вы данную проблему решили подключен »
  • Дмитрий: к записи Хотел узнать как прикрутить данное окно (http://re »

Blogroll:

  • Печать табличек на металле на poligraf.zp.ua. →

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