Интеграция в шаблоны темы сайта, теги и конструкции для вызова аватара пользователей в разных локациях сайта.
Если вы интегрируете модуль «Files» на рабочий проект, уже с приличным "багажом" данных, - делаем бекап сайта и разворачиваем его где-то на локалке или поддомене, чтобы затем "брать" те же картинки или аватарки от-туда.
Потому что первым делом, перед интеграцией вывода аватарок через модуль "Files" нам нужно удалить плагин UserImages!
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».
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 -->
Как видите - все реально просто, - нужно просто разок разобраться.
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"
и т.д.
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 -->
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 на сегодняшний день.
Автора модуля, поддержать и поблагодарить можно на его официальном сайте.
CleanCot © Суббота, 19 апреля 2025 16:03
Версия PHP: 8.2.25
Страница создана за 0.08562 секунды
Режим совместимости: legacyMode Включён
Версия ядра: v.0.9.26 beta / Версия БД: v.0.9.26