Аватарки пользователей и модуль «Files»

Интеграция в шаблоны основной темы сайта, теги и конструкции для вызова аватара пользователей в разных локациях сайта

Автор
Сообщение

Оффлайн

Сообщения: 153

#1 07.03.2025 09:03

Интеграция в шаблоны темы сайта, теги и конструкции для вызова аватара пользователей в разных локациях сайта.

Если вы интегрируете модуль «Files» на рабочий проект, уже с приличным "багажом" данных, - делаем бекап сайта и разворачиваем его где-то на локалке или поддомене, чтобы затем "брать" те же картинки или аватарки от-туда.

 

Потому что первым делом, перед интеграцией вывода аватарок через модуль "Files" нам нужно удалить плагин UserImages!

Прошу обратить внимание, - инструкции мои личные, основаны на опыте и личных предпочтениях в комфортной работе с этим модулем, и не являются официальным руководством к действию.

 


1. Модуль "Forums", шаблон страницы темы форума с постами, - forums.posts.tpl

находим что-то вроде такого кода:

<!-- IF {FORUMS_POSTS_ROW_USER_AVATAR} -->
{FORUMS_POSTS_ROW_USER_AVATAR}
<!-- ELSE -->
{PHP.R.forums_noavatar}
<!-- ENDIF -->

и или удаляем его, или обрамляем в условие с проверкой на активного плагина userimages, если вы конечно планируете его использовать в дальнейшем. сделать это нужно вот так:

<!-- IF {PHP|cot_plugin_active('userimages')} -->
<!-- IF {FORUMS_POSTS_ROW_USER_AVATAR} -->
{FORUMS_POSTS_ROW_USER_AVATAR}
<!-- ELSE -->
{PHP.R.forums_noavatar}
<!-- ENDIF -->
<!-- ENDIF -->

А уже затем, прописываем код вывода аватарок пользователей при помощи модуля «Files» вот так:

<!-- IF {PHP|cot_module_active('files')} -->
	<!-- IF {FORUMS_POSTS_ROW_USER_AVATAR_ID} > 0 -->
	<img class="uk-border-rounded" src="{FORUMS_POSTS_ROW_USER_AVATAR_URL}" width="155" height="155" alt="{FORUMS_POSTS_ROW_USER_NICKNAME}">
	<!-- ELSE -->
	<img class="uk-border-rounded" width="155" height="155" alt="{FORUMS_POSTS_ROW_USER_NICKNAME}" src="{PHP.cfg.themes_dir}/{PHP.cfg.defaulttheme}/img/user-noavatar.webp">
	<!-- ENDIF -->
<!-- ENDIF -->

подчеркиваю, это те рабочие конструкции, которые используются на этом сайте мною и они не являются прямыми инструкциями от разработчика модуля «Files».

 


2. Модуль "Users", шаблон страницы c детальными публичными данными пользователя - users.details.tpl

находим что-то вроде:

<!-- IF {USERS_DETAILS_AVATAR} -->
<tr>
    <td>{PHP.L.Avatar}:</td>
    <td>{USERS_DETAILS_AVATAR}</td>
</tr>
<!-- ENDIF -->
<!-- IF {USERS_DETAILS_PHOTO} -->
<tr>
    <td>{PHP.L.Photo}:</td>
    <td>{USERS_DETAILS_PHOTO}</td>
</tr>
<!-- ENDIF -->

 

Обрамляем его в условие проверки установлен и активен ли плагин UserImages, который у нас должен быть обязательно деинсталирован в системе!
Код выше или удаляем или помещаем в условие по примеру ниже:

<!-- IF {PHP|cot_plugin_active('userimages')} -->
<!-- IF {USERS_DETAILS_AVATAR} -->
<tr>
    <td>{PHP.L.Avatar}:</td>
    <td>{USERS_DETAILS_AVATAR}</td>
</tr>
<!-- ENDIF -->
<!-- IF {USERS_DETAILS_PHOTO} -->
<tr>
    <td>{PHP.L.Photo}:</td>
    <td>{USERS_DETAILS_PHOTO}</td>
</tr>
<!-- ENDIF -->
<!-- ENDIF -->

 

А теперь смело прописываем нашу инструкцию нашему Cotonti, который передаст её модулю «Files» для вызова и получения аватарки пользователя, владельца этой страницы.

<!-- IF {PHP|cot_module_active('files')} -->
    <!-- IF {USERS_DETAILS_AVATAR_ID} > 0 -->
    <img class="uk-border-rounded" src="{USERS_DETAILS_AVATAR_URL}" width="155" height="155" alt="{USERS_DETAILS_NICKNAME}">
    <!-- ELSE -->
    <img class="uk-border-rounded" width="155" height="155" alt="{USERS_DETAILS_NICKNAME}" src="{PHP.cfg.themes_dir}/{PHP.cfg.defaulttheme}/img/user-noavatar.webp">
    <!-- ENDIF -->
<!-- ENDIF -->

Как видите - все реально просто, - нужно просто разок разобраться.

 


 

3. Модуль "Pages", шаблон страницы полной новости или статьи - page.tpl

