public function init() { $this->name = "Управление контентом"; $this->modelShowAttribute = "name"; $this->modelClassName = CmsContentType::className(); parent::init(); }
/** * Меню контента * @return array */ function contentEditMenu() { $result = []; if ($contentTypes = \skeeks\cms\models\CmsContentType::find()->orderBy("priority ASC")->all()) { /** * @var $contentType \skeeks\cms\models\CmsContentType */ foreach ($contentTypes as $contentType) { $itemData = ['code' => "content-block-edit-" . $contentType->id, 'url' => ["/cms/admin-cms-content-type/update", "pk" => $contentType->id], 'label' => $contentType->name, "img" => ['\\skeeks\\cms\\modules\\admin\\assets\\AdminAsset', 'images/icons/icon.article.png']]; if ($contents = $contentType->cmsContents) { foreach ($contents as $content) { $itemData['items'][] = ['label' => $content->name, 'url' => ["cms/admin-cms-content/update", "pk" => $content->id]]; } } $result[] = $itemData; } } return $result; }
/** * Меню контента * @return array */ function contentEditMenu() { $result = []; if ($contentTypes = \skeeks\cms\models\CmsContentType::find()->orderBy("priority ASC")->all()) { /** * @var $contentType \skeeks\cms\models\CmsContentType */ foreach ($contentTypes as $contentType) { $itemData = ['code' => "content-block-edit-" . $contentType->id, 'url' => ["/cms/admin-cms-content-type/update", "pk" => $contentType->id], 'label' => $contentType->name, "img" => ['\\skeeks\\cms\\modules\\admin\\assets\\AdminAsset', 'images/icons/icon.article.png'], "activeCallback" => function (\skeeks\cms\modules\admin\helpers\AdminMenuItem $adminMenuItem) { return (bool) (\Yii::$app->controller->action->uniqueId == 'cms/admin-cms-content-type/update' && \yii\helpers\ArrayHelper::getValue($adminMenuItem->url, 'pk') == \Yii::$app->request->get('pk')); }]; if ($contents = $contentType->cmsContents) { foreach ($contents as $content) { $itemData['items'][] = ['label' => $content->name, 'url' => ["cms/admin-cms-content/update", "pk" => $content->id], "activeCallback" => function (\skeeks\cms\modules\admin\helpers\AdminMenuItem $adminMenuItem) { return (bool) (\Yii::$app->controller->action->uniqueId == 'cms/admin-cms-content/update' && \yii\helpers\ArrayHelper::getValue($adminMenuItem->url, 'pk') == \Yii::$app->request->get('pk')); }]; } } $result[] = $itemData; } } return $result; }
/** * @return \yii\db\ActiveQuery */ public function getContentType() { return $this->hasOne(CmsContentType::className(), ['code' => 'content_type']); }
<?php /** * @author Semenov Alexander <*****@*****.**> * @link http://skeeks.com/ * @copyright 2010 SkeekS (СкикС) * @date 27.05.2015 */ /* @var $this yii\web\View */ /* @var $contentType \skeeks\cms\models\CmsContentType */ /* @var $model \skeeks\cms\shop\cmsWidgets\filters\ShopProductFiltersWidget */ $result = []; if ($contentTypes = \skeeks\cms\models\CmsContentType::find()->all()) { foreach ($contentTypes as $contentType) { $result[$contentType->name] = \yii\helpers\ArrayHelper::map($contentType->cmsContents, 'id', 'name'); } } echo $form->fieldSet(\Yii::t('skeeks/shop/app', 'Showing')); ?> <?php echo $form->field($model, 'viewFile')->textInput(); echo $form->fieldSetEnd(); ?> <?php echo $form->fieldSet(\Yii::t('app', 'Data source')); ?> <?php echo $form->fieldSelect($model, 'content_id', $result); ?>
<?php echo $form->fieldSet(\Yii::t('app', 'Main')); ?> <?php if ($content_type = \Yii::$app->request->get('content_type')) { ?> <?php echo $form->field($model, 'content_type')->hiddenInput(['value' => $content_type])->label(false); ?> <?php } else { ?> <div style="display: none;"> <?php echo $form->fieldSelect($model, 'content_type', \yii\helpers\ArrayHelper::map(\skeeks\cms\models\CmsContentType::find()->all(), 'code', 'name')); ?> </div> <?php } ?> <?php echo $form->field($model, 'name')->textInput(); ?> <?php echo $form->field($model, 'code')->textInput()->hint(\Yii::t('app', 'The name of the template to draw the elements of this type will be the same as the name of the code.')); ?> <?php echo $form->field($model, 'viewFile')->textInput()->hint(\Yii::t('app', 'The path to the template. If not specified, the pattern will be the same code.'));