function set_userinfo($uid = NULL) { static $cache; // cache for renderer if (is_null($uid) && isset($cache[$this->root->mydirname])) { $this->root->userinfo = $cache[$this->root->mydirname]; } if (is_null($uid) || !$uid) { global $xoopsUser; $user = $xoopsUser; } else { $user_handler =& xoops_gethandler('user'); $user =& $user_handler->get($uid); } if (is_object($user)) { $this->root->userinfo['admin'] = $user->isAdmin($this->root->module['mid']); $this->root->userinfo['uid'] = (int) $user->uid(); $this->root->userinfo['email'] = $user->email(); $this->root->userinfo['uname'] = $user->uname('n'); $this->root->userinfo['uname_s'] = $this->htmlspecialchars($this->root->userinfo['uname']); $this->root->userinfo['name'] = $user->name('s'); $this->root->userinfo['gids'] = $user->getGroups(); } else { parent::set_userinfo(); $this->root->userinfo['gids'] = array(XOOPS_GROUP_ANONYMOUS); } if (is_null($uid)) { $cache[$this->root->mydirname] = $this->root->userinfo; } }