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

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

29.06
144
51 016
UserBox - вывод информации о любом пользователе в любом месте сайта на DLE 9.8 - 10.1 (Обновлен до v.1.3)


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

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

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

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

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


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

- Одна обязательная переменная в строке подключения - &userName. Именно через эту переменную модуль определяет для какого юзера выводить информацию.
- Добавляет один запрос на каждого выводимого модулем пользователя. Т.е. если выводить информацию об авторе новости в кратких новостях и на главной странице сайта выводится 30 новостей, которые опубликовали 10 пользователей (по три новости каждый) - то модуль при первом обращении к странице добавит 10 запросов в БД, после чего данные будут браться уже из кеша (при включенном кешировании на сайте). Если на второй странице попадётся пользователь с первой страницы, то запрос в БД на этого пользователя делаться не будет.
- Собственные теги для вывода в шаблоне. Отдельные теги сделаны для того, что бы не было конфликтов и для упрощения обработки этих тегов в модуле, что сократило кода процентов на 10-15 точно.
- Собственная папка с шаблонами. Так же для удобства использования.
- Выводятся не все данные. Т.к. выводить все данные о пользователе не имеет смысла, а так же в целях экономии ресурсов сервера выводятся следующие данные:
  1. email - Email пользователя
  2. name - Логин
  3. news_num - Кол-во новостей
  4. user_id - ID пользователя
  5. comm_num - Кол-во комментариев
  6. user_group - Группа (форматированный вывод с префиксами и суффиксами)
  7. lastdate - Дата последнего посещения сайта
  8. reg_date - Дата регистрации
  9. info - Информация о пользователе
  10. foto - URL аватарки (или настраиваемая заглушка)
  11. fullname - Полное имя
  12. land - Место проживания
  13. icq - Номер ICQ
  14. Дополнительные поля

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

Установка:


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


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


вот такой вид блока в полной новости я сделал для покупателей шаблона Madison в довесок к последнему обновлению шаблона.
UserBox - вывод информации о любом пользователе в любом месте сайта на DLE 9.8 - 10.1 (Обновлен до v.1.3)


{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.



Надеюсь модуль будет вам интересен и полезен. Жду отзывов!
Обновлено: 3 января 2014
(Добавлена возможность вывода информации об авторе новости вне шаблона полной новости.)

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

Комментарии

ПафНутиЙ
ПафНутиЙ 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
Да, спасибо. Все работает.

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

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

Информация

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