N1 Nex1on

Views on tags: form in parts, discussion and paging

How to place the form fields in your own order, replace the discussion view under an entry and choose where paging is shown.

Updated 20.10.2026

The form in parts

In views with a form (sign-in, registration, recovery, password reset, second factor, email confirmation, rules, search, account) the form can be printed whole with the {form} tag — the safe way — or assembled in parts to place the fields in the order you need:

TagWhat it prints
{form_open}the opening of the form with its address and hidden fields; the protection key is there
{field:name}a whole field: label, hint, error, as the engine built it; the name is the name of the input
{field:captcha}the “not a robot” check
{submit}the submit button
{form_close}the closing of the form
HTML
{form_open}
  {field:email}
  {field:password}
  {field:captcha}
  {submit}
{form_close}

A field that is not in your template does not appear in the form: the arrangement is the theme’s choice. Do not leave out required fields and the “not a robot” check — without them the form will not pass validation.

The word {t.tail} gives the interface label “view prefix.tail” in the visitor’s language, so texts in the template are not duplicated for different languages.

Discussion (comments) on tags

The file views/comments/thread.tpl.html of the theme replaces the discussion view under an entry, a page and other materials. If the file is missing or failed validation, the ordinary view works.

TagWhat it prints
[each:comments]…[/each]comments as a flat list in display order: a reply follows its own comment, the depth is given by {item.level} (0 is the root)
{item.id} {item.name} {item.avatar} {item.profile} {item.date}number (for an anchor), author name, avatar address, profile address (empty if closed), date
{item.text}the member’s text: engine markup, cleaned (no scripts or foreign tags); empty for a person hidden through “People I don’t see”
{item.likes_signed} {item.rating_class} {item.group_key}a signed score (“+3”, “−2”; a minus when “against” voting is on), a colour class plus / minus / neutral, the author’s machine role name ([if:item.group_key=admin], language-independent)
{item.likes} {item.minus} {item.rating} {item.verified} {item.op}“Helpful” (a number) or a “+ / −” score (“for” minus “against”; {item.minus} — the score is negative), review stars, “verified buyer”, “entry author”
{item.place} {item.group} {item.online} {item.signature}fields of the author card, if the owner turned them on (place, group, “online”, signature)
{item.group_color} {item.group_icon} {item.group_badge}the look of the author’s group: colour (#rrggbb, empty if not set), icon (a ready picture) and a ready “icon + name” label in the role colour; set in the panel: Roles → role → “Name look”
{item.image1} {item.image2} {item.image3}the comment’s pictures (thumbnails)
{item.actions}the engine’s ready buttons: “Helpful”, “Reply”, “Quote”, “Edit”, “Delete”, “Hide from me”, “Report” — the display rules are the same as in the ordinary view
{compose}the whole comment form (fields, robot trap, protection key) and the reply script
{form_open} {field:body} {field:author_name} {field:author_email} {submit} {form_close}the same form in parts — the layout is yours, the protection key and hidden fields stay with the engine
{follow}the “Follow comments” button (a signed-in person with a confirmed email at once, a guest gives an email and confirms by letter); empty if the owner turned following off
{comments_script}the “Reply”/“Quote”/stars script separately (it is already inside {compose} and {form_close})
{pager} {report} {notice}paging, “Report this entry”, a message instead of the form (discussion closed, limit, sign-in needed)
{comments.total} [if:closed] [if:can_write]number of comments; the discussion is closed; writing is allowed
{comments.category_id} {comments.category}, [if:comments.category_id=3]the category of the entry the discussion is under (given by a news entry; empty for other sections): a number for a condition and the name

Example:

HTML
<section id="comments"><h2>{comments.word}: {comments.total}</h2>
[each:comments]
<article id="comment-{item.id}" class="c c-l{item.level}"><b>{item.name}</b> <time>{item.date}</time>
<div>{item.text}</div><footer>{item.actions}</footer></article>
[/each]
{pager}
[if:can_write]{compose}[else]{notice}[/if]
</section>

Paging on top, at the bottom or both

Paging in lists of entries, downloads, the forum, the shop and the catalogue is printed by two tags: {pager} below the list and {pager_top} above it. Where it is shown is chosen in Settings → General → “Look and language” → “Paging in lists”: “Bottom” (the default), “Top” or “Top and bottom”. Put both tags into the view file — next to the list and under it: a tag whose place is not chosen draws nothing and leaves no empty gap. If your view has only {pager}, paging stays at the bottom and disappears when “Top” is chosen until you add {pager_top}. The module view templates already have both tags.

Was this article helpful?
On this page