Guest User

Untitled

a guest
Feb 16th, 2011
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.75 KB | None | 0 0
  1.     /**
  2.      * Возвращает массив объектов-модулей с загруженными в них контроллерами.
  3.      * Сложный и неоправданный метод, существующий лишь по историческим причинам.
  4.      *
  5.      * @param array параметры поиска (только параметр order)
  6.      * @return array
  7.      */
  8.     public function findModulesWithControllers(array $params=array())
  9.     {
  10.         $params = self::makeSqlFromParams($params);
  11.  
  12.         $data = array();
  13.  
  14.         $sql = 'SELECT
  15.                    `' . $this->getTableName() . '`.id AS id_module,
  16.                    `' . $this->getTableName() . '`.module_name,
  17.                    `' . $this->getTableName() . '`.module_key,
  18.                    `' . $this->manager->getMapper('Module/Controller')->getTableName() . '`.id AS id_controller,
  19.                    `' . $this->manager->getMapper('Module/Controller')->getTableName() . '`.controller_id_module,
  20.                    `' . $this->manager->getMapper('Module/Controller')->getTableName() . '`.controller_name,
  21.                    `' . $this->manager->getMapper('Module/Controller')->getTableName() . '`.controller_key
  22.                FROM
  23.                    `' . $this->getTableName() . '`
  24.                LEFT JOIN
  25.                    `' . $this->manager->getMapper('Module/Controller')->getTableName() . '`
  26.                ON
  27.                    `' . $this->getTableName() . '`.`id` = `' .
  28.                          $this->manager->getMapper('Module/Controller')->getTableName() .
  29.                          '`.`controller_id_module`' . $params['order'];
  30.  
  31.         $res = $this->db->query($sql);
  32.  
  33.         while ($row = $res->fetch_assoc())
  34.         {
  35.             if (!isset($data[$row['id_module']]))
  36.             {
  37.                 $data[$row['id_module']] = $this->createNew();
  38.                 $data[$row['id_module']]->setId($row['id_module']);
  39.                 $data[$row['id_module']]->setName($row['module_name']);
  40.                 $data[$row['id_module']]->setKey($row['module_key']);
  41.             }
  42.  
  43.             if ($row['controller_id_module'])
  44.             {
  45.                 $controller_row = array
  46.                 (
  47.                     'id' => $row['id_controller'],
  48.                     'controller_id_module' => $row['controller_id_module'],
  49.                     'controller_name' => $row['controller_name'],
  50.                     'controller_key' => $row['controller_key']
  51.                 );
  52.  
  53.                 $data[$row['id_module']]->setController(
  54.                     $this->manager->getMapper('Module/Controller')->createModelFromArray($controller_row)
  55.                 );
  56.             }
  57.         }
  58.  
  59.         return $data;
  60.     }
Advertisement
Add Comment
Please, Sign In to add comment