]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Brought sitepages up to standards.
authorbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>
Tue, 9 Mar 2010 00:52:52 +0000 (00:52 +0000)
committerbrettp <brettp@36083f99-b078-4883-b0ff-0f9b5a30f544>
Tue, 9 Mar 2010 00:52:52 +0000 (00:52 +0000)
Added basic static keyword/view substitution support.

git-svn-id: http://code.elgg.org/elgg/trunk@5312 36083f99-b078-4883-b0ff-0f9b5a30f544

18 files changed:
mod/sitepages/actions/add.php
mod/sitepages/actions/addfront.php
mod/sitepages/actions/addmeta.php
mod/sitepages/frontpage.php [deleted file]
mod/sitepages/index.php [deleted file]
mod/sitepages/languages/en.php
mod/sitepages/read.php [deleted file]
mod/sitepages/sitepages_functions.php
mod/sitepages/start.php
mod/sitepages/views/default/sitepages/analytics.php [deleted file]
mod/sitepages/views/default/sitepages/css.php [deleted file]
mod/sitepages/views/default/sitepages/custom_frontpage.php [new file with mode: 0644]
mod/sitepages/views/default/sitepages/forms/edit.php
mod/sitepages/views/default/sitepages/forms/editfront.php
mod/sitepages/views/default/sitepages/forms/editmeta.php
mod/sitepages/views/default/sitepages/keywords.php
mod/sitepages/views/default/sitepages/menu.php
mod/sitepages/views/default/sitepages/metatags.php

index 3b7f4eb2da91a0beeb08669679e5b58f83532de0..bc38d80679f3664da499d2a0bed6285237781322 100644 (file)
@@ -1,64 +1,53 @@
 <?php
 /**
- * Elgg external pages: add/edit
+ * Site pages save/edit
+ *
+ * @package SitePages
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
+ * @author Curverider Ltd <info@elgg.com>
+ * @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
index 5a86189dbcfbeeb68c6f43de51043aeca2d862b5..6b8782da7594f61d0c3cd24603bc14a416796d3b 100644 (file)
@@ -1,51 +1,39 @@
 <?php
 /**
- * Elgg front page: add/edit
+ * Site pages front page save/edit
+ *
+ * @package SitePages
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
+ * @author Curverider Ltd <info@elgg.com>
+ * @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
index 432152ef1b4a670cf3bad660b6ca8b71cd527e10..e9f40cdb449da91fa1e4502f16e56c66be912c2a 100644 (file)
@@ -1,49 +1,36 @@
 <?php\r
 /**\r
- * Elgg SEO: add/edit\r
+ * Site pages meta tags and desc page save/edit\r
+ *\r
+ * @package SitePages\r
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2\r
+ * @author Curverider Ltd <info@elgg.com>\r
+ * @copyright Curverider Ltd 2008-2010\r
+ * @link http://elgg.com/\r
+ *\r
  */\r
 \r
-// Make sure we're logged as admin\r
 admin_gatekeeper();\r
 \r
-// Get input data\r
-$description = get_input('description', '', false);\r
-$metatags = get_input('metatags', '', false);\r
-$previous_guid = get_input('seo_guid');\r
-               \r
-//remove the old front page\r
-if(get_entity($previous_guid)){\r
-       delete_entity($previous_guid);\r
-}\r
+$description = get_input('description', '', FALSE);\r
+$metatags = get_input('metatags', '', FALSE);\r
 \r
 // Cache to the session\r
 $_SESSION['description'] = $description;\r
 $_SESSION['metatags'] = $metatags;\r
