aboutsummaryrefslogtreecommitdiff
path: root/mod/externalpages
diff options
context:
space:
mode:
Diffstat (limited to 'mod/externalpages')
-rw-r--r--mod/externalpages/actions/edit.php24
-rw-r--r--mod/externalpages/languages/en.php4
-rw-r--r--mod/externalpages/manifest.xml10
-rw-r--r--mod/externalpages/start.php70
-rw-r--r--mod/externalpages/views/default/admin/appearance/expages.php (renamed from mod/externalpages/views/default/admin/site/expages.php)2
-rw-r--r--mod/externalpages/views/default/expages/menu.php37
-rw-r--r--mod/externalpages/views/default/expages/wrapper.php16
-rw-r--r--mod/externalpages/views/default/forms/expages/edit.php15
8 files changed, 110 insertions, 68 deletions
diff --git a/mod/externalpages/actions/edit.php b/mod/externalpages/actions/edit.php
index edfffe168..184aa3d82 100644
--- a/mod/externalpages/actions/edit.php
+++ b/mod/externalpages/actions/edit.php
@@ -1,18 +1,28 @@
<?php
/**
- * Elgg external pages: add/edit
+ * Elgg external pages: create or update
*
*/
-// Get input data
+// Get input data and don't filter the content
$contents = get_input('expagescontent', '', false);
$type = get_input('content_type');
-$previous_guid = get_input('expage_guid');
+$guid = get_input('guid');
-// create object to hold the page details
-$expages = new ElggObject();
-$expages->subtype = $type;
-$expages->owner_guid = get_loggedin_userid();
+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;
diff --git a/mod/externalpages/languages/en.php b/mod/externalpages/languages/en.php
index 1c80d5f3f..5f0f4ad7b 100644
--- a/mod/externalpages/languages/en.php
+++ b/mod/externalpages/languages/en.php
@@ -8,8 +8,8 @@ $english = array(
/**
* Menu items and titles
*/
- 'expages' => "External pages",
- 'admin:site:expages' => "External pages",
+ 'expages' => "Site pages",
+ 'admin:appearance:expages' => "Site Pages",
'expages:about' => "About",
'expages:terms' => "Terms",
'expages:privacy' => "Privacy",
diff --git a/mod/externalpages/manifest.xml b/mod/externalpages/manifest.xml
index ac9629092..f2aef09f3 100644
--- a/mod/externalpages/manifest.xml
+++ b/mod/externalpages/manifest.xml
@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<plugin_manifest xmlns="http://www.elgg.org/plugin_manifest/1.8">
- <name>External Pages</name>
+ <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 Public License version 2</license>
+ <license>GNU General Public License version 2</license>
<requires>
- <type>elgg_version</type>
- <version>2010030101</version>
+ <type>elgg_release</type>
+ <version>1.8</version>
</requires>
- <admin_interface>advanced</admin_interface>
</plugin_manifest>
diff --git a/mod/externalpages/start.php b/mod/externalpages/start.php
index 41df8750d..f0ffa6b9d 100644
--- a/mod/externalpages/start.php
+++ b/mod/externalpages/start.php
@@ -3,15 +3,21 @@
* Plugin for creating web pages for your site
*/
-register_elgg_event_handler('init', 'system', 'expages_init');
+elgg_register_event_handler('init', 'system', 'expages_init');
function expages_init() {
// Register a page handler, so we can have nice URLs
+ 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_add_admin_menu_item('expages', elgg_echo('expages'), 'site');
+ elgg_register_admin_menu_item('configure', 'expages', 'appearance');
// add footer links
expages_setup_footer_menu();
@@ -22,27 +28,44 @@ function expages_init() {
}
/**
+ * Extend the public pages range
+ *
+ */
+function expages_public($hook, $handler, $return, $params){
+ $pages = array('about', 'terms', 'privacy');
+ return array_merge($pages, $return);
+}
+
+/**
* Setup the links to site pages
*/
function expages_setup_footer_menu() {
- $pages = array('about', 'terms', 'privacy');
- foreach ($pages as $page) {
- $url = "pg/expages/read/$page";
- $item = new ElggMenuItem($page, elgg_echo("expages:$page"), $url);
- elgg_register_menu_item('footer', $item);
- }
+ $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
+ * @param array $page URL segements
+ * @param string $handler Handler identifier
+ * @return bool
*/
-function expages_page_handler($page) {
- $type = strtolower($page[1]);
+function expages_page_handler($page, $handler) {
+ if ($handler == 'expages') {
+ expages_url_forwarder($page[1]);
+ }
+ $type = strtolower($handler);
$title = elgg_echo("expages:$type");
- $content = elgg_view_title($title);
+ $header = elgg_view_title($title);
$object = elgg_get_entities(array(
'type' => 'object',
@@ -54,7 +77,26 @@ function expages_page_handler($page) {
} else {
$content .= elgg_echo("expages:notset");
}
+ $content = elgg_view('expages/wrapper', array('content' => $content));
+
+ 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;
+}
- $body = elgg_view_layout("one_sidebar", array('content' => $content));
- echo elgg_view_page($title, $body);
+/**
+ * Forward to the new style of URLs
+ *
+ * @param string $page
+ */
+function expages_url_forwarder($page) {
+ global $CONFIG;
+ $url = "{$CONFIG->wwwroot}{$page}";
+ forward($url);
}
diff --git a/mod/externalpages/views/default/admin/site/expages.php b/mod/externalpages/views/default/admin/appearance/expages.php
index b30765089..6a5a521a5 100644
--- a/mod/externalpages/views/default/admin/site/expages.php
+++ b/mod/externalpages/views/default/admin/appearance/expages.php
@@ -7,4 +7,4 @@ $type = get_input('type', 'about');
echo elgg_view('expages/menu', array('type' => $type));
-echo elgg_view_form('expages/edit', array(), 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/menu.php b/mod/externalpages/views/default/expages/menu.php
index e471619b8..831be9125 100644
--- a/mod/externalpages/views/default/expages/menu.php
+++ b/mod/externalpages/views/default/expages/menu.php
@@ -7,46 +7,17 @@
$type = $vars['type'];
- //set the url
- $url = $vars['url'] . "pg/admin/site/expages?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' => "pg/admin/site/expages?type=$page",
+ 'url' => "admin/appearance/expages?type=$page",
'selected' => $page == $type,
);
}
-echo elgg_view('navigation/tabs', array('tabs' => $tabs));
-
-return true;
-
-/**
- * Tab navigation
- *
- * @uses string $vars['type'] horizontal || vertical - Defaults to horizontal
- * @uses string $vars['class'] Additional class to add to ul
- * @uses array $vars['tabs'] A multi-dimensional array of tab entries in the format array(
- * 'title' => string, // Title of link
- * 'url' => string, // URL for the link
- * 'class' => string // Class of the li element
- * 'id' => string, // ID of the li element
- * 'selected' => bool // if this li element is currently selected
- * 'url_class' => string, // Class to pass to the link
- * 'url_id' => string, // ID to pass to the link
- * )
- */
-
-?>
-
-<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
+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
index 58c174d6e..a15f2a7aa 100644
--- a/mod/externalpages/views/default/forms/expages/edit.php
+++ b/mod/externalpages/views/default/forms/expages/edit.php
@@ -45,11 +45,14 @@ $external_page_title = elgg_echo("expages:$type");
//construct the form
echo <<<EOT
-<h3 class="mvm">$external_page_title</h3>
-<div>$input_area</div>
- $hidden_value
- $hidden_type
- $submit_input
-
+<div class="mtm">
+ <label>$external_page_title</label>
+ $input_area
+</div>
+<div class="elgg-foot">
+$hidden_guid
+$hidden_type
+$submit_input
+</div>
EOT;