/** * 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); }
/** * 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; }