public function init() { parent::init(); \Yii::$app->on(AdminController::EVENT_INIT, function (AdminInitEvent $e) { if ($e->controller instanceof AdminCmsContentElementController || $e->controller instanceof \skeeks\cms\shop\controllers\AdminCmsContentElementController) { /** * @var $model CmsContentElement */ $model = $e->controller->model; if ($model->content_id) { if (ShopContent::find()->where(['content_id' => $model->content_id])->exists()) { $e->controller->eventActions = ArrayHelper::merge($e->controller->eventActions, ['shop' => ['class' => AdminContentElementShopAction::className(), 'name' => 'Цены и наличие (Магазин)', 'priority' => 1000, "icon" => "glyphicon glyphicon-shopping-cart"]]); } } } }); }
/** * Меню контента * @return array */ function shopProductsMenu() { $result = []; try { $table = \skeeks\cms\models\CmsContent::getTableSchema(); $table = \skeeks\cms\shop\models\ShopContent::getTableSchema(); } catch (\Exception $e) { return $result; } if ($contents = \skeeks\cms\models\CmsContent::find()->orderBy("priority ASC")->andWhere(['id' => \yii\helpers\ArrayHelper::map(\skeeks\cms\shop\models\ShopContent::find()->all(), 'content_id', 'content_id')])->all()) { /** * @var $content \skeeks\cms\models\CmsContent */ foreach ($contents as $content) { $itemData = ['label' => $content->name, "img" => ['\\skeeks\\cms\\modules\\admin\\assets\\AdminAsset', 'images/icons/icon.article.png'], 'url' => ["shop/admin-cms-content-element/index", "content_id" => $content->id]]; $result[] = new \skeeks\cms\modules\admin\helpers\AdminMenuItemCmsConent($itemData); } } return $result; }
if ($tree_id = \Yii::$app->request->get("tree_id")) { $model->tree_id = $tree_id; } if ($parent_content_element_id = \Yii::$app->request->get("parent_content_element_id")) { $model->parent_content_element_id = $parent_content_element_id; } if ($contentModel->parent_content_id) { $model->name = $model->parentContentElement->name; } } else { $contentModel = $model->cmsContent; } /** * @var $shopContent \skeeks\cms\shop\models\ShopContent */ $shopContent = \skeeks\cms\shop\models\ShopContent::find()->where(['content_id' => $contentModel->id])->one(); ?> <?php $form = ActiveForm::begin(); ?> <? if ($model->isNewRecord) : ?> <? if ($content_id = \Yii::$app->request->get("content_id")) : ?> <?php echo $form->field($model, 'content_id')->hiddenInput(['value' => $content_id])->label(false); ?> <? endif; ?> <? endif; ?> <? if ($contentModel && $contentModel->parentContent) : ?>
/** * @return $this */ public function getShopContents() { $query = \skeeks\cms\models\CmsContent::find()->orderBy("priority ASC")->andWhere(['id' => \yii\helpers\ArrayHelper::map(\skeeks\cms\shop\models\ShopContent::find()->all(), 'content_id', 'content_id')]); $query->multiple = true; return $query->all(); }