summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerrit Uitslag <klapinklapin@gmail.com>2014-02-15 00:42:05 +0100
committerGerrit Uitslag <klapinklapin@gmail.com>2014-02-15 00:42:05 +0100
commit7f081821c51e704c2720b993ca5364fa5e7e3663 (patch)
treed365ed9168da897eeb9b8ad04eec3c3d33451b12
parentb3d353e634614780173506006921f7545ca81305 (diff)
downloadrpg-7f081821c51e704c2720b993ca5364fa5e7e3663.tar.gz
rpg-7f081821c51e704c2720b993ca5364fa5e7e3663.tar.bz2
Extend showuseras config with username_link
uses the user interwiki link as profile link
-rw-r--r--inc/common.php25
-rw-r--r--lib/plugins/config/lang/en/lang.php9
-rw-r--r--lib/plugins/config/settings/config.metadata.php2
3 files changed, 27 insertions, 9 deletions
diff --git a/inc/common.php b/inc/common.php
index c18f43668..22e57b2c5 100644
--- a/inc/common.php
+++ b/inc/common.php
@@ -1465,6 +1465,7 @@ function userinfo($username = null) {
if(isset($info) && $info) {
switch($conf['showuseras']) {
case 'username':
+ case 'username_link':
$data['name'] = hsc($info['name']);
break;
case 'email':
@@ -1475,13 +1476,31 @@ function userinfo($username = null) {
}
}
}
+
+ /** @var Doku_Renderer_xhtml $xhtml_renderer */
+ static $xhtml_renderer = null;
+
if($data['link'] !== false && empty($data['link']['url'])){
- if($conf['showuseras'] == 'email_link') {
+
+ if(in_array($conf['showuseras'], array('email_link', 'username_link'))) {
if(!isset($info)) {
if($auth) $info = $auth->getUserData($username);
}
if(isset($info) && $info) {
- $data['link']['url'] = 'mailto:'.obfuscate($info['mail']);
+ if($conf['showuseras'] == 'email_link') {
+ $data['link']['url'] = 'mailto:'.obfuscate($info['mail']);
+ } else {
+ if(is_null($xhtml_renderer)){
+ $xhtml_renderer = p_get_renderer('xhtml');
+ }
+ if(empty($xhtml_renderer->interwiki)) {
+ $xhtml_renderer->interwiki = getInterwiki();
+ }
+ $shortcut = 'user';
+ $url = $xhtml_renderer->_resolveInterWiki($shortcut, $username);
+ list($url, $urlparam) = explode('?', $url, 2);
+ $data['link']['url'] = wl($url, $urlparam);
+ }
} else {
$data['link'] = false;
}
@@ -1495,8 +1514,6 @@ function userinfo($username = null) {
$data['userinfo'] = $data['name'];
} else{
$data['link']['name'] = $data['name'];
- /** @var Doku_Renderer_xhtml $xhtml_renderer */
- static $xhtml_renderer = null;
if(is_null($xhtml_renderer)){
$xhtml_renderer = p_get_renderer('xhtml');
}
diff --git a/lib/plugins/config/lang/en/lang.php b/lib/plugins/config/lang/en/lang.php
index cdef85a85..66d4dc356 100644
--- a/lib/plugins/config/lang/en/lang.php
+++ b/lib/plugins/config/lang/en/lang.php
@@ -245,10 +245,11 @@ $lang['xsendfile_o_2'] = 'Standard X-Sendfile header';
$lang['xsendfile_o_3'] = 'Proprietary Nginx X-Accel-Redirect header';
/* Display user info */
-$lang['showuseras_o_loginname'] = 'Login name';
-$lang['showuseras_o_username'] = "User's full name";
-$lang['showuseras_o_email'] = "User's e-mail addresss (obfuscated according to mailguard setting)";
-$lang['showuseras_o_email_link'] = "User's e-mail addresss as a mailto: link";
+$lang['showuseras_o_loginname'] = 'Login name';
+$lang['showuseras_o_username'] = "User's full name";
+$lang['showuseras_o_username_link'] = "User's full name as interwiki user link";
+$lang['showuseras_o_email'] = "User's e-mail addresss (obfuscated according to mailguard setting)";
+$lang['showuseras_o_email_link'] = "User's e-mail addresss as a mailto: link";
/* useheading options */
$lang['useheading_o_0'] = 'Never';
diff --git a/lib/plugins/config/settings/config.metadata.php b/lib/plugins/config/settings/config.metadata.php
index f9dabfeb0..69cc0df01 100644
--- a/lib/plugins/config/settings/config.metadata.php
+++ b/lib/plugins/config/settings/config.metadata.php
@@ -116,7 +116,7 @@ $meta['fullpath'] = array('onoff','_caution' => 'security');
$meta['typography'] = array('multichoice','_choices' => array(0,1,2));
$meta['dformat'] = array('string');
$meta['signature'] = array('string');
-$meta['showuseras'] = array('multichoice','_choices' => array('loginname','username','email','email_link'));
+$meta['showuseras'] = array('multichoice','_choices' => array('loginname','username','username_link','email','email_link'));
$meta['toptoclevel'] = array('multichoice','_choices' => array(1,2,3,4,5)); // 5 toc levels
$meta['tocminheads'] = array('multichoice','_choices' => array(0,1,2,3,4,5,10,15,20));
$meta['maxtoclevel'] = array('multichoice','_choices' => array(0,1,2,3,4,5));