UserBox - вывод информации о любом пользователе в любом месте сайта на DLE 9.8 - 10.1 (Обновлен до v.1.3)
29.06
144
64 017
UserBox - простой модуль для вывода информации о любом пользователе в любом месте сайта на DLE 9.8 - 10.0.
Понадобится, если нужно вывести не только аватар с минимальной нагрузкой на сайт!
Модуль будет полезен тогда, когда нужно вывести информацию о каком-либо пользователе в произвольном месте сайта.
Например кулинарным сайтам, где нужно вывести информацию об авторе рецепта непосредственно в рецепт или личным (коллективным) блогам.
Краткая история о причинах создания модуля:
В сети есть один хак, который выводит аватар пользователя, добавившего новость. И у хака был один недостаток - он был хаком, а правки движка я не очень люблю. И вот на досуге я написал небольшой модуль, так и не увидевший свет.С задачей он справлялся, но тут же захотелось вывести общее количество новостей пользователя и когда он был последний раз на сайте. А если я захочу вывести ещё и информацию о пользователе, а так же оформить блок в стиль сайта? Тут уже не обойтись без шаблона.
В итоге тот простой модуль перерос в чуть более сложный, который и получил название UserBox.
Возможности модуля UserBox:
- Подключение одной строкой.
- Вывод данных из профиля пользователя в любом месте сайта, на основе логина пользователя.
- Вывод дополнительных полей профиля пользователя (выводятся только те, которые не являются личными).
- Возможность использовать собственные шаблоны для вывода информации.
- Настраиваемая заглушка-аватар на случай, если у пользователя нет аватара и нужно вывести не стандартную заглушку.
- Кеширование результата работы модуля. Кеш создаётся с учётом логина пользователя, дефолтного аватара и используемого шаблона вывода модуля.
- Вывод информации о текущем пользователе вне шаблона login.tpl
- Вывод информации об авторе новости вне шаблона полной новости.
Особенности:
- Одна обязательная переменная в строке подключения - &userName. Именно через эту переменную модуль определяет для какого юзера выводить информацию.- Добавляет один запрос на каждого выводимого модулем пользователя. Т.е. если выводить информацию об авторе новости в кратких новостях и на главной странице сайта выводится 30 новостей, которые опубликовали 10 пользователей (по три новости каждый) - то модуль при первом обращении к странице добавит 10 запросов в БД, после чего данные будут браться уже из кеша (при включенном кешировании на сайте). Если на второй странице попадётся пользователь с первой страницы, то запрос в БД на этого пользователя делаться не будет.
- Собственные теги для вывода в шаблоне. Отдельные теги сделаны для того, что бы не было конфликтов и для упрощения обработки этих тегов в модуле, что сократило кода процентов на 10-15 точно.
- Собственная папка с шаблонами. Так же для удобства использования.
- Выводятся не все данные. Т.к. выводить все данные о пользователе не имеет смысла, а так же в целях экономии ресурсов сервера выводятся следующие данные:
- email - Email пользователя
- name - Логин
- news_num - Кол-во новостей
- user_id - ID пользователя
- comm_num - Кол-во комментариев
- user_group - Группа (форматированный вывод с префиксами и суффиксами)
- lastdate - Дата последнего посещения сайта
- reg_date - Дата регистрации
- info - Информация о пользователе
- foto - URL аватарки (или настраиваемая заглушка)
- fullname - Полное имя
- land - Место проживания
- icq - Номер ICQ
- Дополнительные поля
Полный список поддерживаемых модулем тегов приведён в шаблоне userbox/dafault.tpl
Установка:
- Распаковать содержимое папки upload из архива в корень сайта, при этом не забывайте переименовать папку THEME в соответствии с названием текущего шаблона сайта.
- В нужном месте любого шаблона сайта прописать:
где login - логин пользователя.{include file="engine/modules/userbox.php?&userName=login"}
- Всё!
Примеры использования:
вот такой вид блока в полной новости я сделал для покупателей шаблона Madison в довесок к последнему обновлению шаблона.
{include file="engine/modules/userbox.php?&userName={login}"}
выведет информацию о авторе, если эту строку прописать в шаблоне новости (краткой или полной) или комментария (к примеру можно вывести рейтинг пользователя).{include file="engine/modules/userbox.php?&userName=this"}
выведет информацию о текущем пользователе, эту конструкцию можно использовать для вывода информации о текущем пользователе вне шаблона login.tpl.{include file="engine/modules/userbox.php?&userName=thisNewsId"}
выведет информацию об авторе новости при просмотре полной новости (при этом добавится один запрос). Подобная конструкция нужна на случай вывода вне шаблона полной новости (например в main.tpl). При выводе в шаблоне полной новости используйте &userName={login}
{include file="engine/modules/userbox.php?&userName=Бот&template=newtemplate&defAvatar=images/picture.jpg"}
Выведет информацию о пользователе с логином Бот, для вывода будет использован шаблон, лежащий в папке userbox/newtemplate.tpl, при этом если у пользователя нет аватарки (или не задан gravatar в настройках) - будет выведено изображение из папки images/picture.jpg.Скачать модуль UserBox, как всегда, можно только с github т.к. там удобнее поддерживать код и всегда актуальная версия.
Надеюсь модуль будет вам интересен и полезен. Жду отзывов!
Обновлено: 3 января 2014
(Добавлена возможность вывода информации об авторе новости вне шаблона полной новости.)
(Добавлена возможность вывода информации об авторе новости вне шаблона полной новости.)
Комментарии
Добавить комментарий
Комментировать могут только зарегистрированные пользователи