» » DLE-UserBox - вывод информации о любом пользователе в любом месте сайта на DLE 12.x - 13.x (Обновлен до v.1.6)

DLE-UserBox - вывод информации о любом пользователе в любом месте сайта на DLE 12.x - 13.x (Обновлен до v.1.6)

29.06
145
25 727
DLE-UserBox - вывод информации о любом пользователе в любом месте сайта на DLE 12.x - 13.x (Обновлен до v.1.6)


UserBox - простой модуль для вывода информации о любом пользователе в любом месте сайта на DLE 9.8 - 10.0.
Понадобится, если нужно вывести не только аватар с минимальной нагрузкой на сайт!
Модуль будет полезен тогда, когда нужно вывести информацию о каком-либо пользователе в произвольном месте сайта.
Например кулинарным сайтам, где нужно вывести информацию об авторе рецепта непосредственно в рецепт или личным (коллективным) блогам.

Краткая история о причинах создания модуля:

В сети есть один хак, который выводит аватар пользователя, добавившего новость. И у хака был один недостаток - он был хаком, а правки движка я не очень люблю. И вот на досуге я написал небольшой модуль, так и не увидевший свет.
С задачей он справлялся, но тут же захотелось вывести общее количество новостей пользователя и когда он был последний раз на сайте. А если я захочу вывести ещё и информацию о пользователе, а так же оформить блок в стиль сайта? Тут уже не обойтись без шаблона.
В итоге тот простой модуль перерос в чуть более сложный, который и получил название UserBox.

Возможности модуля UserBox:

  • Подключение одной строкой.
  • Вывод данных из профиля пользователя в любом месте сайта, на основе логина пользователя или текущего пользователя.
  • Вывод дополнительных полей профиля пользователя (выводятся только те, которые не являются личными).
  • Возможность использовать собственные шаблоны для вывода информации.
  • Возможность добавлять свои поля с таблицы _users.
  • Для параметра this не используется дополнительный запрос в БД.
  • Настраиваемая заглушка-аватар на случай, если у пользователя нет аватара и нужно вывести не стандартную заглушку.
  • Кеширование результата работы модуля. Кеш создаётся с учётом логина пользователя, дефолтного аватара и используемого шаблона вывода модуля.
  • Вывод информации о текущем пользователе вне шаблона login.tpl
  • Вывод информации об авторе новости вне шаблона полной новости.
  • Кеширование результата работы модуля. Возможность включить кэширование данных если в настройках оно не включено.


Особенности:


- Одна обязательная переменная в строке подключения - &userName. Именно через эту переменную модуль определяет для какого юзера выводить информацию.
- Добавляет один запрос на каждого выводимого модулем пользователя. Т.е. если выводить информацию об авторе новости в кратких новостях и на главной странице сайта выводится 30 новостей, которые опубликовали 10 пользователей (по три новости каждый) - то модуль при первом обращении к странице добавит 10 запросов в БД, после чего данные будут браться уже из кеша (при включенном кешировании на сайте). Если на второй странице попадётся пользователь с первой страницы, то запрос в БД на этого пользователя делаться не будет. Если же пользователь видит информацию о самом себе, то запрос не выполняеться а берется с глобальной переменой.
Собственная папка с шаблонами. Для удобства использования.
Можно добавлять свои ячейки с таблицы _users
Модуль выводит следующие данные:
  1. Ник пользователя
  2. E-mail пользователя
  3. ID пользователя
  4. Количество новостей и ссылка на все новости пользователя
  5. Количество комментариев и ссылка на все комментарии пользователя
  6. Группа пользователя (форматированный вывод с префиксами и суффиксами)
  7. Дата последнего входа
  8. Дата регистрации
  9. Поле «О Себе»
  10. Поле «Подпись»
  11. Аватар пользователя
  12. Полное имя пользователя
  13. Место жительства пользователя
  14. Забанен ли пользователь
  15. Дополнительные поля пользователя (выводятся только те, которые не являются личными)

Полный список поддерживаемых модулем тегов приведён в шаблоне userbox/dafault.tpl



Установка:


  1. Распаковать содержимое папки upload из архива в корень сайта, при этом не забывайте переименовать папку THEME в соответствии с названием текущего шаблона сайта.
  2. В нужном месте любого шаблона сайта прописать:
    {include file="engine/modules/userbox.php?&userName=login"}
    где login - логин пользователя.
  3. Всё!


Примеры использования:


вот такой вид блока в полной новости я сделал для покупателей шаблона 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.


Дополнительная документация от автора релиза 1.6



Надеюсь модуль будет вам интересен и полезен. Жду отзывов!
Обновлено: 18 ноября 2018
(Релиз версии 1.6)

Похожие материалы

Комментарии

ПафНутиЙ
ПафНутиЙ 1 октября 2013 16:43
Попробую подвести вас к решению задачи (элементарнейшей по своей сути, нужно лишь немного подумать). Поэтому буду задавать вопросы:
1. В каком файле хранится шаблон вывода информации о пользователе при просмотре его профиля (sait.net/user/vasyok28)?
vasyok28
vasyok28 1 октября 2013 22:12
main.tpl
ПафНутиЙ
ПафНутиЙ 2 октября 2013 01:08
Сверялись с документацией по движку?
vasyok28
vasyok28 2 октября 2013 09:29
ой извиняюсь, вчера с работы поздно пришел, и немножко не то написал.
Все делаю в userinfo.tpl
Вот и майн.тпл http://rghost.ru/49096165
vasyok28
vasyok28 3 октября 2013 21:25
Люди помогите, проблему еще не решил recourse
ПафНутиЙ
ПафНутиЙ 3 октября 2013 22:02
Цитата: vasyok28
Все делаю в userinfo.tpl