-                       \r
-// Initialise a new ElggObject\r
-$seo = new ElggObject();\r
-// Tell the system what type of external page it is\r
-$seo->subtype = "sitemeta";\r
-// Set its owner to the current user\r
-$seo->owner_guid = $_SESSION['user']->getGUID();\r
-// Set its access to public\r
-$seo->access_id = 2;\r
-// Set its title and description appropriately\r
-$seo->title = $metatags;\r
-$seo->description = $description;\r
-                       \r
-// Before we can set metadata, save\r
-if (!$seo->save()) {\r
-       register_error(elgg_echo("sitepages:error"));\r
-       forward("pg/sitepages/index.php?type=seo");\r
+\r
+if (!$sitepage = sitepages_get_sitepage_object('front')) {\r
+       $sitepage = sitepages_create_sitepage_object('front');\r
 }\r
 \r
-// Success message\r
-system_message(elgg_echo("sitepages:seocreated"));\r
+$sitepage->title = $metatags;\r
+$sitepage->description = $description;\r
+\r
+if ($sitepage->save()) {\r
+       system_message(elgg_echo("sitepages:seocreated"));\r
+       unset($_SESSION['description']); unset($_SESSION['metatags']);\r
+} else {\r
+       register_error(elgg_echo("sitepages:error"));\r
+}\r
 \r
-// Remove the cache\r
-unset($_SESSION['description']); unset($_SESSION['metatags']);\r
-       \r
-       \r
-// Forward back to the page\r
-forward("pg/sitepages/index.php?type=seo");\r
+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 (file)
index 4f5d02a..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-<?php\r
-/**\r
- * Elgg custom frontpage\r
- */\r
-\r
-// Load Elgg engine will not include plugins\r
-require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");\r
-    \r
-global $CONFIG;\r
-    \r
-$page_contents = elgg_get_entities(array('type' => 'object', 'subtype' => 'frontpage', 'limit' => 1));\r
-if($page_contents){\r
-       foreach($page_contents as $pc){\r
-                $css = "<style>" . $pc->title . "</style>";\r
-                $frontContents = $pc->description;\r
-        }\r
-}\r
-       \r
-// Set title\r
-$title = $CONFIG->sitename;\r
-\r
-?>\r
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">\r
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">\r
-<head>\r
-       <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />\r
-       <meta name="ElggRelease" content="<?php echo $release; ?>" />\r
-       <meta name="ElggVersion" content="<?php echo $version; ?>" />\r
-       <title><?php echo $title; ?></title>\r
-       <link REL="SHORTCUT ICON" HREF="<?php echo $CONFIG->wwwroot; ?>_graphics/favicon.ico">\r
-\r
-       <script type="text/javascript" src="<?php echo $CONFIG->wwwroot; ?>vendors/jquery/jquery-1.4.min.js"></script> \r
-       <script type="text/javascript" src="<?php echo $CONFIG->wwwroot; ?>vendors/jquery/jquery-ui-1.7.2.min.js"></script>\r
-       <script type="text/javascript" src="<?php echo $CONFIG->wwwroot; ?>vendors/jquery/jquery.form.js"></script>\r
-       <script type="text/javascript" src="<?php echo $CONFIG->wwwroot; ?>vendors/jquery/custom-form-elements.js"></script>\r
-       <script type="text/javascript" src="<?php echo $CONFIG->wwwroot; ?>_css/js.php?lastcache=<?php echo $CONFIG->lastcache; ?>&amp;js=initialise_elgg&amp;viewtype=<?php echo $vars['view']; ?>"></script>\r
-\r
-       <?php\r
-               echo $feedref;\r
-               //custom css - need to cache this. It is here instead of extending the main css\r
-               //as we don't want it appearing anywhere else throughout the site, only the frontpage.\r
-               echo $css; \r
-               echo elgg_view('metatags',$vars);\r
-       ?>\r
-       <script type="text/javascript">\r
-               jQuery(document).ready(function($) {\r
-               });\r
-       </script>\r
-\r
-<?php\r
-       global $pickerinuse;\r
-       if (isset($pickerinuse) && $pickerinuse == true) {\r
-?>\r
-       <!-- only needed on pages where we have friends collections and/or the friends picker -->\r
-       <script type="text/javascript" src="<?php echo $CONFIG->wwwroot; ?>vendors/jquery/jquery.easing.1.3.packed.js"></script>\r
-       <script type="text/javascript" src="<?php echo $CONFIG->wwwroot; ?>_css/js.php?lastcache=<?php echo $vars['config']->lastcache; ?>&amp;js=friendsPickerv1&amp;viewtype=<?php echo $vars['view']; ?>"></script>\r
-<?php\r
-       }\r
-?>\r
-       <!-- include the default css file -->\r
-       <link rel="stylesheet" href="<?php echo $CONFIG->wwwroot; ?>_css/css.css?lastcache=<?php echo $CONFIG->lastcache; ?>&amp;viewtype=<?php echo $CONFIG->view; ?>" type="text/css" />\r
-</head>\r
-<body>\r
-<?php echo elgg_view('page_elements/elgg_topbar', $vars); ?>\r
-<?php echo elgg_view('page_elements/elgg_header', $vars); ?>\r
-<?php \r
-       echo parse_frontpage($frontContents); \r
-?>\r
-<?php echo elgg_view('page_elements/elgg_footer', $vars); ?>\r
-<?php echo elgg_view('page_elements/html_end', $vars); ?>
\ No newline at end of file
diff --git a/mod/sitepages/index.php b/mod/sitepages/index.php
deleted file mode 100644 (file)
index efc7371..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<?php
-/**
- * Elgg Site pages
- */
-
-require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
-
-admin_gatekeeper();
-set_context('admin');
-$type = get_input('type'); //the type of page e.g about, terms etc
-if(!$type)
-       $type = "front"; //default to the frontpage
-       
-// Set admin user for user block
-set_page_owner($_SESSION['guid']);
-       
-//display the title
-$title = elgg_view_title(elgg_echo('sitepages'));
-       
-// Display the correct form
-if($type == "front")
-       $edit = elgg_view('sitepages/forms/editfront');
-elseif($type == "seo")
-       $edit = elgg_view('sitepages/forms/editmeta');
-else
-       $edit = elgg_view('sitepages/forms/edit', array('type' => $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
index 2f4916ee53a350df551ece0751d5b1234f8e581a..ec08493c97496b8870769678a8bc38d0ad51f118 100644 (file)
@@ -1,48 +1,50 @@
 <?php
+/**
+ * Language definitions for Site Pages
+ *
+ * @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/
+ */
 
-       $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' => "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 (file)
index 5621c48..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-/**
- * Elgg read site page
- */
-
-// Load Elgg engine
-define('externalpage',true);
-require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
-               
-// set some variables
-$type = get_input('sitepages');
-                                                                                       
-// Set the title appropriately
-$area1 = elgg_view_title(elgg_echo("sitepages:". strtolower($type)));
-               
-//get contents
-$contents = elgg_get_entities(array('type' => '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
index 561aae97cf57463c444d6662184742a001dd7629..7ffe8df63aa41da5d483e626204883e82ebdbbbb 100644 (file)
@@ -1,8 +1,127 @@
 <?php\r
 /**\r
- * This will hold the required keyword functions to display frontpage content\r
- **/\r
\r
-function parse_frontpage($frontContents){\r
-       echo htmlspecialchars_decode($frontContents, ENT_NOQUOTES);\r
+ * Helper functions for Site Pages.\r
+ *\r
+ * @package SitePages\r
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2\r
+ * @author Curverider Ltd\r
+ * @copyright Curverider Ltd 2008-2010\r
+ * @link http://elgg.org/\r
+ */\r
+\r
+\r
+function sitepages_parse_frontpage($contents){\r
+       echo htmlspecialchars_decode($contents, ENT_NOQUOTES);\r
+}\r
+\r
+/**\r
+ * Returns a single object that holds information about\r
+ * customizations for the $section site page.  The object guid\r
+ * is stored as private data on the site entity.  This allows the pages\r
+ * to still be searchable as standard entities.\r
+ *\r
+ * @param $type\r
+ * @return mixed ElggSitePage on success, FALSE on fail\r
+ */\r
+function sitepages_get_sitepage_object($page_type) {\r
+       global $CONFIG;\r
+\r
+       $page_guid = get_private_setting($CONFIG->site->getGUID(), "sitepages:$page_type");\r
+       $sitepage = get_entity($page_guid);\r
+\r
+       if ($sitepage instanceof ElggSitePage || $sitepage->page_type == $page_type) {\r
+               return $sitepage;\r
+       }\r
+\r
+       return FALSE;\r
+}\r
+\r
+/**\r
+ * Creates a site page object.\r
+ *\r
+ * @param str $page_type\r
+ * @return mixed ElggSitePage on success, FALSE on fail.\r
+ */\r
+function sitepages_create_sitepage_object($page_type) {\r
+       global $CONFIG;\r
+\r
+       $sitepage = new ElggSitePage();\r
+       $sitepage->page_type = $page_type;\r
+       $sitepage->access_id = ACCESS_PUBLIC;\r
+       $sitepage->save();\r
+\r
+       if ($sitepage->save() && set_private_setting($CONFIG->site->getGUID(), "sitepages:$page_type", $sitepage->getGUID())) {\r
+               return $sitepage;\r
+       }\r
+\r
+       return FALSE;\r
+}\r
+\r
+/**\r
+ * Assembles html for edit sections of site pages.\r
+ *\r
+ * @param str $section\r
+ * @return str html\r
+ */\r
+function sitepages_get_edit_section_content($page_type) {\r
+       set_context('admin');\r
+\r
+       $keywords = '';\r
+\r
+       $title = elgg_view_title(elgg_echo('sitepages'));\r
+       $menu = elgg_view('sitepages/menu', array('page_type' => $page_type));\r
+\r
+       switch ($page_type) {\r
+               case 'front':\r
+                       $view = 'sitepages/forms/editfront';\r
+                       $keywords = elgg_view('sitepages/keywords');\r
+                       break;\r
+\r
+               case 'seo':\r
+                       $view = 'sitepages/forms/editmeta';\r
+                       break;\r
+\r
+               default:\r
+                       $view = 'sitepages/forms/edit';\r
+                       break;\r
+\r
+       }\r
+\r
+       $form .= elgg_view($view, array('page_type' => $page_type));\r
+       $body = $title .  $menu . $form;\r
+\r
+       $content = elgg_view_layout('one_column_with_sidebar', '', $body, $keywords);\r
+       return $content;\r
+}\r
+\r
+/**\r
+ * Assembles html for displaying site pages\r
+ *\r
+ * @param string $page_type\r
+ * @return string Formatted html\r
+ */\r
+function sitepages_get_page_content($page_type) {\r
+       $body = elgg_view_title(elgg_echo("sitepages:". strtolower($page_type)));\r
+\r
+       $sitepage = sitepages_get_sitepage_object($page_type);\r
+\r
+       if ($sitepage) {\r
+               $body .= elgg_view('page_elements/elgg_content', array('body' => $sitepage->description));\r
+       } else {\r
+               $body .= elgg_view('page_elements/elgg_content', array('body' => elgg_echo('sitepages:notset')));\r
+       }\r
+\r
+       $content = elgg_view_layout('one_column_with_sidebar', '', $body);\r
+       return $content;\r
+}\r
+\r
+/**\r
+ * Utility object to store site page information.\r
+ */\r
+class ElggSitePage extends ElggObject {\r
+       public function initialise_attributes() {\r
+               parent::initialise_attributes();\r
+\r
+               $this->attributes['subtype'] = 'sitepages_page';\r
+       }\r
 }
\ No newline at end of file
index c6e1199596d6344beec8d79f5de8161bf5229323..186738bab8c651851789d03098a590b7b80807b2 100644 (file)
 <?php
 /**
- * Elgg external pages editor
+ * Site Pages provides interfaces to create standard content-static pages
+ * and to customize the front page layout and content.
+ *
+ * Formerly implemented as "external pages" and "custom index."
+ *
+ * @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/
+ *
+ * @todo Implement sticky pages
+ * @todo DRY up actions and views
  */
-require_once(dirname(__FILE__) . '/sitepages_functions.php');
 
+/**
+ * Start the site pages plugin.
+ */
 function sitepages_init() {
+       require_once(dirname(__FILE__) . '/sitepages_functions.php');
        global $CONFIG;
+
+       // register our subtype
+       run_function_once('sitepages_runonce');
+
        // Register a page handler, so we can have nice URLs
-       register_page_handler('sitepages','sitepages_page_handler');
-               
+       register_page_handler('sitepages', 'sitepages_page_handler');
+
        // Register a URL handler for external pages
-       register_entity_url_handler('sitepages_url','object','sitepages');
-               
-       // extend views
+       register_entity_url_handler('sitepages_url', 'object', 'sitepages');
+
        elgg_extend_view('footer/links', 'sitepages/footer_menu');
        elgg_extend_view('metatags', 'sitepages/metatags');
-       
+
        // Replace the default index page if user has requested
-       if (get_plugin_setting('ownfrontpage', 'externalpages') == 'yes'){
-               register_plugin_hook('index','system','custom_index');
+       if (get_plugin_setting('ownfrontpage', 'sitepages') == 'yes') {
+               register_plugin_hook('index', 'system', 'sitepages_custom_index');
        }
-               
+
+       // parse views for keywords
+       register_plugin_hook('display', 'view', 'sitepages_parse_view');
+
+       // register the views we want to parse for the keyword replacement
+       // right now this is just the custom front page, but we can
+       // expand it to the other pages later.
+       $CONFIG->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 (file)
index 0a8e94b..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-<?php
-/**
- * Elgg Analytics view
- */
-
-//get analytics content 
-$contents = elgg_get_entities(array('type' => '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 (file)
index 5d7eabc..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-<?php
-/**
- * Elgg sitepages CSS
- */
-?>
-
-/* 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 (file)
index 0000000..fb0b673
--- /dev/null
@@ -0,0 +1,17 @@
+<?php
+/**
+ * Custom front page.
+ * This is in a view so we can parse it for 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/
+ */
+
+$object = sitepages_get_sitepage_object('front');
+
+if ($object) {
+       echo $object->description;
+}
\ No newline at end of file
index 94ec786b1a888d21db2bec3ed90326dadb9b3592..16100c10a9fb75d6e5405c319d9269f3c62670e1 100644 (file)
@@ -1,92 +1,51 @@
 <?php
+/**
+ * Edit non front or SEO site pages.
+ *
+ * @package Elggsitepages
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
+ * @author Curverider Ltd <info@elgg.com>
+ * @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 <info@elgg.com>
-        * @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') . "<br/>";  
-               
-               //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 "<div class=\"page_preview\"><a href=\"#preview\">" . elgg_echo('sitepages:preview') . "</a></div>";
-               
-       //construct the form
-               $form_body = <<<EOT
+$page_type = $vars['page_type'];
+$action = 'sitepages/add';
 
-               <h3 class='settings'>$external_page_title</h3>
-               <p class='longtext_editarea'>$input_area</p>
-               <p>
-                       $tag_label
-                       $tag_input
-               </p>
-                       $hidden_value
-                       $hidden_guid
-                       <br />
-                       $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;
-?>
-<?php
-       //display the form
-       echo elgg_view('input/form', array('action' => "{$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 = '<h3>' . elgg_echo('tags') . '</h3>';
+$external_page_title = elgg_echo("sitepages:$page_type");
+
+$form_body = <<<___EOT
+
+<h3 class='settings'>$external_page_title</h3>
+<p class='longtext_editarea'>$input_area</p>
+<p>
+       $tag_label
+       $tag_input
+</p>
+$hidden_value
+$hidden_guid
+<br />
+$submit_input
+
+___EOT;
 
-<!-- preview page contents -->
-<!--
-<div class="expage_preview">
-<a name="preview"></a>
-<h2>Preview</h2>
-<?php 
-       if($description)
-               echo $description;
-       else
-               echo elgg_echo('sitepages:nopreview');
-?>
-</div>
--->
\ 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
index faea356f29cd16839de5800a4360bf2954948db4..cc09b8cc8792b102ee10cf6a0c94590500b6f7dc 100644 (file)
@@ -1,52 +1,51 @@
 <?php
 /**
- * Elgg edit frontpage
+ * Edit form for the custom front page
+ *
+ * @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/
  */
-        
-//action
-$action = "sitepages/addfront";
-        
-//grab the required entity
-$page_contents = elgg_get_entities(array('type' => '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 = "<div class=\"page_preview\"><a href=\"#preview\">" . elgg_echo('sitepages:preview') . "</a></div>";
-               
+// @todo this doesn't do anything.
+//$preview = "<div class=\"page_preview\"><a href=\"#preview\">" . elgg_echo('sitepages:preview') . "</a></div>";
+
 //construct the form
-$form_body = <<<EOT
+$form_body = <<<___EOT
 
-       <h3 class='settings'>$css</h3>
+       <h3 class='settings'>$css_title</h3>
        <p class='longtext_editarea'>$input_css</p><br />
-       <h3 class='settings'>$pageshell</h3>
-       <p class='longtext_editarea'>$input_pageshell</p>
-               
+       <h3 class='settings'>$pageshell_title</h3>
+       <p class='longtext_editarea'>$input_sitepages_content</p>
+
        $hidden_guid
        <br />
        $submit_input
        $preview
 
-EOT;
-?>
-<?php
-       //display the form
-       echo elgg_view('input/form', array('action' => "{$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
index 7eb731f76c0988c02dbd8053f3a1c9983d58adc5..d94f3211477d757898203e90ee27351831f20dd2 100644 (file)
@@ -1,48 +1,43 @@
 <?php\r
 /**\r
- * Elgg edit frontpage\r
+ * Edit form for the custom meta tags and desc\r
+ *\r
+ * @package SitePages\r
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2\r
+ * @author Curverider Ltd\r
+ * @copyright Curverider Ltd 2008-2010\r
+ * @link http://elgg.org/\r
  */\r
-        \r
-//action\r
-$action = "sitepages/addmeta";\r
-        \r
-//grab the required entity\r
-$page_contents = elgg_get_entities(array('type' => 'object', 'subtype' => 'sitemeta', 'limit' => 1));\r
-        \r
-if($page_contents){\r
-        foreach($page_contents as $pc){\r
-                $metatags = $pc->title;\r
-                $description = $pc->description;\r
-                $guid = $pc->guid;\r
-        }\r
-}else {                \r
-       $metatags = "";\r
-       $description = "";\r
+\r
+$action = 'sitepages/addmeta';\r
+\r
+if ($sitepages_object = sitepages_get_sitepage_object('front')) {\r
+       $meta_tags = $sitepages_object->title;\r
+       $meta_description = $sitepages_object->description;\r
+} else {\r
+       $meta_tags = '';\r
+       $meta_description = '';\r
 }\r
-               \r
-// set the required form variables\r
-$input_keywords = elgg_view('input/plaintext', array('internalname' => 'metatags', 'value' => $metatags));\r
-$input_description = elgg_view('input/plaintext', array('internalname' => 'description', 'value' => $description));\r
+\r
+$input_keywords = elgg_view('input/plaintext', array('internalname' => 'metatags', 'value' => $meta_tags));\r
+$input_description = elgg_view('input/plaintext', array('internalname' => 'description', 'value' => $meta_description));\r
 $submit_input = elgg_view('input/submit', array('internalname' => 'submit', 'value' => elgg_echo('save')));\r
-$hidden_guid = elgg_view('input/hidden', array('internalname' => 'seo_guid', 'value' => $guid));\r
+\r
 $description = elgg_echo("sitepages:metadescription");\r
 $metatags = elgg_echo("sitepages:metatags");\r
-                       \r
-//construct the form\r
-$form_body = <<<EOT\r
+\r
+$form_body = <<<___EOT\r
 \r
        <h3 class='settings'>$description</h3>\r
        <p class='longtext_editarea'>$input_description</p><br />\r
        <h3 class='settings'>$metatags</h3>\r
        <p class='longtext_editarea'>$input_keywords</p>\r
-               \r
+\r
        $hidden_guid\r
        <br />\r
        $submit_input\r
 \r
-EOT;\r
-?>\r
-<?php\r
-       //display the form\r
-       echo elgg_view('input/form', array('action' => "{$vars['url']}action/$action", 'body' => $form_body));\r
-?>
\ No newline at end of file
+___EOT;\r
+\r
+//display the form\r
+echo elgg_view('input/form', array('action' => "{$vars['url']}action/$action", 'body' => $form_body));
\ No newline at end of file
index 2b4666256ce2b312039c99373a63e94cb16b695d..e5348678a390e2bc3fd663ec8625e5caa5aa1fbe 100644 (file)
@@ -1,14 +1,28 @@
 <?php\r
 /**\r
- * Available keywords, this will be pulled from activated plugin that expose a keyword function\r
- **/\r
-?>\r
-<div class="contentWrapper">\r
-       <h3>Available keywords</h3>\r
-       <ul>\r
-               <li>{{element:loginbox}}</li>\r
-               <li>{{element:stats}}</li>\r
-               <li>{{object:blog}}</li>\r
-               <li>{{group:4}}</li>\r
-       </ul>\r
-</div>
\ No newline at end of file
+ * Lists available keywords\r
+ *\r
+ * @package SitePages\r
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2\r
+ * @author Curverider Ltd\r
+ * @copyright Curverider Ltd 2008-2010\r
+ * @link http://elgg.org/\r
+ */\r
+\r
+$keywords = $vars['config']->sitepages_keywords;\r
+$title = elgg_echo('sitepages:keywords_title');\r
+$instructions = elgg_echo('sitepages:keywords_instructions');\r
+\r
+$keywords_html = '';\r
+foreach ($keywords as $keyword => $info) {\r
+       $desc = htmlentities($info['description']);\r
+       $keywords_html .= "<li><acronym title=\"$desc\">[[$keyword]]</acronym></li>";\r
+}\r
+\r
+echo "\r
+<h3>$title</h3>\r
+<p>$instructions</p>\r
+<ul>\r
+       $keywords_html\r
+</ul>\r
+";
\ No newline at end of file
index 5f074f489bdeac1337b12111b3d52ded7af9aeb1..e676b6c96653f01291306def0ab2346323ba3bf6 100644 (file)
@@ -1,22 +1,25 @@
 <?php
 /**
- * Elgg Site pages menu
+ * Displays the tabbed menu for editing site pages.
+ *
+ * @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/
  */
-        
-//type
-$type = $vars['type'];
-        
-//set the url
-$url = $vars['url'] . "pg/sitepages/index.php?type=";
+
+$page_type = $vars['page_type'];
+$url = $vars['url'] . 'pg/sitepages/edit/';
 
 ?>
 
 <div class="elgg_horizontal_tabbed_nav">
 <ul>
-       <li <?php if($type == 'front') echo "class = 'selected'"; ?>><a href="<?php echo $url; ?>front"><?php echo elgg_echo('sitepages:frontpage'); ?></a></li>
-       <li <?php if($type == 'about') echo "class = 'selected'"; ?>><a href="<?php echo $url; ?>about"><?php echo elgg_echo('sitepages:about'); ?></a></li>
-       <li <?php if($type == 'terms') echo "class = 'selected'"; ?>><a href="<?php echo $url; ?>terms"><?php echo elgg_echo('sitepages:terms'); ?></a></li>
-       <li <?php if($type == 'privacy') echo "class = 'selected'"; ?>><a href="<?php echo $url; ?>privacy"><?php echo elgg_echo('sitepages:privacy'); ?></a></li>
-       <li <?php if($type == 'seo') echo "class = 'selected'"; ?>><a href="<?php echo $url; ?>seo"><?php echo elgg_echo('sitepages:seo'); ?></a></li>
+       <li <?php if($page_type == 'front') echo "class = 'selected'"; ?>><a href="<?php echo $url; ?>front"><?php echo elgg_echo('sitepages:frontpage'); ?></a></li>
+       <li <?php if($page_type == 'about') echo "class = 'selected'"; ?>><a href="<?php echo $url; ?>about"><?php echo elgg_echo('sitepages:about'); ?></a></li>
+       <li <?php if($page_type == 'terms') echo "class = 'selected'"; ?>><a href="<?php echo $url; ?>terms"><?php echo elgg_echo('sitepages:terms'); ?></a></li>
+       <li <?php if($page_type == 'privacy') echo "class = 'selected'"; ?>><a href="<?php echo $url; ?>privacy"><?php echo elgg_echo('sitepages:privacy'); ?></a></li>
+       <li <?php if($page_type == 'seo') echo "class = 'selected'"; ?>><a href="<?php echo $url; ?>seo"><?php echo elgg_echo('sitepages:seo'); ?></a></li>
 </ul>
 </div>
\ No newline at end of file
index 73a7cd17f24ca4af2adbda16dfe8769cafc7cda1..c536dbe29cb3101a9ba995f4f614c4cc98453d16 100644 (file)
@@ -1,17 +1,35 @@
 <?php\r
 /**\r
- * Meta tags\r
- **/\r
\r
-$meta_details = elgg_get_entities(array('type' => 'object', 'subtype' => 'seo', 'limit' => 1));\r
-if($meta_details){\r
-       foreach($meta_details as $md){\r
-                $metatags = $md->title;\r
-                $description = $md->description;\r
-        }\r
+ * Add any additional defined metatags or CSS.\r
+ *\r
+ * @package SitePages\r
+ * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2\r
+ * @author Curverider Ltd\r
+ * @copyright Curverider Ltd 2008-2010\r
+ * @link http://elgg.org/\r
+ */\r
+\r
+$meta_details = sitepages_get_sitepage_object('seo');\r
+\r
+if ($meta_details) {\r
+       $metatags = $meta_details->title;\r
+       $description = $meta_details->description;\r
+\r
+       echo <<<___END\r
+       <meta name="description" content="$description" />\r
+       <meta name="keywords" content="$metatags" />\r
+___END;\r
 }\r
\r
-?>\r
 \r
-<meta name="description" content="<?php echo $description; ?>." />\r
-<meta name="keywords" content="<?php echo $metatags; ?>" />
\ No newline at end of file
+// only show on the custom front page.\r
+if (get_context() == 'sitepages:front') {\r
+       $custom_css = sitepages_get_sitepage_object('front');\r
+\r
+       if ($custom_css && $custom_css->title) {\r
+               echo "\r
+               <style>\r
+               {$custom_css->title}\r
+               </style>\r
+               ";\r
+       }\r
+}
\ No newline at end of file