aboutsummaryrefslogtreecommitdiff
path: root/mod/externalpages
diff options
context:
space:
mode:
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>2011-02-13 22:19:14 +0000
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>2011-02-13 22:19:14 +0000
commitc1c2563fc1cd451afaf735350eb1c576740be2f4 (patch)
treec101b4050ee0fbc356699276590bd7138e7ddbdb /mod/externalpages
parentb42125b50f3fcd518ef058211a318ce5c6b66e1b (diff)
downloadelgg-c1c2563fc1cd451afaf735350eb1c576740be2f4.tar.gz
elgg-c1c2563fc1cd451afaf735350eb1c576740be2f4.tar.bz2
swapping sitepages for externalpages since the external pages is easier to integrate into 1.8 . sitepages needs more work before it is ready for release (plus we would need an upgrade script)
git-svn-id: http://code.elgg.org/elgg/trunk@8206 36083f99-b078-4883-b0ff-0f9b5a30f544
Diffstat (limited to 'mod/externalpages')
-rw-r--r--mod/externalpages/actions/add.php54
-rw-r--r--mod/externalpages/actions/addfront.php48
-rw-r--r--mod/externalpages/index.php30
-rw-r--r--mod/externalpages/languages/en.php42
-rw-r--r--mod/externalpages/manifest.xml10
-rw-r--r--mod/externalpages/read.php35
-rw-r--r--mod/externalpages/start.php74
-rw-r--r--mod/externalpages/views/default/expages/analytics.php21
-rw-r--r--mod/externalpages/views/default/expages/css.php13
-rw-r--r--mod/externalpages/views/default/expages/footer_menu.php17
-rw-r--r--mod/externalpages/views/default/expages/forms/edit.php82
-rw-r--r--mod/externalpages/views/default/expages/forms/editfront.php75
-rw-r--r--mod/externalpages/views/default/expages/front_left.php23
-rw-r--r--mod/externalpages/views/default/expages/front_right.php36
-rw-r--r--mod/externalpages/views/default/expages/menu.php25
-rw-r--r--mod/externalpages/views/default/object/expages.php10
16 files changed, 595 insertions, 0 deletions
diff --git a/mod/externalpages/actions/add.php b/mod/externalpages/actions/add.php
new file mode 100644
index 000000000..fed637c55
--- /dev/null
+++ b/mod/externalpages/actions/add.php
@@ -0,0 +1,54 @@
+<?php
+
+ /**
+ * Elgg external pages: add/edit
+ *
+ * @package ElggExPages
+ */
+
+ // Make sure we're logged as admin
+ admin_gatekeeper();
+
+ // Get input data
+ $contents = get_input('expagescontent', '', false);
+ $type = get_input('content_type');
+ $previous_guid = get_input('expage_guid');
+
+ // Cache to the session
+ $_SESSION['expages_content'] = $contents;
+ $_SESSION['expagestype'] = $type;
+
+ //remove the old external page
+ if(get_entity($previous_guid)){
+ delete_entity($previous_guid);
+ }
+
+ // Initialise a new ElggObject
+ $expages = new ElggObject();
+ // Tell the system what type of external page it is
+ $expages->subtype = $type;
+ // Set its owner to the current user
+ $expages->owner_guid = get_loggedin_userid();
+ // For now, set its access to public
+ $expages->access_id = ACCESS_PUBLIC;
+ // Set its title and description appropriately
+ $expages->title = $type;
+ $expages->description = $contents;
+ // Before we can set metadata, save
+ if (!$expages->save()) {
+ register_error(elgg_echo("expages:error"));
+ forward(REFERER);
+ }
+
+ // Success message
+ system_message(elgg_echo("expages:posted"));
+ // add to river
+ add_to_river('river/expages/create','create',get_loggedin_userid(),$expages->guid);
+ // Remove the cache
+ unset($_SESSION['expages_content']); unset($_SESSION['expagestitle']);
+
+
+ // Forward back to the page
+ forward("pg/expages/index.php?type={$type}");
+
+?> \ No newline at end of file
diff --git a/mod/externalpages/actions/addfront.php b/mod/externalpages/actions/addfront.php
new file mode 100644
index 000000000..f0a457df9
--- /dev/null
+++ b/mod/externalpages/actions/addfront.php
@@ -0,0 +1,48 @@
+<?php
+
+ /**
+ * Elgg front pages: add/edit
+ * Here we use the title field for the lefthand side and the description for the righthand side
+ *
+ * @package ElggExPages
+ */
+
+ // Make sure we're logged as admin
+ admin_gatekeeper();
+
+ // Get input data
+ $contents_left = get_input('front_left', '', false);
+ $contents_right = get_input('front_right', '', false);
+ $previous_guid = get_input('front_guid');
+
+ //remove the old front page
+ if(get_entity($previous_guid)){
+ delete_entity($previous_guid);
+ }
+
+ // Initialise a new ElggObject
+ $frontpage = new ElggObject();
+ // Tell the system what type of external page it is
+ $frontpage->subtype = "front";
+ // Set its owner to the current user
+ $frontpage->owner_guid = get_loggedin_userid();
+ // For now, set its access to public
+ $frontpage->access_id = ACCESS_PUBLIC;
+ // Set its title and description appropriately
+ $frontpage->title = $contents_left;
+ $frontpage->description = $contents_right;
+
+ // Before we can set metadata, save
+ if (!$frontpage->save()) {
+ register_error(elgg_echo("expages:error"));
+ forward("pg/expages/index.php?type=front");
+ }
+
+ // Success message
+ system_message(elgg_echo("expages:posted"));
+
+
+ // Forward back to the page
+ forward("pg/expages/index.php?type=front");
+
+?>
diff --git a/mod/externalpages/index.php b/mod/externalpages/index.php
new file mode 100644
index 000000000..78a0bb1a3
--- /dev/null
+++ b/mod/externalpages/index.php
@@ -0,0 +1,30 @@
+<?php
+ /**
+ * Elgg External pages
+ *
+ * @package ElggExpages
+ */
+
+ 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
+
+ //display the title
+ $title = elgg_view_title(elgg_echo('expages'));
+
+ // Display the correct form
+ if($type == "front")
+ $edit = elgg_view('expages/forms/editfront');
+ else
+ $edit = elgg_view('expages/forms/edit', array('type' => $type));
+
+ // Display the menu
+ $body = elgg_view('page_elements/contentwrapper',array('body' => elgg_view('expages/menu', array('type' => $type)).$edit));
+
+ // Display
+ page_draw(elgg_echo('expages'),elgg_view_layout("two_column_left_sidebar", '', $title . $body));
+?> \ No newline at end of file
diff --git a/mod/externalpages/languages/en.php b/mod/externalpages/languages/en.php
new file mode 100644
index 000000000..8d80ee9f2
--- /dev/null
+++ b/mod/externalpages/languages/en.php
@@ -0,0 +1,42 @@
+<?php
+
+ $english = array(
+
+ /**
+ * Menu items and titles
+ */
+
+ 'expages' => "External pages",
+ 'expages:frontpage' => "Frontpage",
+ 'expages:about' => "About",
+ 'expages:terms' => "Terms",
+ 'expages:privacy' => "Privacy",
+ 'expages:analytics' => "Analytics",
+ 'expages:contact' => "Contact",
+ 'expages:nopreview' => "No preview yet available",
+ 'expages:preview' => "Preview",
+ 'expages:notset' => "This page has not been set up yet.",
+ 'expages:lefthand' => "The lefthand information pane",
+ 'expages:righthand' => "The righthand information pane",
+ 'expages: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
+ */
+
+ 'expages:posted' => "Your page was successfully updated.",
+ 'expages:deleted' => "Your page post was successfully deleted.",
+
+ /**
+ * Error messages
+ */
+
+ 'expages:deleteerror' => "There was a problem deleting the old page",
+ 'expages: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/externalpages/manifest.xml b/mod/externalpages/manifest.xml
new file mode 100644
index 000000000..3793d7803
--- /dev/null
+++ b/mod/externalpages/manifest.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<plugin_manifest>
+ <field key="author" value="Curverider" />
+ <field key="version" value="1.7" />
+ <field key="description" value="This is a very simple plugin that lets site admin populate an about page, terms, privacy and contact. You can also edit the frontpage text." />
+ <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="2010030101" />
+</plugin_manifest>
diff --git a/mod/externalpages/read.php b/mod/externalpages/read.php
new file mode 100644
index 000000000..3faceb083
--- /dev/null
+++ b/mod/externalpages/read.php
@@ -0,0 +1,35 @@
+<?php
+
+ /**
+ * Elgg read external page
+ *
+ * @package ElggExpages
+ */
+
+ // Load Elgg engine
+ define('externalpage',true);
+ require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
+
+ // set some variables
+ $type = get_input('expages');
+
+ // Set the title appropriately
+ $area1 = elgg_view_title(elgg_echo("expages:". 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/contentwrapper',array('body' => $c->description));
+ }
+ }else
+ $area1 .= elgg_view('page_elements/contentwrapper',array('body' => elgg_echo("expages:notset")));
+
+ // Display through the correct canvas area
+ $body = elgg_view_layout("one_column", $area1);
+
+ // Display page
+ page_draw($title,$body);
+
+?> \ No newline at end of file
diff --git a/mod/externalpages/start.php b/mod/externalpages/start.php
new file mode 100644
index 000000000..33bd7e189
--- /dev/null
+++ b/mod/externalpages/start.php
@@ -0,0 +1,74 @@
+<?php
+ /**
+ * Elgg Simple editing of external pages frontpage/about/term/contact and privacy
+ *
+ * @package ElggExPages
+ */
+
+ function expages_init() {
+
+ global $CONFIG;
+
+ // Register a page handler, so we can have nice URLs
+ register_page_handler('expages','expages_page_handler');
+
+ // Register a URL handler for external pages
+ register_entity_url_handler('expages_url','object','expages');
+
+ // extend views
+ elgg_extend_view('footer/links', 'expages/footer_menu');
+ elgg_extend_view('index/righthandside', 'expages/front_right');
+ elgg_extend_view('index/lefthandside', 'expages/front_left');
+
+ }
+
+ /**
+ * Page setup. Adds admin controls to the admin panel.
+ *
+ */
+ function expages_pagesetup()
+ {
+ if (get_context() == 'admin' && isadminloggedin()) {
+ global $CONFIG;
+ add_submenu_item(elgg_echo('expages'), $CONFIG->wwwroot . 'pg/expages/');
+ }
+ }
+
+ function expages_url($expage) {
+
+ global $CONFIG;
+ return $CONFIG->url . "pg/expages/";
+
+ }
+
+
+ function expages_page_handler($page)
+ {
+ global $CONFIG;
+
+ if ($page[0])
+ {
+ switch ($page[0])
+ {
+ case "read": set_input('expages',$page[1]);
+ include(dirname(__FILE__) . "/read.php");
+ break;
+ default : include($CONFIG->pluginspath . "externalpages/index.php");
+ }
+ }
+ else
+ include($CONFIG->pluginspath . "externalpages/index.php");
+ }
+
+ // Initialise log browser
+ register_elgg_event_handler('init','system','expages_init');
+ register_elgg_event_handler('pagesetup','system','expages_pagesetup');
+
+ // Register actions
+ global $CONFIG;
+ register_action("expages/add",false,$CONFIG->pluginspath . "externalpages/actions/add.php");
+ register_action("expages/addfront",false,$CONFIG->pluginspath . "externalpages/actions/addfront.php");
+ register_action("expages/edit",false,$CONFIG->pluginspath . "externalpages/actions/edit.php");
+ register_action("expages/delete",false,$CONFIG->pluginspath . "externalpages/actions/delete.php");
+
+?> \ No newline at end of file
diff --git a/mod/externalpages/views/default/expages/analytics.php b/mod/externalpages/views/default/expages/analytics.php
new file mode 100644
index 000000000..40f7b6a8d
--- /dev/null
+++ b/mod/externalpages/views/default/expages/analytics.php
@@ -0,0 +1,21 @@
+<?php
+
+ /**
+ * Elgg Analytics view
+ *
+ * @package ElggExpages
+ *
+ */
+
+
+ //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/externalpages/views/default/expages/css.php b/mod/externalpages/views/default/expages/css.php
new file mode 100644
index 000000000..609f77f69
--- /dev/null
+++ b/mod/externalpages/views/default/expages/css.php
@@ -0,0 +1,13 @@
+<?php
+
+ /**
+ * Elgg externalpages CSS
+ *
+ * @package externalpages
+ */
+
+?>
+
+/* 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/externalpages/views/default/expages/footer_menu.php b/mod/externalpages/views/default/expages/footer_menu.php
new file mode 100644
index 000000000..a2e1616d2
--- /dev/null
+++ b/mod/externalpages/views/default/expages/footer_menu.php
@@ -0,0 +1,17 @@
+<?php
+
+ /**
+ * Elgg External pages footer menu
+ *
+ * @package ElggExpages
+ *
+ */
+
+
+?>
+
+<div class="footer_toolbar_links">|
+<a href="<?php echo $vars['url']; ?>pg/expages/read/About/"><?php echo elgg_echo('expages:about'); ?></a> |
+<a href="<?php echo $vars['url']; ?>pg/expages/read/Terms/"><?php echo elgg_echo('expages:terms'); ?></a> |
+<a href="<?php echo $vars['url']; ?>pg/expages/read/Privacy/"><?php echo elgg_echo('expages:privacy'); ?></a> |
+</div> \ No newline at end of file
diff --git a/mod/externalpages/views/default/expages/forms/edit.php b/mod/externalpages/views/default/expages/forms/edit.php
new file mode 100644
index 000000000..1cdec4198
--- /dev/null
+++ b/mod/externalpages/views/default/expages/forms/edit.php
@@ -0,0 +1,82 @@
+<?php
+
+ /**
+ * Elgg External pages edit
+ *
+ * @package ElggExpages
+ *
+ */
+
+ //get the page type
+ $type = $vars['type'];
+
+ //action
+ $action = "expages/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;
+ $guid = $pc->guid;
+ }
+ }else {
+ $description = "";
+ }
+
+ // set the required form variables
+ $input_area = elgg_view('input/longtext', array('internalname' => 'expagescontent', 'value' => $description));
+ $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));
+
+ //type
+ $type = $vars['type'];
+ //set the url
+ $url = $vars['url'] . "pg/expages/index.php?type=";
+
+ if($type == 'about') {
+ $external_page_title = elgg_echo('expages:about');
+ }
+ else if($type == 'terms') {
+ $external_page_title = elgg_echo('expages:terms');
+ }
+ else if($type == 'privacy') {
+ $external_page_title = elgg_echo('expages:privacy');
+ }
+ //preview link
+ // echo "<div class=\"page_preview\"><a href=\"#preview\">" . elgg_echo('expages:preview') . "</a></div>";
+
+ //construct the form
+ $form_body = <<<EOT
+
+ <h3 class='settings'>$external_page_title</h3>
+ <p class='longtext_editarea'>$input_area</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('expages:nopreview');
+*/
+?>
+</div>
+--> \ No newline at end of file
diff --git a/mod/externalpages/views/default/expages/forms/editfront.php b/mod/externalpages/views/default/expages/forms/editfront.php
new file mode 100644
index 000000000..3e7e8c83b
--- /dev/null
+++ b/mod/externalpages/views/default/expages/forms/editfront.php
@@ -0,0 +1,75 @@
+<?php
+
+ /**
+ * Elgg edit frontpage
+ *
+ * @package ElggExpages
+ *
+ */
+
+ //action
+ $action = "expages/addfront";
+
+ //grab the required entity
+ $page_contents = elgg_get_entities(array('type' => 'object', 'subtype' => 'front', 'limit' => 1));
+
+ if($page_contents){
+ foreach($page_contents as $pc){
+ $description_right = $pc->description;
+ $description_left = $pc->title;
+ $guid = $pc->guid;
+ }
+ }else {
+ $description = "";
+ }
+
+ // set the required form variables
+ $input_area_left = elgg_view('input/longtext', array('internalname' => 'front_left', 'value' => $description_left));
+ $input_area_right = elgg_view('input/longtext', array('internalname' => 'front_right', 'value' => $description_right));
+ $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));
+ $lefthand = elgg_echo("expages:lefthand");
+ $righthand = elgg_echo("expages:righthand");
+
+ //preview link
+ // echo "<div class=\"page_preview\"><a href=\"#preview\">" . elgg_echo('expages:preview') . "</a></div>";
+
+ //construct the form
+ $form_body = <<<EOT
+
+ <h3 class='settings'>$lefthand</h3>
+ <p class='longtext_editarea'>$input_area_left</p><br />
+ <h3 class='settings'>$righthand</h3>
+ <p class='longtext_editarea'>$input_area_right</p>
+
+ $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_left){
+ echo "The left column header space<br />";
+ echo $description_left;
+ }
+ if($description_right){
+ echo "The right column header space<br />";
+ echo $description_right;
+ }else
+ echo elgg_echo('expages:nopreview');
+ */
+?>
+</div>
+--> \ No newline at end of file
diff --git a/mod/externalpages/views/default/expages/front_left.php b/mod/externalpages/views/default/expages/front_left.php
new file mode 100644
index 000000000..14d999ead
--- /dev/null
+++ b/mod/externalpages/views/default/expages/front_left.php
@@ -0,0 +1,23 @@
+<?php
+
+ /**
+ * Elgg Frontpage left
+ *
+ * @package ElggExpages
+ *
+ */
+
+
+ //get frontpage right code
+ $contents = elgg_get_entities(array('type' => 'object', 'subtype' => 'front', 'limit' => 1));
+
+ if($contents){
+ foreach($contents as $c){
+ echo $c->title; // title is the left hand content
+ }
+ }else{
+ echo "<p>" . elgg_echo("expages:addcontent") . "</p>";
+ }
+
+?>
+
diff --git a/mod/externalpages/views/default/expages/front_right.php b/mod/externalpages/views/default/expages/front_right.php
new file mode 100644
index 000000000..ab999f890
--- /dev/null
+++ b/mod/externalpages/views/default/expages/front_right.php
@@ -0,0 +1,36 @@
+<?php
+
+ /**
+ * Elgg Frontpage right
+ *
+ * @package ElggExpages
+ *
+ */
+
+ //get frontpage right code
+ $contents = elgg_get_entities(array('type' => 'object', 'subtype' => 'front', 'limit' => 1));
+
+ // nothing to show so we return TRUE to indicate the view was valid
+ if ($contents == FALSE) {
+ return TRUE;
+ }
+
+ $show = '';
+ foreach($contents as $cont){
+ $show = $cont->description;
+ }
+
+ if($show != ''){
+ echo "<div id=\"index_welcome\">";
+
+ if($contents){
+ foreach($contents as $c){
+ echo $c->description;
+ }
+ }else{
+ echo elgg_echo("expages:addcontent");
+ }
+ echo "</div>";
+ }
+
+?> \ No newline at end of file
diff --git a/mod/externalpages/views/default/expages/menu.php b/mod/externalpages/views/default/expages/menu.php
new file mode 100644
index 000000000..d91418065
--- /dev/null
+++ b/mod/externalpages/views/default/expages/menu.php
@@ -0,0 +1,25 @@
+<?php
+
+ /**
+ * Elgg External pages menu
+ *
+ * @package ElggExpages
+ *
+ */
+
+ //type
+ $type = $vars['type'];
+
+ //set the url
+ $url = $vars['url'] . "pg/expages/index.php?type=";
+
+?>
+
+<div id="elgg_horizontal_tabbed_nav">
+<ul>
+ <li <?php if($type == 'front') echo "class = 'selected'"; ?>><a href="<?php echo $url; ?>front"><?php echo elgg_echo('expages:frontpage'); ?></a></li>
+ <li <?php if($type == 'about') echo "class = 'selected'"; ?>><a href="<?php echo $url; ?>about"><?php echo elgg_echo('expages:about'); ?></a></li>
+ <li <?php if($type == 'terms') echo "class = 'selected'"; ?>><a href="<?php echo $url; ?>terms"><?php echo elgg_echo('expages:terms'); ?></a></li>
+ <li <?php if($type == 'privacy') echo "class = 'selected'"; ?>><a href="<?php echo $url; ?>privacy"><?php echo elgg_echo('expages:privacy'); ?></a></li>
+</ul>
+</div> \ No newline at end of file
diff --git a/mod/externalpages/views/default/object/expages.php b/mod/externalpages/views/default/object/expages.php
new file mode 100644
index 000000000..69ec7233e
--- /dev/null
+++ b/mod/externalpages/views/default/object/expages.php
@@ -0,0 +1,10 @@
+<?php
+
+ /**
+ * Elgg expages view
+ *
+ * @package ElggExPages
+ *
+ */
+
+?> \ No newline at end of file