/** * Test case */ public function testAddItem() { $manager = new Enlight_Components_Menu(); $itemParent = new Zend_Config(array('id' => 1, 'name' => 'parent')); $this->assertInstanceOf('Enlight_Components_Menu', $manager->addItem($itemParent)); $itemChild = new Zend_Config(array('id' => 2, 'name' => 'child', 'parent' => 1)); $this->assertInstanceOf('Enlight_Components_Menu', $manager->addItem($itemChild)); $itemChild = $manager->findOneBy('id', 2); $itemParent = $manager->findOneBy('id', 1); $this->assertInstanceOf('Enlight_Components_Menu_Item', $itemChild); $this->assertInstanceOf('Enlight_Components_Menu_Item', $itemParent); $this->assertEquals($itemParent, $itemChild->getParent()); }
/** * Test case */ public function testSetColumn() { $this->adapter = new Enlight_Components_Menu_Adapter_DbTable(array('db' => $this->db, 'name' => 'menu_test2', 'labelColumn' => 'name')); $config = array(array('label' => 'child')); $expected = new Enlight_Components_Menu($config); $expected->setAdapter($this->adapter)->write(); $manager = new Enlight_Components_Menu(); $manager->setAdapter($this->adapter)->read(); $this->assertNotEmpty($manager->findOneBy('label', 'child')); }
/** * Reads the menu form the database. * * @param Enlight_Components_Menu $menu * @return Enlight_Components_Menu_Adapter_DbTable */ public function read(Enlight_Components_Menu $menu) { $rows = $this->fetchAll(null, $this->_order); $pages = array(); foreach ($rows as $rowKey => $row) { $page = array('order' => $rowKey); foreach ($this->_columns as $key => $column) { if (isset($row->{$column})) { $page[$key] = $row->{$column}; } } $pages[] = $page; } $menu->addItems($pages); return $this; }