]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Site pages will eventually replace the external pages and custom index plugins as...
authordave <dave@36083f99-b078-4883-b0ff-0f9b5a30f544>
Mon, 8 Mar 2010 15:51:52 +0000 (15:51 +0000)
committerdave <dave@36083f99-b078-4883-b0ff-0f9b5a30f544>
Mon, 8 Mar 2010 15:51:52 +0000 (15:51 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@5303 36083f99-b078-4883-b0ff-0f9b5a30f544

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

diff --git a/mod/sitepages/actions/add.php b/mod/sitepages/actions/add.php
new file mode 100644 (file)
index 0000000..3b7f4eb
--- /dev/null
@@ -0,0 +1,64 @@
+<?php
+/**
+ * Elgg external pages: add/edit
+ */
+
+// 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');
+
+// 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
+} 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;
+       }
+       // 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}");
+}
diff --git a/mod/sitepages/actions/addfront.php b/mod/sitepages/actions/addfront.php
new file mode 100644 (file)
index 0000000..5a86189
--- /dev/null
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Elgg front page: add/edit
+ */
+
+// 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);
+}
+
+//var_export($pageshell);exit;
+
+// 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()) {
+       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");
diff --git a/mod/sitepages/actions/addmeta.php b/mod/sitepages/actions/addmeta.php
new file mode 100644 (file)
index 0000000..432152e
--- /dev/null
@@ -0,0 +1,49 @@
+<?php\r
+/**\r
+ * Elgg SEO: add/edit\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
+\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
+\r
+// Success message\r
+system_message(elgg_echo("sitepages:seocreated"));\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
diff --git a/mod/sitepages/frontpage.php b/mod/sitepages/frontpage.php
new file mode 100644 (file)
index 0000000..4f5d02a
--- /dev/null
@@ -0,0 +1,70 @@
+<?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
new file mode 100644 (file)
index 0000000..efc7371
--- /dev/null
@@ -0,0 +1,37 @@
+<?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
diff --git a/mod/sitepages/languages/en.php b/mod/sitepages/languages/en.php
new file mode 100644 (file)
index 0000000..2f4916e
--- /dev/null
@@ -0,0 +1,48 @@
+<?php
+
+       $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);
+
+?>
\ No newline at end of file
diff --git a/mod/sitepages/manifest.xml b/mod/sitepages/manifest.xml
new file mode 100644 (file)
index 0000000..9714a47
--- /dev/null
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<plugin_manifest>
+        <field key="author" value="Curverider" />
+        <field key="version" value="1.0" />
+        <field key="description" value="This is a very simple plugin that lets the site admin populate an about page, terms and privacy page. You can also edit the frontpage if you know a little html/css." />
+        <field key="website" value="http://www.elgg.org/" />
+        <field key="copyright" value="(C) Curverider 2008-2010" />
+        <field key="licence" value="GNU Public License version 2" />
+        <field key="elgg_version" value="2009030702" />
+</plugin_manifest>
diff --git a/mod/sitepages/read.php b/mod/sitepages/read.php
new file mode 100644 (file)
index 0000000..5621c48
--- /dev/null
@@ -0,0 +1,31 @@
+<?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
diff --git a/mod/sitepages/sitepages_functions.php b/mod/sitepages/sitepages_functions.php
new file mode 100644 (file)
index 0000000..561aae9
--- /dev/null
@@ -0,0 +1,8 @@
+<?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
+}
\ No newline at end of file
diff --git a/mod/sitepages/start.php b/mod/sitepages/start.php
new file mode 100644 (file)
index 0000000..c6e1199
--- /dev/null
@@ -0,0 +1,72 @@
+<?php
+/**
+ * Elgg external pages editor
+ */
+require_once(dirname(__FILE__) . '/sitepages_functions.php');
+
+function sitepages_init() {
+       global $CONFIG;
+       // Register a page handler, so we can have nice URLs
+       register_page_handler('sitepages','sitepages_page_handler');
+               
+       // Register a URL handler for external pages
+       register_entity_url_handler('sitepages_url','object','sitepages');
+               
+       // extend views
+       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');
+       }
+               
+}
+
+function custom_index() {
+       if (!@include_once(dirname(__FILE__) . "/frontpage.php")) return false;
+       return true;
+}
+       
+/**
+ * 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/');
+       }
+}
+       
+function sitepages_url($expage) {
+       global $CONFIG;
+       return $CONFIG->url . "pg/sitepages/";
+}
+       
+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"); 
+               }
+       }else{
+               include($CONFIG->pluginspath . "sitepages/index.php"); 
+       }
+}
+       
+// 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
diff --git a/mod/sitepages/views/default/settings/sitepages/edit.php b/mod/sitepages/views/default/settings/sitepages/edit.php
new file mode 100644 (file)
index 0000000..22f03ab
--- /dev/null
@@ -0,0 +1,7 @@
+<p>\r
+       <?php echo elgg_echo('sitepages:ownfront'); ?>\r
+       <select name="params[ownfrontpage]">\r
+               <option value="yes" <?php if ($vars['entity']->ownfrontpage == 'yes') echo " selected=\"yes\" "; ?>><?php echo elgg_echo('option:yes'); ?></option>\r
+               <option value="no" <?php if ($vars['entity']->ownfrontpage != 'yes') echo " selected=\"yes\" "; ?>><?php echo elgg_echo('option:no'); ?></option>\r
+       </select>\r
+</p>
\ No newline at end of file
diff --git a/mod/sitepages/views/default/sitepages/analytics.php b/mod/sitepages/views/default/sitepages/analytics.php
new file mode 100644 (file)
index 0000000..0a8e94b
--- /dev/null
@@ -0,0 +1,13 @@
+<?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
new file mode 100644 (file)
index 0000000..5d7eabc
--- /dev/null
@@ -0,0 +1,9 @@
+<?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/footer_menu.php b/mod/sitepages/views/default/sitepages/footer_menu.php
new file mode 100644 (file)
index 0000000..5137e0f
--- /dev/null
@@ -0,0 +1,11 @@
+<?php
+/**
+ * Elgg External pages footer menu
+ */
+?>
+
+<div class="footer_toolbar_links">| 
+<a href="<?php echo $vars['url']; ?>pg/sitepages/read/About/"><?php echo elgg_echo('sitepages:about'); ?></a> |
+<a href="<?php echo $vars['url']; ?>pg/sitepages/read/Terms/"><?php echo elgg_echo('sitepages:terms'); ?></a> |
+<a href="<?php echo $vars['url']; ?>pg/sitepages/read/Privacy/"><?php echo elgg_echo('sitepages:privacy'); ?></a> |
+</div>
\ 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
new file mode 100644 (file)
index 0000000..94ec786
--- /dev/null
@@ -0,0 +1,92 @@
+<?php
+
+       /**
+        * 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
+
+               <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;
+?>
+<?php
+       //display the form
+       echo elgg_view('input/form', array('action' => "{$vars['url']}action/$action", 'body' => $form_body));
+?>
+
+<!-- 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
diff --git a/mod/sitepages/views/default/sitepages/forms/editfront.php b/mod/sitepages/views/default/sitepages/forms/editfront.php
new file mode 100644 (file)
index 0000000..faea356
--- /dev/null
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Elgg edit frontpage
+ */
+        
+//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 = "";
+}
+               
+// 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));
+$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");
+               
+//preview link
+$preview = "<div class=\"page_preview\"><a href=\"#preview\">" . elgg_echo('sitepages:preview') . "</a></div>";
+               
+//construct the form
+$form_body = <<<EOT
+
+       <h3 class='settings'>$css</h3>
+       <p class='longtext_editarea'>$input_css</p><br />
+       <h3 class='settings'>$pageshell</h3>
+       <p class='longtext_editarea'>$input_pageshell</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
diff --git a/mod/sitepages/views/default/sitepages/forms/editmeta.php b/mod/sitepages/views/default/sitepages/forms/editmeta.php
new file mode 100644 (file)
index 0000000..7eb731f
--- /dev/null
@@ -0,0 +1,48 @@
+<?php\r
+/**\r
+ * Elgg edit frontpage\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
+               \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
+$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
+$description = elgg_echo("sitepages:metadescription");\r
+$metatags = elgg_echo("sitepages:metatags");\r
+                       \r
+//construct the form\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
+       $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
diff --git a/mod/sitepages/views/default/sitepages/keywords.php b/mod/sitepages/views/default/sitepages/keywords.php
new file mode 100644 (file)
index 0000000..2b46662
--- /dev/null
@@ -0,0 +1,14 @@
+<?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
diff --git a/mod/sitepages/views/default/sitepages/menu.php b/mod/sitepages/views/default/sitepages/menu.php
new file mode 100644 (file)
index 0000000..5f074f4
--- /dev/null
@@ -0,0 +1,22 @@
+<?php
+/**
+ * Elgg Site pages menu
+ */
+        
+//type
+$type = $vars['type'];
+        
+//set the url
+$url = $vars['url'] . "pg/sitepages/index.php?type=";
+
+?>
+
+<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>
+</ul>
+</div>
\ No newline at end of file
diff --git a/mod/sitepages/views/default/sitepages/metatags.php b/mod/sitepages/views/default/sitepages/metatags.php
new file mode 100644 (file)
index 0000000..73a7cd1
--- /dev/null
@@ -0,0 +1,17 @@
+<?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
+}\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