コード例 #1
0
 /**
  * Разрешены ли привелегии
  * @return bool
  */
 public function isPermissionCan()
 {
     if (is_array($this->url)) {
         $controller = null;
         try {
             /**
              * @var $controller \yii\web\Controller
              */
             list($controller, $route) = \Yii::$app->createController($this->url[0]);
         } catch (\Exception $e) {
         }
         if (!$controller) {
             return true;
         }
         if ($content_id = ArrayHelper::getValue($this->url, 'content_id')) {
             $controller->content = CmsContent::findOne($content_id);
         }
         if ($permission = \Yii::$app->authManager->getPermission($controller->permissionName)) {
             if (\Yii::$app->user->can($permission->name)) {
                 return $this->_accessCallback();
             } else {
                 return false;
             }
         } else {
             return $this->_accessCallback();
         }
     }
     return $this->_accessCallback();
 }
コード例 #2
0
 public function beforeAction($action)
 {
     if ($content_id = \Yii::$app->request->get('content_id')) {
         $this->content = CmsContent::findOne($content_id);
     }
     if ($this->content) {
         if ($this->content->name_meny) {
             $this->name = $this->content->name_meny;
         }
     }
     return parent::beforeAction($action);
 }
コード例 #3
0
ファイル: index.php プロジェクト: skeeks-cms/cms-shop
 * @date 02.06.2015
 */
/* @var $this yii\web\View */
/* @var $searchModel \skeeks\cms\models\Search */
/* @var $dataProvider yii\data\ActiveDataProvider */
$dataProvider->setSort(['defaultOrder' => ['published_at' => SORT_DESC]]);
$sortAttr = $dataProvider->getSort()->attributes;
$dataProvider->query->joinWith('shopProduct as sp');
$dataProvider->getSort()->attributes = \yii\helpers\ArrayHelper::merge($sortAttr, ['quantity' => ['asc' => ['sp.quantity' => SORT_ASC], 'desc' => ['sp.quantity' => SORT_DESC], 'label' => \Yii::t('skeeks/shop/app', 'Available quantity'), 'default' => SORT_ASC]]);
$cmsContent = null;
if ($content_id = \Yii::$app->request->get('content_id')) {
    $dataProvider->query->andWhere(['content_id' => $content_id]);
    /**
     * @var $cmsContent \skeeks\cms\models\CmsContent
     */
    $cmsContent = \skeeks\cms\models\CmsContent::findOne($content_id);
    $searchModel->content_id = $content_id;
}
$columns = \skeeks\cms\shop\controllers\AdminCmsContentElementController::getColumns($cmsContent, $dataProvider);
$columns = \yii\helpers\ArrayHelper::merge($columns, [['label' => \Yii::t('skeeks/shop/app', 'Available quantity'), 'class' => \yii\grid\DataColumn::class, 'visible' => false, 'attribute' => 'quantity', 'value' => function (\skeeks\cms\shop\models\ShopCmsContentElement $shopCmsContentElement) {
    return $shopCmsContentElement->shopProduct ? $shopCmsContentElement->shopProduct->quantity : " - ";
}]]);
?>

<? $pjax = \yii\widgets\Pjax::begin(); ?>

    <?php 
echo $this->render('_search', ['searchModel' => $searchModel, 'dataProvider' => $dataProvider, 'content_id' => $content_id, 'cmsContent' => $cmsContent]);
?>

    <?php 
コード例 #4
0
 /**
  * @return CmsContent
  */
 public function getCmsContent()
 {
     return CmsContent::findOne($this->content_id);
 }
コード例 #5
0
 /**
  * @return CmsContent|static
  */
 public function getContent()
 {
     if ($this->_content !== null) {
         return $this->_content;
     }
     if ($content_id = \Yii::$app->request->get('content_id')) {
         $this->_content = CmsContent::findOne($content_id);
     }
     return $this->_content;
 }
コード例 #6
0
 /**
  * @param array $product
  * @return array|null|ShopCmsContentElement|\yii\db\ActiveRecord
  * @throws \skeeks\cms\relatedProperties\models\InvalidParamException
  */
 protected function _getCmsContentElementProduct($product = [])
 {
     $cmsContent = ShopCmsContentElement::find()->joinWith('relatedElementProperties map')->joinWith('relatedElementProperties.property property')->andWhere(['property.code' => \Yii::$app->v3toysSettings->v3toysIdPropertyName])->andWhere(['map.value' => ArrayHelper::getValue($product, 'external_id')])->joinWith('cmsContent as ccontent')->andWhere(['ccontent.code' => 'product'])->one();
     if (!$cmsContent) {
         $content = CmsContent::findOne(['code' => 'product']);
         //Иначе создадим
         $cmsContent = new ShopCmsContentElement();
         //$cmsContent->tree_id = ImportStockSaleV2::ROOT_TREE_ID; //Каталог
         $cmsContent->content_id = CmsContent::findOne(['code' => 'product'])->id;
         //Тип контента
         $cmsContent->name = ArrayHelper::getValue($product, 'name');
         if ($cmsContent->save()) {
             $cmsContent->relatedPropertiesModel->setAttribute(\Yii::$app->v3toysSettings->v3toysIdPropertyName, ArrayHelper::getValue($product, 'external_id'));
             $cmsContent->relatedPropertiesModel->save(false);
         } else {
             throw new Exception("Not created product: " . serialize($cmsContent->getFirstErrors()));
         }
         $this->stdout("\tCreated element {$cmsContent->id}\n");
         return $cmsContent;
     }
     $this->stdout("\tExist element {$cmsContent->id}\n");
     return $cmsContent;
 }
コード例 #7
0
ファイル: ShopComponent.php プロジェクト: skeeks-cms/cms-shop
 /**
  * @return CmsContent
  */
 public function getStoreContent()
 {
     if (!($contentId = (int) $this->storeCmsContentId)) {
         return null;
     }
     return CmsContent::findOne($contentId);
 }
コード例 #8
0
ファイル: _form.php プロジェクト: skeeks-cms/cms
    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;
    }
}
?>

<?php 
$form = ActiveForm::begin();
?>

<? if ($model->isNewRecord) : ?>
    <? if ($content_id = \Yii::$app->request->get("content_id")) : ?>
        <? $contentModel = \skeeks\cms\models\CmsContent::findOne($content_id); ?>
        <? $model->content_id = $content_id; ?>
        <?php 
echo $form->field($model, 'content_id')->hiddenInput(['value' => $content_id])->label(false);
?>
    <? endif; ?>
<? else : ?>
    <? $contentModel = $model->cmsContent; ?>
<? endif; ?>

<? if ($contentModel && $contentModel->parentContent) : ?>
    <?php 
echo Html::activeHiddenInput($contentModel, 'parent_content_is_required');
?>
<? endif; ?>