예제 #1
0
파일: Page.php 프로젝트: hsleonis/basetech
 public static function getOne_page($slug)
 {
     $options = [];
     $datas = [];
     $parent_pages = self::find()->joinWith('page_rel')->where(['page.page_slug' => $slug])->andWhere(['is_archive' => 0])->all();
     if (!empty($parent_pages)) {
         foreach ($parent_pages as $key => $value) {
             $options['page_data']['id'] = $value->id;
             $options['page_data']['page_title'] = $value->page_title;
             $options['page_data']['page_slug'] = $value->page_slug;
             $options['page_data']['short_desc'] = $value->short_desc;
             $options['page_data']['page_desc'] = $value->page_desc;
             $options['page_data']['sort_order'] = $value->sort_order;
             $options['sort_order'] = $value->sort_order;
             $options['show_video_icon'] = $value->is_video;
             $get_page_rels = PageTypeRel::find()->where(['page_id' => $value->id])->one();
             if (!empty($get_page_rels)) {
                 $options['page_type'] = $get_page_rels->page_type;
             }
             //$options['page_types'] = $value->types;
             //$options['page_tags'] = $value->tags;
             $x = 0;
             $options['page_images'] = array();
             $options['page_banner'] = '';
             $options['page_thumb'] = '';
             $tmp = array();
             if (!empty($value->images)) {
                 foreach ($value->images as $key) {
                     $tmp['image'] = Yii::$app->urlManager->createAbsoluteUrl('/') . 'uploads/' . $key->image;
                     $tmp['sort_order'] = $key->sort_order;
                     $tmp['is_gallery'] = $key->is_gallery;
                     $tmp['is_banner'] = $key->is_banner;
                     $tmp['short_desc'] = $key->short_desc;
                     $tmp['short_title'] = $key->short_title;
                     array_push($options['page_images'], $tmp);
                     if ($key->is_banner) {
                         $options['page_banner'] = Yii::$app->urlManager->createAbsoluteUrl('/') . 'uploads/' . $key->image;
                         $options['page_thumb'] = Yii::$app->urlManager->createAbsoluteUrl('/') . 'uploads/thumb/' . $key->image;
                     }
                     if ($key->is_gallery) {
                         $options['page_thumb'] = Yii::$app->urlManager->createAbsoluteUrl('/') . 'uploads/' . $key->image;
                     }
                     $x++;
                 }
             }
             foreach ($value->post as $p) {
                 $options['page_post'][$p->id]['data'] = $p;
                 $options['page_post'][$p->id]['images'] = $p->images;
             }
             $options['child_pages'] = self::get_child_pages_One_page($value->id, $datas);
         }
     }
     return $options;
 }
예제 #2
0
 /**
  * Updates an existing Page model.
  * If update is successful, the browser will be redirected to the 'view' page.
  * @param integer $id
  * @return mixed
  */
 public function actionUpdate($id)
 {
     $model = $this->findModel($id);
     $PageSelfRels_model_q = PageSelfRels::find()->where(['page_id' => $id])->all();
     $PageTypeRel_model_q = PageTypeRel::find()->where(['page_id' => $id])->all();
     $PageImageRel_model = new PageImageRel();
     $PageTagsRel_model_q = PageTagsRel::find()->where(['page_id' => $id])->all();
     $posts = Post::find()->where(['page_id' => $id])->all();
     $_SESSION['KCFINDER']['disabled'] = false;
     // enables the file browser in the admin
     $_SESSION['KCFINDER']['uploadURL'] = Url::base() . "/kcupload/";
     // URL for the uploads folder
     $_SESSION['KCFINDER']['uploadDir'] = Yii::getAlias('@app') . "/web/kcupload/";
     // path to the uploads folder
     if (empty($PageSelfRels_model_q)) {
         $PageSelfRels_model = new PageSelfRels();
     } else {
         $PageSelfRels_model = new PageSelfRels();
         $PageSelfRels_model->parent_page_id = ArrayHelper::getColumn($PageSelfRels_model_q, 'parent_page_id');
     }
     if (empty($PageTagsRel_model_q)) {
         $PageTagsRel_model = new PageTagsRel();
     } else {
         $PageTagsRel_model = new PageTagsRel();
         $PageTagsRel_model->tag_id = ArrayHelper::getColumn($PageTagsRel_model_q, 'tag_id');
     }
     if (empty($PageTypeRel_model_q)) {
         $PageTypeRel_model = new PageTypeRel();
     } else {
         $PageTypeRel_model = new PageTypeRel();
         $PageTypeRel_model->page_type = ArrayHelper::getColumn($PageTypeRel_model_q, 'page_type');
     }
     $image_rel_model = PageImageRel::find()->where(['page_id' => $id])->orderBy('sort_order asc')->all();
     if ($model->load(Yii::$app->request->post()) && $PageTagsRel_model->load(Yii::$app->request->post()) && $PageSelfRels_model->load(Yii::$app->request->post()) && $PageTypeRel_model->load(Yii::$app->request->post())) {
         if ($model->save()) {
             $PageSelfRels_model->page_id = $model->id;
             if (empty($PageSelfRels_model->parent_page_id)) {
                 PageSelfRels::deleteAll(['page_id' => $PageSelfRels_model->page_id]);
                 $PageSelfRels_model->parent_page_id = 0;
                 $PageSelfRels_model->save();
             } else {
                 Page::update_page_self_rel($PageSelfRels_model);
             }
             $PageTagsRel_model->page_id = $model->id;
             if (empty($PageTagsRel_model->tag_id)) {
                 PageTagsRel::deleteAll(['page_id' => $PageTagsRel_model->page_id]);
                 /*
                                     $PageTagsRel_model->tag_id = 0;
                                     $PageTagsRel_model->save();*/
             } else {
                 Page::update_page_tags_rel($PageTagsRel_model);
             }
             $PageTypeRel_model->page_id = $model->id;
             if (empty($PageTypeRel_model->page_type)) {
                 PageTypeRel::deleteAll(['page_id' => $PageTypeRel_model->page_id]);
                 $PageTypeRel_model->page_type = '';
                 $PageTypeRel_model->save();
             } else {
                 Page::update_page_type_rel($PageTypeRel_model);
             }
             return $this->redirect(['view', 'id' => $model->id]);
         } else {
             echo '<pre>';
             var_dump($_POST['Page']);
             var_dump($model->getErrors());
         }
     } else {
         $breadcumb = array_reverse(Page::get_breadcumb($id));
         return $this->render('update', ['model' => $model, 'PageSelfRels_model' => $PageSelfRels_model, 'image_rel_model' => $image_rel_model, 'breadcumb' => $breadcumb, 'PageTypeRel_model' => $PageTypeRel_model, 'PageImageRel_model' => $PageImageRel_model, 'posts' => $posts, 'PageTagsRel_model' => $PageTagsRel_model]);
     }
 }