А как в userinfo.tpl вывести имя пользователя?
vasyok28
vasyok28 3 октября 2013 22:14
{usertitle}
- Вывод имени пользователя
ПафНутиЙ
ПафНутиЙ 3 октября 2013 22:25
А теперь давайте подумаем, как же на странице пользователя в шаблоне userinfo.tpl в строку подключения модуля передать этого пользователя? smile
vasyok28
vasyok28 3 октября 2013 22:35
Там не все так просто.
Верстка блочная
userinfo.tpl получается что это середина там где идет новости.
Ваш модуль подключен в main.tpl правый блок.
можно посмотреть здесь http://rghost.ru/49096165
				[aviable=userinfo]
				{include file="engine/modules/userbox.php?&userName=vasyok28"}
				[/aviable]

{usertitle} не работает no
ПафНутиЙ
ПафНутиЙ 3 октября 2013 22:40
что мешает сделать для страницы пользователя отдельную вёрстку?
vasyok28
vasyok28 3 октября 2013 22:42
Проблема в том что я не нашел документацию и не знаю как, по этому взял ваш модуль
ПафНутиЙ
ПафНутиЙ 3 октября 2013 22:46
не знаете как верстать? - обратитесь к фрилансерам или к тем, кто поможет бесплатно.
Я не вижу в вашем случаи совершенно никаких препятствий кроме как ваше нежелание что-то делать.
vasyok28
vasyok28 3 октября 2013 22:49
Верстать то я умею, только не знаю как верстать страницу пользователя под отдельную верстку.
sergioshevcini
sergioshevcini 18 октября 2013 11:06
Приветствую! Не могу найти никак - думаю, что это реально, но как организовать не понимаю..подскажите пожалуйста - как вывести на главную последних зарег. пользователей? Ну грубо говоря, например, как здесь spishy.ru. Буду очень признателен за Ваш совет!
ПафНутиЙ
ПафНутиЙ 25 октября 2013 15:06
модуль не умеет выводить список пользователей. Он может вывести только одного.
xeon01
xeon01 4 декабря 2013 10:17
Доброго день! Павел, как всегда - круто и очень кстати! Спасибо вам.
Возникла такая проблема,как вывести шаблон вывода блока, не из шаблона по дефолту, а из иного? Если быть точнее, то дефолтным, именно для модуля нужно задать адрес site.ru/templates/other/ А здесь уже будет папка userbox и файлы.
Спасибо!
ПафНутиЙ
ПафНутиЙ 4 декабря 2013 10:30
В файле модуля в трёх местах заменить
userbox/

на
other/userbox/
xeon01
xeon01 4 декабря 2013 15:21
Cпасибо большое!
xeon01
xeon01 4 декабря 2013 16:21
Отсутствует файл шаблона: default/other/userbox/default.tpl = (
ПафНутиЙ
ПафНутиЙ 4 декабря 2013 16:26
Ну так файл шаблона положите по этому адресу
xeon01
xeon01 4 декабря 2013 16:39
Проблема в том, что файлы модуля хотелось бы вывести в отдельную папку. Тобишь в папку /templates/other/userbox/default.tpl
При том, что other - не папка шаблона, а папка с шаблонами от разных модулей.
А шаблоном является всё тот же templates/default
souz21
souz21 12 марта 2014 12:29
У меня сайт в кодировке 1251.
Перекодировал файл userbox.php в windows 1251 и все равно отображается в неверной кодировке.
souz21
souz21 12 марта 2014 12:43
Перекодировал. Как отобразить в shortstory группу пользователя, которой принадлежит новость?
ПафНутиЙ
ПафНутиЙ 12 марта 2014 23:12
кеш dle очистите, группу пользователя выводить тегом
{user_group}
souz21
souz21 13 марта 2014 10:28
ПафНутиЙ,
просто вставить {user_group}, или как? У меня отображается сам код только {user_group}
souz21
souz21 14 марта 2014 21:52
Вопрос с отображением группы не решил.
ПафНутиЙ
ПафНутиЙ 14 марта 2014 22:21
как выглядит строка подключения модуля? что прописано в шаблоне модуля?
souz21
souz21 14 марта 2014 22:38
Цитата: ПафНутиЙ

{include file="engine/modules/userbox.php?&userName={user_group}&userbox=default"}
В шаблоне:
ПафНутиЙ
ПафНутиЙ 14 марта 2014 23:35
{include file="engine/modules/userbox.php?&userName=this&userbox=default"}

нужно так.
или так:
{include file="engine/modules/userbox.php?&userName={login}&userbox=default"}
souz21
souz21 14 марта 2014 23:46
Да, спасибо. Все работает.

Добавить комментарий

Комментировать могут только зарегистрированные пользователи

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.