Шаблон отвечает за вывод полной новости.
Хотя этот шаблон - один из самых важных шаблонов (наравне с шаблоном main.tpl и news.short.tpl), для его работы требуется всего несколько переменных.
Самое главное, что необходимо учитывать при разработке собственного шаблона news.full.tpl: большая часть функционала реализована при помощи плагинов, а это значит, что в данном шаблоне вы должны учитывать создаваемые плагинами переменные.
Шаблон news.full.tpl
Начиная с версии [SVN 1098] у данного шаблона появляется набор собственных TWIG переменных.
Доступные переменные TWIG
-
news - массив с информацией по данной новости
- id - ID новости
- title - заголовок новости
- title|truncateHTML(X,'...') - заголовок новости с лимитом символов (там где X указать желаемое число)
-
embed - массив выгружает список изображений добавленных через тег <img> к новости (если будет выставлен extractEmbeddedItems=1 в файле variables.ini)
- images - вывод изображения (первое изображение находится в элементе [0])
- imgCount - скрывает содержимое (если не было найдено не одного тега <img>)
-
author - массив с информацией об авторе новости
- id - ID автора
- name - имя автора
- url - ссылка на профиль автора (если активен плагин uprofile)
-
categories - массив с информацией о категории(ях) в которой находится новость
- count - кол-во категорий в которых находится новость
- text - HTML текстовое представление списка категорий новости, через запятую
- masterText- HTML представление ссылки на основную категорию новости
-
list - массив со списком категорий новости (главная категория находится в элементе [0])
- id - ID категории
- alt - альт. имя категории
- name - имя категории
- info - информация о категории
-
icon - массив с информацией об иконке категории
- url - URL иконки
- isExtended - true если иконка была "приложена" к категории, false если указан только URL иконки. Информация ниже доступна только при значении isExtended == true
- width - ширина иконки
- height - высота иконки
- hasPreview - true если у иконки есть уменьшенная копия (превью)
- purl- URL превью категории
- pwidth - ширина превью
- pheight - высота превью
- url - URL категории
- text - HTML представление ссылки на категорию
-
url - массив со ссылками на новость
- full - ссылка на полную новость
- print - ссылка на версию для печати
- edit - ссылка на страницу редактирования новости
- delete - ссылка на страницу удаления новости
- short - короткая новость
- short|truncateHTML(X,'...') - короткая новость с лимитом символов (там где X указать желаемое число)
- short|striptags - короткая новость с удаленными изображениями из текста
- full - полная новость
- full|truncateHTML(X,'...') - полная новость с лимитом символов (там где X указать желаемое число)
- full|striptags - полная новость с удаленными изображениями из текста
- date - дата создания новости
- dateStamp - дата создания новости в формате unixtime для использования в фильтре |date
- update - дата редактирования новости
- updateStamp - дата редактирования новости в формате unixtime для использования в фильтре |date
- personalMore - текст собственного разделителя короткой/полной новости
- views - кол-во просмотров новости
- pagination - HTML представление постраничной навигации в новости
-
flags - массив с флагами новости:
- isUpdated - true если новость была отредактирована
- isFullMode - true если генерируется полная страница новости
- isPinned - true если новость была прикреплена
- hasPagination - true если новость многостраничная
- hasPersonalMore - true если в новости используется собственный разделитель короткой/полной новости
- p - массив, заполняемый различными плагинами, в настоящий момент заполняется только плагином xfields
[TWIG] NEWS: {{ debugValue(news) }} Plugins: {{ debugValue(p) }} [/TWIG]
Пример заполнения шаблона TWIG
В примере показан минимально набор для полнофункциональной работы (с учётом использования плагина comments):
[TWIG] <h2>{{ news.categories.masterText }} || {{ news.title }}</h2> (c) <a href="{{ news.author.url }}">{{ news.author.name }}</a> at {{ news.date }} {% if (news.flags.isUpdated) %}(changed at {{ news.update }}){% endif %}
Viewed: {{ news.views }}<br/> {{ news.short }} {{ news.full }}<br/> {{ news.pagination }} <br/> {{ plugin_comments }} [/TWIG]
Пример заполнения массива загруженных изображений добавленных к новости TWIG
[TWIG] {% if (news.embed.imgCount > 0) %} <img src="{{ news.embed.images[0] }}" /> {% else %} <img src="{{ tpl_url }}/images/noimage.jpg" /> {% endif %} [/TWIG]
Доступные блоки/переменные
Блоки:
- [edit-news] ... [/edit-news] - если у вас есть права на редактирование этой новости, то содержимое этого блока "оборачивается" в ссылку на редактирование новости
- [del-news] ... [/del-news] - если у вас есть права на редактирование этой новости, то содержимое этого блока "оборачивается" в ссылку на удаление новости
- [icon] ... [/icon] - содержимое блока отображается в случае, если для текущей новости есть иконка (иконка из категории-родителя новости)
- [update] ... [/update] - содержимое блока выводится в случае, если новость редактировалась
- [print-link] ... [/print-link] - содержимое блока "оборачивается" ссылкой на версию для печати для текущей новости
- [pagination] ... [/pagination] - содержимое блока выводится в случае наличия блока постраничной навигации внутри новости
- [page-first] ... [/page-first] - содержимое блока выводится только на первой странице многостраничной новости
- [page-next] ... [/page-next] - содержимое блока выводится в многостраничной новости на всех страницах кроме первой
- {title} - заголовок новости
- {category} - список подсвеченных ссылками категорий, к которым относится новость
- {author} - автор новости (подсвечен ссылкой на профиль пользователя, работу профиля обеспечивает плагин uprofile)
- {date} - дата добавления новости (формат даты определяется в: настройки => настройки системы => новости => формат времени для новостей)
- {icon} - URL к иконке новости (иконке категории родителя); если у категории-родителя нет иконки, то переменная будет пустой
- {update} - дата редактирования новости (формат даты определяется в: настройки => настройки системы => новости => формат времени для поля 'обновлено'); если новость не обновлялась, то переменная будет пустой
- {short-story} - короткая часть новости (в редактировании новости до тега <!--more-->)
- {full-story} - длинная часть новости (в редактировании новости после тега <!--more-->)
- {pagination} - блок постраничной навигации внутри новости (в случае, если внутри новости нет разделения на страницы, то переменная будет пустой)
- {news-id} - ID новости
- {news_link} - URL полной новости
- {views} - отображается кол-во просмотров новости (количество открытий первой страницы полной новости; заходы поисковых роботов также считаются просмотрами)
- {l_updated} - текст "обновлено" (для переменной {update})
- {l_print} - текст "распечатать" (для блока [print-link]...[/print-link])
Связь с другими плагинами
Существует множество плагинов, которые могут добавлять собственные переменные для обработки в текущем шаблоне.
Вот некоторые из них (следует учитывать, что переменные выводятся плагинами только в том случае, когда плагины включены):
Вот некоторые из них (следует учитывать, что переменные выводятся плагинами только в том случае, когда плагины включены):
-
Плагин comments:
- Блок [comheader]...[/comheader] - содержимое блока выводится только в том случае, если в новости есть хотябы один комментарий
- Переменная {comnum} - кол-во комментариев к новости
- Переменная {plugin_comments} - на её месте выводятся комментарии к новости и форма добавления новых комментариев (если добавление комментариев разрешено на сайте и не запрещено для данной новости)
-
Плагин complain:
- Переменная {plugin_complain} - информационный блок плагина complain ("сообщить о проблеме в новости")
Пример заполнения шаблона
В примере показан минимально набор для полнофункциональной работы (с учётом использования плагина comments):
<h2>{category} || {title}</h2> (c) {author} at {date} [update](changed at {update})[/update]
Viewed: {views} times[comheader], commented: {comnum} times[/comheader]<br/> {short-story} {full-story}<br/> {pagination} <br/> {plugin_comments}