Beispiel #1
0
 public function actionProductItems()
 {
     $this->layout = false;
     if ($q = Yii::$app->request->post('q')) {
         $offset = Yii::$app->session->get("controllers.search.index.{$q}.offset");
         $offset += static::PRODUCTS_LIMIT;
         Yii::$app->session->set("controllers.search.index.{$q}.offset", $offset);
         $q_utf8 = StringUtils::utf8convert($q);
         $translations = ProductTranslation::find()->orFilterWhere(['like', 'name', $q])->orFilterWhere(['like', 'meta_title', $q])->orFilterWhere(['like', 'meta_description', $q])->orFilterWhere(['like', 'meta_keywords', $q])->orFilterWhere(['like', 'h1', $q])->orFilterWhere(['like', 'page_title', $q])->orFilterWhere(['like', 'description', $q])->orFilterWhere(['like', 'detail', $q])->orFilterWhere(['like', 'name', $q_utf8])->orFilterWhere(['like', 'meta_title', $q_utf8])->orFilterWhere(['like', 'meta_description', $q_utf8])->orFilterWhere(['like', 'meta_keywords', $q_utf8])->orFilterWhere(['like', 'h1', $q_utf8])->orFilterWhere(['like', 'page_title', $q_utf8])->orFilterWhere(['like', 'description', $q_utf8])->orFilterWhere(['like', 'detail', $q_utf8])->all();
         $pids = ArrayHelper::getColumn($translations, 'product_id');
         $products = Product::getProducts(['id_in' => $pids, 'orderBy' => Yii::$app->request->post('orderBy'), 'limit' => static::PRODUCTS_LIMIT, 'offset' => $offset]);
         $nextProductsNumber = count(Product::getProducts(['id_in' => $pids, 'limit' => static::PRODUCTS_LIMIT, 'offset' => $offset + static::PRODUCTS_LIMIT]));
         $productsHtml = $this->render('//product/items', ['products' => $products, 'offset' => $offset]);
         return json_encode(['productsHtml' => $productsHtml, 'nextProductsNumber' => $nextProductsNumber]);
     }
 }
Beispiel #2
0
 public function t($column = null, $language_id = null)
 {
     if ($language_id == null) {
         $language_id = Yii::$app->session->get('language_id');
     }
     if ($this->_product_translation === null) {
         if (!($this->_product_translation = ProductTranslation::find()->where(['product_id' => $this->id])->andWhere(['language_id' => $language_id])->one())) {
             if (!($this->_product_translation = ProductTranslation::find()->where(['product_id' => $this->id])->andWhere(['language_id' => Language::getDefault()->id])->one())) {
                 if (!($this->_product_translation = ProductTranslation::find()->where(['product_id' => $this->id])->orderBy('id asc')->one())) {
                     $this->_product_translation = new ProductTranslation();
                 }
             }
         }
     }
     if ($column == null) {
         return $this->_product_translation;
     }
     return $this->_product_translation->{$column};
 }