Виды на тегах: форма по частям, обсуждение и листание
Как расставить поля формы в своём порядке, заменить вид обсуждения под записью и выбрать, где показывать листание.
Форма по частям
В видах с формой (вход, регистрация, восстановление, сброс пароля, второй фактор, подтверждение почты, правила, поиск, кабинет) форму можно вывести целиком тегом {form} — это безопасный путь, или собрать по частям, чтобы расставить поля в нужном порядке:
| Тег | Что выводит |
|---|---|
{form_open} | открытие формы с её адресом и скрытыми полями; ключ защиты — там |
{field:имя} | поле целиком: подпись, подсказка, ошибка, как построил движок; имя — это name у поля ввода |
{field:captcha} | проверка «не робот» |
{submit} | кнопка отправки |
{form_close} | закрытие формы |
{form_open}
{field:email}
{field:password}
{field:captcha}
{submit}
{form_close}Поле, которого нет в вашем шаблоне, в форме не появится: расстановка — выбор темы. Обязательные поля и проверку «не робот» не опускайте — без них форма не пройдёт проверку.
Слово {t.хвост} даёт подпись интерфейса «приставка вида.хвост» на языке посетителя, поэтому тексты в шаблоне на разные языки не дублируются.
Обсуждение (комментарии) на тегах
Файл views/comments/thread.tpl.html темы заменяет вид обсуждения под записью, страницей и другими материалами. Нет файла или он не прошёл проверку — работает обычный вид.
| Тег | Что выводит |
|---|---|
[each:comments]…[/each] | комментарии плоским списком в порядке показа: ответ идёт сразу за своим комментарием, глубину даёт {item.level} (0 — корень) |
{item.id} {item.name} {item.avatar} {item.profile} {item.date} | номер (для якоря), имя автора, адрес аватара, адрес профиля (пусто, если закрыт), дата |
{item.text} | текст участника: разметка движка, очищенная (скриптов и чужих тегов нет); у спрятанного человеком из «Кого я не вижу» пуст |
{item.likes_signed} {item.rating_class} {item.group_key} | оценка со знаком («+3», «−2»; минус — когда включено голосование «против»), класс для цвета plus / minus / neutral, машинное имя роли автора ([if:item.group_key=admin], не зависит от языка) |
{item.likes} {item.minus} {item.rating} {item.verified} {item.op} | «Полезно» (число) или оценка «+ / −» (число «за» минус «против»; {item.minus} — оценка отрицательная), звёзды отзыва, «проверенный покупатель», «автор записи» |
{item.place} {item.group} {item.online} {item.signature} | поля карточки автора, если их включил владелец (место, группа, «на сайте», подпись) |
{item.group_color} {item.group_icon} {item.group_badge} | вид группы автора: цвет (#rrggbb, пусто — не задан), значок (готовая картинка) и готовая метка «значок + название» в цвете роли; задаётся в панели: Роли → роль → «Вид имени» |
{item.image1} {item.image2} {item.image3} | картинки комментария (миниатюры) |
{item.actions} | готовые кнопки движка: «Полезно», «Ответить», «Цитата», «Изменить», «Удалить», «Не видеть», «Пожаловаться» — правила показа те же, что в обычном виде |
{compose} | форма комментария целиком (поля, ловушка для роботов, ключ защиты) и сценарий ответа |
{form_open} {field:body} {field:author_name} {field:author_email} {submit} {form_close} | та же форма по частям — вёрстка ваша, ключ защиты и скрытые поля остаются у движка |
{follow} | кнопка «Следить за комментариями» (вошедший с подтверждённой почтой — сразу, гость называет почту и подтверждает письмом); пусто, если подписку выключил владелец |
{comments_script} | сценарий «Ответить»/«Цитата»/звёзды отдельно (внутри {compose} и {form_close} он уже есть) |
{pager} {report} {notice} | постраничная навигация, «Пожаловаться на запись», сообщение вместо формы (обсуждение закрыто, предел, нужен вход) |
{comments.total} [if:closed] [if:can_write] | число комментариев; обсуждение закрыто; писать можно |
{comments.category_id} {comments.category}, [if:comments.category_id=3] | рубрика записи, под которой идёт обсуждение (отдаёт новостная запись; у других разделов пусто): номер для условия и название |
Пример:
<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>Листание сверху, снизу или и там и там
Постраничную навигацию в списках записей, загрузок, форума, магазина и каталога выводят два тега: {pager} — под списком и {pager_top} — над списком. Где она показывается, выбирают в Настройки → Общие → «Вид и язык» → «Листание в списках»: «Снизу» (по умолчанию), «Сверху» или «Сверху и снизу». Поставьте оба тега в файл вида — рядом со списком и под ним: тег, чьё место не выбрано, ничего не рисует, и пустого отступа не остаётся. Если в вашем виде только {pager}, листание остаётся снизу и при выборе «Сверху» пропадёт, пока вы не добавите {pager_top}. В заготовках видов модулей оба тега уже стоят.