Exemplo n.º 1
0
 /**
  * Build the tree for the backend
  * 
  * @param array $params
  * @return array
  */
 protected function actionTree($params)
 {
     $response = array();
     if (!isset($params['node'])) {
         return $response;
     }
     $extractedNode = \GO\Site\SiteModule::extractTreeNode($params['node']);
     // 1_menuitem_6 = array('siteId' => '1','type' =>'menuitem','modelId' => '6');
     // 1_root = array('siteId' => '1','type' =>'root','modelId' => false);
     // 1_content = array('siteId' => '1','type' =>'content','modelId' => false);
     // 1_menu = array('siteId' => '1','type' =>'menu','modelId' => false);
     // 1_menu_1 = array('siteId' => '1','type' =>'menu','modelId' => '1');
     switch ($extractedNode['type']) {
         case 'root':
             $response = \GO\Site\Model\Site::getTreeNodes();
             break;
         case 'content':
             if (empty($extractedNode['modelId'])) {
                 $response = \GO\Site\Model\Site::getTreeNodes();
             } else {
                 $content = \GO\Site\Model\Content::model()->findByPk($extractedNode['modelId']);
                 if ($content) {
                     $response = $content->getChildrenTree();
                 }
             }
             break;
         case 'menu':
             $menu = \GO\Site\Model\Menu::model()->findByPk($extractedNode['modelId']);
             if ($menu) {
                 $response = $menu->getChildrenTree();
             }
             break;
         case 'menuitem':
             $menuitem = \GO\Site\Model\MenuItem::model()->findByPk($extractedNode['modelId']);
             if ($menuitem) {
                 $response = $menuitem->getChildrenTree();
             }
             break;
     }
     echo $this->renderJson($response);
 }
Exemplo n.º 2
0
 /**
  * Load the model menu object
  * 
  * @param int $siteId
  * @param int $id
  * @return \GO\Site\Model\Menu
  * @throws Exception
  */
 private function _loadModel($menu_id, $id = false)
 {
     if (!empty($id)) {
         $model = \GO\Site\Model\MenuItem::model()->findByPk($id);
     } else {
         $model = new \GO\Site\Model\MenuItem();
         $model->menu_id = $menu_id;
     }
     if (!$model) {
         throw new \Exception('Model with id: ' . $id . ' not found.');
     }
     return $model;
 }