From 4e2a58e02ae4fe55ebc801a816c6ddb304df4b18 Mon Sep 17 00:00:00 2001 From: brettp Date: Tue, 9 Mar 2010 00:52:52 +0000 Subject: Brought sitepages up to standards. Added basic static keyword/view substitution support. git-svn-id: http://code.elgg.org/elgg/trunk@5312 36083f99-b078-4883-b0ff-0f9b5a30f544 --- mod/sitepages/actions/add.php | 93 ++++----- mod/sitepages/actions/addfront.php | 66 +++--- mod/sitepages/actions/addmeta.php | 59 +++--- mod/sitepages/frontpage.php | 70 ------- mod/sitepages/index.php | 37 ---- mod/sitepages/languages/en.php | 92 ++++----- mod/sitepages/read.php | 31 --- mod/sitepages/sitepages_functions.php | 129 +++++++++++- mod/sitepages/start.php | 221 +++++++++++++++++---- .../views/default/sitepages/analytics.php | 13 -- mod/sitepages/views/default/sitepages/css.php | 9 - .../views/default/sitepages/custom_frontpage.php | 17 ++ .../views/default/sitepages/forms/edit.php | 133 +++++-------- .../views/default/sitepages/forms/editfront.php | 71 ++++--- .../views/default/sitepages/forms/editmeta.php | 59 +++--- mod/sitepages/views/default/sitepages/keywords.php | 38 ++-- mod/sitepages/views/default/sitepages/menu.php | 27 +-- mod/sitepages/views/default/sitepages/metatags.php | 44 ++-- 18 files changed, 639 insertions(+), 570 deletions(-) delete mode 100644 mod/sitepages/frontpage.php delete mode 100644 mod/sitepages/index.php delete mode 100644 mod/sitepages/read.php delete mode 100644 mod/sitepages/views/default/sitepages/analytics.php delete mode 100644 mod/sitepages/views/default/sitepages/css.php create mode 100644 mod/sitepages/views/default/sitepages/custom_frontpage.php diff --git a/mod/sitepages/actions/add.php b/mod/sitepages/actions/add.php index 3b7f4eb2d..bc38d8067 100644 --- a/mod/sitepages/actions/add.php +++ b/mod/sitepages/actions/add.php @@ -1,64 +1,53 @@ + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.com/ + * */ // Make sure we're logged as admin admin_gatekeeper(); // Get input data -$contents = get_input('sitepagescontent', '', false); -$type = get_input('content_type'); -$tags = get_input('sitepagestags'); -$previous_guid = get_input('expage_guid'); +$content = get_input('sitepages_content', '', FALSE); +$page_type = get_input('page_type'); +$tags = get_input('sitepages_tags'); +$tag_array = string_to_tag_array($tags); -// Cache to the session -$_SESSION['sitepages_content'] = $contents; -$_SESSION['sitepagestype'] = $type; -$_SESSION['sitepagestags'] = $tags; - -// Convert string of tags into a preformatted array -$tagarray = string_to_tag_array($tags); - -// Make sure the content exists -if (empty($contents)) { - register_error(elgg_echo("sitepages:blank")); - forward("mod/sitepages/add.php"); - -// Otherwise, save the new external page +// Cache to the session for sticky forms +// @todo make these work. +$_SESSION['sitepages_content'] = $content; +$_SESSION['sitepages_type'] = $type; +$_SESSION['sitepages_tags'] = $tags; + +if (!$sitepage = sitepages_get_sitepage_object($page_type)) { + $sitepage = sitepages_create_sitepage_object($page_type); +} + +if (empty($content)) { + register_error(elgg_echo('sitepages:blank')); } else { - //remove the old external page - if(get_entity($previous_guid)){ - delete_entity($previous_guid); - } - - // Initialise a new ElggObject - $sitepages = new ElggObject(); - // Tell the system what type of external page it is - $sitepages->subtype = $type; - // Set its owner to the current user - $sitepages->owner_guid = $_SESSION['user']->getGUID(); - // For now, set its access to public - $sitepages->access_id = 2; - // Set its title and description appropriately - $sitepages->title = $type; - $sitepages->description = $contents; - // Before we can set metadata, save - if (!$sitepages->save()) { - register_error(elgg_echo("sitepages:error")); - forward("mod/sitepages/add.php"); - } - // Now let's add tags. We can pass an array directly to the object property! Easy. - if (is_array($tagarray)) { - $sitepages->tags = $tagarray; + $sitepage->title = $type; + $sitepage->description = $content; + $sitepage->tags = $tag_array; + + if (!$sitepage->save()) { + register_error(elgg_echo('sitepages:error')); + } else { + system_message(elgg_echo('sitepages:posted')); + // @todo this needs to be accurate for create or update. + add_to_river('river/sitepages/create', 'create', $_SESSION['user']->guid, $sitepages->guid); } - // Success message - system_message(elgg_echo("sitepages:posted")); - // add to river - add_to_river('river/sitepages/create','create',$_SESSION['user']->guid,$sitepages->guid); - // Remove the cache - unset($_SESSION['sitepages_content']); unset($_SESSION['sitepagestitle']); unset($_SESSION['sitepagestags']); - - // Forward back to the page - forward("pg/sitepages/index.php?type={$type}"); + + // @todo Good intensions... + unset($_SESSION['sitepages_content']); + unset($_SESSION['sitepagestitle']); + unset($_SESSION['sitepagestags']); } + +forward($_SERVER['HTTP_REFERER']); \ No newline at end of file diff --git a/mod/sitepages/actions/addfront.php b/mod/sitepages/actions/addfront.php index 5a86189db..6b8782da7 100644 --- a/mod/sitepages/actions/addfront.php +++ b/mod/sitepages/actions/addfront.php @@ -1,51 +1,39 @@ + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.com/ + * */ -// Make sure we're logged as admin admin_gatekeeper(); -// Get input data -$frontContents = get_input('frontContents'); -$css = get_input('css'); -$previous_guid = get_input('front_guid'); - -//remove the old front page -if(get_entity($previous_guid)){ - delete_entity($previous_guid); +$content = get_input('sitepages_content', '', FALSE); +$css = get_input('css', '', FALSE); +$loggedin_user_guid = get_loggedin_userid(); + +// Cache to the session for sticky forms +// @todo does nothing yet. +$_SESSION['sitepages:content'] = $content; +$_SESSION['sitepages:css'] = $css; + +if (!$sitepage = sitepages_get_sitepage_object('front')) { + $sitepage = sitepages_create_sitepage_object('front'); } -//var_export($pageshell);exit; +$sitepage->title = $css; +$sitepage->description = $content; -// Cache to the session -$_SESSION['pageshell'] = $pageshell; -$_SESSION['css'] = $css; - -// Initialise a new ElggObject -$frontpage = new ElggObject(); -// Tell the system what type of external page it is -$frontpage->subtype = "frontpage"; -// Set its owner to the current user -$frontpage->owner_guid = $_SESSION['user']->getGUID(); -// Set its access to public -$frontpage->access_id = 2; -// Set its title and description appropriately -$frontpage->title = $css; -$frontpage->description = $frontContents; - -// Before we can set metadata, save -if (!$frontpage->save()) { +if ($sitepage->save()) { + system_message(elgg_echo("sitepages:posted")); + unset($_SESSION['sitepages:content']); + unset($_SESSION['sitepages:css']); +} else { register_error(elgg_echo("sitepages:error")); - forward("pg/sitepages/index.php?type=front"); } -// Success message -system_message(elgg_echo("sitepages:posted")); - -// Remove the cache -unset($_SESSION['css']); unset($_SESSION['pageshell']); - - -// Forward back to the page -forward("pg/sitepages/index.php?type=front"); +forward($_SERVER['HTTP_REFERER']); \ No newline at end of file diff --git a/mod/sitepages/actions/addmeta.php b/mod/sitepages/actions/addmeta.php index 432152ef1..e9f40cdb4 100644 --- a/mod/sitepages/actions/addmeta.php +++ b/mod/sitepages/actions/addmeta.php @@ -1,49 +1,36 @@ + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.com/ + * */ -// Make sure we're logged as admin admin_gatekeeper(); -// Get input data -$description = get_input('description', '', false); -$metatags = get_input('metatags', '', false); -$previous_guid = get_input('seo_guid'); - -//remove the old front page -if(get_entity($previous_guid)){ - delete_entity($previous_guid); -} +$description = get_input('description', '', FALSE); +$metatags = get_input('metatags', '', FALSE); // Cache to the session $_SESSION['description'] = $description; $_SESSION['metatags'] = $metatags; - -// Initialise a new ElggObject -$seo = new ElggObject(); -// Tell the system what type of external page it is -$seo->subtype = "sitemeta"; -// Set its owner to the current user -$seo->owner_guid = $_SESSION['user']->getGUID(); -// Set its access to public -$seo->access_id = 2; -// Set its title and description appropriately -$seo->title = $metatags; -$seo->description = $description; - -// Before we can set metadata, save -if (!$seo->save()) { - register_error(elgg_echo("sitepages:error")); - forward("pg/sitepages/index.php?type=seo"); + +if (!$sitepage = sitepages_get_sitepage_object('front')) { + $sitepage = sitepages_create_sitepage_object('front'); } -// Success message -system_message(elgg_echo("sitepages:seocreated")); +$sitepage->title = $metatags; +$sitepage->description = $description; + +if ($sitepage->save()) { + system_message(elgg_echo("sitepages:seocreated")); + unset($_SESSION['description']); unset($_SESSION['metatags']); +} else { + register_error(elgg_echo("sitepages:error")); +} -// Remove the cache -unset($_SESSION['description']); unset($_SESSION['metatags']); - - -// Forward back to the page -forward("pg/sitepages/index.php?type=seo"); +forward($_SERVER['HTTP_REFERER']); \ No newline at end of file diff --git a/mod/sitepages/frontpage.php b/mod/sitepages/frontpage.php deleted file mode 100644 index 4f5d02a90..000000000 --- a/mod/sitepages/frontpage.php +++ /dev/null @@ -1,70 +0,0 @@ - 'object', 'subtype' => 'frontpage', 'limit' => 1)); -if($page_contents){ - foreach($page_contents as $pc){ - $css = ""; - $frontContents = $pc->description; - } -} - -// Set title -$title = $CONFIG->sitename; - -?> - - - - - - - <?php echo $title; ?> - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/mod/sitepages/index.php b/mod/sitepages/index.php deleted file mode 100644 index efc7371b7..000000000 --- a/mod/sitepages/index.php +++ /dev/null @@ -1,37 +0,0 @@ - $type)); - -if($type == "front") - $area3 = elgg_view('sitepages/keywords'); //available keywords for the user -else - $area3 = ""; - -// Display the menu -$body = elgg_view('page_elements/elgg_content',array('body' => elgg_view('sitepages/menu', array('type' => $type)).$edit)); - -// Display -page_draw(elgg_echo('sitepages'),elgg_view_layout("one_column_with_sidebar", '', $title . $body, $area3)); \ No newline at end of file diff --git a/mod/sitepages/languages/en.php b/mod/sitepages/languages/en.php index 2f4916ee5..ec08493c9 100644 --- a/mod/sitepages/languages/en.php +++ b/mod/sitepages/languages/en.php @@ -1,48 +1,50 @@ "Site pages", - 'sitepages:frontpage' => "Frontpage", - 'sitepages:about' => "About", - 'sitepages:terms' => "Terms", - 'sitepages:privacy' => "Privacy", - 'sitepages:analytics' => "Analytics", - 'sitepages:contact' => "Contact", - 'sitepages:nopreview' => "No preview yet available", - 'sitepages:preview' => "Preview", - 'sitepages:notset' => "This page has not been set up yet.", - 'sitepages:new' => "New page", - 'sitepages:css' => "Stylesheet", - 'sitepages:seo' => "Metatags", - 'sitepages:metadescription' => "Meta description for search engines", - 'sitepages:metatags' => "Meta tags for search engines (use a comma)", - 'sitepages:seocreated' => "Your search engine information has been added", - 'sitepages:frontContents' => "Frontpage contents", - 'sitepages:ownfront' => "Construct your own frontpage for this network. (Note:you will need to know html and css)", - 'sitepages:addcontent' => "You can add content here via your admin tools. Look for the external pages link under admin.", - 'item:object:front' => 'Front page items', - - /** - * Status messages - */ - - 'sitepages:posted' => "Your page was successfully posted.", - 'sitepages:deleted' => "Your page was successfully deleted.", - - /** - * Error messages - */ - - 'sitepages:deleteerror' => "There was a problem deleting the old page", - 'sitepages:error' => "There has been an error, please try again and if the problem persists, contact the administrator", - - ); - - add_translation("en",$english); +$english = array( + /** + * Menu items and titles + */ + 'sitepages' => "Site pages", + 'sitepages:frontpage' => "Frontpage", + 'sitepages:about' => "About", + 'sitepages:terms' => "Terms", + 'sitepages:privacy' => "Privacy", + 'sitepages:analytics' => "Analytics", + 'sitepages:contact' => "Contact", + 'sitepages:nopreview' => "No preview yet available", + 'sitepages:preview' => "Preview", + 'sitepages:notset' => "This page has not been set up yet.", + 'sitepages:new' => "New page", + 'sitepages:css' => "CSS", + 'sitepages:seo' => "Metatags", + 'sitepages:metadescription' => "Meta description for search engines", + 'sitepages:metatags' => "Meta tags for search engines (use a comma)", + 'sitepages:seocreated' => "Your search engine information has been added", + 'sitepages:front_content' => "Frontpage content", + 'sitepages:ownfront' => "Construct your own frontpage for this network. (Note:you will need to know html and css)", + 'sitepages:addcontent' => "You can add content here via your admin tools. Look for the external pages link under admin.", + 'item:object:front' => 'Front page items', -?> \ No newline at end of file + /** + * Status messages + */ + 'sitepages:posted' => "Your page was successfully posted.", + 'sitepages:deleted' => "Your page was successfully deleted.", + + /** + * Error messages + */ + 'sitepages:deleteerror' => "There was a problem deleting the old page", + 'sitepages:error' => "There has been an error, please try again and if the problem persists, contact the administrator", +); + +add_translation('en', $english); \ No newline at end of file diff --git a/mod/sitepages/read.php b/mod/sitepages/read.php deleted file mode 100644 index 5621c486b..000000000 --- a/mod/sitepages/read.php +++ /dev/null @@ -1,31 +0,0 @@ - 'object', 'subtype' => $type, 'limit' => 1)); - -if($contents){ - foreach($contents as $c){ - $area1 .= elgg_view('page_elements/elgg_content',array('body' => $c->description)); - } -}else{ - $area1 .= elgg_view('page_elements/elgg_content',array('body' => elgg_echo("sitepages:notset"))); -} - -// Display through the correct canvas area -$body = elgg_view_layout("one_column_with_sidebar", "", $area1); - -// Display page -page_draw($title,$body); \ No newline at end of file diff --git a/mod/sitepages/sitepages_functions.php b/mod/sitepages/sitepages_functions.php index 561aae97c..7ffe8df63 100644 --- a/mod/sitepages/sitepages_functions.php +++ b/mod/sitepages/sitepages_functions.php @@ -1,8 +1,127 @@ site->getGUID(), "sitepages:$page_type"); + $sitepage = get_entity($page_guid); + + if ($sitepage instanceof ElggSitePage || $sitepage->page_type == $page_type) { + return $sitepage; + } + + return FALSE; +} + +/** + * Creates a site page object. + * + * @param str $page_type + * @return mixed ElggSitePage on success, FALSE on fail. + */ +function sitepages_create_sitepage_object($page_type) { + global $CONFIG; + + $sitepage = new ElggSitePage(); + $sitepage->page_type = $page_type; + $sitepage->access_id = ACCESS_PUBLIC; + $sitepage->save(); + + if ($sitepage->save() && set_private_setting($CONFIG->site->getGUID(), "sitepages:$page_type", $sitepage->getGUID())) { + return $sitepage; + } + + return FALSE; +} + +/** + * Assembles html for edit sections of site pages. + * + * @param str $section + * @return str html + */ +function sitepages_get_edit_section_content($page_type) { + set_context('admin'); + + $keywords = ''; + + $title = elgg_view_title(elgg_echo('sitepages')); + $menu = elgg_view('sitepages/menu', array('page_type' => $page_type)); + + switch ($page_type) { + case 'front': + $view = 'sitepages/forms/editfront'; + $keywords = elgg_view('sitepages/keywords'); + break; + + case 'seo': + $view = 'sitepages/forms/editmeta'; + break; + + default: + $view = 'sitepages/forms/edit'; + break; + + } + + $form .= elgg_view($view, array('page_type' => $page_type)); + $body = $title . $menu . $form; + + $content = elgg_view_layout('one_column_with_sidebar', '', $body, $keywords); + return $content; +} + +/** + * Assembles html for displaying site pages + * + * @param string $page_type + * @return string Formatted html + */ +function sitepages_get_page_content($page_type) { + $body = elgg_view_title(elgg_echo("sitepages:". strtolower($page_type))); + + $sitepage = sitepages_get_sitepage_object($page_type); + + if ($sitepage) { + $body .= elgg_view('page_elements/elgg_content', array('body' => $sitepage->description)); + } else { + $body .= elgg_view('page_elements/elgg_content', array('body' => elgg_echo('sitepages:notset'))); + } + + $content = elgg_view_layout('one_column_with_sidebar', '', $body); + return $content; +} + +/** + * Utility object to store site page information. + */ +class ElggSitePage extends ElggObject { + public function initialise_attributes() { + parent::initialise_attributes(); + + $this->attributes['subtype'] = 'sitepages_page'; + } } \ No newline at end of file diff --git a/mod/sitepages/start.php b/mod/sitepages/start.php index c6e119959..186738bab 100644 --- a/mod/sitepages/start.php +++ b/mod/sitepages/start.php @@ -1,72 +1,211 @@ sitepages_parse_views = array( + 'sitepages/custom_frontpage' + ); + + // an example of how to register and respond to the get_keywords trigger + register_plugin_hook('get_keywords', 'sitepages', 'sitepages_keyword_hook'); + + // grab the list of keywords and their views from plugins + if ($keywords = trigger_plugin_hook('get_keywords', 'sitepages', NULL, array())) { + $CONFIG->sitepages_keywords = $keywords; + } + + register_action("sitepages/add", FALSE, $CONFIG->pluginspath . "sitepages/actions/add.php"); + register_action("sitepages/addfront", FALSE, $CONFIG->pluginspath . "sitepages/actions/addfront.php"); + register_action("sitepages/addmeta", FALSE, $CONFIG->pluginspath . "sitepages/actions/addmeta.php"); + register_action("sitepages/edit", FALSE, $CONFIG->pluginspath . "sitepages/actions/edit.php"); + register_action("sitepages/delete", FALSE, $CONFIG->pluginspath . "sitepages/actions/delete.php"); + } -function custom_index() { - if (!@include_once(dirname(__FILE__) . "/frontpage.php")) return false; - return true; +/** + * Registers the sitepages subtype to the right class. + * + * @return unknown_type + */ +function sitepages_runonce() { + return add_subtype('object', 'sitepages_page', 'ElggSitePage'); } - + /** - * Page setup. Adds admin controls to the admin panel. + * Override the index if requested. * + * @return TRUE on override + */ +function sitepages_custom_index() { + // context is checked by the extended metatags view to print out its custom CSS + $context = get_context(); + set_context('sitepages:front'); + + if ($contents = elgg_view('sitepages/custom_frontpage')) { + page_draw(FALSE, $contents); + + set_context($context); + // return TRUE to tell index.php we've got its content right here. + return TRUE; + } + + set_context($context); + return NULL; +} + +/** + * Page setup. Adds admin controls to the admin panel. */ function sitepages_pagesetup(){ if (get_context() == 'admin' && isadminloggedin()) { global $CONFIG; - add_submenu_item(elgg_echo('sitepages'), $CONFIG->wwwroot . 'pg/sitepages/'); + add_submenu_item(elgg_echo('sitepages'), $CONFIG->wwwroot . 'pg/sitepages/edit/front'); } } - + +/** + * + * @param unknown_type $expage + * @return unknown_type + * + * //@todo is this needed? + */ function sitepages_url($expage) { global $CONFIG; - return $CONFIG->url . "pg/sitepages/"; + return $CONFIG->url . 'pg/sitepages/'; } - + +/** + * Serve out views for site pages. + * + * @param unknown_type $page + * @return unknown_type + */ function sitepages_page_handler($page) { global $CONFIG; - if ($page[0]){ - switch ($page[0]){ - case "read": set_input('sitepages',$page[1]); - include(dirname(__FILE__) . "/read.php"); - break; - default : include($CONFIG->pluginspath . "sitepages/index.php"); + + // for the owner block. + if ($logged_in_guid = get_loggedin_userid()) { + set_page_owner($logged_in_guid); + } + + // sanity checking. + // on bad params we'll forward so people will bookmark the correct URLs + // @todo valid page names need to be pulled out into some sort of config var or admin option. + $default_page = 'About'; + + $action = isset($page[0]) ? $page[0] : FALSE; + $page_type = isset($page[1]) ? $page[1] : FALSE; + + switch ($action) { + case 'edit': + $title = elgg_echo('sitepages'); + $content = sitepages_get_edit_section_content($page_type); + + break; + + case 'read': + $title = elgg_echo('sitepages:' . strtolower($page_type)); + $content = sitepages_get_page_content($page_type); + + break; + + default: + forward("{$CONFIG->site->url}pg/sitepages/read/$default_page"); + break; + } + + page_draw($title, $content); +} + + +function sitepages_parse_view($hook, $entity_type, $return_value, $params) { + global $CONFIG; + + if (in_array($params['view'], $CONFIG->sitepages_parse_views)) { + $keywords = $CONFIG->sitepages_keywords; + $view_options = array( + 'view' => $params['view'] + ); + + foreach ($keywords as $keyword => $info) { + if ($content = elgg_view($info['view'], $view_options)) { + $return_value = str_replace("[[$keyword]]", $content, $return_value); + } } - }else{ - include($CONFIG->pluginspath . "sitepages/index.php"); } + + return $return_value; } - -// Initialise log browser -register_elgg_event_handler('init','system','sitepages_init'); -register_elgg_event_handler('pagesetup','system','sitepages_pagesetup'); - -// Register actions -global $CONFIG; -register_action("sitepages/add",false,$CONFIG->pluginspath . "sitepages/actions/add.php"); -register_action("sitepages/addfront",false,$CONFIG->pluginspath . "sitepages/actions/addfront.php"); -register_action("sitepages/addmeta",false,$CONFIG->pluginspath . "sitepages/actions/addmeta.php"); -register_action("sitepages/edit",false,$CONFIG->pluginspath . "sitepages/actions/edit.php"); -register_action("sitepages/delete",false,$CONFIG->pluginspath . "sitepages/actions/delete.php"); \ No newline at end of file + +/** + * Register some default keywords. + * + * @param unknown_type $hook + * @param unknown_type $entity_type + * @param unknown_type $return_value + * @param unknown_type $params + * @return unknown_type + */ +function sitepages_keyword_hook($hook, $entity_type, $return_value, $params) { + + $return_value['login_box'] = array( + 'view' => 'account/forms/login', + 'description' => elgg_echo('sitepages:keywords:login_box') + ); + + $return_value['site_stats'] = array( + 'view' => 'this/doesnt/exist/yet', + 'description' => elgg_echo('sitepages:keywords:site_stats') + ); + + return $return_value; +} + + + +register_elgg_event_handler('init', 'system', 'sitepages_init'); +register_elgg_event_handler('pagesetup', 'system', 'sitepages_pagesetup'); \ No newline at end of file diff --git a/mod/sitepages/views/default/sitepages/analytics.php b/mod/sitepages/views/default/sitepages/analytics.php deleted file mode 100644 index 0a8e94b67..000000000 --- a/mod/sitepages/views/default/sitepages/analytics.php +++ /dev/null @@ -1,13 +0,0 @@ - 'object', 'subtype' => 'analytics', 'limit' => 1)); -if($contents){ - foreach($contents as $c){ - echo $c->description; - } -} - diff --git a/mod/sitepages/views/default/sitepages/css.php b/mod/sitepages/views/default/sitepages/css.php deleted file mode 100644 index 5d7eabcd4..000000000 --- a/mod/sitepages/views/default/sitepages/css.php +++ /dev/null @@ -1,9 +0,0 @@ - - -/* IE6 */ -* html #front_left_tbl { width:676px !important; } -* html #front_right_tbl { width:676px !important; } \ No newline at end of file diff --git a/mod/sitepages/views/default/sitepages/custom_frontpage.php b/mod/sitepages/views/default/sitepages/custom_frontpage.php new file mode 100644 index 000000000..fb0b673cc --- /dev/null +++ b/mod/sitepages/views/default/sitepages/custom_frontpage.php @@ -0,0 +1,17 @@ +description; +} \ No newline at end of file diff --git a/mod/sitepages/views/default/sitepages/forms/edit.php b/mod/sitepages/views/default/sitepages/forms/edit.php index 94ec786b1..16100c10a 100644 --- a/mod/sitepages/views/default/sitepages/forms/edit.php +++ b/mod/sitepages/views/default/sitepages/forms/edit.php @@ -1,92 +1,51 @@ + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.com/ + * + */ - /** - * Elgg sitepages edit - * - * @package Elggsitepages - * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 - * @author Curverider Ltd - * @copyright Curverider Ltd 2008-2010 - * @link http://elgg.com/ - * - */ - - //get the page type - $type = $vars['type']; - - //action - $action = "sitepages/add"; - - //grab the required entity - $page_contents = elgg_get_entities(array('type' => 'object', 'subtype' => $type, 'limit' => 1)); - - if($page_contents){ - foreach($page_contents as $pc){ - $description = $pc->description; - $tags = $pc->tags; - $guid = $pc->guid; - } - }else { - $tags = ""; - $description = ""; - } - - // set the required form variables - $input_area = elgg_view('input/longtext', array('internalname' => 'sitepagescontent', 'value' => $description)); - $tag_input = elgg_view('input/tags', array('internalname' => 'sitepagestags', 'value' => $tags)); - $submit_input = elgg_view('input/submit', array('internalname' => 'submit', 'value' => elgg_echo('save'))); - $hidden_value = elgg_view('input/hidden', array('internalname' => 'content_type', 'value' => $type)); - $hidden_guid = elgg_view('input/hidden', array('internalname' => 'expage_guid', 'value' => $guid)); - $tag_label = elgg_echo('tags') . "
"; - - //type - $type = $vars['type']; - //set the url - $url = $vars['url'] . "pg/sitepages/index.php?type="; - - if($type == 'about') { - $external_page_title = elgg_echo('sitepages:about'); - } - else if($type == 'terms') { - $external_page_title = elgg_echo('sitepages:terms'); - } - else if($type == 'privacy') { - $external_page_title = elgg_echo('sitepages:privacy'); - } - //preview link - // echo ""; - - //construct the form - $form_body = <<$external_page_title -

