Pages, Articles & News
Tools & Plugins
Example / Placeholder Title


Description as an example placeholder. Sample text content for further customization of the "Index36" template.

You are free to edit and customize the template however you like. If you don’t have time or enough knowledge — you can always order template adaptation by contacting me via GitHub or private messages on the digital goods marketplace.

2025-03-07 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 на сегодняшний день.
Автора модуля, поддержать и поблагодарить можно на его официальном сайте.

 

This post was edited by webitproff (2025-03-08 08:18, 1 year ago)
Account