Прописываем нашу инструкцию нашему Cotonti, который передаст её модулю «Files» для вызова и получения аватарки автора статьи на странице полной новости.

<!-- IF {PHP|cot_module_active('files')} -->
    <!-- IF {PAGE_OWNER_AVATAR_ID} > 0 -->
    <img class="uk-border-rounded" src="{PAGE_OWNER_AVATAR_URL}" width="75" height="75" alt="{PAGE_OWNER_NICKNAME}">
    <!-- ELSE -->
    <img class="uk-border-rounded" width="75" height="75" alt="{PAGE_OWNER_NICKNAME}" src="{PHP.cfg.themes_dir}/{PHP.cfg.defaulttheme}/img/user-noavatar.webp">
    <!-- ENDIF -->
<!-- ENDIF -->

Удобство, подобных конструкций в том, что мы в разных локациях сайта можем применять разные классы и их свойства, - это называется - гибкость, - одна из прелестей Cotonti.

Например, здесь класс: class="uk-border-rounded" которому, в нашем файле стилей (my-style.css) можем задать нужное нам свойство: .uk-border-rounded {  border-radius: 14px;} и тут же на месте задать размеры картинки, - width="75" height="75" и т.д.

 


 

4. Модуль "Pages", шаблон страницы со списком статей или страниц в категории - page.list.tpl

Уже по накатанной, совершенно легко прописываем нашу инструкцию нашему Cotonti, который передаст её модулю «Files» для вызова и получения аватарки авторов статей и страниц на странице списка статей в категории.

<!-- IF {PHP|cot_module_active('files')} -->
    <!-- IF {LIST_ROW_OWNER_AVATAR_ID} > 0 -->
    <img class="uk-border-rounded" src="{LIST_ROW_OWNER_AVATAR_URL}" width="50" height="50" alt="{LIST_ROW_OWNER_NICKNAME}">
    <!-- ELSE -->
    <img class="uk-border-rounded" width="50" height="50" alt="{LIST_ROW_OWNER_NICKNAME}" src="{PHP.cfg.themes_dir}/{PHP.cfg.defaulttheme}/img/user-noavatar.webp">
    <!-- ENDIF -->
<!-- ENDIF -->

5.  Аватар пользователя в шапке сайта header.tpl или в каком-либо блоке меню личного кабинета 

то есть когда пользователь видит свой собственный аватар в меню, которое доступно только ему лично!
Прописываем по примеру ниже:

<!-- IF {PHP|cot_module_active('files')} -->                    
    <!-- IF {PHP.usr.profile.user_avatar} -->
    <img class="uk-border-rounded" src="{PHP.usr.profile.user_avatar|cot_filesUserAvatarUrl($this)}" alt="{PHP.usr.name}" width="50" height="50" />
    <span class="uk-visible@m uk-text-middle uk-text-bold uk-link-scmtdlight uk-margin-left">{PHP.usr.name}</span>
    <!-- ELSE -->
    <img class="uk-border-circle" src="{PHP.cfg.themes_dir}/{PHP.cfg.defaulttheme}/img/user-noavatar.webp" alt="{PHP.usr.name}" width="50" height="50" />
    <span class="uk-visible@m uk-text-truncate uk-text-middle uk-text-bold uk-link-scmtdlight uk-margin-left">{PHP.usr.name}</span>
    <!-- ENDIF -->
<!-- ENDIF -->

или вот так:

<!-- IF {PHP|cot_module_active('files')} -->
	<!-- IF {PHP.usr.profile.user_avatar} -->
	<img class="uk-border-circle" src="{PHP.usr.profile.user_avatar|cot_filesUserAvatarUrl($this)}" alt="{PHP.usr.name}" width="80" height="80" />
	<!-- ELSE -->
	<img class="uk-border-circle" src="{PHP.cfg.themes_dir}/{PHP.cfg.defaulttheme}/img/user-noavatar.webp" alt="{PHP.usr.name}" width="80" height="80" />
	<!-- ENDIF -->
<!-- ENDIF -->

Разумеется классы у вас могут быть свои, я лишь показываю как сделано у меня, важна сама инструкция модулю файлов.

 

Гибко, красиво, просто - спасибо разработчику модуля «Files» - Alex300, который одновременно, является ведущим разработчиком движка Cotonti на сегодняшний день.
Автора модуля, поддержать и поблагодарить можно на его официальном сайте.

 

Отредактировано: webitproff (08.03.2025 08:18, 1 месяц назад)
Разработка и модернизация сайтов на Cotonti. Поддержка, - сборка фриланс биржи, маркетплейс фриланс услуг, торговая площадка цифровых товаров. Доработка шаблонов на Cotonti, верстка шаблонов по макету на Bootstrap 5 и UIkit 3. Модули и плагины для Cotonti, создание Landing Page с админкой. Адаптивный дизайн для сайта.

CleanCot © Суббота, 19 апреля 2025 16:03


Версия PHP: 8.2.25
Страница создана за 0.08562 секунды

Режим совместимости: legacyMode Включён

Версия ядра: v.0.9.26 beta / Версия БД: v.0.9.26