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

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

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

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

Комментарии

Gott
Gott 6 декабря 2016 09:14
Не пойму. Модуль я установил, что еще за шаблон ?
Можно по конкретней, как мне в shortstory и fullstory вывести аватар автора статьи ?
Gott
Gott 6 декабря 2016 09:20
Вообще не понятно, Как работает модуль ?
Мне нужно вывести аватар автора статьи в краткой и полной новости. Что именно мне прописывать Где мне прописывать ???
Gott
Gott 6 декабря 2016 09:40
Разобрался! Аватар выводит но теперь другая проблема) Последние аватарки не выводит а именно не правильно ссылку генерирует на картинку авы а все остальные выводит правильно.
вот пример (test11.topskript.net)
ПафНутиЙ
ПафНутиЙ 6 декабря 2016 09:56
Напишите тиккет: https://github.com/dle-modules/DLE-UserBox/issues/new
будет время - разберёмся.
Gott
Gott 19 декабря 2016 06:49
Генерирует неправильную ссылку
Вот так генерирует http://site.ru//site.ru/uloads/....
Помогите исправить (dle 11.2)
ПафНутиЙ
ПафНутиЙ 19 декабря 2016 08:26
Проблема известна, как будет время - решим её.
Альберт
Альберт 20 февраля 2017 11:10
Добрый день. Проблему ещё не успели посмотреть?
vados
vados 25 февраля 2017 23:48
Привет, Павел!
Беда с Userbox, он не хочет кешироваться на новом DLE 11.2
На 10.4, 4 запроса в БД и в папке создается кеш.
На 11.2, 24 запроса в БД и в папке не создается кеш.
После того как файл userbox.php удаляю, все нормально =(
+20 запросов происходит на любой странице, не важно, это профиль или страница с подключенным userbox.php.
vados
vados 26 февраля 2017 01:02
Сори, это мой косяк.
На старом шаблоне, он прекрасно кешируется
На новом(который верстаю) не кешируется
На дефолтном шаблоне, тоже не кешируется
Странно O_o
vados
vados 26 февраля 2017 02:00
Дико извиняюсь feel
На чистом движке, все прекрасно работает.
kumkuduk
kumkuduk 29 октября 2017 01:59
Спасибо огромное за модуль. У меня появилась такая необходимость. использую вывод шаблона
на fullstory include file="engine/modules/userbox.php?&userName=thisNewsId" там хочу выводить ссылку на ватсап чтобы написали автору на ватсап попробовал вот таким образом ну мало ли


pufgiven_whatsapp a href="https://api.whatsapp.com/send?phone=ufvalue_whatsapp&text=Здравствуйте, меня интересует публикация full-link"i class="fa fa-whatsapp" aria-hidden="true"/i Написать/a/ufgiven_whatsapp/p


как и ожидалось userbox.php не обрабатывает full-link нашел выход оставив на шаблоне только ufvalue_whatsapp и на fullstory прописать все остальное, такой метод работает но меня не устраивает. Хотелось бы userbox.php обробатовал full-link. Можете что то предложить или посоветовать? Если это небольшой кусок кода можете ли мне его написать? Спасибо заранее! Буду очень благодарен!

кавычки все есть! Просто убрал т.к не пропускает коментить!
ПафНутиЙ
ПафНутиЙ 29 октября 2017 09:54
Цитата: kumkuduk
как и ожидалось userbox.php не обрабатывает full-link

Для обработки тега fulllink вам необходимо реализовать его поддержку.
Для этого необходимо передать ID новости в модуль, обработать и получить полную ссылку но новость внутри модуля.
Смотрите как сделана обработка этого тега в show_short.php и сделайте это в модуле
kumkuduk
kumkuduk 31 октября 2017 10:39
Цитата: ПафНутиЙ

Для обработки тега fulllink вам необходимо реализовать его поддержку...[/url]



Не могбы подсказать правильные переменные!?

$full_link = $config['http_home_url'] . get_url( $row['category'] ) . "/" . $row['id'] . "-" . $row['alt_name'] . ".html";

Так выводить но переменные не читает!
ПафНутиЙ
ПафНутиЙ 3 ноября 2017 08:55
Цитата: kumkuduk
Не могбы подсказать правильные переменные!?

Всё необходимое можно найти в show_short.php
kumkuduk
kumkuduk 20 ноября 2017 20:05
Цитата: ПафНутиЙ
Цитата: kumkuduk
Не могбы подсказать правильные переменные!?

Всё необходимое можно найти в show_short.php

Перепробовал 1000 вариантов но никак не получается вывести {full-link} помоги пожалуйста)
ПафНутиЙ
ПафНутиЙ 20 ноября 2017 20:56
Цитата: kumkuduk
Перепробовал 1000

Боюсь в этом случае я не смогу помочь, потому что я знаю только пару-тройку вариантов, да и то, для их реализации нужны элементарные знания php и некое понимание того, что происходит.
Я могу скопипастить сюда кусок кода, отвечающий за вывод тега full-link, но сомневаюсь, что это вам поможет.
mavne215
mavne215 1 июня 2018 17:45
как вывести дополнительное поле пользователя?
если название дополнительное поле пользователя test
[ufgiven_test][ufvalue_test][/ufgiven_test]

не работает эти теги , ничего не выводит

не выводит аватар тоже . DLE 13.0
ПафНутиЙ
ПафНутиЙ 1 июня 2018 17:56
Цитата: mavne215
как вывести дополнительное поле пользователя?
если название дополнительное поле пользователя test
[ufgiven_test][ufvalue_test][/ufgiven_test]

не работает эти теги , ничего не выводит

не выводит аватар тоже . DLE 13.0

Это не удивительно потому что модуль разрабатывался под линейку dle 9-10.
вполне вероятно, что в 13 версии есть другой, встроенный способ вывести допполя.
Если вы хотите чтобы проблема была решена, пожалуйста, создайте тиккет на гитхабе: https://github.com/dle-modules/DLE-UserBox/issues/new
mavne215
mavne215 1 июня 2018 18:44
avatar rabotaet no doplnitelnoe pole net
mavne215
mavne215 5 июня 2018 21:35
не можете помочь решить проблему с дополнительное поле пользователя :(((
ПафНутиЙ
ПафНутиЙ 5 июня 2018 22:26
Цитата: mavne215
не можете помочь решить проблему с дополнительное поле пользователя :(((

Полный список поддерживаемых модулем тегов приведён в шаблоне userbox/dafault.tpl
посмотрите как там реализован вывод дополнительных полей.
mavne215
mavne215 6 июня 2018 22:10
DLE 13.0

[ufvalue_facebookprofile]


не выводит ничего. facebookprofile дополнительное поле пользователя
ПафНутиЙ
ПафНутиЙ 6 июня 2018 22:13
Цитата: mavne215
DLE 13.0

[ufvalue_facebookprofile]


не выводит ничего. facebookprofile дополнительное поле пользователя

Следите за тиккетом: https://github.com/dle-modules/DLE-UserBox/issues/7 как только модуль будет поддерживать DLE13, дополнительные поля заработают.
Gameer
Gameer 17 ноября 2018 12:05
Павел, обновил до 1.6 версии, думаю стоит обновить и у себя на блоге информацию.
Появилось время, займусь я твоими разработками с твоего позволения :)

p.s было б хорошо если бы ты поменял вывод комментариев от новых к старым, и форму добавления перед ними а не после. Так удобней намного wink

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

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

Информация

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