Example #1
0
 public static function getPostProperties($id)
 {
     if (isset(static::$properties[$id])) {
         return static::$properties[$id];
     }
     $list = PostPropertyRel::join(PostProperty::getTableName(), PostProperty::getField('id'), '=', PostPropertyRel::getField('post_property_id'))->where(PostPropertyRel::getField('post_id'), $id)->remember(SettingsModel::one('cachelife'))->get();
     $names = array();
     foreach ($list as $item) {
         $names[] = $item->key;
     }
     static::$properties[$id] = $names;
     return $names;
 }
Example #2
0
 /**
  * Save page changes
  * @return type
  */
 public function postSave()
 {
     User::onlyHas("page-edit");
     $page_id = Input::get('id');
     $page = Input::get('page');
     $page_lang = Input::get('lang');
     $post = Post::find($page_id);
     if ($post && $page) {
         $post->created_at = $page['created_at'];
         $post->updated_at = date('Y-m-d G:i:s');
         if (User::has('page-move')) {
             if ($page['parent'] != $page_id) {
                 $post->parent = $page['parent'];
             }
         }
         $post->clone_id = $page['clone_id'];
         $post->redirect_to = $page['redirect_to'];
         $post->view_mod = $page['view_mod'];
         $post->general_node = isset($page['general_node']) ? 1 : 0;
         $post->is_home_page = isset($page['is_home_page']) ? 1 : 0;
         $post->have_socials = isset($page['have_socials']) ? 1 : 0;
         $post->have_comments = isset($page['have_comments']) ? 1 : 0;
         if ($post->is_home_page) {
             DB::table(Post::getTableName())->where('is_home_page', 1)->where(Post::getField('id'), '<>', $page_id)->update(array('is_home_page' => 0));
         }
         $post->save();
     }
     if ($page_lang) {
         foreach ($page_lang as $page_lang_id => $page_lang) {
             $post_lang = PostLang::find($page_lang_id);
             $post_lang->title = $page_lang['title'];
             $post_lang->text = $page_lang['text'];
             $post_lang->enabled = isset($page_lang['enabled']) && $page_lang ? 1 : 0;
             if ($page_lang['uri']) {
                 $post_lang->uri = PostLang::uniqURI($page_lang_id, $page_lang['uri']);
             } else {
                 $post_lang->uri = PostLang::uniqURI($page_lang_id, $page_lang['title']);
             }
             $post_lang->save();
         }
     }
     if ($page) {
         $properties = Input::get('properties');
         PostPropertyRel::where('post_id', $page_id)->delete();
         if (is_array($properties)) {
             foreach ($properties as $property) {
                 $prop = PostProperty::find($property);
                 if ($prop) {
                     if ($prop->is_unique) {
                         PostPropertyRel::where('post_property_id', $prop->id)->delete();
                     }
                     $newproperty = new PostPropertyRel();
                     $newproperty->post_id = $page_id;
                     $newproperty->post_property_id = $property;
                     $newproperty->save();
                 }
             }
         }
     }
     if (isset($post->clone_id) && $post->clone_id) {
         $this->clonePageLangData($post->clone_id, $post->id);
     }
     $clones = Post::where('clone_id', $post->id)->get();
     foreach ($clones as $clone) {
         $this->clonePageLangData($post->id, $clone->id);
     }
     Log::info("Edit page #{$page_id}");
     return array();
 }