Lançado Adianti Framework 7.6!
Clique aqui para saber mais
menu

Adianti Solutions

API

Adianti, Framework, PHP, MVC, Active record, Front controller, IDE, RAD, Web, multiplataforma, geração de código, desenvolvimento rápido, relatórios, formulários, listagens, datagrids, gráficos, banco de dados, padrões de projeto, design patterns API do Adianti Framework.
API Docs
code
Selecione a classe

Source for file TMenuBar.php

Documentation is available at TMenuBar.php

  1. <?php
  2. namespace Adianti\Widget\Menu;
  3.  
  4. use Adianti\Widget\Menu\TMenu;
  5. use Adianti\Widget\Base\TElement;
  6. use Adianti\Widget\Base\TScript;
  7. use Adianti\Util\AdiantiStringConversion;
  8.  
  9. use SimpleXMLElement;
  10.  
  11. /**
  12.  * Menubar Widget
  13.  *
  14.  * @version    7.4
  15.  * @package    widget
  16.  * @subpackage menu
  17.  * @author     Pablo Dall'Oglio
  18.  * @copyright  Copyright (c) 2006 Adianti Solutions Ltd. (http://www.adianti.com.br)
  19.  * @license    http://www.adianti.com.br/framework-license
  20.  */
  21. class TMenuBar extends TElement
  22. {
  23.     public function __construct()
  24.     {
  25.         parent::__construct('div');
  26.         $this->{'style''margin: 0;';
  27.         $this->{'class''navbar';
  28.     }
  29.     
  30.     /**
  31.      * Build a MenuBar from a XML file
  32.      * @param $xml_file path for the file
  33.      * @param $permission_callback check permission callback
  34.      */
  35.     public static function newFromXML($xml_file$permission_callback NULL$bar_class 'nav navbar-nav'$menu_class 'dropdown-menu'$item_class '')
  36.     {
  37.         if (file_exists($xml_file))
  38.         {
  39.             $menu_string AdiantiStringConversion::assureUnicode(file_get_contents($xml_file));
  40.             $xml new SimpleXMLElement($menu_string);
  41.             
  42.             $menubar new TMenuBar;
  43.             $ul new TElement('ul');
  44.             $ul->{'class'$bar_class;
  45.             $menubar->add($ul);
  46.             foreach ($xml as $xmlElement)
  47.             {
  48.                 $atts   $xmlElement->attributes();
  49.                 $label  = (string) $atts['label'];
  50.                 $action = (string) $xmlElement-> action;
  51.                 $icon   = (string) $xmlElement-> icon;
  52.                 
  53.                 $item new TMenuItem($label$action$icon);
  54.                 $menu new TMenu($xmlElement-> menu-> menuitem$permission_callback1$menu_class$item_class);
  55.  
  56.                 // check children count (permissions)
  57.                 if (count($menu->getMenuItems()) >0)
  58.                 {
  59.                     $item->setMenu($menu);
  60.                     $item->{'class''active';
  61.                     $ul->add($item);
  62.                 }
  63.                 else if ($action)
  64.                 {
  65.                     $ul->add($item);
  66.                 }
  67.             }
  68.             
  69.             return $menubar;
  70.         }
  71.     }
  72.     
  73.     /**
  74.      * Show
  75.      */
  76.     public function show()
  77.     {
  78.         TScript::create'tmenubar_start();' );
  79.         parent::show();
  80.     }
  81. }