diff options
Diffstat (limited to 'mod/externalpages')
| -rw-r--r-- | mod/externalpages/actions/edit.php | 24 | ||||
| -rw-r--r-- | mod/externalpages/languages/en.php | 4 | ||||
| -rw-r--r-- | mod/externalpages/manifest.xml | 10 | ||||
| -rw-r--r-- | mod/externalpages/start.php | 70 | ||||
| -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.php | 37 | ||||
| -rw-r--r-- | mod/externalpages/views/default/expages/wrapper.php | 16 | ||||
| -rw-r--r-- | mod/externalpages/views/default/forms/expages/edit.php | 15 |
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 cdc400274..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_register_admin_menu_item('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; |
