diff options
author | cash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2011-02-13 22:19:14 +0000 |
---|---|---|
committer | cash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544> | 2011-02-13 22:19:14 +0000 |
commit | c1c2563fc1cd451afaf735350eb1c576740be2f4 (patch) | |
tree | c101b4050ee0fbc356699276590bd7138e7ddbdb /mod/externalpages | |
parent | b42125b50f3fcd518ef058211a318ce5c6b66e1b (diff) | |
download | elgg-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.php | 54 | ||||
-rw-r--r-- | mod/externalpages/actions/addfront.php | 48 | ||||
-rw-r--r-- | mod/externalpages/index.php | 30 | ||||
-rw-r--r-- | mod/externalpages/languages/en.php | 42 | ||||
-rw-r--r-- | mod/externalpages/manifest.xml | 10 | ||||
-rw-r--r-- | mod/externalpages/read.php | 35 | ||||
-rw-r--r-- | mod/externalpages/start.php | 74 | ||||
-rw-r--r-- | mod/externalpages/views/default/expages/analytics.php | 21 | ||||
-rw-r--r-- | mod/externalpages/views/default/expages/css.php | 13 | ||||
-rw-r--r-- | mod/externalpages/views/default/expages/footer_menu.php | 17 | ||||
-rw-r--r-- | mod/externalpages/views/default/expages/forms/edit.php | 82 | ||||
-rw-r--r-- | mod/externalpages/views/default/expages/forms/editfront.php | 75 | ||||
-rw-r--r-- | mod/externalpages/views/default/expages/front_left.php | 23 | ||||
-rw-r--r-- | mod/externalpages/views/default/expages/front_right.php | 36 | ||||
-rw-r--r-- | mod/externalpages/views/default/expages/menu.php | 25 | ||||
-rw-r--r-- | mod/externalpages/views/default/object/expages.php | 10 |
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 |