示例#1
0
 protected function oldboxRootCategoryBlock()
 {
     ClassLoader::import('application.model.staticpage.StaticPage');
     if ($this->config->get('TOP_MENU_HIDE')) {
         return;
     }
     if (!$this->config->get('TOP_MENU_HIDE_CATS')) {
         $topCategories = $this->getTopCategories($this->config->get('CAT_MENU_TOP_ROOT'));
         $ids = array();
         foreach ($topCategories as $cat) {
             if ($cat['isEnabled']) {
                 $ids[] = $cat['ID'];
             }
         }
         $f = new ARSelectFilter(new INCond(new ARFieldHandle('Category', 'parentNodeID'), $ids));
         $f->setOrder(new ARFieldHandle('Category', 'parentNodeID'));
         $f->setOrder(new ARFieldHandle('Category', 'lft'));
         $subCategories = array();
         foreach (ActiveRecordModel::getRecordSetArray('Category', $f) as $cat) {
             if ($cat['isEnabled']) {
                 $subCategories[$cat['parentNodeID']][] = $cat;
             }
         }
     }
     $f = new ARSelectFilter(new IsNullCond(new ARFieldHandle('StaticPage', 'parentID')));
     $f->mergeCondition(StaticPage::getIsRootCategoriesMenuCondition());
     $f->setOrder(new ARFieldHandle('StaticPage', 'position'));
     $pages = ActiveRecordModel::getRecordSetArray('StaticPage', $f);
     $ids = array();
     $subPages = array();
     foreach ($pages as $page) {
         $ids[] = $page['ID'];
     }
     $f = new ARSelectFilter(new INCond(new ARFieldHandle('StaticPage', 'parentID'), $ids));
     $f->setOrder(new ARFieldHandle('StaticPage', 'position'));
     foreach (ActiveRecordModel::getRecordSetArray('StaticPage', $f) as $page) {
         $subPages[$page['parentID']][] = $page;
     }
     if (empty($topCategories) && empty($pages)) {
         return;
     }
     $response = new BlockResponse();
     $response->set('categories', $topCategories);
     $response->set('subCategories', $subCategories);
     $response->set('pages', $pages);
     $response->set('subPages', $subPages);
     $response->set('currentId', $this->getTopCategoryId());
     return $response;
 }