Как добавить шаблонный тег
Шаблонные теги позволяют подключать исполняемый код в определенное место сайта.
DIAFAN.CMS не делает никаких ограничений на количество аргументов и название функции. Исполняемый код может быть общего характера или относиться к модулю.
Если нужно добавить код общего характера, то создаем общий шаблонный тег. Для этого в папку themes/functions нужно добавить файл с названием тега. Стоит заметить, что имеется ввиду папка
/custom/ваша_тема/themes/functions
поскольку все изменения следует вносить в файлы пользовательских тем (о темах).
После этого шаблонный тег можно использовать.
Тегу можно передавать атрибуты тега. Атрибуты будут доступны через массив $attributes
.
Пример:
Добавляем файл hello.php.
<?php
if (! defined('DIAFAN'))
{
$path = __FILE__;
while(! file_exists($path.'/includes/404.php'))
{
$parent = dirname($path);
if($parent == $path) exit;
$path = $parent;
}
include $path.'/includes/404.php';
}
echo "Hello, ".$attributes["username"]."!";
Затем в любом основном шаблоне сайта, например в themes/site.php, файл можно исполнить в любом месте шаблонным тегом
<insert name="hello" username="Пользователь">
Пример:
Добавляем модулю «Новости» шаблонную функцию show_date
//в файле modules/news/news.php
public function show_date($attributes)
{
$attributes = $this->get_attributes($attributes, 'day', 'template');
$result = $this->model->date($attributes["day"]);
echo $this->diafan->_tpl->get('show_date', 'news', $result, $attributes["template"]);
}
//в файле modules/news/news.model.php
public function date($day)
{
if($day)
{
$result["date"] = $day.date(".m.Y");
}
else
{
$result["date"] = date("d.m.Y");
}
return $result;
}
//файл modules/news/views/news.view.show_date.php
echo '<div class="news_date">'.$result["date"].'</div>';
Затем в любом основном шаблоне сайта, например в themes/site.php, функцию можно вызвать в любом месте шаблонным тегом
<insert name="show_date" module="news">
Зарегистрируйтесь или авторизируйтесь для того, чтобы оставить комментарий.