Exemple #1
0
echo $addForm->field($category, 'show', ['inputOptions' => ['class' => 'form-control']])->checkbox(['class' => 'i-checks', 'checked ' => $category->show ? '' : false]);
?>

        <!-- PARENT CATEGORY -->
        <b><?php 
echo \Yii::t('shop', 'Parent category');
?>
</b>
        <?php 
echo '<ul class="list-group ul-treefree ul-dropfree">';
?>
        <?php 
echo '<li class="list-group-item"><input type="radio" checked name="Category[parent_id]" value="" id="null"><label for="null">' . \Yii::t("shop", "Without parent") . '</label>';
?>
        <?php 
echo CategoryTranslation::treeRecoursion($categoriesTree, $category->parent_id, 'Category[parent_id]', $category_translation->category_id);
?>
        <?php 
echo '</ul>';
?>

        <!-- DESCRIPTION -->
        <?php 
echo $addForm->field($category_translation, 'description', ['inputOptions' => ['class' => 'form-control']])->widget(Summernote::className())->label(\Yii::t('shop', 'Description'));
?>

        <!-- SORT ORDER -->
        <?php 
echo $addForm->field($category, 'position', ['inputOptions' => ['class' => 'form-control']])->textInput(['type' => 'number', 'max' => $maxPosition, 'min' => $minPosition]);
?>
Exemple #2
0
 private function findCategoryBySeoUrl($seoUrl, $parentId, $options = [])
 {
     $categoriesSeoData = SeoData::find()->where(['entity_name' => CategoryTranslation::className(), 'seo_url' => $seoUrl])->all();
     if ($categoriesSeoData) {
         foreach ($categoriesSeoData as $categorySeoData) {
             if ($category = Category::find()->joinWith('translations translation')->where(array_merge(['translation.id' => $categorySeoData->entity_id, 'parent_id' => $parentId, 'translation.language_id' => $this->currentLanguage->id], $options))->one()) {
                 return $category;
             }
         }
     }
     return null;
 }
Exemple #3
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getTranslations()
 {
     return $this->hasMany(CategoryTranslation::className(), ['category_id' => 'id']);
 }
 /**
  * Adds category SEO data
  *
  * @param integer $languageId
  * @param integer $categoryId
  * @return mixed
  * @throws ForbiddenHttpException
  */
 public function actionAddSeo($languageId = null, $categoryId = null)
 {
     if (!empty($categoryId)) {
         $category = Category::findOne($categoryId);
         $category_translation = CategoryTranslation::find()->where(['category_id' => $categoryId, 'language_id' => $languageId])->one();
         if (empty($category_translation)) {
             $category_translation = new CategoryTranslation();
         }
     } else {
         $category = new Category();
         $category_translation = new CategoryTranslation();
     }
     if (Yii::$app->request->isPost) {
         $category->load(Yii::$app->request->post());
         $category_translation->load(Yii::$app->request->post());
         if ($category->validate() && $category_translation->validate()) {
             $category->save();
             $category_translation->category_id = $category->id;
             $category_translation->language_id = $languageId;
             $category_translation->save();
             Yii::$app->getSession()->setFlash('success', 'Data were successfully modified.');
         }
     }
     return $this->render('save', ['category' => $category, 'languageId' => $languageId, 'selectedLanguage' => Language::findOne($languageId), 'languages' => Language::findAll(['active' => true]), 'viewName' => 'add-seo', 'params' => ['category' => $category, 'category_translation' => $category_translation, 'languageId' => $languageId]]);
 }
 /**
  * Adds basic info for product model.
  *
  * Users which have 'updateOwnProduct' permission can add or edit basic info only for Product models that have been created by their.
  * Users which have 'updateProduct' permission can can add or edit basic info for all Product models.
  *
  * @param integer $id
  * @param integer $languageId
  * @return mixed
  * @throws ForbiddenHttpException
  */
 public function actionAddBasic($id = null, int $languageId)
 {
     if (!empty($languageId)) {
         $selectedLanguage = Language::findOne($languageId);
     } else {
         $selectedLanguage = Language::getCurrent();
     }
     if (!empty($id)) {
         $product = Product::findOne($id);
         if (\Yii::$app->user->can('updateProduct', ['productOwner' => $product->owner])) {
             $products_translation = ProductTranslation::find()->where(['product_id' => $id, 'language_id' => $languageId])->one();
             if (empty($products_translation)) {
                 $products_translation = new ProductTranslation();
             }
         } else {
             throw new ForbiddenHttpException();
         }
     } else {
         if (\Yii::$app->user->can('createProduct')) {
             $this->trigger(self::EVENT_BEFORE_CREATE_PRODUCT);
             $product = new Product();
             $products_translation = new ProductTranslation();
         } else {
             throw new ForbiddenHttpException();
         }
     }
     if (Yii::$app->request->isPost) {
         $product->load(Yii::$app->request->post());
         if ($product->isNewRecord) {
             $product->owner = Yii::$app->user->id;
             if (\Yii::$app->user->can('createProductWithoutModeration')) {
                 $product->status = Product::STATUS_SUCCESS;
             }
             if ($product->validate()) {
                 $product->save();
                 $this->trigger(self::EVENT_AFTER_CREATE_PRODUCT, new ProductEvent(['productId' => $product->id, 'userId' => Yii::$app->user->id, 'time' => $product->creation_time]));
             }
         }
         $this->trigger(self::EVENT_BEFORE_EDIT_PRODUCT, new ProductEvent(['productId' => $product->id, 'userId' => Yii::$app->user->id, 'time' => $products_translation->update_time]));
         $products_translation->load(Yii::$app->request->post());
         if ($product->validate() && $products_translation->validate()) {
             if (empty($products_translation->seoUrl)) {
                 $products_translation->seoUrl = Inflector::slug($products_translation->title);
             }
             $products_translation->product_id = $product->id;
             $products_translation->language_id = $selectedLanguage->id;
             $products_translation->save();
             $product->save();
             $this->trigger(self::EVENT_AFTER_EDIT_PRODUCT, new ProductEvent(['productId' => $product->id, 'userId' => Yii::$app->user->id, 'time' => $products_translation->update_time]));
         }
     }
     if (Yii::$app->request->isPjax) {
         return $this->renderPartial('add-basic', ['languages' => Language::find()->all(), 'selectedLanguage' => $selectedLanguage, 'product' => $product, 'products_translation' => $products_translation, 'params_translation' => new ParamTranslation()]);
     } else {
         return $this->render('save', ['viewName' => 'add-basic', 'selectedLanguage' => $selectedLanguage, 'product' => $product, 'languages' => Language::find()->all(), 'params' => ['languages' => Language::find()->all(), 'selectedLanguage' => $selectedLanguage, 'product' => $product, 'products_translation' => $products_translation, 'categories' => CategoryTranslation::find()->where(['language_id' => $selectedLanguage->id])->all(), 'params_translation' => new ParamTranslation()]]);
     }
 }