Esempio n. 1
0
 /**
  * Cria menu.
  *
  * @param stdClass
  * @return Div
  * */
 public function menuNavbar(\stdClass $config)
 {
     # navbar
     $mainDiv = new Div();
     $mainDiv->addClass(array('navbar', 'navbar-fixed-top'));
     # inner
     $divInner = new Div();
     $divInner->addClass('navbar-inner');
     $mainDiv->add($divInner);
     # fluid
     $divFluid = new Div();
     $divFluid->addClass('container-fluid');
     $divInner->add($divFluid);
     # anchor
     $anchor = new Anchor();
     $anchor->attr('data-target', '.nav-collapse')->attr('data-toggle', 'collapse')->addClass(array('btn', 'btn-navbar'));
     $divFluid->add($anchor);
     # @todo a quantidade de icon-bar deve ser dinamica
     $span = new Span();
     $span->addClass('icon-bar');
     $anchor->add(array(clone $span, clone $span, $span));
     $divCollapse = new Div();
     $divCollapse->addClass('nav-collapse');
     $divFluid->add($divCollapse);
     $ulNav = new UL();
     $ulNav->addClass('nav');
     $divCollapse->add($ulNav);
     foreach ($config->options as $key => $val) {
         $li = new LI();
         $ulNav->add($li);
         if ('__DIVIDER_VERTICAL__' == $val) {
             $li->addClass('divider-vertical');
         } else {
             $li->addClass('dropdown');
             $anchor = new Anchor($key, '#');
             $anchor->attr('data-toggle', 'dropdown')->addClass('dropdown-toggle');
             $li->add($anchor);
             $strong = new Strong();
             $strong->addClass('caret');
             $anchor->add($strong);
             $ul = new UL();
             $ul->addClass('dropdown-menu');
             $li->add($ul);
             foreach ($val as $idx => $link) {
                 $anchor = new Anchor($link['text'], $link['href']);
                 $liSub = new LI();
                 $liSub->add($anchor);
                 $ul->add($liSub);
             }
         }
     }
     return $mainDiv;
 }
Esempio n. 2
0
 /**
  * @inheritdoc
  *
  * A soma dos algarismos de width deve totalizar em 12, exemplo, 3.9, 2.10, 1.11, etc
  *
  * @return Div
  *
  * @code
  * <?php
  *     $param = new stdClass;
  *     $param->label = 'Label';
  *     $param->value = 'content';
  *     $param->width = 3.9;
  *     $isaf->display($param);
  * ?>
  * @endcode
  * @return ElementContainerAbstract
  * */
 public function display(\stdClass $param)
 {
     list($wLbl, $wVal) = explode('.', (double) $this->safeToggle($param, 'width', self::T_WIDTH_DEFAULT), 2);
     $container = Div::factory()->addClass(array('control-group', 'span' . ($wLbl + $wVal + 1)));
     if (isset($param->label)) {
         $container->add(Span::factory()->addClass('span' . $wLbl)->add(Strong::factory()->add(new Text($param->label))));
     }
     if (isset($param->value)) {
         $container->add(Span::factory()->addClass('span' . $wVal)->add(new Text($param->value)));
     }
     return $container;
 }