Exemplo n.º 1
0
 /**
  * Return items filter by widget
  * @param int $level
  * @param Zend_Db_Table_Row_Abstract $menu
  * @param Zend_Db_Table_Row_Abstract $menuItem
  * @param array $arrData
  */
 public function getMenuItemsForWidget($level = 0, Zend_Db_Table_Row_Abstract $menu, Zend_Db_Table_Row_Abstract $menuItem = null, &$arrData)
 {
     if (intval($level) < 1) {
         $mdlMenu = new menu_Model_Menu();
         $selectMenu = $mdlMenu->select()->where('IFNULL(parent_id,0)=?', 0, Zend_Db::INT_TYPE);
         $items = $menu->findDependentRowset('menu_Model_Item', 'Menu', $selectMenu);
         #Zend_Debug::dump($menu->toArray());
         #Zend_Debug::dump($selectMenu->__toString());
         #Zend_Debug::dump($items->toArray());
         #die();
         if ($items->count() > 0) {
             $level++;
             foreach ($items as $item) {
                 $arrData[$item->id] = $item->title;
                 $selectItem = $this->select()->where('parent_id=?', $item->id, Zend_Db::INT_TYPE);
                 $subItems = $item->findDependentRowset('menu_Model_Item', 'MenuParent');
                 if ($subItems->count() > 0) {
                     $this->getMenuItemsForWidget($level, $menu, $item, $arrData);
                 }
             }
         }
     } else {
         $selectItem = $this->select()->where('parent_id=?', $menuItem->id, Zend_Db::INT_TYPE);
         $subItems = $menuItem->findDependentRowset('menu_Model_Item', 'MenuParent');
         if ($subItems->count() > 0) {
             $level++;
             foreach ($subItems as $smi) {
                 $prefix = str_pad("", $level - 1, "-");
                 $arrData[$smi->id] = $prefix . ' ' . $smi->title;
                 $this->getMenuItemsForWidget($level, $menu, $smi, $arrData);
             }
         }
     }
 }