Различия
Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия Последняя версия Следующая версия справа и слева | ||
projects:portal:плагин_smfuser [2010/10/17 02:19] создано |
projects:portal:плагин_smfuser [2011/04/04 23:22] Страница site:плагин_smfuser переименована в projects:portal:плагин_smfuser |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== Плагин smfuser ====== | ====== Плагин smfuser ====== | ||
- | Пока что вся инфа тут: | + | <style right>//Автор [[user>Malamut]]//</style> |
- | [[site:smfuser-plugin|Плагин smfuser]] | + | Этот плагин позволяет добавлять ссылки на профили пользователей на форуме с помощью конструкции **%%[[user>username]]%%**. |
+ | Особенности: | ||
+ | |||
+ | * Разные иконки для разных полов пользователя. | ||
+ | * Если пользователь заполнил хоть какую-нибудь информацию в профиле, то при наведении мышки на ссылку на его профиль появится всплывающее окошко. В нём отображается имя пользователя, его аватар, подпись под аватаром и местоположение. | ||
+ | * При указании несуществующего пользователя его имя будет выведено простым текстом. | ||
+ | * Можно с помощью конструкции **%%[[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|девушки]] ;-). |