users.tpl или users.contractor.tpl или users.freelancer.tpl
Шаблон списка пользователей, то есть страница сайта, где мы можем фильтровать и искать пользователей по доступным параметрам.
Но в данном конкретном случае нас не интересуют формы вообще!
В отличии, от шаблона регистрации, настройки и редактирования пользователя, мы здесь данные не отправляем в базу, а берем из базы и показываем визитеру.
Такие шаблоны, могут иметь очень разный вид, но в каждом из них будет логический блок "официанта":
<!-- BEGIN: USERS_ROW --> и <!-- END: USERS_ROW -->это "начало" и "конец" соответственно, то есть пределы, внутри которых мы формируем "лицо" одного элемента, для всех элементов этого списка.
Если кому будет проще понять, - это "копирка", - вырезали буквы в картонке, сделали трафарет, и пошли под копирку вандалить по стенам домов города, с ведром краски в руках, например, "Покайся!". Ну и так на каждом доме, пока не выйдет кто, да не вправит то, что "сместилось" с моральных координат.
Вобщем находим пределы трафарета
<div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 g-4">
<!-- BEGIN: USERS_ROW -->
<div class="col">
<div class="card h-100 shadow-sm border-0 user-card {USERS_ROW_ODDEVEN}">
<div class="card-body d-flex flex-column">
.....
......
</div>
</div>
</div>
<!-- END: USERS_ROW -->
</div>вставить код, в удобном месте, например сразу после вывода аватара
<!-- IF {PHP|cot_plugin_active('xtradbrowusers')} -->
<!-- О себе -->
<!-- IF {USERS_ROW_XTRA_X020_ABOUT_VENDOR_TEXT} -->
<div class="d-flex mb-3">
<div class="contact-icon about me-3">
<i class="fa-solid fa-circle-info fa-xl"></i>
</div>
<div>
<div class="contact-label">{USERS_ROW_XTRA_X020_ABOUT_VENDOR_TEXT_TITLE}</div>
<div class="contact-value">{USERS_ROW_XTRA_X020_ABOUT_VENDOR_TEXT}</div>
</div>
</div>
<!-- ENDIF -->
<!-- Телефон (скрыт, показ по кнопке) -->
<!-- IF {USERS_ROW_XTRA_X010_PHONE_VENDOR_ORDERS_VALUE} -->
<div class="d-flex align-items-center mb-3">
<div class="contact-icon phone me-3">
<i class="fa-solid fa-phone fa-xl"></i>
</div>
<div>
<div class="contact-label">{USERS_ROW_XTRA_X010_PHONE_VENDOR_ORDERS_TITLE}</div>
<div class="d-flex align-items-center">
<span id="phone-{USERS_ROW_ID}" class="contact-value fs-3" style="letter-spacing:2px"></span>
<button type="button" class="btn btn-outline-primary btn-sm ms-2"
id="show-phone-btn-{USERS_ROW_ID}"
data-phone="{USERS_ROW_XTRA_X010_PHONE_VENDOR_ORDERS_VALUE}"
onclick="document.getElementById('phone-{USERS_ROW_ID}').textContent = this.dataset.phone; this.style.display='none';">
<i class="fa-solid fa-eye me-1"></i> {PHP.L.xtradbrowusers_details_tpl_show_hidden_content}
</button>
</div>
</div>
</div>
<!-- ENDIF -->
<!-- Telegram (личный) -->
<!-- IF {USERS_ROW_XTRA_X011_TG_VENDOR_ORDERS_VALUE} -->
<div class="d-flex align-items-center mb-3">
<div class="contact-icon telegram me-3">
<i class="fa-brands fa-telegram fa-xl"></i>
</div>
<div>
<div class="contact-label">{USERS_ROW_XTRA_X011_TG_VENDOR_ORDERS_TITLE}</div>
<a href="https://t.me/{USERS_ROW_XTRA_X011_TG_VENDOR_ORDERS_VALUE}" target="_blank" rel="noopener noreferrer" class="telegram-link">
@{USERS_ROW_XTRA_X011_TG_VENDOR_ORDERS_VALUE}
</a>
</div>
</div>
<!-- ENDIF -->
<!-- Telegram-канал -->
<!-- IF {USERS_ROW_XTRA_X012_TG_CHANEL_VENDOR_VALUE} -->
<div class="d-flex align-items-center mb-3">
<div class="contact-icon telegram me-3">
<i class="fa-brands fa-telegram fa-xl"></i>
</div>
<div>
<div class="contact-label">{USERS_ROW_XTRA_X012_TG_CHANEL_VENDOR_TITLE}</div>
<a href="https://t.me/{USERS_ROW_XTRA_X012_TG_CHANEL_VENDOR_VALUE}" target="_blank" rel="noopener noreferrer" class="telegram-link">
@{USERS_ROW_XTRA_X012_TG_CHANEL_VENDOR_VALUE}
</a>
</div>
</div>
<!-- ENDIF -->
<!-- Файл (резюме) -->
<!-- IF {USERS_ROW_XTRA_X200_RESUME_FILE_VALUE} -->
<div class="d-flex align-items-center mb-3">
<div class="me-3">
<label>{USERS_ROW_XTRA_X200_RESUME_FILE_TITLE}:</label>
</div>
<div>
<a href="{PHP.cfg.mainurl}/datas/exflds/xtradbrowusers/{USERS_ROW_XTRA_X200_RESUME_FILE_VALUE}"
class="btn btn-primary btn-sm"
target="_blank"
rel="noopener noreferrer">
<i class="fa-solid fa-download me-1"></i> {PHP.L.Download}
</a>
</div>
</div>
<!-- ENDIF -->
<!-- Дата последнего повышения -->
<!-- IF {USERS_ROW_XTRA_X200_LAST_PROMOTION} -->
<div class="d-flex align-items-center mb-3">
<div class="contact-icon calendar me-3">
<i class="fa-solid fa-calendar-alt fa-xl"></i>
</div>
<div>
<div class="contact-label">{USERS_ROW_XTRA_X200_LAST_PROMOTION_TITLE}</div>
<div class="contact-value">{USERS_ROW_XTRA_X200_LAST_PROMOTION}</div>
</div>
</div>
<!-- ENDIF -->
<!-- Отдел -->
<!-- IF {USERS_ROW_XTRA_X200_DEPARTMENT} -->
<div class="d-flex align-items-center mb-3">
<div class="contact-icon building me-3">
<i class="fa-solid fa-building fa-xl"></i>
</div>
<div>
<div class="contact-label">{USERS_ROW_XTRA_X200_DEPARTMENT_TITLE}</div>
<div class="contact-value">{USERS_ROW_XTRA_X200_DEPARTMENT}</div>
</div>
</div>
<!-- ENDIF -->
<!-- ENDIF -->
Напоминаю. скриншоты смотрим в этой статье.
Про поезда и паравозики не буду, читайте выше. Подробнее также смотрите в моих шаблонах для Cotonti и в файле хукинга этого плагина!