Плагин smfuser Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
projects:portal:плагин_smfuser [2010/10/17 02:19]
создано
projects:portal:плагин_smfuser [2012/03/13 18:16] (текущий)
Строка 1: Строка 1:
 ====== Плагин smfuser ====== ====== Плагин smfuser ======
  
-Пока что вся инфа тут:+Этот плагин позволяет добавлять ссылки на профили пользователей на форуме с помощью конструкции **%%[[user>​username]]%%**.
  
-[[site:​smfuser-plugin|Плагин smfuser]]+Особенности:
  
 +  * Разные иконки для разных полов пользователя.
 +  * Если пользователь заполнил хоть какую-нибудь информацию в профиле,​ то при наведении мышки на ссылку на его профиль появится всплывающее окошко. В нём отображается имя пользователя,​ его аватар,​ подпись под аватаром и местоположение.
 +  * При указании несуществующего пользователя его имя будет выведено простым текстом.
 +  * Можно с помощью конструкции ​ **%%[[user>​username|text]]%%** вместо имени пользователя выводить в качестве ссылки произвольный текст.
 +  * Никакое форматирование внутри конструкции не поддерживается,​ включая вставку картинок как ссылок на профили пользователей.
 +  * Плагин содержит [[http://​www.dokuwiki.org/​devel:​helper_plugins|helper]] класс ''​smfuser_main'',​ который может быть использован для получения данных о пользователе и рендеринга ссылки на профиль в любом месте кода DokuWiki (в другом плагине,​ шаблоне и т.д.). Пример использования см. ниже.
 +
 +<​note>​Скачать пока нельзя поскольку идёт активная доработка до нормального состояния.</​note> ​
 +
 +===== Дополнительные возможности =====
 +
 +Если вы хотите,​ чтобы везде, где DokuWiki выводит имена пользователей (например,​ на страницах с историей изменений),​ вместо них при наличии плагина ''​smfuser''​ отображалась бы ссылка на профиль соответствующего пользователя,​ то измените файл **inc/​common.php** следующим образом:​
 +
 +Где-то в середине функции //​editorinfo//​ замените 2 строчки
 +
 +<code php>
 +case '​username':​
 +  return hsc($info['​name'​]);​
 +</​code>​
 +
 +на следующую конструкцию:​
 +
 +<code php>
 +case '​username':​
 +  if(!plugin_isdisabled('​smfuser'​)) {
 +    $smfuser =& plugin_load('​helper',​ '​smfuser_main'​);​
 +    return $smfuser->​renderProfileLink($smfuser->​getUserInfo($info['​name'​]));​
 +  } else {
 +    return hsc($info['​name'​]);​
 +  }
 +</​code>​
 +
 +Кроме того, можно переопределить стандартную функцию //​tpl_userinfo()//,​ которая используется в шаблонах для вывода информации о текущем пользователе,​ добавив в неё ссылку на профиль пользователя. Для этого необходимо добавить в используемый вами шаблон функцию следующего содержания:​
 +
 +<code php>
 +/*
 + * Замена стандартной функции tpl_userinfo() на функцию,​ показывающую ссылку на профиль пользователя в SMF
 +*/
 +function tpl_smfuserinfo() {
 +  global $lang;
 +  global $INFO;
 +  ​
 +  if (!plugin_isdisabled('​smfuser'​)) {
 +    $smfuser =& plugin_load('​helper',​ '​smfuser_main'​);​
 +    if (isset($_SERVER['​REMOTE_USER'​])) {
 +      print $lang['​loggedinas'​].':​ '​.$smfuser->​renderProfileLink($smfuser->​getUserInfo($INFO['​userinfo'​]['​name'​]),​ '​top'​);​
 +      return true;
 +    }
 +  } else {
 +    return tpl_userinfo();​
 +  }
 +  return false;
 +}
 +</​code>​
 +
 +После чего заменить в шаблоне вызов //​tpl_userinfo()//​ вызовом добавленной функции //​tpl_smfuserinfo()//​.
 +
 +===== Альтернативные иконки =====
 +
 +От пользователя [[user>​KЕIII]]:​
 +
 +пример иконки male {{http://​static.itmages.ru/​i/​10/​1017/​h_1287310087_4665d4068b.png |male}} {{http://​static.itmages.ru/​i/​10/​1017/​h_1287313610_f9ad581947.png |male}}
 +
 +пример иконки female {{http://​static.itmages.ru/​i/​10/​1017/​h_1287310087_c9306d5d4e.png |female}} {{http://​static.itmages.ru/​i/​10/​1017/​h_1287313610_7ff1fa087d.png |female}}
 +
 +пример иконки unknown {{http://​static.itmages.ru/​i/​10/​1017/​h_1287310087_00a9029b38.png |unknown}} {{http://​static.itmages.ru/​i/​10/​1017/​h_1287312692_436a20150b.png |unknown}}
 +
 +===== Обсуждение и предложения =====
 +
 +Если вам есть что сказать по поводу этого плагина,​ то вы можете сделать это в [[http://​forum.ubuntu.ru/​index.php?​topic=118674.0|соответствующей теме форума]] или написав его [[user>​Malamut|автору]].
 +
 +===== Что надо доделать =====
 +
 +  * Попытаться сделать так, что когда popup отображается с краю экрана он бы не вылезал за границы. Для этого требуется JS и если кто готов помочь с реализацией - велкам.
 +
 +===== Пример использования =====
 +
 +Тестирование:​ [[user>​Malamut]] ​ просто,​ [[user>​Malamut|так]] вот с текстом,​ а вот [[user>​Agafonov]] или например [[user>​kwah]] и [[user>​BasicXP]]. В целом работает,​ есть только мелкие недочёты. У [[user>​Zeliboba2|пользователей]],​ которые вообще ничего не заполнили в профиле,​ никакого popup не будет. А так даже мелкие [[user>​cargo|аватары]] нормально отображаются. Стандартные аватары SMF - [[user>​stmc|тоже]]
 +
 +Ах да, среди нас таки есть [[user>​Alie Alexandross|девушки]] ;-).