Skip to content

Commit

Permalink
dev
Browse files Browse the repository at this point in the history
  • Loading branch information
skeeks-semenov committed Aug 15, 2018
1 parent 101d908 commit 472356e
Showing 1 changed file with 157 additions and 0 deletions.
157 changes: 157 additions & 0 deletions src/controllers/AdminCmsContentElementController.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
use skeeks\cms\modules\admin\actions\AdminAction;
use skeeks\cms\modules\admin\actions\modelEditor\AdminModelEditorAction;
use skeeks\cms\modules\admin\actions\modelEditor\AdminMultiDialogModelEditAction;
use skeeks\cms\modules\admin\widgets\GridViewStandart;
use skeeks\cms\queryfilters\filters\modes\FilterModeEq;
use skeeks\cms\queryfilters\QueryFiltersEvent;
use skeeks\yii2\form\fields\BoolField;
Expand Down Expand Up @@ -1048,4 +1049,160 @@ public function getActions()

return $actions;
}







/**
* @param CmsContent $model
* @return array
*/
public static function getColumns($cmsContent = null, $dataProvider = null)
{
return \yii\helpers\ArrayHelper::merge(
static::getDefaultColumns($cmsContent),
static::getColumnsByContent($cmsContent, $dataProvider)
);
}
/**
* @param CmsContent $cmsContent
* @return array
*/
public static function getDefaultColumns($cmsContent = null)
{
$columns = [
[
'class' => \skeeks\cms\grid\ImageColumn2::class,
],
'name',
['class' => \skeeks\cms\grid\CreatedAtColumn::class],
[
'class' => \skeeks\cms\grid\UpdatedAtColumn::class,
'visible' => false,
],
[
'class' => \skeeks\cms\grid\PublishedAtColumn::class,
'visible' => false,
],
[
'class' => \skeeks\cms\grid\DateTimeColumnData::class,
'attribute' => "published_to",
'visible' => false,
],
['class' => \skeeks\cms\grid\CreatedByColumn::class],
//['class' => \skeeks\cms\grid\UpdatedByColumn::class],
[
'class' => \yii\grid\DataColumn::class,
'value' => function (\skeeks\cms\models\CmsContentElement $model) {
if (!$model->cmsTree) {
return null;
}
$path = [];
if ($model->cmsTree->parents) {
foreach ($model->cmsTree->parents as $parent) {
if ($parent->isRoot()) {
$path[] = "[".$parent->site->name."] ".$parent->name;
} else {
$path[] = $parent->name;
}
}
}
$path = implode(" / ", $path);
return "<small><a href='{$model->cmsTree->url}' target='_blank' data-pjax='0'>{$path} / {$model->cmsTree->name}</a></small>";
},
'format' => 'raw',
'filter' => false,
//'filter' => \skeeks\cms\helpers\TreeOptions::getAllMultiOptions(),
'attribute' => 'tree_id',
],
'additionalSections' => [
'class' => \yii\grid\DataColumn::class,
'value' => function (\skeeks\cms\models\CmsContentElement $model) {
$result = [];
if ($model->cmsContentElementTrees) {
foreach ($model->cmsContentElementTrees as $contentElementTree) {
$site = $contentElementTree->tree->root->site;
$result[] = "<small><a href='{$contentElementTree->tree->url}' target='_blank' data-pjax='0'>[{$site->name}]/.../{$contentElementTree->tree->name}</a></small>";
}
}
return implode('<br />', $result);
},
'format' => 'raw',
'label' => \Yii::t('skeeks/cms', 'Additional sections'),
'visible' => false,
],
[
'attribute' => 'active',
'class' => \skeeks\cms\grid\BooleanColumn::class,
],
[
'class' => \yii\grid\DataColumn::class,
'label' => "Смотреть",
'value' => function (\skeeks\cms\models\CmsContentElement $model) {
return \yii\helpers\Html::a('<i class="glyphicon glyphicon-arrow-right"></i>', $model->absoluteUrl,
[
'target' => '_blank',
'title' => \Yii::t('skeeks/cms', 'Watch to site (opens new window)'),
'data-pjax' => '0',
'class' => 'btn btn-default btn-sm',
]);
},
'format' => 'raw',
],
];
return $columns;
}
/**
* @param CmsContent $cmsContent
* @return array
*/
public static function getColumnsByContent($cmsContent = null, $dataProvider = null)
{
$autoColumns = [];
if (!$cmsContent) {
return [];
}
$model = null;
//$model = CmsContentElement::find()->where(['content_id' => $cmsContent->id])->one();
if (!$model) {
$model = new CmsContentElement([
'content_id' => $cmsContent->id,
]);
}
if (is_array($model) || is_object($model)) {
foreach ($model as $name => $value) {
$autoColumns[] = [
'attribute' => $name,
'visible' => false,
'format' => 'raw',
'class' => \yii\grid\DataColumn::class,
'value' => function ($model, $key, $index) use ($name) {
if (is_array($model->{$name})) {
return implode(",", $model->{$name});
} else {
return $model->{$name};
}
},
];
}
$searchRelatedPropertiesModel = new \skeeks\cms\models\searchs\SearchRelatedPropertiesModel();
$searchRelatedPropertiesModel->initProperties($cmsContent->cmsContentProperties);
$searchRelatedPropertiesModel->load(\Yii::$app->request->get());
if ($dataProvider) {
$searchRelatedPropertiesModel->search($dataProvider);
}
/**
* @var $model \skeeks\cms\models\CmsContentElement
*/
if ($model->relatedPropertiesModel) {
$autoColumns = ArrayHelper::merge($autoColumns,
GridViewStandart::getColumnsByRelatedPropertiesModel($model->relatedPropertiesModel,
$searchRelatedPropertiesModel));
}
}
return $autoColumns;
}
}

0 comments on commit 472356e

Please sign in to comment.