Далее будет показан краткий демонстрационный пример использования функции / метода parseChunk()
из MODx Evolution API для использования чанка с плейсхолдерами в своем собственном / самописном / рукотворном сниппете.
Фрагмент сниппета: (далее…)
Далее будет показан краткий демонстрационный пример использования функции / метода parseChunk()
из MODx Evolution API для использования чанка с плейсхолдерами в своем собственном / самописном / рукотворном сниппете.
Фрагмент сниппета: (далее…)
Итак, объяснять, что такое плейсхолдеры я не буду, — если читатели не по наслышке знают, то такое CMS / CMF MODx Evolution, то это должно им итак быть давно уже известно. Потому начну сразу с темы заметки.
Чтобы создать а-ля объявить новый плейсхолдер нужно использовать метод setPlaceholder()
. Например так, как это показано ниже:
<?php global $modx; $modx -> setPlaceholder('imya_pleisholdera', 'znachenie_pleisholdera'); ?>
Итак, предположим, что вы уже создали себе TV-параметр, прикрепили / прилепили его к определенным шаблонам, и теперь стоит задача в программном обновлении значения этого Template Variable. Тогда далее в статье вас ожидает решение данного вопроса.
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']; ?>
Вернуть названия колонок таблицы в MODX Evolution можно с помощью метода под названием getColumnNames
. Последний возвращает их в виде массива.
Пример 1. Пусть в качестве входного параметра выступит набор данных полученный в результате выполнения запроса SELECT.
<?php global $modx; $result = $modx->db->select( 'id, value', $modx->getFullTableName('site_tmplvar_contentvalues') ); $cols = $modx->db->getColumnNames( $result ); // - получаем имена столбцов в порядке их выбора. print '<pre>' . print_r($cols, true) . '</pre>'; ?>
При этом на экран будет выведено следующее: (далее…)
Чуть ниже представляю вам несколько примеров простых SQL запросов к базе данных CMS / CMF MODX Evolution, используя API оного движка для сайтов.
Пример 1. Подсчет количества записей в таблице site_content произвольным запросом. Результат будет находится в переменной $total_rows
:
<?php global $modx; $result = $modx->db->select('*', $modx->getFullTableName('site_content')); $total_rows = $modx->db->getRecordCount($result); ?>
Пример 2. Вставка записей в таблицу, программное создание ресурса. В переменной $newDocId
окажется идентификатор сгенерированного материала.
<?php global $modx; $new_document = array( 'pagetitle' => 'Где скачать MODX', 'content' => 'Скачать MODX можно на http://modx.com.',
Данная статья содержит пример программного кода, который можно вставить в сниппет, ориентированный на 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' => '',
Сформированная мною в предыдущей статье форма регистрации пользователей на сайте имеет один существенный недостаток — там нет функции скрытия после того, как посетитель авторизовался. Потому придется нам с вами написать небольшой сниппет для MODX Evolution, используя getLoginUserName()
. Я назвал его is_user_logged_in:
<?php $output = (isset($output)) ? $output : ''; if (!$modx->getLoginUserName()) { return $output; } ?>
Свежие комментарии