%PDF- %PDF-
Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/widgets/ |
Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/widgets/Label.php |
<?php /** * @link https://www.humhub.org/ * @copyright Copyright (c) 2017 HumHub GmbH & Co. KG * @license https://www.humhub.com/licences * */ namespace humhub\widgets; use humhub\components\Widget; use humhub\libs\Html; use Yii; /** * Labels for Wall Entries * This widget will attached labels like Pinned, Archived to Wall Entries * * @since 1.2.2 */ class Label extends BootstrapComponent { /** * @since 1.9 */ public const TYPE_LIGHT = 'light'; public $_sortOrder = 1000; public $encode = true; public $_link; public $_action; /** * @param string $text Label text * @return static * @since 1.9 */ public static function light($text) { return new static(['type' => static::TYPE_LIGHT, 'text' => $text]); } public function sortOrder($sortOrder) { $this->_sortOrder = $sortOrder; return $this; } /** * Adds a data-action-click handler to the button. * @param $handler * @param null $url * @param null $target * @return static */ public function action($handler, $url = null, $target = null) { $this->_link = Link::withAction($this->getText(), $handler, $url, $target); return $this; } public function withLink($link) { if($link instanceof Link) { $this->_link = $link; } return $this; } /** * @return string renders and returns the actual html element by means of the current settings */ public function renderComponent() { $result = Html::tag('span', $this->getText(), $this->htmlOptions); if($this->_link) { $result = (string) $this->_link->setText($result); } return $result; } /** * @return string the bootstrap css base class */ public function getComponentBaseClass() { return 'label'; } /** * @return string the bootstrap css class by $type */ public function getTypedClass($type) { return 'label-'.$type; } public function getWidgetOptions() { $options = parent::getWidgetOptions(); $options['_link'] = $this->_link; return $options; } public static function sort(&$labels) { usort($labels, function ($a, $b) { if ($a->_sortOrder == $b->_sortOrder) { return 0; } elseif ($a->_sortOrder < $b->_sortOrder) { return - 1; } else { return 1; } }); return $labels; } } ?>