*/ // must be run within Dokuwiki if (!defined('DOKU_INC')) { die(); } class helper_plugin_listusergroup extends DokuWiki_Plugin { function getMethods() { $result = array(); $result[] = array( 'name' => 'getXHTML', 'desc' => 'returns the XHTML to display a user list', 'params' => array( 'group (optional)' => 'array', 'show (optional)' => 'array', 'link (optional)' => 'array', 'class (optional)' => 'array'), 'return' => array('xhtml' => 'string') ); return $result; } /** * Constructor loads default config settings once */ function helper_plugin_listusergroup() { $this->defaults['namespace'] = $this->getConf('namespace'); $this->defaults['homeicon'] = $this->getConf('homeicon'); } /** * Returns the XHTML of a user list */ function getXHTML($data) { return $src = $this->_getListAsString($data); } function _getListAsString($data) { global $auth; global $lang; if (is_null($xhtml_renderer)) { require_once DOKU_INC . 'inc/parser/xhtml.php'; $xhtml_renderer = new Doku_Renderer_xhtml(); } if (!method_exists($auth,"retrieveUsers")) return ''; $confNS = $this->getConf('namespace'); $confHomeicon = $this->getConf('homeicon'); $users = array(); /* handle user groups */ foreach ($data['group'] as $grp) { $getuser = $auth->retrieveUsers(0,-1,array('grps'=>'^'.preg_quote($grp,'/').'$')); $users = $users + $getuser; } $tableclass = $data['class']?$data['class'][0]: 'inline'; /* possible table classes: inline, pagelist, htCore, ul, diff */ $xhtml_renderer->doc .= '
'.$lang[$show].' | '; } $xhtml_renderer->doc .= '
---|
'; /* handle user option */ if ($show==='user') { if ( ($isShowHome||$isShowExistingHome) && $iconPos<0) $xhtml_renderer->doc .= ' '; if ($isLinkUser) { $xhtml_renderer->doc .= $xhtml_renderer->internallink($confNS.':'.$user); } else { $xhtml_renderer->doc .= hsc($user); } if ( ($isShowHome||$isShowExistingHome) && $iconPos>0) $xhtml_renderer->doc .= ' '; } /* handle groups option */ if ($show==='groups') { if ($isShowGroups) { $xhtml_renderer->doc .= hsc(implode( ", ", $info['grps'])); } } /* handle fullname option */ if ($show==='fullname') { $xhtml_renderer->doc .= hsc($info['name']); } /* handle email option */ if ($show==='email') { if ($isLinkEmail) { $xhtml_renderer->doc .= $xhtml_renderer->emaillink($info['mail']); } else { $xhtml_renderer->doc .= hsc($info['mail']); } } $xhtml_renderer->doc .= ' | '; } $xhtml_renderer->doc .= '