Ejemplo n.º 1
0
 /**
  * Build Items for navbar, subnav, sidebar
  *
  * @param $items String
  * @param $options Array
  * @param $context String
  */
 public function buildItems($items, $options, $context)
 {
     global $wgTweekiSkinSpecialElements;
     $buttons = array();
     $customItems = array();
     $navbarItems = explode(',', $items);
     foreach ($navbarItems as $navbarItem) {
         $navbarItem = trim($navbarItem);
         $navbarItem = $this->renderNavigation($navbarItem);
         if (is_array($navbarItem)) {
             $this->renderCustomNavigation($buttons, $customItems);
             if (count($navbarItem) !== 0) {
                 $buttons = array_merge($buttons, $navbarItem);
             }
         } else {
             $customItems[] = $navbarItem;
         }
     }
     $this->renderCustomNavigation($buttons, $customItems);
     foreach ($buttons as $button) {
         /* standard button rendering */
         if (!isset($button['special'])) {
             echo TweekiHooks::renderButtons(array($button), $options);
         } else {
             call_user_func_array($wgTweekiSkinSpecialElements[$button['special']], array($this, $context, $options));
         }
     }
 }
Ejemplo n.º 2
0
 /**
  * Build buttons, groups of buttons and dropdowns
  *
  * @param $input string
  * @param $args array tag arguments
  * @param $parser Parser current parser
  * @param $frame PPFrame current frame
  * @return string
  */
 static function buildButtons($input, array $args, Parser $parser, PPFrame $frame)
 {
     $sizes = array('large' => 'btn-lg', 'lg' => 'btn-lg', 'small' => 'btn-sm', 'sm' => 'btn-sm', 'mini' => 'btn-xs', 'xs' => 'btn-xs');
     $renderedButtons = '';
     $buttongroups = preg_split('/\\n{2,}/', $input);
     // set standard classes for all buttons in the group
     if (!isset($args['class'])) {
         $args['class'][] = 'btn btn-default';
     } else {
         $args['class'] = explode(' ', $args['class']);
     }
     if (isset($args['size'])) {
         if (isset($sizes[$args['size']])) {
             $args['class'][] = $sizes[$args['size']];
         }
     }
     foreach ($buttongroups as $buttongroup) {
         $buttons = array();
         $buttons = TweekiHooks::parseButtons($buttongroup, $parser, $frame);
         $renderedButtons .= TweekiHooks::renderButtons($buttons, $args);
     }
     // more than one buttongroup build a toolbar
     if (count($buttongroups) > 1) {
         $renderedButtons = '<div class="btn-toolbar">' . $renderedButtons . '</div>';
     }
     return $renderedButtons;
 }