Плагин 'xtradbrowusers' — Руководство по тегам в шаблонах
Интеграция и прописывание тегов для вывода экстраполей в шаблонах.
Этот документ — это шпаргалка: скопировал, вставил, подправил и забыл!
Всё, что не понятно, спрашивать на форуме.
Пользователи (модуль 'users')
Список шаблонов модуля в папке вашей темы
Примеры тем: 2waydeal, index36, nemesis. Важно, чтобы шаблоны лежали именно в папке темы по следующему пути:
/themes/2waydeal/modules/users/users.edit.tpl
/themes/2waydeal/modules/users/users.profile.tpl
/themes/2waydeal/modules/users/users.details.contractor.tpl
/themes/2waydeal/modules/users/users.details.tpl
/themes/2waydeal/modules/users/users.register.tpl
/themes/2waydeal/modules/users/users.tpl1. users.edit.tpl — шаблон редактирования данных пользователя администратором
Открываем шаблон и обязательно внутри формы:
<form action="{USERS_EDIT_SEND}" method="post" name="useredit" enctype="multipart/form-data" class="needs-validation" novalidate>
<input type="hidden" name="id" value="{USERS_EDIT_ID}" />
…
…
<button type="submit" class="btn btn-outline-primary">
<i class="fa-solid fa-floppy-disk me-1"></i> {PHP.L.Update}
</button>
</form>Блок вывода полей
В любом удобном месте вставляем блок с выводом наших полей:
<!-- IF {PHP|cot_plugin_active('xtradbrowusers')} -->
<div class="row my-5">
<p>{PHP.L.xtradbrowusers_edit_tpl_title}</p>
<div class="list-group list-group-striped list-group-flush border-bottom">
<!-- IF {USERS_EDIT_XTRA_X020_ABOUT_VENDOR_TEXT} -->
<div class="list-group-item py-3">
<label>{USERS_EDIT_XTRA_X020_ABOUT_VENDOR_TEXT_TITLE}:</label>
{USERS_EDIT_XTRA_X020_ABOUT_VENDOR_TEXT}
</div>
<!-- IF {USERS_EDIT_XTRA_X020_ABOUT_VENDOR_TEXT_EN} -->
<div class="list-group-item py-3">
<label>{USERS_EDIT_XTRA_X020_ABOUT_VENDOR_TEXT_EN_TITLE}:</label>
{USERS_EDIT_XTRA_X020_ABOUT_VENDOR_TEXT_EN}
</div>
<!-- ENDIF -->
<!-- ENDIF -->
<!-- IF {USERS_EDIT_XTRA_X010_PHONE_VENDOR_ORDERS} -->
<div class="list-group-item py-3">
<label>{USERS_EDIT_XTRA_X010_PHONE_VENDOR_ORDERS_TITLE}:</label>
{USERS_EDIT_XTRA_X010_PHONE_VENDOR_ORDERS}
</div>
<!-- ENDIF -->
<!-- IF {USERS_EDIT_XTRA_X011_TG_VENDOR_ORDERS} -->
<div class="list-group-item py-3">
<label>{USERS_EDIT_XTRA_X011_TG_VENDOR_ORDERS_TITLE}:</label>
{USERS_EDIT_XTRA_X011_TG_VENDOR_ORDERS}
</div>
<!-- ENDIF -->
<!-- IF {USERS_EDIT_XTRA_X012_TG_CHANEL_VENDOR} -->
<div class="list-group-item py-3">
<label>{USERS_EDIT_XTRA_X012_TG_CHANEL_VENDOR_TITLE}:</label>
{USERS_EDIT_XTRA_X012_TG_CHANEL_VENDOR}
</div>
<!-- ENDIF -->
<!-- IF {USERS_EDIT_XTRA_X200_RESUME_FILE} -->
<div class="list-group-item py-3">
<label>{USERS_EDIT_XTRA_X200_RESUME_FILE_TITLE}:</label>
{USERS_EDIT_XTRA_X200_RESUME_FILE}
</div>
<!-- ENDIF -->
<!-- IF {USERS_EDIT_XTRA_X200_LAST_PROMOTION} -->
<div class="list-group-item py-3">
<label>{USERS_EDIT_XTRA_X200_LAST_PROMOTION_TITLE}:</label>
{USERS_EDIT_XTRA_X200_LAST_PROMOTION}
</div>
<!-- ENDIF -->
<!-- IF {USERS_EDIT_XTRA_X200_DEPARTMENT} -->
<div class="list-group-item py-3">
<label>{USERS_EDIT_XTRA_X200_DEPARTMENT_TITLE}:</label>
{USERS_EDIT_XTRA_X200_DEPARTMENT}
</div>
<!-- ENDIF -->
</div>
</div>
<!-- ENDIF -->Важно: этот код выведет лишь некоторые поля из всего «демонстрационного набора» экстраполей, устанавливаемых вместе с плагином. Задача данного руководства — дать шпаргалку с иллюстрацией механизма включения (прописывания) полей в шаблоны.
Механизм сборки тегов
Собрать правильный тег для вашего шаблона, чтобы получить своё поле, — это как собрать игрушечный паровозик из нескольких вагонов:
USERS_EDIT_XTRA_— префикс из нашего плагина; (локомотив/тягач вагонов)X020_ABOUT_VENDOR_TEXT— имя нашего поля. (первый и пока единственный вагон)
USERS_EDIT_XTRA_ + X020_ABOUT_VENDOR_TEXT = USERS_EDIT_XTRA_X020_ABOUT_VENDOR_TEXT
Видите, как просто. Обернув в фигурные скобки, мы нашему шаблонизатору XTemplate говорим: «Дай мне в шаблоне здесь {КАРТОШКА_ЖАРЕННАЯ}, {КЕТЧУП_ОСТРЫЙ}». И если имя корректное, он принесёт сюда в шаблон то, что туда положили повара на кухне. Поваром здесь может быть и разработчик, и вы сами как пользователь или администратор.
В нашем случае у шаблонизатора мы попросили {USERS_EDIT_XTRA_X020_ABOUT_VENDOR_TEXT} в шаблоне редактирования, и он нам сюда принесёт поле для заполнения, редактирования и сохранения данных текстового типа.
Как собрать заголовок поля (суффикс _TITLE)
Всё также предельно просто:
USERS_EDIT_XTRA_— префикс; (локомотив/тягач вагонов)X020_ABOUT_VENDOR_TEXT— имя поля; (первый вагон)_TITLE— суффикс из нашего плагина. (второй вагон и он же замыкающий)
USERS_EDIT_XTRA_ + X020_ABOUT_VENDOR_TEXT + _TITLE = USERS_EDIT_XTRA_X020_ABOUT_VENDOR_TEXT_TITLE
Подробнее — в файле хукинга.
Снова оборачиваем наш «паровозик» в фигурные скобки и кричим нашему шаблонизатору XTemplate в шаблоне: «Эй, официант, хочу {USERS_EDIT_XTRA_X020_ABOUT_VENDOR_TEXT_TITLE}!». И разумеется, если такое есть, он вернёт нам описание поля — в демке это лейбл «Обо мне кратко».
Заключение
Однажды вникнув, потратив с практикой и чтением шпаргалки минут 15, вас уже не будут смущать ни «вагончики» детского паровозика, ни незнакомец-официант по имени «шаблонизатор XTemplate». Запомнили одно: собрали паровозик из нужных вагонов — всё, теперь зовём официанта и корректно называем то, что хотите от него!