Esempio n. 1
0
 protected static function _generateMenuEnumerationTree(Enumeration $enumeration)
 {
     static $enumerationIds = array();
     $enumerationId = $enumeration->enumerationId;
     $enumerationsClosure = new EnumerationsClosure();
     $descendants = $enumerationsClosure->getEnumerationTreeById($enumerationId);
     $displayOrder = 0;
     foreach ($descendants as $enum) {
         if (isset($enumerationIds[$enum->enumerationId])) {
             continue;
         }
         $enumerationIds[$enum->enumerationId] = true;
         $displayOrder += 10;
         $menu = new MenuItem();
         $menu->siteSection = 'All';
         $menu->type = 'freeform';
         $menu->active = 1;
         $menu->title = $enum->name;
         //$menu->displayOrder = $displayOrder;
         $menu->displayOrder = $enum->enumerationId;
         // temporarily set displayOrder using the enumerationId
         $menu->parentId = $enumerationId;
         $menu->persist();
         $enum->ormId = $menu->menuId;
         $enum->persist();
         if ($enumerationId != $enum->enumerationId) {
             // prevents infinite loop
             self::_generateMenuEnumerationTree($enum);
         }
     }
 }
 protected function _generateEnumerationTree(SimpleXMLElement $xml, $enumerationId)
 {
     static $enumerationList = array();
     $enumerationsClosure = new EnumerationsClosure();
     $descendants = $enumerationsClosure->getEnumerationTreeById($enumerationId);
     $item = null;
     foreach ($descendants as $enum) {
         if (in_array($enum->enumerationId, $enumerationList)) {
             continue;
         }
         $icon = '';
         if (strlen($enum->ormClass) > 0 && class_exists($enum->ormClass)) {
             $icon = "<a onclick=\"enumEditObject({$enum->enumerationId})\" title=\"Edit Object\"><img src=\"" . Zend_Registry::get('baseUrl') . "img/sm-editproblem.png\" alt=\"Edit Object\" /></a>";
         }
         $category = '';
         if ($item === null) {
             //$item = $xml->addChild("row");
             $item = $xml;
             $category = $enum->category;
         }
         $leaf = $item->addChild("row");
         $leaf->addAttribute('id', $enum->enumerationId);
         $leaf->addChild('cell', htmlspecialchars($enum->name));
         $leaf->addChild('cell', $category);
         $leaf->addChild('cell', $enum->active);
         $leaf->addChild('cell', $icon);
         $enumerationList[] = $enum->enumerationId;
         if ($enumerationId != $enum->enumerationId) {
             // prevents infinite loop
             $this->_generateEnumerationTree($leaf, $enum->enumerationId);
         }
     }
 }