aboutsummaryrefslogtreecommitdiff
path: root/mod/externalpages
diff options
context:
space:
mode:
Diffstat (limited to 'mod/externalpages')
-rw-r--r--mod/externalpages/actions/add.php68
-rw-r--r--mod/externalpages/actions/edit.php35
-rw-r--r--mod/externalpages/index.php33
-rw-r--r--mod/externalpages/languages/en.php63
-rw-r--r--mod/externalpages/manifest.xml23
-rw-r--r--mod/externalpages/read.php35
-rw-r--r--mod/externalpages/start.php137
-rw-r--r--mod/externalpages/views/default/admin/appearance/expages.php10
-rw-r--r--mod/externalpages/views/default/expages/analytics.php25
-rw-r--r--mod/externalpages/views/default/expages/css.php16
-rw-r--r--mod/externalpages/views/default/expages/footer_menu.php18
-rw-r--r--mod/externalpages/views/default/expages/forms/edit.php87
-rw-r--r--mod/externalpages/views/default/expages/menu.php33
-rw-r--r--mod/externalpages/views/default/expages/wrapper.php16
-rw-r--r--mod/externalpages/views/default/forms/expages/edit.php58
-rw-r--r--mod/externalpages/views/default/object/expages.php14
16 files changed, 253 insertions, 418 deletions
diff --git a/mod/externalpages/actions/add.php b/mod/externalpages/actions/add.php
deleted file mode 100644
index 79f16bad5..000000000
--- a/mod/externalpages/actions/add.php
+++ /dev/null
@@ -1,68 +0,0 @@
-<?php
-
- /**
- * Elgg external pages: add/edit
- *
- * @package ElggExPages
- * @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.org/
- */
-
- // 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;
-
- // Make sure the content exists
- if (empty($contents)) {
- register_error(elgg_echo("expages:blank"));
- forward("mod/expages/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
- $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 = $_SESSION['user']->getGUID();
- // 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("mod/expages/add.php");
- }
-
- // Success message
- system_message(elgg_echo("expages:posted"));
- // add to river
- add_to_river('river/expages/create','create',$_SESSION['user']->guid,$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/edit.php b/mod/externalpages/actions/edit.php
new file mode 100644
index 000000000..184aa3d82
--- /dev/null
+++ b/mod/externalpages/actions/edit.php
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Elgg external pages: create or update
+ *
+ */
+
+// Get input data and don't filter the content
+$contents = get_input('expagescontent', '', false);
+$type = get_input('content_type');
+$guid = get_input('guid');
+
+if ($guid) {
+ // update
+ $expages = get_entity($guid);
+ if (!$expages) {
+ register_error(elgg_echo("expages:error"));
+ forward(REFERER);
+ }
+} else {
+ // create
+ $expages = new ElggObject();
+ $expages->subtype = $type;
+}
+
+$expages->owner_guid = elgg_get_logged_in_user_guid();
+$expages->access_id = ACCESS_PUBLIC;
+$expages->title = $type;
+$expages->description = $contents;
+if (!$expages->save()) {
+ register_error(elgg_echo("expages:error"));
+ forward(REFERER);
+}
+
+system_message(elgg_echo("expages:posted"));
+forward(REFERER);
diff --git a/mod/externalpages/index.php b/mod/externalpages/index.php
deleted file mode 100644
index abfa53199..000000000
--- a/mod/externalpages/index.php
+++ /dev/null
@@ -1,33 +0,0 @@
-<?php
-/**
- * Elgg External pages
- *
- * @package ElggExpages
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- */
-
-require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
-
-admin_gatekeeper();
-set_context('admin');
-//the type of page e.g about, terms, privacy, etc
-$type = get_input('type', 'about');
-
-// Set admin user for user block
-set_page_owner($_SESSION['guid']);
-
-//display the title
-$title = elgg_view_title(elgg_echo('expages'));
-
-// Display the correct form
-$edit = elgg_view('expages/forms/edit', array('type' => $type));
-
-// Display the menu
-$body = elgg_view('page_elements/elgg_content',array('body' => elgg_view('expages/menu', array('type' => $type)).$edit));
-
-// Display
-page_draw(elgg_echo('expages'),elgg_view_layout("one_column_with_sidebar", $title . $body));
-?> \ No newline at end of file
diff --git a/mod/externalpages/languages/en.php b/mod/externalpages/languages/en.php
index 5deb70191..5f0f4ad7b 100644
--- a/mod/externalpages/languages/en.php
+++ b/mod/externalpages/languages/en.php
@@ -1,42 +1,27 @@
<?php
+/**
+ * External pages English language file
+ */
- $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 post was successfully posted.",
- '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);
+$english = array(
-?> \ No newline at end of file
+ /**
+ * Menu items and titles
+ */
+ 'expages' => "Site pages",
+ 'admin:appearance:expages' => "Site Pages",
+ 'expages:about' => "About",
+ 'expages:terms' => "Terms",
+ 'expages:privacy' => "Privacy",
+ 'expages:contact' => "Contact",
+
+ 'expages:notset' => "This page has not been set up yet.",
+
+ /**
+ * Status messages
+ */
+ 'expages:posted' => "Your page was successfully updated.",
+ 'expages:error' => "Unable to save this page.",
+);
+
+add_translation("en", $english);
diff --git a/mod/externalpages/manifest.xml b/mod/externalpages/manifest.xml
index 52da20256..f2aef09f3 100644
--- a/mod/externalpages/manifest.xml
+++ b/mod/externalpages/manifest.xml
@@ -1,12 +1,15 @@
<?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" />
- <field key="elgg_install_state" value="enabled" />
- <field key="admin_interface" value="advanced" />
+<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
+ <name>Site Pages</name>
+ <author>Core developers</author>
+ <version>1.8</version>
+ <category>bundled</category>
+ <description>Create simple web pages for about, contact, privacy, and terms.</description>
+ <website>http://www.elgg.org/</website>
+ <copyright>See COPYRIGHT.txt</copyright>
+ <license>GNU General Public License version 2</license>
+ <requires>
+ <type>elgg_release</type>
+ <version>1.8</version>
+ </requires>
</plugin_manifest>
diff --git a/mod/externalpages/read.php b/mod/externalpages/read.php
deleted file mode 100644
index d8d0eb007..000000000
--- a/mod/externalpages/read.php
+++ /dev/null
@@ -1,35 +0,0 @@
-<?php
-/**
- * Elgg read external page
- *
- * @package ElggExpages
- * @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/
-*/
-
-// Load Elgg engine
-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/elgg_content',array('body' => $c->description));
- }
-}else
- $area1 .= elgg_view('page_elements/elgg_content',array('body' => elgg_echo("expages: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/externalpages/start.php b/mod/externalpages/start.php
index 9f3f494bc..f0ffa6b9d 100644
--- a/mod/externalpages/start.php
+++ b/mod/externalpages/start.php
@@ -1,77 +1,102 @@
<?php
/**
- * Elgg Simple editing of external pages frontpage/about/term/contact and privacy
- *
- * @package ElggExPages
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider Ltd
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
+ * Plugin for creating web pages for your site
*/
+elgg_register_event_handler('init', 'system', 'expages_init');
+
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_register_page_handler('about', 'expages_page_handler');
+ elgg_register_page_handler('terms', 'expages_page_handler');
+ elgg_register_page_handler('privacy', 'expages_page_handler');
+ elgg_register_page_handler('expages', 'expages_page_handler');
+
+ // Register public external pages
+ elgg_register_plugin_hook_handler('public_pages', 'walled_garden', 'expages_public');
+
+ // add a menu item for the admin edit page
+ elgg_register_admin_menu_item('configure', 'expages', 'appearance');
+
+ // add footer links
+ expages_setup_footer_menu();
- // Extend CSS
- elgg_extend_view('css','expages/css');
+ // register action
+ $actions_base = elgg_get_plugins_path() . 'externalpages/actions';
+ elgg_register_action("expages/edit", "$actions_base/edit.php", 'admin');
}
/**
- * Page setup. Adds admin controls to the admin panel.
+ * Extend the public pages range
*
*/
-function expages_pagesetup()
-{
- if (get_context() == 'admin' && isadminloggedin()) {
- global $CONFIG;
- add_submenu_item(elgg_echo('expages'), $CONFIG->wwwroot . 'pg/expages/');
- }
+function expages_public($hook, $handler, $return, $params){
+ $pages = array('about', 'terms', 'privacy');
+ return array_merge($pages, $return);
}
-function expages_url($expage) {
-
- global $CONFIG;
- return $CONFIG->url . "pg/expages/";
-
+/**
+ * Setup the links to site pages
+ */
+function expages_setup_footer_menu() {
+ $pages = array('about', 'terms', 'privacy');
+ foreach ($pages as $page) {
+ $url = "$page";
+ $wg_item = new ElggMenuItem($page, elgg_echo("expages:$page"), $url);
+ elgg_register_menu_item('walled_garden', $wg_item);
+
+ $footer_item = clone $wg_item;
+ elgg_register_menu_item('footer', $footer_item);
+ }
}
+/**
+ * External pages page handler
+ *
+ * @param array $page URL segements
+ * @param string $handler Handler identifier
+ * @return bool
+ */
+function expages_page_handler($page, $handler) {
+ if ($handler == 'expages') {
+ expages_url_forwarder($page[1]);
+ }
+ $type = strtolower($handler);
+
+ $title = elgg_echo("expages:$type");
+ $header = elgg_view_title($title);
-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");
- }
+ $object = elgg_get_entities(array(
+ 'type' => 'object',
+ 'subtype' => $type,
+ 'limit' => 1,
+ ));
+ if ($object) {
+ $content .= elgg_view('output/longtext', array('value' => $object[0]->description));
+ } else {
+ $content .= elgg_echo("expages:notset");
}
- else
- include($CONFIG->pluginspath . "externalpages/index.php");
-}
+ $content = elgg_view('expages/wrapper', array('content' => $content));
-// Initialise log browser
-register_elgg_event_handler('init','system','expages_init');
-register_elgg_event_handler('pagesetup','system','expages_pagesetup');
+ if (elgg_is_logged_in() || !elgg_get_config('walled_garden')) {
+ $body = elgg_view_layout('one_sidebar', array('title' => $title, 'content' => $content));
+ echo elgg_view_page($title, $body);
+ } else {
+ elgg_load_css('elgg.walled_garden');
+ $body = elgg_view_layout('walled_garden', array('content' => $header . $content));
+ echo elgg_view_page($title, $body, 'walled_garden');
+ }
+ return true;
+}
-// Register actions
+/**
+ * Forward to the new style of URLs
+ *
+ * @param string $page
+ */
+function expages_url_forwarder($page) {
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
+ $url = "{$CONFIG->wwwroot}{$page}";
+ forward($url);
+}
diff --git a/mod/externalpages/views/default/admin/appearance/expages.php b/mod/externalpages/views/default/admin/appearance/expages.php
new file mode 100644
index 000000000..6a5a521a5
--- /dev/null
+++ b/mod/externalpages/views/default/admin/appearance/expages.php
@@ -0,0 +1,10 @@
+<?php
+/**
+ * Admin section for editing external pages
+ */
+
+$type = get_input('type', 'about');
+
+echo elgg_view('expages/menu', array('type' => $type));
+
+echo elgg_view_form('expages/edit', array('class' => 'elgg-form-settings'), array('type' => $type));
diff --git a/mod/externalpages/views/default/expages/analytics.php b/mod/externalpages/views/default/expages/analytics.php
deleted file mode 100644
index 8aac0e9d9..000000000
--- a/mod/externalpages/views/default/expages/analytics.php
+++ /dev/null
@@ -1,25 +0,0 @@
-<?php
-
- /**
- * Elgg Analytics view
- *
- * @package ElggExpages
- * @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 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
deleted file mode 100644
index 9cc760dde..000000000
--- a/mod/externalpages/views/default/expages/css.php
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/**
- * Elgg externalpages CSS
- *
- * @package externalpages
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider <info@elgg.com>
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.org/
- */
-
-?>
-#footer_toolbar_links {
- text-align:right;
- margin-bottom:5px;
-}
diff --git a/mod/externalpages/views/default/expages/footer_menu.php b/mod/externalpages/views/default/expages/footer_menu.php
deleted file mode 100644
index 225fd5a13..000000000
--- a/mod/externalpages/views/default/expages/footer_menu.php
+++ /dev/null
@@ -1,18 +0,0 @@
-<?php
-/**
- * Elgg External pages footer menu
- *
- * @package ElggExpages
- * @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/
- *
- */
-?>
-
-<div id="footer_toolbar_links" class="clearfloat">|
-<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
deleted file mode 100644
index 0bd4e6d69..000000000
--- a/mod/externalpages/views/default/expages/forms/edit.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-
- /**
- * Elgg External pages edit
- *
- * @package ElggExpages
- * @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 = "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
-
- <p class='longtext_inputarea'>
- <label>$external_page_title</label>
- $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/menu.php b/mod/externalpages/views/default/expages/menu.php
index 8070bcfcf..831be9125 100644
--- a/mod/externalpages/views/default/expages/menu.php
+++ b/mod/externalpages/views/default/expages/menu.php
@@ -1,24 +1,23 @@
<?php
/**
- * Elgg External pages menu
- *
- * @package ElggExpages
- * @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/
- *
+ * External pages menu
+ *
+ * @uses $vars['type']
*/
$type = $vars['type'];
-$url = $vars['url'] . "pg/expages/index.php?type=";
-?>
+//set the url
+$url = $vars['url'] . "admin/site/expages?type=";
+
+$pages = array('about', 'terms', 'privacy');
+$tabs = array();
+foreach ($pages as $page) {
+ $tabs[] = array(
+ 'title' => elgg_echo("expages:$page"),
+ 'url' => "admin/appearance/expages?type=$page",
+ 'selected' => $page == $type,
+ );
+}
-<div class="elgg_horizontal_tabbed_nav margin_top">
-<ul>
- <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
+echo elgg_view('navigation/tabs', array('tabs' => $tabs, 'class' => 'elgg-form-settings'));
diff --git a/mod/externalpages/views/default/expages/wrapper.php b/mod/externalpages/views/default/expages/wrapper.php
new file mode 100644
index 000000000..c579da1ba
--- /dev/null
+++ b/mod/externalpages/views/default/expages/wrapper.php
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Wrapper for site pages content area
+ *
+ * @uses $vars['content']
+ */
+
+echo $vars['content'];
+
+echo '<div class="mtm">';
+echo elgg_view('output/url', array(
+ 'text' => elgg_echo('back'),
+ 'href' => $_SERVER['HTTP_REFERER'],
+ 'class' => 'float-alt'
+));
+echo '</div>';
diff --git a/mod/externalpages/views/default/forms/expages/edit.php b/mod/externalpages/views/default/forms/expages/edit.php
new file mode 100644
index 000000000..a15f2a7aa
--- /dev/null
+++ b/mod/externalpages/views/default/forms/expages/edit.php
@@ -0,0 +1,58 @@
+<?php
+/**
+ * Edit form body for external pages
+ *
+ * @uses $vars['type']
+ *
+ */
+
+$type = $vars['type'];
+
+//grab the required entity
+$page_contents = elgg_get_entities(array(
+ 'type' => 'object',
+ 'subtype' => $type,
+ 'limit' => 1,
+));
+
+if ($page_contents) {
+ $description = $page_contents[0]->description;
+ $guid = $page_contents[0]->guid;
+} else {
+ $description = "";
+ $guid = 0;
+}
+
+// set the required form variables
+$input_area = elgg_view('input/longtext', array(
+ 'name' => 'expagescontent',
+ 'value' => $description,
+));
+$submit_input = elgg_view('input/submit', array(
+ 'name' => 'submit',
+ 'value' => elgg_echo('save'),
+));
+$hidden_type = elgg_view('input/hidden', array(
+ 'name' => 'content_type',
+ 'value' => $type,
+));
+$hidden_guid = elgg_view('input/hidden', array(
+ 'name' => 'guid',
+ 'value' => $guid,
+));
+
+$external_page_title = elgg_echo("expages:$type");
+
+//construct the form
+echo <<<EOT
+<div class="mtm">
+ <label>$external_page_title</label>
+ $input_area
+</div>
+<div class="elgg-foot">
+$hidden_guid
+$hidden_type
+$submit_input
+</div>
+EOT;
+
diff --git a/mod/externalpages/views/default/object/expages.php b/mod/externalpages/views/default/object/expages.php
deleted file mode 100644
index e7f0385b1..000000000
--- a/mod/externalpages/views/default/object/expages.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<?php
-
- /**
- * Elgg expages view
- *
- * @package ElggExPages
- * @license http://www.gnu.org/licenses/old-licenses/gpl-2.0.html GNU Public License version 2
- * @author Curverider
- * @copyright Curverider Ltd 2008-2010
- * @link http://elgg.com/
- *
- */
-
-?> \ No newline at end of file