/lib/modules/smarty/plugins/function.get_current_user.php
PHP | 41 lines | 31 code | 6 blank | 4 comment | 5 complexity | bb0c4913fb97e53fdfc91f16fc5e8e24 MD5 | raw file
Possible License(s): AGPL-1.0
- <?php
- /* vim: set expandtab tabstop=2 shiftwidth=2 softtabstop=2: */
- // {get_current_user assign=user}
- function smarty_function_get_current_user($params, &$smarty)
- {
- static $results = null;
- static $resultx = null;
- if (empty($params['extended']))
- $result = &$results;
- else
- $result = &$resultx;
- if ($result === null) {
- $user = mcms::user();
- if (empty($params['extended']) or !$user->id) {
- $result = array(
- 'uid' => $user->id,
- 'name' => $user->id ? $user->login : $user->name,
- 'title' => $user->name,
- 'groups' => $user->getGroups(),
- );
- } else {
- // Основная информация о пользователе.
- $node = Node::load($user->id);
- $result = $node->getRaw();
- unset($result['password']);
- // Информация о группах.
- foreach (Node::find(array('class' => 'group', 'id' => array_keys($user->getGroups()))) as $group)
- $result['groups'][] = $group->getRaw();
- }
- }
- if (!empty($params['assign']))
- $smarty->assign($params['assign'], $result);
- else
- return $result['name'];
- }