N1 Nex1on

Каталог вставок, дод. поля та інформери на тегах

Як вставити будь-який блок, список, число чи форму модуля одним тегом, де працюють додаткові поля новин і як показати чужу стрічку на сторінці.

Оновлено 20.10.2026

Каталог вставок: будь-який елемент модуля — одним тегом

Кожен модуль оголошує все, що можна винести на будь-яку сторінку й вставити в будь-яке місце файлу тегів теми: готові блоки, списки для власної верстки, числа, форми та кнопки. Це єдиний каталог: з нього будуються вкладка «Вивід на сайті» в панелі модуля (таблиця елементів, параметри, приклад і кнопка «Копіювати», файли виглядів), підказки редактора шаблонів і сторінки «Довідки» про кожен модуль. Повний список елементів із готовим кодом дивіться на сторінці модуля в «Довідці» (/help/modules/назва-модуля): він завжди збігається з тим, що є на вашому сайті.

Як вставляється:

  • блок, форма, кнопка, число — {block:модуль.назва параметр=значення}: {block:news.count what=news period=week}; параметрів до чотирьох;
  • список для власної верстки — [each:list:модуль_назва:параметр:значення:…] … {item.поле} … [/each]: [each:list:news_latest:cat:3:sort:views:limit:5]; кілька значень — через «_», у назві списку «модуль_назва» (крапка в назві тега не годиться).
HTML
{block:news.count what=news period=week}
{block:subscribe.compact}
[each:list:shop_products:limit:4]<p>{item.title}</p>[/each]

Елемент виду блок, кнопка й форма сам відповідає за екранування свого виводу (через e() і вигляди рушія, як будь-який вигляд); число й текст — лише екранований текст без розмітки; список віддає рядки, вони екрануються тегами. Параметри перевіряються за описом елемента: число — у межах, вибір — лише зі списку, номери — лише цифри; зайве відкидається. Збій, право, якого немає, перевищення часу чи розміру — порожня вставка, сторінка ціла. Старі теги (news_list…, {banner:5}, [each:comments]) продовжують працювати.

Модуль оголошує елемент через фільтр theme.blocks: запис «модуль.назва» з полями kind (block, list, value, form, button), title, description, params, items, example, works_in, permission, render. Готові блоки розкладки модулів (те, що модуль кладе в місця теми) потрапляють до каталогу самі.

Безпека тегів

  • форми малює лише рушій: у файлі тегів тег form вичищається, тому ключ захисту й поля завжди на місці; форму виводить {form};
  • розмітка шаблону очищається за білим списком: без скриптів, стилів, фреймів, обробників подій та атрибутів data-*; адреси лише http(s)://, /шлях, #;
  • значення екрануються за місцем (у тексті, в атрибуті, в адресі — по-різному);
  • межі ті самі, що в мови тегів: розмір шаблону 20000 знаків, 400 тегів, вкладеність 6, повторів 200;
  • листи у файлах тегів не потрібні: їхні тексти правляться в «Пошта → тексти листів».

Додаткові поля новин: де працюють

Поля заводяться в розділі «Дод. поля» (господар «Новини», можна обмежити рубриками). Порожнє поле ніде не показується: ні значення, ні підпис.

ДеЩо писатиУмова
Повний запис{field:назва}, {fieldlabel:назва}, [if:field:назва], {fieldurl:назва}поле видно цьому читачеві
Картка стрічки (index.tpl.html, [each:cards]){item.field:назва}, {item.fieldlabel:назва}, {item.fieldurl:назва}, [if:item.field:назва]пташка «у списку»; у закритого запису (під паролем) полів немає
Списки й блоки ([each:news_list …], [each:list:news_latest], {block:news.latest_box})ті самі теги з item.те саме
Відбір записів[each:news_list field:рік>2000 field:жанр=драма], custom=назва (заповнено), custom=назва is=значенняполе з пташкою «фільтр» (інакше список порожній, а не вся стрічка)
Значення посиланням («Режисер: Нолан» → усі записи з цим значенням)автоматично на сторінці запису; у списках — {item.fieldurl:назва} в адресі посилання; адреса виду /news/рубрика?field=назва&value=значенняпташки «фільтр» і «значення посиланням»; види: рядок, список-вибір, число, дріб
Пошук у панелірядок пошуку за списком записів знаходить значення полівпташка «пошук»
RSSдо опису запису додається «Підпис: значення»пташка «віддавати в RSS»; лише публічні поля
Заміна по сайту«Пошук і заміна» бачить значення полів новинправо на заміну

Адреса з field=…&value=… показує над стрічкою плашку «Підпис: значення» і кнопку «Скинути відбір». Закриті поля (лише для персоналу, за ролями) тегами й у RSS не віддаються.

Інформери: чужі стрічки на сторінці

У розділі «Контент → Інформери» власник підключає стрічку іншого сайту (RSS, Atom або JSON) під короткою назвою. Сайт показує останню збережену копію й не чекає на чужий сервер; копію оновлюють за розкладом. Вставляється блоком або списком у будь-яке місце будь-якого виду:

Що писатиЩо вийде
{block:site.informer name=НАЗВА limit=5}готовий список посилань на записи стрічки (text=1 — зі стислим текстом)
[each:list:site_informer_list:name:НАЗВА:limit:5] … [/each]власний вигляд кожного запису

У записі списку: {item.title} {item.url} {item.date} (за форматом сайту) {item.date_iso} {item.text} (стислий текст, без розмітки) {item.by} {item.category} {item.image} (адреса першої картинки; порожньо, якщо її немає) {item.image2} {item.image3} (друга й третя, якщо є в стрічці) {item.images_count} (скільки картинок, до трьох). Для джерел JSON — ще поля, названі власником ({item.поле}).

Що чужого приходить: лише заголовок, посилання, дата, стислий текст, автор, рубрика й адреса картинки — простим текстом і лише за http(s). Сама картинка на сайт не копіюється: браузер відвідувача бере її з чужого сервера, якщо тема виводить {item.image}. Посилання йдуть із rel="nofollow noopener noreferrer ugc".

HTML
[each:list:site_informer_list:name:novosti:limit:3]
  <article>[if:item.image]<img src="{item.image}" alt="" loading="lazy">[/if]
    <a href="{item.url}" rel="nofollow noopener">{item.title}</a>
    <small>{item.by} · {item.category} · <time datetime="{item.date_iso}">{item.date}</time></small></article>
[/each]
Чи допомогла ця стаття?
На цій сторінці