Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/friendsofcake/bootstrap-ui/src/View/Helper/HtmlHelper.php
<?php
namespace BootstrapUI\View\Helper;

use
Cake\View\View;

class
HtmlHelper extends \Cake\View\Helper\HtmlHelper
{
    use
OptionsAwareTrait;

   
/**
     * Constructor
     *
     * ### Settings
     *
     * - `iconDefaults`: Default for icons.
     *
     * @param \Cake\View\View $View The View this helper is being attached to.
     * @param array $config Configuration settings for the helper.
     */
   
public function __construct(View $View, array $config = [])
    {
       
$this->_defaultConfig['iconDefaults'] = [
           
'tag' => 'i',
           
'iconSet' => 'fas',
           
'prefix' => 'fa',
           
'size' => null,
        ];

       
parent::__construct($View, $config);
    }

   
/**
     * Returns Bootstrap badge markup. By default, uses `<SPAN>`.
     *
     * @param string $text Text to show in badge.
     * @param array $options Additional HTML attributes.
     * @return string HTML badge markup.
     */
   
public function badge($text, array $options = [])
    {
       
$options += ['tag' => 'span'];
       
$tag = $options['tag'];
        unset(
$options['tag']);

       
$allClasses = $this->genAllClassNames('badge');

        if (
$this->hasAnyClass($allClasses, $options)) {
           
$options = $this->injectClasses('badge', $options);
        } else {
           
$options = $this->injectClasses(['badge', 'secondary'], $options);
        }

       
$classes = $this->renameClasses('badge', $options);

        return
$this->tag($tag, $text, $classes);
    }

   
/**
     * Returns breadcrumbs as a (x)html list
     *
     * This method uses HtmlHelper::tag() to generate list and its elements. Works
     * similar to HtmlHelper::getCrumbs(), so it uses options which every
     * crumb was added with.
     *
     * ### Options
     *
     * - `separator` Separator content to insert in between breadcrumbs, defaults to ''
     * - `firstClass` Class for wrapper tag on the first breadcrumb, defaults to 'first'
     * - `lastClass` Class for wrapper tag on current active page, defaults to 'last'
     *
     * @param array $options Array of HTML attributes to apply to the generated list elements.
     * @param string|array|bool $startText This will be the first crumb, if false it defaults to first crumb in
     *   array. Can also be an array, see `HtmlHelper::getCrumbs` for details.
     * @return string|null Breadcrumbs HTML list.
     * @link http://book.cakephp.org/3.0/en/views/helpers/html.html#creating-breadcrumb-trails-with-htmlhelper
     */
   
public function getCrumbList(array $options = [], $startText = false)
    {
       
$options += [
           
'separator' => '',
        ];

        return
parent::getCrumbList($this->injectClasses('breadcrumb', $options), $startText);
    }

   
/**
     * Returns bootstrap icon markup. By default, uses `<i>` tag and font awesome icon set.
     *
     * @param string $name Name of icon (i.e. search, leaf, etc.).
     * @param array $options Additional options and HTML attributes.
     * ### Options
     *
     * - `iconSet`: Common class name for the icon set. Default 'fas'.
     * - `prefix`: Prefix for class names. Default 'fa'.
     * - `size`: Size class will be generated based of this. For e.g. if you use
     *   size 'lg' class '<prefix>-lg` will be added. Default null.
     *
     * You can use `iconDefaults` option for the helper to set default values
     * for above options.
     *
     * @return string HTML icon markup.
     */
   
public function icon($name, array $options = [])
    {
       
$options += $this->getConfig('iconDefaults') + [
           
'class' => null,
        ];

       
$classes = [$options['iconSet'], $options['prefix'] . '-' . $name];
        if (!empty(
$options['size'])) {
           
$classes[] = $options['prefix'] . '-' . $options['size'];
        }
       
$options = $this->injectClasses($classes, $options);

        return
$this->formatTemplate('tag', [
           
'tag' => $options['tag'],
           
'attrs' => $this->templater()->formatAttributes(
               
$options,
                [
'tag', 'iconSet', 'prefix', 'size']
            ),
        ]);
    }

   
/**
     * Wrapper for Bootstrap baddge component
     *
     * @param string $text Text to show in label.
     * @param array|string $options Additional HTML attributes.
     * @deprecated label component has been removed from Bootstrap. Use badge component instead.
     * @return string HTML badge markup.
     */
   
public function label($text, $options = [])
    {
        if (
is_string($options)) {
           
$options = ['class' => $options];
        }

        return
$this->badge($text, $options);
    }
}