PageRenderTime 42ms CodeModel.GetById 16ms RepoModel.GetById 0ms app.codeStats 0ms

/lib/modules/smarty/plugins/function.get_current_user.php

https://github.com/dmkfasi/molinos-cms
PHP | 41 lines | 31 code | 6 blank | 4 comment | 5 complexity | bb0c4913fb97e53fdfc91f16fc5e8e24 MD5 | raw file
Possible License(s): AGPL-1.0
  1. <?php
  2. /* vim: set expandtab tabstop=2 shiftwidth=2 softtabstop=2: */
  3. // {get_current_user assign=user}
  4. function smarty_function_get_current_user($params, &$smarty)
  5. {
  6. static $results = null;
  7. static $resultx = null;
  8. if (empty($params['extended']))
  9. $result = &$results;
  10. else
  11. $result = &$resultx;
  12. if ($result === null) {
  13. $user = mcms::user();
  14. if (empty($params['extended']) or !$user->id) {
  15. $result = array(
  16. 'uid' => $user->id,
  17. 'name' => $user->id ? $user->login : $user->name,
  18. 'title' => $user->name,
  19. 'groups' => $user->getGroups(),
  20. );
  21. } else {
  22. // Основная информация о пользователе.
  23. $node = Node::load($user->id);
  24. $result = $node->getRaw();
  25. unset($result['password']);
  26. // Информация о группах.
  27. foreach (Node::find(array('class' => 'group', 'id' => array_keys($user->getGroups()))) as $group)
  28. $result['groups'][] = $group->getRaw();
  29. }
  30. }
  31. if (!empty($params['assign']))
  32. $smarty->assign($params['assign'], $result);
  33. else
  34. return $result['name'];
  35. }