Ejemplo n.º 1
0
 /**
  * 数据解析
  *
  * @param string $data 产品相册图片数据
  *  - $data内容应该为JSON Encode后的字符串序列
  * @return boolean|array
  *  - 为boolean时只能为FALSE,表示数据解析失败
  *  - 为array时表示指定产品相册图片信息,结构如下:
  *  ~~~
  *  [
  *      [
  *          'id' => '图片ID',
  *          'url' => '图片URL',
  *          'desc' => 图片描述'
  *      ]
  *      // 产品的其他图片.....
  *  ]
  *  ~~~
  */
 public function parse2o($data)
 {
     // XXX: 需要进行Model层封装
     /*
     return ProductImage::find()->where([
         'product_id' => $data['product_id'],
         'type' => ProductImage::TYPE_CATIONINDE,
     ])->
     asArray()->
     all();
     */
     return ProductImage::find()->where(['and', 'product_id=' . $data['product_id'], ['or', 'type=' . ProductImage::TYPE_CATIONINDE, 'type=' . ProductImage::TYPE_CATIONFIRST, 'type=' . ProductImage::TYPE_GOODPRODUCT]])->asArray()->all();
     //return $data ? json_decode($data['attr_val'], true) : FALSE;
 }
Ejemplo n.º 2
0
 public function actionDetail()
 {
     $slug = Yii::$app->request->get('slug');
     if ($product = Product::findOne(['slug' => $slug, 'is_active' => 1])) {
         $this->link_canonical = $product->getLink();
         if (!Redirect::compareUrl($this->link_canonical)) {
             $this->redirect($this->link_canonical);
         }
         $product_images = ProductImage::find()->where(['product_id' => $product->id])->all();
         if ($this->is_mobile && !$this->is_tablet) {
             $product_image_suffix = ProductImage::$image_resizes['mobile'];
         } else {
             if ($this->is_tablet) {
                 $product_image_suffix = ProductImage::$image_resizes['tablet'];
             } else {
                 $product_image_suffix = ProductImage::$image_resizes['desktop'];
             }
         }
         return $this->render('detail', ['product' => $product, 'product_images' => $product_images, 'product_image_suffix' => $product_image_suffix]);
     } else {
         Redirect::go();
     }
 }