aboutsummaryrefslogtreecommitdiff
path: root/mod/externalpages/start.php
diff options
context:
space:
mode:
Diffstat (limited to 'mod/externalpages/start.php')
-rw-r--r--mod/externalpages/start.php137
1 files changed, 81 insertions, 56 deletions
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);
+}