%PDF- %PDF-
Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/libs/ |
Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/libs/ActionColumn.php |
<?php /** * @link https://www.humhub.org/ * @copyright Copyright (c) 2017 HumHub GmbH & Co. KG * @license https://www.humhub.com/licences */ namespace humhub\libs; use humhub\widgets\Button; use yii\grid\Column; use yii\helpers\Url; use humhub\libs\Html; /** * Description of ActionColumn * * @author Luke */ class ActionColumn extends Column { /** * @var string the ID attribute of the model, to generate action URLs. */ public $modelIdAttribute = 'id'; /** * @var array list of actions (key = title, value = url) */ public $actions = []; /** * @inheritdoc */ public function init() { parent::init(); $this->options['style'] = 'width:56px'; } /** * @inheritdoc */ protected function renderDataCellContent($model, $key, $index) { $actions = $this->getActions($model, $key, $index); if (empty($actions)) { return ''; } $html = Html::beginTag('div', ['class' => 'btn-group dropdown-navigation']); $html .= Button::defaultType('<span class="caret"></span>')->cssClass('dropdown-toggle') ->options(['data-toggle' => 'dropdown'])->icon('controls')->loader(false); $html .= Html::beginTag('ul', ['class' => 'dropdown-menu pull-right']); foreach ($actions as $title => $url) { if ($url === '---') { $html .= '<li class="divider"></li>'; } else { $linkOptions = null; if (isset($url['linkOptions'])) { $linkOptions = $url['linkOptions']; unset($url['linkOptions']); } $html .= Html::beginTag('li'); $html .= Html::a($title, $this->handleUrl($url, $model), $linkOptions); $html .= Html::endTag('li'); } } $html .= Html::endTag('ul'); $html .= Html::endTag('div'); return $html; } protected function getActions($model, $key, $index) { if ($this->actions === null) { return []; } elseif (is_callable($this->actions)) { return call_user_func($this->actions, $model, $key, $index, $this); } return $this->actions; } /** * Builds the URL for a given Action * * @param array $url * @param \yii\base\Model $model * @return string the url */ protected function handleUrl($url, $model) { if (!isset($url[$this->modelIdAttribute])) { $url[$this->modelIdAttribute] = $model->getAttribute($this->modelIdAttribute); } return Url::to($url); } }