Списки на тегах: отбор, архив, метки, рубрики и числа сайта
Как вывести в любом файле тегов последние записи и комментарии, архив по месяцам, облако меток, дерево рубрик и числа сайта, и как отобрать записи.
Эти теги работают в любом файле тегов: в главной рамке, на странице, в ленте. Отбор записан в самом имени списка парами «ключ:значение» через двоеточие; несколько значений — через «_». Ключи защиты, почта и закрытое в списки не попадают; записи отбираются тем же запросом, что и лента (права, пароль, язык, срок действия).
Какие бывают списки
| Список | Что даёт |
|---|---|
[each:news_list category=films,3 limit=5 sort=views] … [/each] | записи; привычная запись [each:news_list:cat:3_5:limit:5:sort:views] даёт тот же результат |
[each:comments_list limit=5 category=3] | последние комментарии к записям; у вошедшего в {item.name} его имя |
[each:news_archive:limit:12] | месяцы архива |
[each:news_tags:limit:30] | облако меток |
[each:news_categories] | рубрики деревом: родитель, затем вложенные |
Как отобрать записи
| Ключ | Что делает |
|---|---|
category | рубрики номером или адресом: 3, films, 3,5, 3-7, !news (кроме; вложенные входят) |
not_category | кроме этих рубрик |
author | номера или логины через запятую |
tag | метки номерами или адресами |
id, not_id | только эти записи / кроме этих; not_id=this — кроме текущей |
days | за сколько дней |
sort | new, old, title, views, rating, rand, updated |
start, limit | с какой записи и сколько (до 30) |
home, fixed, cover, poll, password | 1, yes, да — только такие; 0, no, нет — только без |
field:имя>2000 | по своему полю: =значение, !=значение, >, <; числа сравниваются как числа; до четырёх условий |
custom + is | поле заполнено / равно значению |
cache | запомнить результат гостям на столько секунд (до 3600); у вошедшего всегда свежий |
lang | язык записей |
Неизвестное имя игнорируется, а редактор тем его подсвечивает. У comments_list отбор короче: limit, category, not_category, author, days, post (номера записей). У news_archive и news_tags — limit.
У news_categories: category (какие рубрики), not_category (кроме), subcat — yes с вложенными, no только названные, only только вложенные; depth — сколько уровней; limit.
Что доступно внутри списка
| Список | Теги элемента |
|---|---|
| записи | {item.id} {item.title} {item.url} {item.excerpt} {item.date} {item.cover} {item.cover_large} {item.category} {item.category_url} {item.by} (автор, если сайт показывает авторов) {item.views} {item.rating} {item.rating_count} {item.comments} {item.pinned} {item.locked} (запись под паролем: видно только название) {item.first} {index} |
| комментарии | {item.name} {item.text} (до 160 знаков, без разметки) {item.url} {item.date} {item.title} (название записи) {item.avatar} |
| архив | {item.title} {item.url} {item.count} |
| метки | {item.title} {item.url} {item.count} {item.weight} (1–5, для размера шрифта) |
| рубрики | {item.title} {item.url} {item.count} {item.active} (текущая рубрика) {item.level} (0 — верхний уровень) {item.parent} {item.id} и условие [if:item.has_children] |
Картинки из текста записи по номеру: {item.image1}…{item.image5} и {item.images_count}; текст разбирается, только если шаблон их просит.
Числа сайта
{stat.news} {stat.news_day} {stat.news_week} {stat.news_month}; то же для comments и users, например {stat.comments_week} и {stat.users_month}.
Пример: рубрики с числом записей и популярное за месяц
<nav><ul>
[each:news_categories]<li class="l{item.level}"><a href="{item.url}">{item.title}</a> <small>{item.count}</small></li>[/each]
</ul></nav>
<h3>Популярное</h3>
[each:news_list:days:30:sort:views:limit:5]<p><a href="{item.url}">{item.title}</a> · {item.views}</p>[/each]
<p>Записей: {stat.news}, за неделю: {stat.news_week}</p>