$input_area

-

- $tag_label - $tag_input -

- $hidden_value - $hidden_guid -
- $submit_input +if ($sitepages_object = sitepages_get_sitepage_object($page_type)) { + $tags = $sitepages_object->tags; + $description = $sitepages_object->description; + $guid = $sitepages_object->getGUID(); +} else { + $tags = array(); + $description = ''; + $guid = ''; +} -EOT; -?> - "{$vars['url']}action/$action", 'body' => $form_body)); -?> +// set the required form variables +$input_area = elgg_view('input/longtext', array('internalname' => 'sitepages_content', 'value' => $description)); +$tag_input = elgg_view('input/tags', array('internalname' => 'sitepages_tags', 'value' => $tags)); + +$submit_input = elgg_view('input/submit', array('internalname' => 'submit', 'value' => elgg_echo('save'))); +$hidden_value = elgg_view('input/hidden', array('internalname' => 'page_type', 'value' => $page_type)); + +$tag_label = '

' . elgg_echo('tags') . '

'; +$external_page_title = elgg_echo("sitepages:$page_type"); + +$form_body = <<<___EOT + +

$external_page_title

+

$input_area

+

+ $tag_label + $tag_input +

+$hidden_value +$hidden_guid +
+$submit_input + +___EOT; - - \ No newline at end of file +echo elgg_view('input/form', array('action' => "{$vars['url']}action/$action", 'body' => $form_body)); \ No newline at end of file diff --git a/mod/sitepages/views/default/sitepages/forms/editfront.php b/mod/sitepages/views/default/sitepages/forms/editfront.php index faea356f2..cc09b8cc8 100644 --- a/mod/sitepages/views/default/sitepages/forms/editfront.php +++ b/mod/sitepages/views/default/sitepages/forms/editfront.php @@ -1,52 +1,51 @@ 'object', 'subtype' => 'frontpage', 'limit' => 1)); - -if($page_contents){ - foreach($page_contents as $pc){ - $css = $pc->title; - $frontContents = $pc->description; - $guid = $pc->guid; - } -}else { - $tags = ""; - $description = ""; + +$action = 'sitepages/addfront'; + +if ($sitepages_object = sitepages_get_sitepage_object('front')) { + $css = $sitepages_object->title; + $sitepages_content = $sitepages_object->description; + $guid = $sitepages_object->guid; +} else { + $css = ''; + $sitepages_content = ''; + $guid = ''; } - + // set the required form variables $input_css = elgg_view('input/plaintext', array('internalname' => 'css', 'value' => $css)); -$input_pageshell = elgg_view('input/plaintext', array('internalname' => 'frontContents', 'value' => $frontContents)); +$input_sitepages_content = elgg_view('input/plaintext', array('internalname' => 'sitepages_content', 'value' => $sitepages_content)); $submit_input = elgg_view('input/submit', array('internalname' => 'submit', 'value' => elgg_echo('save'))); -$hidden_guid = elgg_view('input/hidden', array('internalname' => 'front_guid', 'value' => $guid)); -$pageshell = elgg_echo("sitepages:frontContents"); -$css = elgg_echo("sitepages:css"); - + +$pageshell_title = elgg_echo("sitepages:front_content"); +$css_title = elgg_echo("sitepages:css"); + //preview link -$preview = ""; - +// @todo this doesn't do anything. +//$preview = ""; + //construct the form -$form_body = <<$css +

$css_title

$input_css


-

$pageshell

-

$input_pageshell

- +

$pageshell_title

+

$input_sitepages_content

+ $hidden_guid
$submit_input $preview -EOT; -?> - "{$vars['url']}action/$action", 'body' => $form_body)); -?> \ No newline at end of file +___EOT; + +echo elgg_view('input/form', array('action' => "{$vars['url']}action/$action", 'body' => $form_body)); \ No newline at end of file diff --git a/mod/sitepages/views/default/sitepages/forms/editmeta.php b/mod/sitepages/views/default/sitepages/forms/editmeta.php index 7eb731f76..d94f32114 100644 --- a/mod/sitepages/views/default/sitepages/forms/editmeta.php +++ b/mod/sitepages/views/default/sitepages/forms/editmeta.php @@ -1,48 +1,43 @@ 'object', 'subtype' => 'sitemeta', 'limit' => 1)); - -if($page_contents){ - foreach($page_contents as $pc){ - $metatags = $pc->title; - $description = $pc->description; - $guid = $pc->guid; - } -}else { - $metatags = ""; - $description = ""; + +$action = 'sitepages/addmeta'; + +if ($sitepages_object = sitepages_get_sitepage_object('front')) { + $meta_tags = $sitepages_object->title; + $meta_description = $sitepages_object->description; +} else { + $meta_tags = ''; + $meta_description = ''; } - -// set the required form variables -$input_keywords = elgg_view('input/plaintext', array('internalname' => 'metatags', 'value' => $metatags)); -$input_description = elgg_view('input/plaintext', array('internalname' => 'description', 'value' => $description)); + +$input_keywords = elgg_view('input/plaintext', array('internalname' => 'metatags', 'value' => $meta_tags)); +$input_description = elgg_view('input/plaintext', array('internalname' => 'description', 'value' => $meta_description)); $submit_input = elgg_view('input/submit', array('internalname' => 'submit', 'value' => elgg_echo('save'))); -$hidden_guid = elgg_view('input/hidden', array('internalname' => 'seo_guid', 'value' => $guid)); + $description = elgg_echo("sitepages:metadescription"); $metatags = elgg_echo("sitepages:metatags"); - -//construct the form -$form_body = <<$description

$input_description


$metatags

$input_keywords

- + $hidden_guid
$submit_input -EOT; -?> - "{$vars['url']}action/$action", 'body' => $form_body)); -?> \ No newline at end of file +___EOT; + +//display the form +echo elgg_view('input/form', array('action' => "{$vars['url']}action/$action", 'body' => $form_body)); \ No newline at end of file diff --git a/mod/sitepages/views/default/sitepages/keywords.php b/mod/sitepages/views/default/sitepages/keywords.php index 2b4666256..e5348678a 100644 --- a/mod/sitepages/views/default/sitepages/keywords.php +++ b/mod/sitepages/views/default/sitepages/keywords.php @@ -1,14 +1,28 @@ -
-

