Пример #1
0
 /**
  * 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());
 }
Пример #2
0
 /**
  * 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'));
 }
Пример #3
0
 /**
  * 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;
 }