kartik\grid\ExpandRowColumn::init PHP Method

init() public method

public init ( )
    public function init()
    {
        parent::init();
        if (empty($this->detail) && empty($this->detailUrl)) {
            throw new InvalidConfigException("Either the 'detail' or 'detailUrl' must be entered");
        }
        $this->format = 'raw';
        $this->expandIcon = $this->getIcon('expand');
        $this->collapseIcon = $this->getIcon('collapse');
        $this->setProp('expandTitle', Yii::t('kvgrid', 'Expand'));
        $this->setProp('collapseTitle', Yii::t('kvgrid', 'Collapse'));
        $this->setProp('expandAllTitle', Yii::t('kvgrid', 'Expand All'));
        $this->setProp('collapseAllTitle', Yii::t('kvgrid', 'Collapse All'));
        $onDetailLoaded = $this->onDetailLoaded;
        if (!empty($onDetailLoaded) && !$onDetailLoaded instanceof JsExpression) {
            $onDetailLoaded = new JsExpression($onDetailLoaded);
        }
        if ($this->allowBatchToggle) {
            $this->headerOptions['title'] = $this->expandAllTitle;
        }
        if ($this->allowBatchToggle && $this->defaultHeaderState === GridView::ROW_EXPANDED) {
            $this->headerOptions['title'] = $this->collapseTitle;
        }
        $class = 'kv-expand-header-cell';
        $class .= $this->allowBatchToggle ? ' kv-batch-toggle' : ' text-muted';
        Html::addCssClass($this->headerOptions, $class);
        $view = $this->grid->getView();
        ExpandRowColumnAsset::register($view);
        $clientOptions = Json::encode(['gridId' => $this->grid->options['id'], 'hiddenFromExport' => $this->hiddenFromExport, 'detailUrl' => empty($this->detailUrl) ? '' : $this->detailUrl, 'onDetailLoaded' => $onDetailLoaded, 'expandIcon' => $this->expandIcon, 'collapseIcon' => $this->collapseIcon, 'expandTitle' => $this->expandTitle, 'collapseTitle' => $this->collapseTitle, 'expandAllTitle' => $this->expandAllTitle, 'collapseAllTitle' => $this->collapseAllTitle, 'rowCssClass' => $this->detailRowCssClass, 'animationDuration' => $this->detailAnimationDuration, 'expandOneOnly' => $this->expandOneOnly, 'enableRowClick' => $this->enableRowClick, 'enableCache' => $this->enableCache, 'rowClickExcludedTags' => array_map('strtoupper', $this->rowClickExcludedTags), 'collapseAll' => false, 'expandAll' => false, 'extraData' => $this->extraData]);
        $this->_hashVar = 'kvExpandRow_' . hash('crc32', $clientOptions);
        $view->registerJs("var {$this->_hashVar} = {$clientOptions};\n", View::POS_HEAD);
        $view->registerJs("kvExpandRow({$this->_hashVar});");
    }