Пример #1
0
 /**
  * Pobranie wszystkich grup z dziedziczeniem
  *
  * @return array
  */
 public function getGroups()
 {
     $groupModel = new Group();
     $groupParentsModel = new GroupGroup();
     $groups = $groupModel->fetchAll("ghost = false ", 'priority asc')->toArray();
     $groupParents = $groupParentsModel->fetchAll()->toArray();
     $groupsArray = array();
     foreach ($groups as $group) {
         $group['parents']['role'] = array();
         $groupsArray[$group['id']] = $group;
     }
     foreach ($groupParents as $parent) {
         if (isset($groupsArray[$parent['id_group']])) {
             $groupsArray[$parent['id_group']]['parents']['group'][] = $parent['id_parent'];
         }
     }
     return $groupsArray;
 }
Пример #2
0
 /**
  * Pobranie wszystkich grup z dziedziczeniem
  *
  * @return array
  */
 public function getGroups()
 {
     $cm = $this->getBootstrap()->getResource('cachemanager');
     $cache = $cm->getCache('rolecache');
     $cache_id = 'GroupsArrayCaache';
     if (!($groupsArray = $cache->load($cache_id))) {
         $groupModel = new Group();
         $groupParentsModel = new GroupGroup();
         $groups = $groupModel->getAdapter()->query('WITH RECURSIVE Groups (id, priority, child_id) AS (
                 SELECT id, priority, null::bigint as child_id
                 FROM "group"
                 UNION ALL
                 SELECT g.id, g.priority, p.id as child_id
                 FROM "group" g
                 INNER JOIN group_group as gg ON g.id = gg.id_group
                 INNER JOIN Groups p ON gg.id_parent = p.id
                 )
                 SELECT *
                 FROM Groups
                 ORDER BY priority;')->fetchAll();
         //	$groups = $groupModel->fetchAll("ghost = false ", 'priority asc')->toArray();
         $groupParents = $groupParentsModel->fetchAll()->toArray();
         $groupsArray = array();
         foreach ($groups as $group) {
             $group['parents']['role'] = array();
             $groupsArray[$group['id']] = $group;
         }
         foreach ($groupParents as $parent) {
             if (isset($groupsArray[$parent['id_group']])) {
                 $groupsArray[$parent['id_group']]['parents']['group'][$parent['id_parent']] = array('id' => $parent['id_parent'], 'priority' => $groupsArray[$parent['id_group']]['priority']);
             }
         }
         $cache->save($groupsArray, $cache_id);
     }
     return $groupsArray;
 }