示例#1
0
    public static function __callStatic($method, $parameters)
    {
        $method = $method != 'normal' ? $method : 'default';
        $parameters = $parameters ? $parameters : array(array());
        $parameters = Helpers::add_class($parameters[0], 'panel panel-' . $method);

        return new static($parameters);
    }
示例#2
0
    private static function make($type, $contents = array(), $attributes = array())
    {
        $attributes = Helpers::add_class($attributes, 'buttons', 'data-toggle');
        $attributes = Helpers::add_class($attributes, 'btn-group');
        $string = "<div " . Helpers::getContainer('html')->attributes($attributes) . ">";
        $string .= static::makeContents($contents, $type);
        $string .= "</div>";

        return $string;
    }
示例#3
0
    public function __toString()
    {
        $name = $this->name;
        $attributes = Helpers::add_class($this->attributes, 'panel-group');
        $attributes = Helpers::add_class($attributes, $name, 'id');

        $string = "<div" . Helpers::getContainer('html')->attributes($attributes) . ">";
        $count = 1;
        foreach ($this->contents as $content) {
            $heading = $content[0];
            $body = $content[1];
            $panelAttributes = isset($content[2]) ? $content[2] : array();
            $panelAttributes = Helpers::add_class($panelAttributes, 'panel panel-default');

            $bodyAttributes = array(
                'class' => 'panel-collapse collapse',
                'id' => "$name-$count"
            );
            $bodyAttributes = $count == $this->opened ? Helpers::add_class($bodyAttributes, 'in') : $bodyAttributes;

            $string .= "<div" . Helpers::getContainer('html')->attributes($panelAttributes) . ">";
            $string .= "<div class='panel-heading'>";
            $string .= "<h4 class='panel-title'>";
            $string .= "<a class='accordion-toggle' data-toggle='collapse' data-parent='#$name' href='#$name-$count'>";
            $string .= $heading;
            $string .= "</a>";
            $string .= "</h4>";
            $string .= "</div>";


            $string .= "<div" . Helpers::getContainer('html')->attributes($bodyAttributes) . ">";
            $string .= "<div class='panel-body'>";
            $string .= $body;
            $string .= "</div>";
            $string .= "</div>";
            $string .= "</div>";
            $count += 1;
        }
        $string .= "</div>";

        return $string;
    }
示例#4
0
 /**
  * Opens a new ButtonToolbar section.
  *
  * @param array $attributes Attributes for the button toolbar
  *
  * @return string A button toolbar
  */
 public static function open($attributes = array())
 {
     $attributes = Helpers::add_class($attributes, 'btn-toolbar');
     return '<div' . Helpers::getContainer('html')->attributes($attributes) . '>';
 }
示例#5
0
    /**
     * Creates a new Carousel instance
     *
     * @param array $items The items to use as pictures
     * @param array $attributes Its attributes
     */
    public function __construct($items, $attributes = array())
    {
        $this->items = $items;
        $this->attributes = Helpers::add_class($attributes, 'carousel slide');

        // Set default active item
        $this->active = key($items);

        // Calculate the Carousel ID
        $this->hash = '#' . array_get($attributes, 'id', 'carousel_' . Helpers::rand_string(5));
    }
示例#6
0
 /**
  * Outputs the current Dropdown in instance
  *
  * @return string A Dropdown menu
  */
 public function render()
 {
     // Base class
     $this->attributes = Helpers::add_class($this->attributes, 'btn-group');
     // Pull right
     $listAttributes = $this->pullRight ? array('class' => 'pull-right') : array();
     // Dropup
     if ($this->dropup) {
         $this->attributes['class'] .= ' dropup';
     }
     $html = '<div' . Helpers::getContainer('html')->attributes($this->attributes) . '>';
     //If split is false make this button dropdown
     $html .= Form::button($this->label, array('class' => $this->type), !$this->split);
     //Add split button if needed
     if ($this->split) {
         $html .= Form::button('', array('class' => $this->type), true);
     }
     $html .= Navigation::dropdown($this->links, $listAttributes, $this->autoroute);
     $html .= '</div>';
     return $html;
 }
示例#7
0
 /**
  * Prints out the MediaObject in memory
  *
  * @return string The HTML markup for the media object
  */
 public function __toString()
 {
     // Whether objects should be printed as list elements or divs
     $children = static::$listed ? 'li' : 'div';
     // Open the media object
     $attributes = Helpers::add_class($this->attributes, 'media');
     $html = '<' . $children . Helpers::getContainer('html')->attributes($attributes) . '>';
     // Add the media itself
     $html .= '<a class="pull-' . $this->pull . '">';
     $html .= $this->media;
     $html .= '</a>';
     // Add the title and body
     $html .= '<div class="media-body">';
     if ($this->title) {
         $html .= $this->title;
     }
     $html .= $this->content;
     // Render nested media objects (always as divs)
     if ($this->nested) {
         $listed = static::$listed;
         static::$listed = false;
         foreach ($this->nested as $mediaObject) {
             $html .= $mediaObject;
         }
         static::$listed = $listed;
     }
     // Close body
     $html .= '</div>';
     // Close object
     $html .= '</' . $children . '>';
     return $html;
 }