Available keywords

-
    -
  • {{element:loginbox}}
  • -
  • {{element:stats}}
  • -
  • {{object:blog}}
  • -
  • {{group:4}}
  • -
-
\ No newline at end of file + * Lists available keywords + * + * @package SitePages + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.org/ + */ + +$keywords = $vars['config']->sitepages_keywords; +$title = elgg_echo('sitepages:keywords_title'); +$instructions = elgg_echo('sitepages:keywords_instructions'); + +$keywords_html = ''; +foreach ($keywords as $keyword => $info) { + $desc = htmlentities($info['description']); + $keywords_html .= "
  • [[$keyword]]
  • "; +} + +echo " +

    $title

    +

    $instructions

    +
      + $keywords_html +
    +"; \ No newline at end of file diff --git a/mod/sitepages/views/default/sitepages/menu.php b/mod/sitepages/views/default/sitepages/menu.php index 5f074f489..e676b6c96 100644 --- a/mod/sitepages/views/default/sitepages/menu.php +++ b/mod/sitepages/views/default/sitepages/menu.php @@ -1,22 +1,25 @@
      -
    • >
    • -
    • >
    • -
    • >
    • -
    • >
    • -
    • >
    • +
    • >
    • +
    • >
    • +
    • >
    • +
    • >
    • +
    • >
    \ No newline at end of file diff --git a/mod/sitepages/views/default/sitepages/metatags.php b/mod/sitepages/views/default/sitepages/metatags.php index 73a7cd17f..c536dbe29 100644 --- a/mod/sitepages/views/default/sitepages/metatags.php +++ b/mod/sitepages/views/default/sitepages/metatags.php @@ -1,17 +1,35 @@ 'object', 'subtype' => 'seo', 'limit' => 1)); -if($meta_details){ - foreach($meta_details as $md){ - $metatags = $md->title; - $description = $md->description; - } + * Add any additional defined metatags or CSS. + * + * @package SitePages + * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2 + * @author Curverider Ltd + * @copyright Curverider Ltd 2008-2010 + * @link http://elgg.org/ + */ + +$meta_details = sitepages_get_sitepage_object('seo'); + +if ($meta_details) { + $metatags = $meta_details->title; + $description = $meta_details->description; + + echo <<<___END + + +___END; } - -?> - - \ No newline at end of file +// only show on the custom front page. +if (get_context() == 'sitepages:front') { + $custom_css = sitepages_get_sitepage_object('front'); + + if ($custom_css && $custom_css->title) { + echo " + + "; + } +} \ No newline at end of file -- cgit v1.2.3