Шаблон отвечает за вывод краткой новости.
В большинстве сайтов, использующих NGCMS данный шаблон - один из самых важных шаблонов (наравне с шаблоном main.tpl и news.full.tpl), фактически он определяет внешний вид всех представленных новостей в списке новостей.
Самое главное, что необходимо учитывать при разработке собственного шаблона news.short.tpl: большая часть функционала реализована при помощи плагинов, а это значит, что в данном шаблоне вы должны учитывать создаваемые плагинами переменные.
Шаблон news.short.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 если в новости используется собственный разделитель короткой/полной новости
- canEdit - true если есть доступ к редактировании новости
- canDelet - true если есть доступ к удалению новости
- p - массив, заполняемый различными плагинами, в настоящий момент заполняется только плагином xfields
Для отладки и проверки доступных переменных вы всегда можете использовать следующий код:
[TWIG] NEWS: {{ debugValue(news) }} Plugins: {{ debugValue(p) }} [/TWIG]
Пример заполнения шаблона TWIG
В примере показан минимально набор для полнофункциональной работы
[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 }}<br/> Read news: <a href="{{ news.url.full }}">here</a> [/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] - содержимое блока "оборачивается" ссылкой на версию для печати для текущей новости
- [full-link] ... [/full-link] - содержимое блока "оборачивается" ссылкой на страницу новости
- [fullnews] ... [/fullnews] - содержимое блока выводится в случае, если в новости есть "полная" версия
- [nofullnews] ... [/nofullnews] - содержимое блока выводится в случае, если в новости есть только "короткая" версия
- {title} - заголовок новости
- {category} - список подсвеченных ссылками категорий, к которым относится новость
- {author} - автор новости (подсвечен ссылкой на профиль пользователя, работу профиля обеспечивает плагин uprofile)
- {date} - дата добавления новости (формат даты определяется в: настройки => настройки системы => новости => формат времени для новостей)
- {icon} - URL к иконке новости (иконке категории родителя); если у категории-родителя нет иконки, то переменная будет пустой
- {update} - дата редактирования новости (формат даты определяется в: настройки => настройки системы => новости => формат времени для поля 'обновлено'); если новость не обновлялась, то переменная будет пустой
- {short-story} - короткая часть новости (в редактировании новости до тега <!--more-->)
- {full-story} - длинная часть новости (в редактировании новости после тега <!--more-->)
- {full-link} - ссылка на полную страницу новости)
- {news-id} - ID новости
- {news_link} - URL полной новости
- {views} - отображается кол-во просмотров новости (количество открытий первой страницы полной новости; заходы поисковых роботов также считаются просмотрами)
- {alternating} - принимает значение `even` или `odd` в зависимости от того чётная это новость или нечётная
- {l_updated} - текст "обновлено" (для переменной {update})
- {l_print} - текст "распечатать" (для блока [print-link]...[/print-link])
Связь с другими плагинами (устаревший формат)
Существует множество плагинов, которые могут добавлять собственные переменные для обработки в текущем шаблоне.
Вот некоторые из них (следует учитывать, что переменные выводятся плагинами только в том случае, когда плагины включены):
Вот некоторые из них (следует учитывать, что переменные выводятся плагинами только в том случае, когда плагины включены):
-
Плагин comments:
- Блок [comheader]...[/comheader] - содержимое блока выводится только в том случае, если в новости есть хотябы один комментарий
- Переменная {comnum} - кол-во комментариев к новости
-
Плагин 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}<br/> Read news: [full-link]here[/full-link]