N1 Nex1on

Шаблон записи на тегах: карточка фильма

Страница записи — не PHP-файл, а текст с разметкой и тегами: его правит владелец сайта в панели.

Страница записи — не PHP-файл, а текст с разметкой и тегами: его правит владелец сайта в панели. Тег подставляет значение записи или поля, условие показывает кусок только когда значение есть, повтор проходит по списку (жанры, метки, галерея). Прежний текст не пропадает: хранятся последние 20 версий, у каждой кнопка «Вернуть».

Готовый образец: «Кинотеатр»

В «Новости → Шаблоны записей» нажмите «Поставить «Кинотеатр»»: появятся рубрика «Фильмы», 8 своих полей (постер, год, страна, жанры, длительность, оценка, в ролях, трейлер), шаблон страницы и три образца записей. Повторная установка ничего не дублирует; образцы убираются кнопкой «Убрать все образцы».

Текст шаблона страницы:

<div class="news-custom news-custom--film">
[if:field:poster]<div class="news-custom__poster">{field:poster size=300x450}</div>[/if]
<div class="news-custom__info">
<h1>{title}</h1>
<dl>
[if:field:year]<dt>{fieldlabel:year}</dt><dd>{field:year}</dd>[/if]
[if:field:country]<dt>{fieldlabel:country}</dt><dd>{field:country}</dd>[/if]
[if:field:genre]<dt>{fieldlabel:genre}</dt><dd>[each:field:genre]<span>{item}</span> [/each]</dd>[/if]
[if:field:duration]<dt>{fieldlabel:duration}</dt><dd>{field:duration}</dd>[/if]
[if:field:rating]<dt>{fieldlabel:rating}</dt><dd>{field:rating}</dd>[/if]
[if:field:cast]<dt>{fieldlabel:cast}</dt><dd>{field:cast}</dd>[/if]
</dl>
</div>
<div class="news-custom__body">{body}</div>
[if:field:trailer]<div class="news-custom__trailer">{field:trailer}</div>[/if]
</div>

Что видно честно. У образцовых записей постера нет, поэтому блок постера не показывается (условие [if:field:poster]). Стили news-custom* теперь есть в общем слое: подписи и значения данных выстроены строками, жанры — метками, оценка — звёздами, на 390 одна колонка без горизонтальной прокрутки.

Что выводят теги

ТегЧто выводитПример
{id}номер записи{id}
{title}, {title limit=60}название (с обрезкой)<h1>{title}</h1>
{url}адрес записи<a href="{url}">
{site}название сайта{site}
{date}, {date format=d.m.Y}дата публикации; без format — d.m.Y; формат с пробелами — в кавычках<time>{date format="d F Y"}</time>
{author}автор{author}
{category}, {category.url}рубрика и адрес её страницы<a href="{category.url}">{category}</a>
{excerpt}, {excerpt limit=160}короткий текст<p>{excerpt limit=160}</p>
{body}полный текст записи{body}
{cover}, {cover size=400x300}обложка записи; без size — без размеров{cover size=600x400}
{views}, {comments}просмотры и комментарии{views} · {comments}
{readtime}минут на чтение{readtime} мин
{rating}средняя оценка читателей (звёзды 1–5); пусто, если оценок нет[if:rating]★ {rating}[/if]
{rating.count}число оценок({rating.count})
{rating.stars}звёзды готовой разметкой (только в html){rating.stars}
{likes}число оценок (у нас то же, что {rating.count}){likes}
{author.url}адрес профиля автора<a href="{author.url}">{author}</a>
{comments.url}адрес блока комментариев записи<a href="{comments.url}">Комментарии: {comments}</a>
{comments.word}слово «комментарий» в нужной форме по числу{comments} {comments.word}
{edit_url}адрес правки записи (виден тем, кому разрешено)[if:can_edit]<a href="{edit_url}">Править</a>[/if]
{editor}, {edit_date format=…}кто и когда правил записьПравил {editor}, {edit_date format="d.m.Y"}
{share}кнопки «Поделиться»{share}
{favorite_button}кнопка «В закладки»{favorite_button}
{field:ИМЯ}, {field:ИМЯ limit=N size=ШxВ}значение своего поля; limit для текста, size для картинки{field:year}
{fieldlabel:ИМЯ}подпись поля<dt>{fieldlabel:year}</dt>

Внутри повтора: {item}, {item.url}, {item.alt} (подпись картинки в галерее), {index} — номер с единицы.

Условие или повторЧто делаетПример
[if:имя]…[/if]показывает, если значение есть[if:cover]{cover}[/if]
[ifnot:имя]…[/ifnot]показывает, если значения нет[ifnot:excerpt]без описания[/ifnot]
[if:имя=значение]…[else]…[/if]сравнение[if:field:rating=5]★[else]—[/if]
[if:pinned]…[/if]запись закреплена[if:pinned]📌[/if]
[if:new]…[/if], [if:updated]…[/if], [if:edited]…[/if]запись новая (в пределах news.new_hours, 24 по умолчанию, 0 — выключено), обновлена (news.updated_hours), была отредактирована[if:new]<b>Новое</b>[/if]
[if:can_edit]…[/if]у посетителя есть право править запись[if:can_edit]…[/if]
[if:role=а,б]…[/if]посетитель из любой из перечисленных ролей[if:role=editor,admin]…[/if]
[each:tags]…[/each]метки записи[each:tags]<a href="{item.url}">{item}</a>[/each]
[each:field:ИМЯ]…[/each]поле с несколькими значениями (жанры, галерея)[each:field:genre]<span>{item}</span>[/each]

Имена для [if:…]: title, excerpt, body, cover, author, category, views, comments, tags, rating, pinned, new, updated, edited, can_edit, field:ИМЯ. Оценка включается флагом записи «Разрешить оценку» и настройками «Новости» (news.rating, news.rating_guests, news.show_views): одна оценка на читателя, гостя узнаёт по хэшу; просмотр засчитывается раз за сеанс, роботы не считаются. В ленте и на странице тегового вида доступны {rating}, {rating_count}, {views}, {rating_url}. Опции: limit — число 1–5000 (меньше или больше сводится к границе), режет по знакам с «…»; format у date — только знаки d D j m M n Y y H i s a A g G h F, пробел, ., /, :, -, до 20; size — ШxВ, каждая сторона до 4000, иначе игнорируется.

Безопасность и пределы

PHP, вызов функций и чтение файлов не работают. Разметка очищается по белому списку (без script, style, form, iframe, on*, data-*); адреса только http(s)://, /путь, #. Шаблон до 20000 знаков, до 400 тегов, вложенность до 6, повторов до 60.

Обновлено 16.10.2026

На этой странице
Поделиться: Telegram WhatsApp
Откладывать можно и без входа: закладки сохранятся в этом браузере, а после входа их можно перенести в учётную запись. Вход
Обсуждение

Комментарии

Обсуждение ещё не началось

Пока никто не высказался. Будьте первым.

Пожаловаться на запись