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

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

29.06
144
51 334
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
(Добавлена возможность вывода информации об авторе новости вне шаблона полной новости.)

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

Комментарии

sashok7062005
sashok7062005 28 января 2015 01:05
ПафНутиЙ,
На уровне шаблона модуля, или на уровне шаблона сайта?
sashok7062005
sashok7062005 28 января 2015 01:07
На уровне шаблона модуля, или на уровне шаблона сайта?
ПафНутиЙ
ПафНутиЙ 28 января 2015 17:28
шаблона модуля конечно же.
sashok7062005
sashok7062005 28 января 2015 18:34
Спасибо что подсказали в каком направлении копать, все нашел, еще раз - СПАСИБО.
Yanat
Yanat 15 мая 2015 22:06
Здравствуйте.
Это всё интересно и познавательно, но что то до меня не дошло...
Как вывести лишь рейтинг текущего пользователя на главной.
Прописал так но что то не то...

{include file="engine/modules/userbox.php?&userName=this&userbox={user_rating}"}

Буду признателен за помощь!
ПафНутиЙ
ПафНутиЙ 15 мая 2015 22:11
модуль не выводит рейтинг.
Yanat
Yanat 15 мая 2015 22:19
ПафНутиЙ,
Спасибо.

Может подскажите каким макаром можно вывести рейтинг на главной?
ПафНутиЙ
ПафНутиЙ 16 мая 2015 12:08
Ну разве что допилить модуль.
Yanat
Yanat 16 мая 2015 14:39
ПафНутиЙ,
Очень мудрое решение...
Когда ждать?
ПафНутиЙ
ПафНутиЙ 16 мая 2015 15:54
Вы наверное меня не правильно поняли. Я предложил вам самостоятельно попробовать реализовать вывод рейтинга т.к. я это делать не планирую.
Yanat
Yanat 16 мая 2015 16:01
ПафНутиЙ,
Жаль..., если б руки с того места росли...
Ну, спасибо и на этом.
albatros775
albatros775 13 июня 2015 15:16
Вот что у меня выводит:

Альбина
user_foto: /sp812/templates/sp812/dleimages/noavatar.png
user_news_num: не заполнено
user_comm_num: не заполнено
user_user_id: 2
user_user_group: Администраторы
user_lastdate: 13 июня 2015 14:50
user_reg_date: 10 июня 2015 22:50
user_info: не заполнено
ссылка на профиль юзера: /sp812/user/albatros775/

Почему не выводит аватарку и Фамилию?
ПафНутиЙ
ПафНутиЙ 15 июня 2015 22:38
- Выводятся не все данные. Т.к. выводить все данные о пользователе не имеет смысла, а так же в целях экономии ресурсов сервера выводятся следующие данные:
email - Email пользователя
name - Логин
news_num - Кол-во новостей
user_id - ID пользователя
comm_num - Кол-во комментариев
user_group - Группа (форматированный вывод с префиксами и суффиксами)
lastdate - Дата последнего посещения сайта
reg_date - Дата регистрации
info - Информация о пользователе
foto - URL аватарки (или настраиваемая заглушка)
fullname - Полное имя
land - Место проживания
icq - Номер ICQ
Дополнительные поля
albatros775
albatros775 1 июля 2015 19:39
ПафНутиЙ,
почему вместо авы ссылка к ней
ПафНутиЙ
ПафНутиЙ 1 июля 2015 21:15
А что должно быть, и чем отличается
/image.png

от
<img src="/image.png" >
?
SkiFteL
SkiFteL 12 июля 2015 20:45
Подскажите в чем проблема?
Не выводится аватар пользователя.
No avatar - выводится, а вот если загрузить свою авку то нет...

Заранее благодарен!
DLE 10.5
ПафНутиЙ
ПафНутиЙ 13 июля 2015 22:32
Лмбо баг на сайте, либо в модуле, для более точного диагноза нужен пациент.
Сержант
Сержант 3 августа 2015 20:31
Аналогично...
Если закоментировать сроки
// else
// $userField['foto'] = $config['http_home_url'] . 'templates/' . $config['skin'] . '/' . $cfg['defAvatar'];

то аватар чудным образом начинает отображаться, но тогда не будет выводиться дефолтный аватар, если у пользователя отсутствует загруженный.

К стати, у модуля iComm тоже беда с аватарками...ссылку на картинку выводит в таком виде:
/uploads/fotos/http://сайт.ру/uploads/fotos/foto_1.jpg


P.S. Шаблон дефолтный, версия DLE 10.5 (чистая).
Сержант
Сержант 6 августа 2015 19:44
В PHP не силен, но методом "тыка" пришел к выводу, что функция file_exists возвращает значение false вместо true.

Аватарка начинает корректно отображаться, если написать так:
// Если у нас
if ($userField['foto'])
$userField['foto'] = $userField['foto'];
else
$userField['foto'] = $config['http_home_url'] . 'templates/' . $config['skin'] . '/' . $cfg['defAvatar'];

но это бред какой-то...
ПафНутиЙ
ПафНутиЙ 6 августа 2015 23:44
Так может не в модулях проблема?
klaf
klaf 4 сентября 2015 22:36
Ещё с июня известно о проблеме в модуле. И человек подсказал решение:
http://dle-faq.ru/modules/5943-userbox-vyvod-informacii-o-lyubom-polzovatele-v-lyubom-meste-sayta-na-dle-98-100.html
ПафНутиЙ
ПафНутиЙ 8 сентября 2015 16:34
Ждите обновления.
sashok7062005
sashok7062005 24 сентября 2015 18:54
Не всегда выводило фото пользователя, а в наглую вставляло заглушку , взял поменял блок с фото на такой ( с другого модуля)
	// Если у нас
					if($row['foto']) $foto = $config['uploads/fotos/']  . $row['foto'];
			else $foto = "{THEME}/dleimages/noavatar.png";
, все заработало. вопрос - можно так?
shim
shim 20 ноября 2015 13:32
dle 10.6
как на счет обновления модуля?
с выводом аватара проблема еще с 10.5 версии!
Crashlabs
Crashlabs 22 ноября 2015 13:28
Здравствуйте!
Хотелось бы уточнить планируется ли обновление модуля?
Модуль отлично выполняет свои функции за исключением вывода аватара. Аналогов других нет.
ПафНутиЙ
ПафНутиЙ 22 ноября 2015 20:05
shim,
Crashlabs,
У меня пока нет возможности заниматься этим модулем.
Но ведь модуль бесплатный, лежит на гитхабе, никто не запрещает зайти на https://github.com/dle-modules/userbox, форкнуть репозиторий, поправить то, что нужно и отправить pull-rquest, я с радостью его одобрю и будет новая версия.

shim,
не верю, что вы столько времени спокойно терпите ошибку в модуле.
Gott
Gott 7 ноября 2016 15:04
Как аву автора новости вывести ?
ПафНутиЙ
ПафНутиЙ 7 ноября 2016 22:57
{user_foto}
Gott
Gott 6 декабря 2016 02:25
Привет Пафнутий!
Помоги пожалуйста ;)

Возможно ли вывести аватар пользователя в краткой и полной новости (аватар автора)
Я прост не до конца понял как работает модуль и есть ли вообще в нем необходимая мне функция ?
ПафНутиЙ
ПафНутиЙ 6 декабря 2016 08:07
Да, возможно. Для этого достаточно уставновить модуль и вывести его на странице с шаблоном по умолчанию, в этом шаблоне как раз представлены все теги, которые может вывести модуль. Вас интересует тег {user_foto}

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

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

Информация

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