Содержание
Плагин smfuser
Этот плагин позволяет добавлять ссылки на профили пользователей на форуме с помощью конструкции [[user>username]].
Особенности:
- Разные иконки для разных полов пользователя.
- Если пользователь заполнил хоть какую-нибудь информацию в профиле, то при наведении мышки на ссылку на его профиль появится всплывающее окошко. В нём отображается имя пользователя, его аватар, подпись под аватаром и местоположение.
- При указании несуществующего пользователя его имя будет выведено простым текстом.
- Можно с помощью конструкции [[user>username|text]] вместо имени пользователя выводить в качестве ссылки произвольный текст.
- Никакое форматирование внутри конструкции не поддерживается, включая вставку картинок как ссылок на профили пользователей.
- Плагин содержит helper класс
smfuser_main
, который может быть использован для получения данных о пользователе и рендеринга ссылки на профиль в любом месте кода DokuWiki (в другом плагине, шаблоне и т.д.). Пример использования см. ниже.
Дополнительные возможности
Если вы хотите, чтобы везде, где DokuWiki выводит имена пользователей (например, на страницах с историей изменений), вместо них при наличии плагина smfuser
отображалась бы ссылка на профиль соответствующего пользователя, то измените файл inc/common.php следующим образом:
Где-то в середине функции editorinfo замените 2 строчки
case 'username': return hsc($info['name']);
на следующую конструкцию:
case 'username': if(!plugin_isdisabled('smfuser')) { $smfuser =& plugin_load('helper', 'smfuser_main'); return $smfuser->renderProfileLink($smfuser->getUserInfo($info['name'])); } else { return hsc($info['name']); }
Кроме того, можно переопределить стандартную функцию tpl_userinfo(), которая используется в шаблонах для вывода информации о текущем пользователе, добавив в неё ссылку на профиль пользователя. Для этого необходимо добавить в используемый вами шаблон функцию следующего содержания:
/* * Замена стандартной функции 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; }
После чего заменить в шаблоне вызов tpl_userinfo() вызовом добавленной функции tpl_smfuserinfo().
Альтернативные иконки
Обсуждение и предложения
Если вам есть что сказать по поводу этого плагина, то вы можете сделать это в соответствующей теме форума или написав его .
Что надо доделать
- Попытаться сделать так, что когда popup отображается с краю экрана он бы не вылезал за границы. Для этого требуется JS и если кто готов помочь с реализацией - велкам.
Пример использования
Тестирование: просто, вот с текстом, а вот или например и . В целом работает, есть только мелкие недочёты. У , которые вообще ничего не заполнили в профиле, никакого popup не будет. А так даже мелкие нормально отображаются. Стандартные аватары SMF -
Ах да, среди нас таки есть .