%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/ui/form/widgets/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/modules/ui/form/widgets/IconPicker.php |
<?php
/**
* @link https://www.humhub.org/
* @copyright Copyright (c) 2018 HumHub GmbH & Co. KG
* @license https://www.humhub.com/licences
*
*/
namespace humhub\modules\ui\form\widgets;
use humhub\modules\ui\icon\widgets\Icon;
use kartik\select2\Select2;
use Yii;
use yii\web\JsExpression;
/**
* IconPicker form field widget
*
* Usage example:
*
* ```php
* <?= $activeForm->field($form, 'icon')->widget(IconPicker::class); ?>
* ```
*
* @since 1.3
*/
class IconPicker extends Select2
{
/**
* @var string optional icon provider id
*/
public $lib;
/**
* @inheritdoc
*/
public function init()
{
$this->options['placeholder'] = Yii::t('UiModule.form', 'Select icon');
$this->theme = Select2::THEME_BOOTSTRAP;
$this->pluginOptions = [
'escapeMarkup' => new JsExpression("function(m) { return m; }")
];
parent::init();
}
/**
* @inheritdoc
*/
public function run()
{
$this->value = (strpos($this->value, 'fa-') === 0)
? substr($this->value, 3, strlen($this->value))
: $this->value;
return parent::run();
}
/**
* @inheritdoc
*/
public function renderInput()
{
$this->populateIconList();
parent::renderInput();
}
/**
* Populate data with icon list
*/
protected function populateIconList()
{
foreach ($this->getIconNames() as $icon) {
$title = $icon;
if (substr($title, 0, 3) === 'fa-') {
$title = substr($title, 3);
}
$this->data[$icon] = Icon::get(['name' => $icon, 'lib' => $this->lib]) . ' ' . $title;
}
}
/**
* Returns a list of available icons
*
* @return array a list of icons
*/
public function getIconNames()
{
return Icon::getNames($this->lib);
}
}