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; }
/** * 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(); }