]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
pages plugin using new layout - still need to get subpages working and navigation
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Sat, 15 Jan 2011 15:04:39 +0000 (15:04 +0000)
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Sat, 15 Jan 2011 15:04:39 +0000 (15:04 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@7885 36083f99-b078-4883-b0ff-0f9b5a30f544

16 files changed:
mod/pages/actions/pages/editwelcome.php [deleted file]
mod/pages/edit.php
mod/pages/friends.php [new file with mode: 0644]
mod/pages/history.php
mod/pages/index.php
mod/pages/languages/en.php
mod/pages/lib/pages.php [new file with mode: 0644]
mod/pages/new.php
mod/pages/start.php
mod/pages/view.php
mod/pages/views/default/forms/pages/editwelcome.php [deleted file]
mod/pages/views/default/object/page_top.php
mod/pages/views/default/pages/breadcrumbs.php [deleted file]
mod/pages/views/default/pages/welcome.php [deleted file]
mod/pages/welcome.php [deleted file]
mod/pages/world.php

diff --git a/mod/pages/actions/pages/editwelcome.php b/mod/pages/actions/pages/editwelcome.php
deleted file mode 100644 (file)
index a13ae4c..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-/**
- * Elgg Pages Edit welcome message
- *
- * @package ElggPages
- */
-
-global $CONFIG;
-
-// Get group fields
-$message = get_input("pages_welcome");
-$container_guid = get_input("owner_guid");
-$object_guid = get_input("object_guid");
-$access_id = (int) get_input("access_id");
-
-//check to see if this is an edit or new welcome message
-if($object_guid){
-
-       //it is an edit so grab the object
-       $welcome = get_entity($object_guid);
-       if ($welcome->getSubtype() == "pages_welcome" && $welcome->canEdit()) {
-
-               $welcome->description = $message;
-               $welcome->access_id = $access_id;
-               $welcome->save();
-               system_message(elgg_echo("pages:welcomeposted"));
-
-       } else {
-               register_error(elgg_echo("pages:welcomeerror"));
-       }
-} else {
-       //it is a new welcome object
-       if ($container_guid) {
-               $welcome = new ElggObject();
-               // Tell the system it's a pages welcome message
-               $welcome->subtype = "pages_welcome";
-               $welcome->title = "Welcome";
-               $welcome->description = $message;
-               $welcome->access_id = $access_id;
-
-               // Set the owner
-               $welcome->container_guid = $container_guid;
-
-               // save
-               if (!$welcome->save()){
-                       register_error(elgg_echo("pages:welcomeerror"));
-               } else {
-                       system_message(elgg_echo("pages:welcomeposted"));
-               }
-       } else {
-               register_error(elgg_echo("pages:welcomeerror"));
-       }
-}
-
-forward("pg/pages/owned/" . get_entity($container_guid)->username);
\ No newline at end of file
index dc290ea7df7267e2bf84da371661c7414de48702..23b6cc168081b00fdeaa49316d492eaaec05a193 100644 (file)
@@ -1,36 +1,41 @@
 <?php
 /**
- * Edit a page form
+ * Edit a page
  *
  * @package ElggPages
  */
-require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
+
 gatekeeper();
 
-$page_guid = get_input('page_guid');
-$pages = get_entity($page_guid);
+$page_guid = get_input('guid');
+$page = get_entity($page_guid);
+if (!$page) {
 
-// Get the current page's owner
-if ($container = $pages->container_guid) {
-       set_page_owner($container);
 }
 
-$page_owner = elgg_get_page_owner();
+$container = $page->getContainerEntity();
+if (!$container) {
 
-if ($page_owner === false || is_null($page_owner)) {
-       $page_owner = get_loggedin_user();
-       set_page_owner($page_owner->getGUID());
 }
 
+elgg_set_page_owner_guid($container->getGUID());
+
+elgg_push_breadcrumb($page->title, $page->getURL());
+elgg_push_breadcrumb(elgg_echo('edit'));
+
 $title = elgg_echo("pages:edit");
-$body = elgg_view_title($title);
 
-if ($pages && ($pages->canEdit())) {
-       $body .= elgg_view("forms/pages/edit", array('entity' => $pages));
+if ($page->canEdit()) {
+       $content = elgg_view("forms/pages/edit", array('entity' => $page));
 } else {
-       $body .= elgg_echo("pages:noaccess");
+       $content = elgg_echo("pages:noaccess");
 }
 
-$body = elgg_view_layout('one_column_with_sidebar', array('content' => $body));
+$body = elgg_view_layout('content', array(
+       'filter' => '',
+       'buttons' => '',
+       'content' => $content,
+       'title' => $title,
+));
 
-echo elgg_view_page($title, $body);
\ No newline at end of file
+echo elgg_view_page($title, $body);
diff --git a/mod/pages/friends.php b/mod/pages/friends.php
new file mode 100644 (file)
index 0000000..fd2e018
--- /dev/null
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Elgg Pages list
+ *
+ * @package ElggPages
+ */
+
+$guid = get_input('guid');
+
+elgg_set_page_owner_guid($guid);
+$owner = elgg_get_page_owner();
+if (!$owner) {
+
+}
+
+elgg_push_breadcrumb($owner->name, "pg/pages/owner/$owner->username");
+elgg_push_breadcrumb(elgg_echo('friends'));
+
+$title = elgg_echo('pages:friends');
+
+$content = list_user_friends_objects($owner->guid, 'page_top', 10, false);
+if (!$content) {
+       $content = elgg_echo('pages:none');
+}
+
+$params = array(
+       'filter_context' => 'friends',
+       'content' => $content,
+       'title' => $title,
+);
+
+$body = elgg_view_layout('content', $params);
+
+echo elgg_view_page($title, $body);
index d40dfaeb86fc7830d5dfae65eaf12fa3dc85f011..7a13ae484c1eabef347a5f088ba53001cc61f4d3 100644 (file)
@@ -5,40 +5,36 @@
  * @package ElggPages
  */
 
-require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
-gatekeeper();
+$page_guid = get_input('guid');
 
-$page_guid = get_input('page_guid');
+$page = get_entity($page_guid);
+if (!$page) {
 
-$pages = get_entity($page_guid);
-if ($pages->container_guid) {
-       set_page_owner($pages->container_guid);
-} else {
-       set_page_owner($pages->owner_guid);
 }
 
-if (is_callable('group_gatekeeper')) group_gatekeeper();
+$container = $page->getContainerEntity();
+if (!$container) {
 
-$limit = (int)get_input('limit', 20);
-$offset = (int)get_input('offset');
+}
+
+elgg_set_page_owner_guid($container->getGUID());
 
-$page_guid = get_input('page_guid');
-$pages = get_entity($page_guid);
+elgg_push_breadcrumb($page->title, $page->getURL());
+elgg_push_breadcrumb(elgg_echo('pages:history'));
 
-add_submenu_item(elgg_echo("pages:user", array(elgg_get_page_owner()->name)),
-       "pg/pages/owned/" . elgg_get_page_owner()->username, 'pageslinksgeneral');
+$title = $page->title . ": " . elgg_echo('pages:history');
 
-$title = $pages->title . ": " . elgg_echo("pages:history");
-$content = elgg_view_title($title);
-$content.= list_annotations($page_guid, 'page', $limit, false);
+$content = list_annotations($page_guid, 'page', 20, false);
 
-pages_set_navigation_parent($pages);
+pages_set_navigation_parent($page);
 $sidebar = elgg_view('pages/sidebar/tree');
 
-$params = array(
+$body = elgg_view_layout('content', array(
+       'filter' => '',
+       'buttons' => '',
        'content' => $content,
-       'sidebar' => $sidebar
-);
-$body = elgg_view_layout('one_column_with_sidebar', $params);
+       'title' => $title,
+       'sidebar' => $sidebar,
+));
 
 echo elgg_view_page($title, $body);
index 1d84587d5a56ed67eefe3ba74de0a4266a636a95..2da53ed7bfde27140cf4d8337fd5eea765d3098d 100644 (file)
@@ -5,46 +5,39 @@
  * @package ElggPages
  */
 
-require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
+$guid = get_input('guid');
 
-global $CONFIG;
-
-// Add menus
+elgg_set_page_owner_guid($guid);
 $owner = elgg_get_page_owner();
-if (!($owner instanceof ElggGroup)) {
-               add_submenu_item(elgg_echo("pages:user", array(elgg_get_page_owner()->name)), "pg/pages/owned/" . elgg_get_page_owner()->username, 'pageslinksgeneral');
-               add_submenu_item(elgg_echo('pages:all'), "mod/pages/world.php", 'pageslinksgeneral');
+if (!$owner) {
+
 }
-       if (($owner instanceof ElggEntity) && (can_write_to_container(0,$owner->guid))){
-               add_submenu_item(elgg_echo('pages:new'), "pg/pages/new/?container_guid=" . elgg_get_page_owner_guid(), 'pagesactions');
-               add_submenu_item(elgg_echo('pages:welcome'), "pg/pages/welcome/" . $owner->username, 'pagesactions');
-       }
 
 // access check for closed groups
 group_gatekeeper();
 
-$limit = get_input("limit", 10);
-$offset = get_input("offset", 0);
+$title = elgg_echo('pages:owner', array($owner->name));
 
-if($owner instanceof ElggGroup){
-       $title = elgg_echo("pages:group",array($owner->name));
-}else{
-       $title = elgg_echo("pages:user",array($owner->name));
-}
+elgg_push_breadcrumb($title);
 
+$content = elgg_list_entities(array(
+       'types' => 'object',
+       'subtypes' => 'page_top',
+       'container_guid' => elgg_get_page_owner_guid(),
+       'limit' => $limit,
+       'full_view' => false,
+));
 
-// Get objects
-elgg_push_context('search');
-$objects = elgg_list_entities(array('types' => 'object', 'subtypes' => 'page_top', 'container_guid' => elgg_get_page_owner_guid(), 'limit' => $limit, 'offset' => $offset, 'full_view' => FALSE));
-elgg_pop_context();
+$params = array(
+       'filter_context' => 'mine',
+       'content' => $content,
+       'title' => $title,
+);
 
-//get the owners latest welcome message
-$welcome_message = elgg_get_entities(array('types' => 'object', 'subtypes' => 'pages_welcome', 'container_guid' => $owner->guid, 'limit' => 1));
+if (elgg_instanceof($owner, 'group')) {
+       $params['filter'] = '';
+}
 
-$body = elgg_view_title($title);
-$body .= elgg_view("pages/welcome", array('entity' => $welcome_message));
-$body .= $objects;
-$body = elgg_view_layout('one_column_with_sidebar', array('content' => $body));
+$body = elgg_view_layout('content', $params);
 
-// Finally draw the page
 echo elgg_view_page($title, $body);
index 478f8e5c3b2839d6f9e24cdeb85ebc64231b903a..eab9723430d31f7e95b8f8ffceb512aafeea9a93 100644 (file)
@@ -12,27 +12,26 @@ $english = array(
         */
 
        'pages' => "Pages",
-       'pages:yours' => "Your pages",
-       'pages:user' => "Pages home",
-       'pages:group' => "Group pages",
+       'pages:owner' => "%s's pages",
+       'pages:friends' => "Friends' pages",
        'pages:all' => "All site pages",
-       'pages:new' => "New page",
-       'pages:groupprofile' => "Group pages",
+       'pages:add' => "New page",
+
+       'pages:group' => "Group pages",
+       'groups:enablepages' => 'Enable group pages',
+
        'pages:edit' => "Edit this page",
        'pages:delete' => "Delete this page",
        'pages:history' => "Page history",
        'pages:view' => "View page",
-       'pages:welcome' => "Edit welcome message",
-       'pages:welcomemessage' => "Welcome to the pages tool of %s. This tool allows you to create pages on any topic and select who can view them and edit them.",
-       'pages:welcomeerror' => "There was a problem saving your welcome message",
-       'pages:welcomeposted' => "Your welcome message has been posted",
+
        'pages:navigation' => "Page navigation",
        'pages:via' => "via pages",
        'item:object:page_top' => 'Top-level pages',
        'item:object:page' => 'Pages',
-       'item:object:pages_welcome' => 'Pages welcome blocks',
        'pages:nogroup' => 'This group does not have any pages yet',
        'pages:more' => 'More pages',
+       'pages:none' => 'No pages created yet',
 
        /**
        * River
diff --git a/mod/pages/lib/pages.php b/mod/pages/lib/pages.php
new file mode 100644 (file)
index 0000000..943383f
--- /dev/null
@@ -0,0 +1,41 @@
+<?php
+/**
+ * Pages function library
+ */
+
+/**
+ * Prepare the add/edit form variables
+ *
+ * @param ElggOobject $page
+ * @return array
+ */
+function pages_prepare_form_vars($page = null) {
+
+       // input names => defaults
+       $values = array(
+               'title' => '',
+               'description' => '',
+               'access_id' => ACCESS_DEFAULT,
+               'write_access_id' => ACCESS_DEFAULT,
+               'tags' => '',
+               'container_guid' => elgg_get_page_owner_guid(),
+               'guid' => null,
+               'entity' => $page,
+       );
+
+       if ($page) {
+               foreach (array_keys($values) as $field) {
+                       $values[$field] = $file->$field;
+               }
+       }
+
+       if (elgg_is_sticky_form('page')) {
+               foreach (array_keys($values) as $field) {
+                       $values[$field] = elgg_get_sticky_value('page', $field);
+               }
+       }
+
+       elgg_clear_sticky_form('page');
+
+       return $values;
+}
index 2175572b20502103b6801a0b28d8cf6493ed46a3..8a51d9f0374dc247b84ac1551baa9b64446a300b 100644 (file)
@@ -1,43 +1,36 @@
 <?php
 /**
- * Create a new Page
+ * Create a new page
  *
  * @package ElggPages
  */
 
-require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
 gatekeeper();
-global $CONFIG;
 
-// Get the current page's owner
-if ($container = (int) get_input('container_guid')) {
-       set_page_owner($container);
-}
-$page_owner = elgg_get_page_owner();
-if ($page_owner === false || is_null($page_owner)) {
-       $page_owner = get_loggedin_user();
-       set_page_owner($page_owner->getGUID());
+$container_guid = get_input('guid');
+
+$container = get_entity($container_guid);
+if (!$container) {
+
 }
 
-//if it is a sub page, provide a link back to parent
-if(get_input('parent_guid')){
-       $parent = get_entity(get_input('parent_guid'));
+$page_owner = $container;
+if (elgg_instanceof($container, 'object')) {
+       $page_owner = $container->getContainerEntity();
+}
 
-       // Breadcrumbs
-       $area2 .= elgg_view('pages/breadcrumbs', array('page_owner' => $page_owner, 'parent' => $parent, 'add' => true));
-       }
+elgg_set_page_owner_guid($page_owner->getGUID);
 
-       global $CONFIG;
-add_submenu_item(elgg_echo("pages:user", array(elgg_get_page_owner()->name)), "pg/pages/owned/" . elgg_get_page_owner()->username, 'pageslinksgeneral');
+$title = elgg_echo('pages:add');
+elgg_push_breadcrumb($title);
 
-$title = elgg_echo("pages:new");
-$area2 .= elgg_view_title($title);
-$area2 .= elgg_view("forms/pages/edit");
+$content = elgg_view("forms/pages/edit");
 
-$params = array(
-       'content' => $area2,
-       'sidebar' => $area1
-);
-$body = elgg_view_layout('one_column_with_sidebar', $params);
+$body = elgg_view_layout('content', array(
+       'filter' => '',
+       'buttons' => '',
+       'content' => $content,
+       'title' => $title,
+));
 
-echo elgg_view_page($title, $body);
\ No newline at end of file
+echo elgg_view_page($title, $body);
index 1c8290327e76885aa62c6056b7bc489cdada74d5..16b73cce6f4dadf2c322a74087d9b0e63196f440 100644 (file)
@@ -5,54 +5,53 @@
  * @package ElggPages
  */
 
+elgg_register_event_handler('init', 'system', 'pages_init');
+
 /**
- * Initialise the pages plugin.
+ * Initialize the pages plugin.
  *
  */
 function pages_init() {
        global $CONFIG;
 
-       $item = new ElggMenuItem('pages', elgg_echo('pages'), 'mod/pages/world.php');
+       // register a library of helper functions
+       elgg_register_library('elgg:pages', elgg_get_plugin_path() . 'pages/lib/pages.php');
+
+       $item = new ElggMenuItem('pages', elgg_echo('pages'), 'pg/pages/all');
        elgg_register_menu_item('site', $item);
 
        // Register a page handler, so we can have nice URLs
-       register_page_handler('pages','pages_page_handler');
+       register_page_handler('pages', 'pages_page_handler');
 
        // Register a url handler
-       register_entity_url_handler('pages_url','object', 'page_top');
-       register_entity_url_handler('pages_url','object', 'page');
+       register_entity_url_handler('pages_url', 'object', 'page_top');
+       register_entity_url_handler('pages_url', 'object', 'page');
 
        // Register some actions
-       elgg_register_action("pages/edit", $CONFIG->pluginspath . "pages/actions/pages/edit.php");
-       elgg_register_action("pages/editwelcome", $CONFIG->pluginspath . "pages/actions/pages/editwelcome.php");
-       elgg_register_action("pages/delete", $CONFIG->pluginspath . "pages/actions/pages/delete.php");
+       $action_base = elgg_get_plugin_path() . 'pages/actions/pages';
+       elgg_register_action("pages/edit", "$action_base/edit.php");
+       elgg_register_action("pages/editwelcome", "$action_base/editwelcome.php");
+       elgg_register_action("pages/delete", "$action_base/delete.php");
 
        // Extend some views
-       elgg_extend_view('css/screen','pages/css');
-       elgg_extend_view('groups/menu/links', 'pages/menu'); // Add to groups context
+       elgg_extend_view('css/screen', 'pages/css');
        elgg_extend_view('groups/right_column', 'pages/groupprofile_pages'); // Add to groups context
 
-       // Register entity type
-       register_entity_type('object','page');
-       register_entity_type('object','page_top');
+       // Register entity type for search
+       register_entity_type('object', 'page');
+       register_entity_type('object', 'page_top');
 
        // Register granular notification for this type
-       if (is_callable('register_notification_object')) {
-               register_notification_object('object', 'page', elgg_echo('pages:new'));
-               register_notification_object('object', 'page_top', elgg_echo('pages:new'));
-       }
-
-       // Listen to notification events and supply a more useful message
+       register_notification_object('object', 'page', elgg_echo('pages:new'));
+       register_notification_object('object', 'page_top', elgg_echo('pages:new'));
        elgg_register_plugin_hook_handler('notify:entity:message', 'object', 'page_notify_message');
 
-       // add the group pages tool option
-       add_group_tool_option('pages',elgg_echo('groups:enablepages'),true);
+       // add to groups
+       add_group_tool_option('pages', elgg_echo('groups:enablepages'), true);
+       elgg_extend_view('groups/tool_latest', 'pages/group_module');
 
        //add a widget
-       elgg_register_widget_type('pages',elgg_echo('pages'),elgg_echo('pages:widget:description'));
-
-       // For now, we'll hard code the groups profile items as follows:
-       // TODO make this user configurable
+       elgg_register_widget_type('pages', elgg_echo('pages'), elgg_echo('pages:widget:description'));
 
        // Language short codes must be of the form "pages:key"
        // where key is the array key below
@@ -66,14 +65,91 @@ function pages_init() {
 
        elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'pages_owner_block_menu');
 
+       // write permission plugin hooks
+       elgg_register_plugin_hook_handler('permissions_check', 'object', 'pages_write_permission_check');
+       elgg_register_plugin_hook_handler('container_permissions_check', 'object', 'pages_container_permission_check');
+
        // register ecml views to parse
        elgg_register_plugin_hook_handler('get_views', 'ecml', 'pages_ecml_views_hook');
 }
 
-function pages_url($entity) {
+/**
+ * Dispatcher for pages.
+ * URLs take the form of
+ *  All pages:       pg/pages/all
+ *  User's pages:    pg/pages/owner/<username>
+ *  Friends' pages:  pg/pages/friends/<username>
+ *  View page:       pg/pages/view/<guid>/<title>
+ *  New page:        pg/pages/add/<guid> (container: user, group, parent)
+ *  Edit page:       pg/pages/edit/<guid>
+ *  History of page: pg/pages/history/<guid>
+ *  Group pages:     pg/pages/group/<guid>/owner
+ *
+ * Title is ignored
+ *
+ * @param array $page
+ */
+function pages_page_handler($page) {
+
+       elgg_load_library('elgg:pages');
+
+       if (!isset($page[0])) {
+               $page[0] = 'all';
+       }
+
+       elgg_push_breadcrumb(elgg_echo('pages'), 'pg/pages/all');
+
+       $base_dir = elgg_get_plugin_path() . 'pages';
+
+       $page_type = $page[0];
+       switch ($page_type) {
+               case 'owner':
+                       $owner = get_user_by_username($page[1]);
+                       set_input('guid', $owner->guid);
+                       include "$base_dir/index.php";
+                       break;
+               case 'friends':
+                       set_input('username', $page[1]);
+                       include "$base_dir/friends.php";
+                       break;
+               case 'view':
+                       set_input('guid', $page[1]);
+                       include "$base_dir/view.php";
+                       break;
+               case 'add':
+                       set_input('guid', $page[1]);
+                       include "$base_dir/new.php";
+                       break;
+               case 'edit':
+                       set_input('guid', $page[1]);
+                       include "$base_dir/edit.php";
+                       break;
+               case 'group':
+                       set_input('guid', $page[1]);
+                       include "$base_dir/index.php";
+                       break;
+               case 'history':
+                       set_input('guid', $page[1]);
+                       include "$base_dir/history.php";
+                       break;
+               case 'all':
+               default:
+                       include "$base_dir/world.php";
+                       break;
+       }
 
+       return;
+}
+
+/**
+ * Override the page url
+ * 
+ * @param ElggObject $entity Page object
+ * @return string
+ */
+function pages_url($entity) {
        $title = elgg_get_friendly_title($entity->title);
-       return "pg/pages/view/{$entity->guid}/$title";
+       return "pg/pages/view/$entity->guid/$title";
 }
 
 /**
@@ -86,7 +162,7 @@ function pages_owner_block_menu($hook, $type, $return, $params) {
                $return[] = $item;
        } else {
                if ($params['entity']->pages_enable != "no") {
-                       $url = "pg/pages/owned/group:{$vars['entity']->guid}";
+                       $url = "pg/pages/group/{$params['entity']->guid}/owner";
                        $item = new ElggMenuItem('pages', elgg_echo('pages:group'), $url);
                        $return[] = $item;
                }
@@ -95,98 +171,6 @@ function pages_owner_block_menu($hook, $type, $return, $params) {
        return $return;
 }
 
-/**
- * Pages page handler.
- *
- * @param array $page
- */
-function pages_page_handler($page) {
-       global $CONFIG;
-
-       if (isset($page[0])) {
-               // See what context we're using
-               switch($page[0]) {
-                       case "new" :
-                               include($CONFIG->pluginspath . "pages/new.php");
-                               break;
-
-                       case "welcome" :
-                               if (isset($page[1])) {
-                                       set_input('username', $page[1]);
-                               }
-                               include($CONFIG->pluginspath . "pages/welcome.php");
-                               break;
-
-                       case "world":
-                               include($CONFIG->pluginspath . "pages/world.php");
-                               break;
-                       case "owned" :
-                               // Owned by a user
-                               if (isset($page[1])) {
-                                       set_input('username',$page[1]);
-                               }
-
-                               include($CONFIG->pluginspath . "pages/index.php");
-                               break;
-
-                       case "edit" :
-                               if (isset($page[1])) {
-                                       set_input('page_guid', $page[1]);
-                               }
-
-                               $entity = get_entity($page[1]);
-                               add_submenu_item(elgg_echo('pages:label:view'), "pg/pages/view/{$page[1]}", 'pageslinks');
-                               // add_submenu_item(elgg_echo('pages:user'), elgg_get_site_url() . "pg/pages/owned/" . get_loggedin_user()->username, 'pageslinksgeneral');
-                               if (($entity) && ($entity->canEdit())) {
-                                       add_submenu_item(elgg_echo('pages:label:edit'), "pg/pages/edit/{$page[1]}", 'pagesactions');
-                               }
-                               add_submenu_item(elgg_echo('pages:label:history'), "pg/pages/history/{$page[1]}", 'pageslinks');
-
-                               include($CONFIG->pluginspath . "pages/edit.php");
-                               break;
-
-                       case "view" :
-                               if (isset($page[1])) {
-                                       set_input('page_guid', $page[1]);
-                               }
-
-                               elgg_extend_view('html_head/extend','pages/metatags');
-
-                               $entity = get_entity($page[1]);
-                               //add_submenu_item(elgg_echo('pages:label:view'), "pg/pages/view/{$page[1]}", 'pageslinks');
-                               if (($entity) && ($entity->canEdit())) {
-                                       add_submenu_item(elgg_echo('pages:label:edit'), "pg/pages/edit/{$page[1]}", 'pagesactions');
-                               }
-
-                               add_submenu_item(elgg_echo('pages:label:history'), "pg/pages/history/{$page[1]}", 'pageslinks');
-
-                               include($CONFIG->pluginspath . "pages/view.php");
-                               break;
-
-                       case "history" :
-                               if (isset($page[1])) {
-                                       set_input('page_guid', $page[1]);
-                               }
-
-                               elgg_extend_view('html_head/extend','pages/metatags');
-
-                               $entity = get_entity($page[1]);
-                               add_submenu_item(elgg_echo('pages:label:view'), "pg/pages/view/{$page[1]}", 'pageslinks');
-                               if (($entity) && ($entity->canEdit())) {
-                                       add_submenu_item(elgg_echo('pages:label:edit'), "pg/pages/edit/{$page[1]}", 'pagesactions');
-                               }
-                               add_submenu_item(elgg_echo('pages:label:history'), "pg/pages/history/{$page[1]}", 'pageslinks');
-
-                               include($CONFIG->pluginspath . "pages/history.php");
-                               break;
-
-                       default:
-                               include($CONFIG->pluginspath . "pages/new.php");
-                               break;
-               }
-       }
-}
-
 /**
 * Returns a more meaningful message
 *
@@ -347,10 +331,3 @@ function pages_ecml_views_hook($hook, $entity_type, $return_value, $params) {
 
        return $return_value;
 }
-
-// write permission plugin hooks
-elgg_register_plugin_hook_handler('permissions_check', 'object', 'pages_write_permission_check');
-elgg_register_plugin_hook_handler('container_permissions_check', 'object', 'pages_container_permission_check');
-
-// Make sure the pages initialisation function is called on initialisation
-elgg_register_event_handler('init','system','pages_init');
index 6996c44e0d25048cc68a9747ae33b16832a67543..19f7c8227a079ffeed1e5c0ace69d7d46374a960 100644 (file)
@@ -5,59 +5,46 @@
  * @package ElggPages
  */
 
-require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
-
-$page_guid = get_input('page_guid');
-elgg_set_context('pages');
-
-if (is_callable('group_gatekeeper')) {
-       group_gatekeeper();
-}
-
-$pages = get_entity($page_guid);
-if (!$pages) {
+$page_guid = get_input('guid');
+$page = get_entity($page_guid);
+if (!$page) {
        forward();
 }
 
-$container = $pages->container_guid;
+elgg_set_page_owner_guid($page->getContainerGUID());
 
-if ($container) {
-       set_page_owner($container);
-} else {
-       set_page_owner($pages->owner_guid);
-}
+group_gatekeeper();
 
-global $CONFIG;
-
-if ($pages->canEdit()) {
-       add_submenu_item(elgg_echo('pages:newchild'), "pg/pages/new/?parent_guid={$pages->getGUID()}&container_guid=" . elgg_get_page_owner_guid(), 'pagesactions');
-       $delete_url = elgg_add_action_tokens_to_url("action/pages/delete?page={$pages->getGUID()}");
-       add_submenu_item(elgg_echo('pages:delete'), $delete_url, 'pagesactions', true);
-}
-
-//if the page has a parent, get it
-if ($parent_page = get_entity(get_input("page_guid"))) {
-       $parent = $parent_page;
+$container = elgg_get_page_owner();
+if (!$container) {
 }
 
-$title = $pages->title;
+$title = $page->title;
 
-// Breadcrumbs
-$body = elgg_view('pages/breadcrumbs', array('page_owner' => elgg_get_page_owner(), 'parent' => $parent));
+elgg_push_breadcrumb($container->name, $container->getURL());
+elgg_push_breadcrumb($title);
 
-$body .= elgg_view_title($pages->title);
-$body .= elgg_view_entity($pages, true);
+$content = elgg_view_entity($page, true);
+$content .= elgg_view_comments($page);
 
-//add comments
-$body .= elgg_view_comments($pages);
+$sidebar = elgg_view('pages/sidebar/tree', array('page' => $page));
 
-pages_set_navigation_parent($pages);
-$sidebar = elgg_view('pages/sidebar/tree');
+$buttons = '';
+if ($page->canEdit()) {
+       $url = "pg/pages/add/$page->guid";
+       $buttons = elgg_view('output/url', array(
+                       'text' => elgg_echo('pages:newchild'),
+                       'href' => $url,
+                       'class' => 'elgg-action-button',
+               ));
+}
 
-$params = array(
-       'content' => $body,
-       'sidebar' => $sidebar
-);
-$body = elgg_view_layout('one_column_with_sidebar', $params);
+$body = elgg_view_layout('content', array(
+       'filter' => '',
+       'buttons' => $buttons,
+       'content' => $content,
+       'title' => $title,
+       'sidebar' => $sidebar,
+));
 
-echo elgg_view_page($title, $body);
\ No newline at end of file
+echo elgg_view_page($title, $body);
diff --git a/mod/pages/views/default/forms/pages/editwelcome.php b/mod/pages/views/default/forms/pages/editwelcome.php
deleted file mode 100644 (file)
index a0ad313..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-<?php
-/**
- * Welcome page edit form
- *
- * @package ElggPages
- */
-
-//set some variables
-if($vars['entity']) {
-       foreach($vars['entity'] as $welcome) {
-               $current_message = $welcome->description;
-               $object_guid = $welcome->guid;
-               $access_id = $welcome->access_id;
-       }
-} else {
-       $current_message = '';
-       $object_guid = '';
-       $access_id = ACCESS_PUBLIC;
-}
-
-$page_owner = $vars['owner']->guid;
-
-?>
-<form action="<?php echo elgg_get_site_url(); ?>action/pages/editwelcome" method="post">
-
-       <p class="longtext_inputarea">
-       <label>
-               <?php echo elgg_view("input/longtext",array(
-                       'internalname' => "pages_welcome",
-                       'value' => $current_message,
-                       'disabled' => $disabled
-               )); ?>
-       </label>
-</p>
-<p>
-       <label>
-               <?php echo elgg_echo('access'); ?><br />
-               <?php echo elgg_view('input/access', array('internalname' => 'access_id','value' => $access_id)); ?>
-       </label>
-</p>
-<input type="hidden" name="owner_guid" value="<?php echo $page_owner; ?>" />
-
-<?php
-       echo elgg_view('input/securitytoken');
-
-       //if it is editing, include the object guid
-       if ($object_guid != ''){
-       ?>
-       <input type="hidden" name="object_guid" value="<?php echo $object_guid; ?>" />
-<?php
-               }
-
-       echo elgg_view('input/submit', array('value' => elgg_echo('save')));
-?>
-
-</form>
index 0a1cfdf8384487a7104e405a717749d9d979f871..d1a9ef7e85eb629e90fe1f4b077697510fee89d5 100644 (file)
@@ -5,12 +5,79 @@
  * @package ElggPages
  */
 
-if ($vars['full']) {
-       echo elgg_view("pages/pageprofile", $vars);
+
+$full = elgg_get_array_value('full', $vars, FALSE);
+$page = elgg_get_array_value('entity', $vars, FALSE);
+
+if (!$page) {
+       return TRUE;
+}
+
+$owner = $page->getOwnerEntity();
+$owner_icon = elgg_view('profile/icon', array('entity' => $owner, 'size' => 'tiny'));
+$owner_link = elgg_view('output/url', array(
+       'href' => "pg/pages/owner/$owner->username",
+       'text' => $owner->name,
+));
+$author_text = elgg_echo('blog:author_by_line', array($owner_link));
+$tags = elgg_view('output/tags', array('tags' => $page->tags));
+$date = elgg_view_friendly_time($page->time_created);
+$excerpt = elgg_get_excerpt($page->description);
+
+$comments_count = elgg_count_comments($page);
+//only display if there are commments
+if ($comments_count != 0) {
+       $text = elgg_echo("comments") . " ($comments_count)";
+       $comments_link = elgg_view('output/url', array(
+               'href' => $page->getURL() . '#page-comments',
+               'text' => $text,
+       ));
 } else {
-       if (get_input('listtype') == "gallery") {
-               echo elgg_view('pages/pagegallery', $vars);
-       } else {
-               echo elgg_view("pages/pagelisting", $vars);
-       }
-}
\ No newline at end of file
+       $comments_link = '';
+}
+
+$metadata = elgg_view('layout/objects/list/metadata', array(
+       'entity' => $page,
+       'handler' => 'pages',
+));
+
+$subtitle = "$author_text $date $categories $comments_link";
+
+// do not show the metadata and controls in widget view
+if (elgg_in_context('widgets')) {
+       $metadata = '';
+}
+
+if ($full) {
+       $body = elgg_view('output/longtext', array('value' => $page->description));
+
+       $params = array(
+               'entity' => $page,
+               'title' => false,
+               'metadata' => $metadata,
+               'subtitle' => $subtitle,
+               'tags' => $tags,
+       );
+       $list_body = elgg_view('layout/objects/list/body', $params);
+
+       $info = elgg_view_image_block($owner_icon, $list_body);
+
+       echo <<<HTML
+$info
+$body
+HTML;
+
+} else {
+       // brief view
+
+       $params = array(
+               'entity' => $page,
+               'metadata' => $metadata,
+               'subtitle' => $subtitle,
+               'tags' => $tags,
+               'content' => $excerpt,
+       );
+       $list_body = elgg_view('layout/objects/list/body', $params);
+
+       echo elgg_view_image_block($owner_icon, $list_body);
+}
diff --git a/mod/pages/views/default/pages/breadcrumbs.php b/mod/pages/views/default/pages/breadcrumbs.php
deleted file mode 100644 (file)
index 9c95c64..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-<?php
-/**
- * Breadcrumbs for pages.
- *
- * @package ElggPages
- */
-
-$page_owner = elgg_get_page_owner_guid();
-$parent = $vars['parent'];
-
-$breadcrumbs = '';
-
-$owner_url = elgg_get_site_url() . "pg/pages/owned/" . get_entity($page_owner)->username;
-echo "<div id='breadcrumbs'><b><a href=\"{$owner_url}\">" . elgg_echo('pages:user') . "</a></b>";
-
-//see if the new page's parent has a parent
-$getparent = get_entity($parent->parent_guid);
-while ($getparent instanceof ElggObject){
-       $breadcrumbs = " &gt; <a href=\"{$getparent->getURL()}\">$getparent->title</a>" . $breadcrumbs;
-       $getparent = get_entity($getparent->parent_guid);
-}
-
-echo $breadcrumbs;
-
-//if it is adding a page, make the last page a link, otherwise, don't
-if ($vars['add']){
-       echo " &gt; <a href=\"{$parent->getURL()}\">$parent->title</a></div>";
-} else {
-       echo " &gt; $parent->title</div>";
-}
\ No newline at end of file
diff --git a/mod/pages/views/default/pages/welcome.php b/mod/pages/views/default/pages/welcome.php
deleted file mode 100644 (file)
index 7dbc610..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<?php
-/**
- * Elgg Pages welcome message
- *
- * @package ElggPages
- */
-
-if($vars['entity']) {
-       foreach($vars['entity'] as $welcome){
-               echo "<div class=\"contentWrapper pageswelcome\">" . $welcome->description . "</div>";
-       }
-} else {
-?>
-<div class="contentWrapper pageswelcome"><p><?php echo elgg_echo('pages:welcomemessage', array($vars['config']->sitename)); ?></p></div>
-<?php
-}
diff --git a/mod/pages/welcome.php b/mod/pages/welcome.php
deleted file mode 100644 (file)
index 7db6492..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-<?php
-/**
- * Elgg Pages welcome intro
- * The user or group owner can set an introduction to their wiki pages
- *
- * @package ElggPages
- */
-
-require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
-gatekeeper();
-global $CONFIG;
-
-// Get the current page's owner
-if ($container = (int) get_input('container_guid')) {
-       set_page_owner($container);
-}
-
-$page_owner = elgg_get_page_owner();
-if ($page_owner === false || is_null($page_owner)) {
-       $page_owner = get_loggedin_user();
-       set_page_owner($page_owner->getGUID());
-}
-
-//get the owners welcome message if it exists
-$welcome_message = elgg_get_entities(array('types' => 'object', 'subtypes' => 'pages_welcome', 'container_guid' => $page_owner->getGUID(), 'limit' => 1));
-global $CONFIG;
-add_submenu_item(elgg_echo("pages:user", array(elgg_get_page_owner()->name)), "pg/pages/owned/" . elgg_get_page_owner()->username, 'pageslinksgeneral');
-
-$title = elgg_echo("pages:welcome");
-$area2 .= elgg_view_title($title);
-$area2 .= elgg_view("forms/pages/editwelcome", array('entity' => $welcome_message, 'owner' => $page_owner));
-
-$params = array(
-       'content' => $area2,
-       'sidebar' => $area1
-);
-$body = elgg_view_layout('one_column_with_sidebar', $params);
-
-echo elgg_view_page($title, $body);
\ No newline at end of file
index d258ba1572e2da0b014e538eec4033a042cc84bb..e3b158c1efa6758844ba2000b7f36306321a370d 100644 (file)
@@ -1,44 +1,26 @@
 <?php
 /**
- * Elgg Pages
+ * All pages
  *
  * @package ElggPages
  */
 
-require_once(dirname(dirname(dirname(__FILE__))) . "/engine/start.php");
+$title = elgg_echo('pages:all');
 
-global $CONFIG;
-
-// Get the current page's owner
-$page_owner = elgg_get_page_owner();
-if ($page_owner === false || is_null($page_owner)) {
-       $page_owner = get_loggedin_user();
-       set_page_owner(get_loggedin_userid());
-}
-
-if (($page_owner instanceof ElggEntity) && ($page_owner->canWriteToContainer())){
-       add_submenu_item(elgg_echo('pages:new'), "pg/pages/new/", 'pagesactions');
-}
-
-if(isloggedin()) {
-       add_submenu_item(elgg_echo("pages:user", array(elgg_get_page_owner()->name)), "pg/pages/owned/" . elgg_get_page_owner()->username, 'pageslinksgeneral');
-}
-
-add_submenu_item(elgg_echo('pages:all'), "mod/pages/world.php", 'pageslinksgeneral');
-
-$limit = get_input("limit", 10);
-$offset = get_input("offset", 0);
-
-$title = elgg_echo("pages:all",array(elgg_get_page_owner()->name));
+elgg_pop_breadcrumb();
+elgg_push_breadcrumb(elgg_echo('pages'));
 
 // Get objects
-elgg_push_context('search');
-$objects = elgg_list_entities(array('types' => 'object', 'subtypes' => 'page_top', 'limit' => $limit, 'offset' => $offset, 'full_view' => FALSE));
-elgg_pop_context();
-
-$body = elgg_view_title($title);
-$body .= $objects;
-$body = elgg_view_layout('one_column_with_sidebar', array('content' => $body));
-
-// Finally draw the page
-echo elgg_view_page($title, $body);
\ No newline at end of file
+$content = elgg_list_entities(array(
+       'types' => 'object',
+       'subtypes' => 'page_top',
+       'full_view' => false,
+));
+
+$body = elgg_view_layout('content', array(
+       'filter_context' => 'all',
+       'content' => $content,
+       'title' => $title,
+));
+
+echo elgg_view_page($title, $body);