示例#8
0
 /**
  * Creates a Bootstrap Dropdown menu.
  *
  * @param array $list       Menu items
  * @param array $attributes attributes to apply the nav
  * @param bool  $autoroute  Autoroute links
  *
  * @return string
  */
 public static function dropdown($list, $attributes = array(), $autoroute = true)
 {
     $attributes = Helpers::add_class($attributes, 'dropdown-menu');
     return static::menu($list, null, false, $attributes, $autoroute, true);
 }
示例#9
0
    public function render()
    {
        $this->attributes = Helpers::add_class($this->attributes, 'modal');
        $this->attributes = Helpers::add_class($this->attributes, "true", 'aria-hidden');
        // Open the modal
        $string = "<div" . Helpers::getContainer('html')->attributes(
                $this->attributes
            ) . "><div class='modal-dialog'><div class='modal-content'>";
        // Add the header
        $string .= '<div class="modal-header">';
        $string .= '<button type="button" class="close" data-dismiss="modal" aria-hidden="true">x</button>';
        if ($this->header) {
            $string .= "<h3>" . $this->header . "</h3>";
        }
        $string .= "</div>";
        if ($this->body) {
            $string .= "<div class='modal-body'>";
            $string .= $this->body;
            $string .= "</div>";
        }
        if ($this->footer) {
            $string .= "<div class='modal-footer'>";
            $string .= $this->footer;
            $string .= "</div>";
        }

        return $string . "</div></div></div>";
    }
示例#10
0
 /**
  * Allows creation of inverted navbar
  *
  * @param string $method     The method to call
  * @param array  $parameters An array of parameters
  *
  * @return Navbar
  */
 public static function __callStatic($method, $parameters)
 {
     if ($method == 'inverse') {
         $attributes = array_get($parameters, 0);
         $type = array_get($parameters, 1);
         $attributes = Helpers::add_class($attributes, 'navbar-inverse');
         return static::create($attributes, $type);
     } else {
         return static::create();
     }
 }
示例#11
0
 /**
  * Prints the current button in memory
  *
  * @return string A button
  */
 public function render()
 {
     // Gather variables
     extract($this->currentButton);
     // Add btn to classes and fallback type
     if (!isset($attributes['type'])) {
         $attributes['type'] = 'button';
     }
     $attributes = Helpers::add_class($attributes, 'btn');
     // Modify output if we have a dropdown
     $caret = null;
     if ($hasDropdown) {
         $attributes = Helpers::add_class($attributes, 'dropdown-toggle');
         $caret = ' <span class="caret"></span>';
         $attributes['data-toggle'] = 'dropdown';
     }
     // Write output according to tag
     $tag = 'button';
     if ($type === 'link') {
         $tag = 'a';
         unset($attributes['type']);
     }
     return '<' . $tag . Helpers::getContainer('html')->attributes($attributes) . '>' . (string) $value . $caret . '</' . $tag . '>';
 }
示例#12
0
    public function responsive()
    {
        $this->attributes = Helpers::add_class($this->attributes, 'img-responsive');

        return $this;
    }
示例#13
0
    /**
     * Checks call to see if we can create a progress bar from a magic call (for you wizards).
     * normal_striped_active, info_striped, etc...
     *
     * @param string $method Method name
     * @param array $parameters Method parameters
     *
     * @return mixed
     */
    public static function __callStatic($method, $parameters)
    {
        $method_array = explode('_', strtolower($method));

        $types = array('normal', 'success', 'info', 'warning', 'danger', 'automatic');
        $type_found = array_intersect($method_array, $types);

        if (count($type_found) > 0) {
            $function = $type_found[key($type_found)];

            // Set default $attributes and check for a set value
            $attributes = array();
            if (isset($parameters[1])) {
                if (is_array($parameters[1])) {
                    $attributes = $parameters[1];
                } else {
                    throw new \InvalidArgumentException(
                        "Tabbable attributes parameter should be an array of attributes"
                    );
                }
            }

            if (in_array('striped', $method_array)) {
                $attributes = Helpers::add_class($attributes, 'progress-striped');
            }

            if (in_array('active', $method_array)) {
                $attributes = Helpers::add_class($attributes, 'active');
            }

            return static::$function($parameters[0], $attributes);
        }
    }
示例#14
0
 /**
  * Creates an horizontal definition list
  *
  * @param array $list       An array [term => description]
  * @param array $attributes An array of attributes
  *
  * @return string A formatted <dl> list
  */
 public static function horizontal_dl($list, $attributes = array())
 {
     $attributes = Helpers::add_class($attributes, 'dl-horizontal');
     return static::dl($list, $attributes);
 }
示例#15
0
 /**
  * Creates a Bootstrap image
  *
  * @param string $type       The image type
  * @param string $url        An url
  * @param string $alt        An alt text
  * @param array  $attributes An array of attributes
  *
  * @return string An img tag
  */
 protected static function create($type, $url, $alt, $attributes)
 {
     $attributes = Helpers::add_class($attributes, 'img-' . $type);
     return Helpers::getContainer('html')->image($url, $alt, $attributes);
 }