/** * Renders tab section content. * @param string $section * @return string */ protected function renderSection($section) { $configs = isset($this->_configs[$section]) ? $this->_configs[$section] : Param::getConfigsBySection($section); ob_start(); ob_implicit_flush(false); if ($this->pjax) { Pjax::begin($this->pjaxOptions); } $form = ActiveForm::begin(['action' => [$this->id, 'tab' => $section], 'pjax' => $this->pjax]); echo Html::hiddenInput('section', $section); foreach ($configs as $config) { if (!Param::isAccess($config)) { continue; } $title = Yii::t('app', $config->title); $field = $form->field($config, "[{$config->id}]value")->hint(Yii::t('app', $config->desc)); switch ($config->value_type) { case Config::TYPE_TEXT: case Config::TYPE_URL: case Config::TYPE_EMAIL: case Config::TYPE_INT: case Config::TYPE_NUM: echo $field->textInput()->label($title); break; case Config::TYPE_EDITOR: echo $field->textArea()->label($title); break; case Config::TYPE_SWITCH: echo $field->widget(Check::className(), ['label' => $title])->label(false); break; case Config::TYPE_SELECT: echo $field->widget(Select2::className(), ['items' => $config->options])->label($title); break; case Config::TYPE_PASSWORD: echo $field->passwordInput()->label($title); break; } } ActiveForm::endWithActions(['cancel' => false]); if ($this->pjax) { Pjax::end(); } return ob_get_clean(); }
<?php use app\widgets\Pjax; use app\widgets\Timeline; use modules\wiki\assets\DiffAsset; use modules\wiki\helpers\DiffHelper; use yii\helpers\Html; /** @var $this yii\web\View */ /** @var $historyProvider yii\data\ActiveDataProvider */ DiffAsset::register($this); ?> <?php Pjax::begin(); echo Timeline::widget(['dataProvider' => $historyProvider, 'dateValue' => function ($model) { return Yii::$app->formatter->asDate($model->created_at); }, 'timeView' => function ($model) { return Yii::$app->formatter->asRelativeTime($model->created_at); }, 'itemHeaderView' => function ($model) { return Yii::$app->formatter->asUserlink($model->user) . ' ' . Html::tag('span', e($model->summary), ['class' => 'text-muted summary-change']); }, 'itemView' => function ($model) { return Html::tag('pre', DiffHelper::diff($model)); }, 'itemFooterView' => function ($model) { return Html::a(Yii::t('app', 'Edit'), ['page/update', 'id' => $model->wiki_id, 'rev' => $model->id], ['class' => 'btn btn-default btn-flat btn-xs', 'data-pjax' => 0]); }]); Pjax::end();