public function init()
 {
     $this->name = \skeeks\cms\shop\Module::t('app', 'Content settings');
     $this->modelShowAttribute = "id";
     $this->modelClassName = ShopContent::className();
     parent::init();
 }
Example #2
0
 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"]]);
                 }
             }
         }
     });
 }
Example #3
0
/**
 * Меню контента
 * @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;
}
Example #4
0
    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) : ?>
 /**
  * @param CmsContent $cmsContent
  * @return array
  */
 public static function getDefaultColumns($cmsContent = null)
 {
     $columns = [['class' => \skeeks\cms\grid\ImageColumn2::className()], 'name', ['class' => \skeeks\cms\grid\UpdatedAtColumn::className()], ['class' => \yii\grid\DataColumn::className(), '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' => \skeeks\cms\helpers\TreeOptions::getAllMultiOptions(), 'attribute' => 'tree_id'], ['class' => \yii\grid\DataColumn::className(), '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/shop/app', 'Advanced Topics')], ['attribute' => 'active', 'class' => \skeeks\cms\grid\BooleanColumn::className()], ['label' => \Yii::t('skeeks/shop/app', 'Base price'), 'class' => \yii\grid\DataColumn::className(), 'value' => function (\skeeks\cms\models\CmsContentElement $model) {
         $shopProduct = \skeeks\cms\shop\models\ShopProduct::getInstanceByContentElement($model);
         if ($shopProduct && $shopProduct->baseProductPrice) {
             return \Yii::$app->money->intlFormatter()->format($shopProduct->baseProductPrice->money);
         }
         return null;
     }], ['class' => \yii\grid\DataColumn::className(), '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/shop/app', 'View online (opens new window)'), 'data-pjax' => '0', 'class' => 'btn btn-default btn-sm']);
     }, 'format' => 'raw']];
     $typeColumn = ['class' => \yii\grid\DataColumn::className(), 'label' => 'Тип товара', 'value' => function (\skeeks\cms\shop\models\ShopCmsContentElement $shopCmsContentElement) {
         if ($shopCmsContentElement->shopProduct) {
             return \yii\helpers\ArrayHelper::getValue(\skeeks\cms\shop\models\ShopProduct::possibleProductTypes(), $shopCmsContentElement->shopProduct->product_type);
         }
     }];
     if ($cmsContent) {
         /**
          * @var $shopContent \skeeks\cms\shop\models\ShopContent
          */
         $shopContent = \skeeks\cms\shop\models\ShopContent::findOne(['content_id' => $cmsContent->id]);
         if ($shopContent) {
             if ($shopContent->childrenContent) {
                 $columns = \yii\helpers\ArrayHelper::merge([$typeColumn], $columns);
             }
         }
     }
     return $columns;
 }
Example #6
0
 /**
  * @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();
 }
 /**
  * @return ShopContent
  */
 public function getShopContent()
 {
     return ShopContent::findOne(['content_id' => $this->content_id]);
 }