]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
more clean up of the pages plugin to use new HTML/CSS
authorcash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Sat, 22 Jan 2011 16:36:30 +0000 (16:36 +0000)
committercash <cash@36083f99-b078-4883-b0ff-0f9b5a30f544>
Sat, 22 Jan 2011 16:36:30 +0000 (16:36 +0000)
git-svn-id: http://code.elgg.org/elgg/trunk@7898 36083f99-b078-4883-b0ff-0f9b5a30f544

26 files changed:
mod/pages/actions/pages/edit.php
mod/pages/edit.php
mod/pages/friends.php
mod/pages/history.php
mod/pages/index.php
mod/pages/languages/en.php
mod/pages/lib/pages.php
mod/pages/new.php
mod/pages/revision.php [new file with mode: 0644]
mod/pages/start.php
mod/pages/views/default/annotation/icon.php [deleted file]
mod/pages/views/default/annotation/page.php
mod/pages/views/default/forms/pages/edit.php
mod/pages/views/default/object/page.php
mod/pages/views/default/object/page_top.php
mod/pages/views/default/pages/css.php
mod/pages/views/default/pages/group_module.php [new file with mode: 0644]
mod/pages/views/default/pages/groupprofile_pages.php [deleted file]
mod/pages/views/default/pages/icon.php [new file with mode: 0644]
mod/pages/views/default/pages/pagegallery.php [deleted file]
mod/pages/views/default/pages/pagelisting.php [deleted file]
mod/pages/views/default/pages/pageprofile.php [deleted file]
mod/pages/views/default/pages/sidebar/navigation.php [new file with mode: 0644]
mod/pages/views/default/widgets/pages/content.php
mod/pages/views/default/widgets/pages/edit.php
mod/pages/world.php

index 4487c67a3e6812a563dd527e80deb9c32694d50e..e8e7a254aa6fb76b5e714232f04dceb1121c9a93 100644 (file)
 <?php
 /**
- * Edit a page
+ * Create or edit a page
  *
  * @package ElggPages
  */
 
-// Load configuration
-global $CONFIG;
-
-elgg_set_context('pages');
-
-//boolean to select correct add to river. It will be new or edit
-$which_river = 'new';
-
-// Get group fields
+$variables = elgg_get_config('pages');
 $input = array();
-foreach($CONFIG->pages as $shortname => $valuetype) {
-       $input[$shortname] = get_input($shortname);
-       if ($shortname == 'title') {
-               $input[$shortname] = strip_tags($input[$shortname]);
+foreach ($variables as $name => $type) {
+       $input[$name] = get_input($name);
+       if ($name == 'title') {
+               $input[$name] = strip_tags($input[$name]);
+       }
+       if ($type == 'tags') {
+               $input[$name] = string_to_tag_array($input[$name]);
        }
-       if ($valuetype == 'tags')
-               $input[$shortname] = string_to_tag_array($input[$shortname]);
 }
 
-// Get parent
-$parent_guid = (int)get_input('parent_guid', 0);
+// Get guids
+$page_guid = (int)get_input('page_guid');
+$container_guid = (int)get_input('container_guid');
+$parent_guid = (int)get_input('parent_guid');
 
-// New or old?
-$page = NULL;
-$pages_guid = (int)get_input('pages_guid');
+elgg_make_sticky_form('page');
 
-if ($pages_guid) {
-       $page = get_entity($pages_guid);
-       if (!$page->canEdit()) {
-               $page = NULL; // if we can't edit it, go no further.
-       }
+if (!$input['title']) {
+       register_error(elgg_echo('pages:error:no_title'));
+       forward(REFERER);
+}
 
-       //select river boolean to edit
-       $which_river = 'edit';
+if ($page_guid) {
+       $page = get_entity($page_guid);
+       if (!$page || !$page->canEdit()) {
+               register_error(elgg_echo('pages:error:no_save'));
+               forward(REFERER);
+       }
+       $new_page = false;
 } else {
        $page = new ElggObject();
-       if (!$parent_guid) {
-               $page->subtype = 'page_top';
-       } else {
+       if ($parent_guid) {
                $page->subtype = 'page';
+       } else {
+               $page->subtype = 'page_top';
        }
-
-       // New instance, so set container_guid
-       $container_guid = get_input('container_guid', get_loggedin_userid());
-       $page->container_guid = $container_guid;
-
-       // cache data in session in case data from form does not validate
-       $_SESSION['page_description'] = $input['description'];
-       $_SESSION['page_tags'] = get_input('tags');
-       $_SESSION['page_read_access'] = (int)get_input('access_id');
-       $_SESSION['page_write_access'] = (int)get_input('write_access_id');
+       $new_page = true;
 }
 
-// Have we got it? Can we edit it?
-if ($page instanceof ElggObject) {
-       // Save fields - note we always save latest description as both description and annotation
-       if (sizeof($input) > 0) {
-               foreach($input as $shortname => $value) {
-                       $page->$shortname = $value;
-               }
+if (sizeof($input) > 0) {
+       foreach ($input as $name => $value) {
+               $page->$name = $value;
        }
+}
 
-       if (!$page->title) {
-               register_error(elgg_echo("pages:notitle"));
+// need to add check to make sure user can write to container
+$page->container_guid = $container_guid;
 
-               forward(REFERER);
-       }
-
-       $page->access_id = (int)get_input('access_id', ACCESS_PRIVATE);
-       $page->write_access_id = (int)get_input('write_access_id', ACCESS_PRIVATE);
+if ($parent_guid) {
        $page->parent_guid = $parent_guid;
-       $page->owner_guid = ($page->owner_guid ? $page->owner_guid : get_loggedin_userid());
-
-       if ($page->save()) {
+}
 
-               // Now save description as an annotation
-               $page->annotate('page', $page->description, $page->access_id);
+if ($page->save()) {
 
-               // clear cache
-               unset($_SESSION['page_description']);
-               unset($_SESSION['page_tags']);
-               unset($_SESSION['page_read_access']);
-               unset($_SESSION['page_write_access']);
+       elgg_clear_sticky_form('page');
 
-               system_message(elgg_echo("pages:saved"));
+       // Now save description as an annotation
+       $page->annotate('page', $page->description, $page->access_id);
 
-               //add to river
-               if ($which_river == 'new') {
-                       add_to_river('river/object/page/create','create',get_loggedin_userid(),$page->guid);
-               }
+       system_message(elgg_echo('pages:saved'));
 
-               // Forward to the user's profile
-               forward($page->getUrl());
-       } else {
-               register_error(elgg_echo('pages:notsaved'));
+       if ($new_page) {
+               add_to_river('river/object/page/create', 'create', get_loggedin_userid(), $page->guid);
        }
 
+       forward($page->getURL());
 } else {
-       register_error(elgg_echo("pages:noaccess"));
+       register_error(elgg_echo('pages:error:no_save'));
+       forward(REFERER);
 }
-
-// Forward to the user's profile
-forward($page->getUrl());
\ No newline at end of file
index 23b6cc168081b00fdeaa49316d492eaaec05a193..8e530084b01abf49964ec18d2097a97679d49e6f 100644 (file)
@@ -26,7 +26,8 @@ elgg_push_breadcrumb(elgg_echo('edit'));
 $title = elgg_echo("pages:edit");
 
 if ($page->canEdit()) {
-       $content = elgg_view("forms/pages/edit", array('entity' => $page));
+       $vars = pages_prepare_form_vars($page);
+       $content = elgg_view_form('pages/edit', array(), $vars);
 } else {
        $content = elgg_echo("pages:noaccess");
 }
index fd2e01833d290162eeea5ff0fb39632b453f658d..1f047701eac1d6ca30c5bf92633e8f1020fae513 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Elgg Pages list
+ * List a user's friends' pages
  *
  * @package ElggPages
  */
index 7a13ae484c1eabef347a5f088ba53001cc61f4d3..cb8a52ee20389448104501c6d82afd2eff67c465 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Elgg Pages
+ * History of revisions of a page
  *
  * @package ElggPages
  */
@@ -19,6 +19,7 @@ if (!$container) {
 
 elgg_set_page_owner_guid($container->getGUID());
 
+elgg_push_breadcrumb($container->name, $container->getURL());
 elgg_push_breadcrumb($page->title, $page->getURL());
 elgg_push_breadcrumb(elgg_echo('pages:history'));
 
index 2da53ed7bfde27140cf4d8337fd5eea765d3098d..b257b14b44b5d2db3689f08d70e60394a4a0dff2 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * Elgg Pages list
+ * List a user's or group's pages
  *
  * @package ElggPages
  */
@@ -32,6 +32,7 @@ $params = array(
        'filter_context' => 'mine',
        'content' => $content,
        'title' => $title,
+       'sidebar' => elgg_view('pages/sidebar/navigation'),
 );
 
 if (elgg_instanceof($owner, 'group')) {
index eab9723430d31f7e95b8f8ffceb512aafeea9a93..1cb879edcb1110396e421a047a9b3db6e8b548b2 100644 (file)
@@ -22,10 +22,11 @@ $english = array(
 
        'pages:edit' => "Edit this page",
        'pages:delete' => "Delete this page",
-       'pages:history' => "Page history",
+       'pages:history' => "History",
        'pages:view' => "View page",
+       'pages:revision' => "Revision",
 
-       'pages:navigation' => "Page navigation",
+       'pages:navigation' => "Navigation",
        'pages:via' => "via pages",
        'item:object:page_top' => 'Top-level pages',
        'item:object:page' => 'Pages',
@@ -74,7 +75,7 @@ $english = array(
        /**
         * History
         */
-       'pages:revision' => 'Revision created %s by %s',
+       'pages:revision:subtitle' => 'Revision created %s by %s',
 
        /**
         * Widget
index 943383fd70fb60c82e3414f27820d6e238b3ab79..e3ed3c822b83c6e070b8427fe2cf6670c3bbae43 100644 (file)
@@ -6,10 +6,10 @@
 /**
  * Prepare the add/edit form variables
  *
- * @param ElggOobject $page
+ * @param ElggObject $page
  * @return array
  */
-function pages_prepare_form_vars($page = null) {
+function pages_prepare_form_vars($page = null, $parent_guid = 0) {
 
        // input names => defaults
        $values = array(
@@ -21,11 +21,12 @@ function pages_prepare_form_vars($page = null) {
                'container_guid' => elgg_get_page_owner_guid(),
                'guid' => null,
                'entity' => $page,
+               'parent_guid' => $parent_guid,
        );
 
        if ($page) {
                foreach (array_keys($values) as $field) {
-                       $values[$field] = $file->$field;
+                       $values[$field] = $page->$field;
                }
        }
 
@@ -39,3 +40,67 @@ function pages_prepare_form_vars($page = null) {
 
        return $values;
 }
+
+/**
+ * Register the navigation menu
+ * 
+ * @param ElggEntity $container Container entity for the pages
+ */
+function pages_register_navigation_tree($container) {
+       if (!$container) {
+               return;
+       }
+
+       $top_pages = elgg_get_entities(array(
+               'type' => 'object',
+               'subtype' => 'page_top',
+               'container_guid' => $container->getGUID,
+       ));
+
+       foreach ($top_pages as $page) {
+               elgg_register_menu_item('pages_nav', array(
+                       'name' => $page->getGUID(),
+                       'title' => $page->title,
+                       'url' => $page->getURL(),
+               ));
+
+               $stack = array();
+               array_push($stack, $page);
+               while (count($stack) > 0) {
+                       $parent = array_pop($stack);
+                       $children = elgg_get_entities_from_metadata(array(
+                               'type' => 'object',
+                               'subtype' => 'page',
+                               'metadata_name' => 'parent_guid',
+                               'metadata_value' => $parent->getGUID(),
+                       ));
+                       
+                       foreach ($children as $child) {
+                               elgg_register_menu_item('pages_nav', array(
+                                       'name' => $child->getGUID(),
+                                       'title' => $child->title,
+                                       'url' => $child->getURL(),
+                                       'parent_name' => $parent->getGUID(),
+                               ));
+                               array_push($stack, $child);
+                       }
+               }
+       }
+}
+
+/**
+ * Return the correct sidebar for a given entity
+ *
+ * @param ElggObject $entity
+ */
+function pages_get_entity_sidebar(ElggObject $entity, $fulltree = 0) {
+       $body = "";
+
+       $children = elgg_get_entities_from_metadata(array('metadata_names' => 'parent_guid', 'metadata_values' => $entity->guid, 'limit' => 9999));
+       $body .= elgg_view('pages/sidebar/sidebarthis', array('entity' => $entity,
+                                                                                                               'children' => $children,
+                                                                                                               'fulltree' => $fulltree));
+       //$body = elgg_view('pages/sidebar/wrapper', array('body' => $body));
+
+       return $body;
+}
index 8a51d9f0374dc247b84ac1551baa9b64446a300b..31b0c79513bee32d65795a12b670535cca0067a7 100644 (file)
@@ -7,24 +7,26 @@
 
 gatekeeper();
 
-$container_guid = get_input('guid');
-
+$container_guid = (int) get_input('guid');
 $container = get_entity($container_guid);
 if (!$container) {
 
 }
 
+$parent_page = null;
 $page_owner = $container;
 if (elgg_instanceof($container, 'object')) {
+       $parent_page = $container;
        $page_owner = $container->getContainerEntity();
 }
 
-elgg_set_page_owner_guid($page_owner->getGUID);
+elgg_set_page_owner_guid($page_owner->getGUID());
 
 $title = elgg_echo('pages:add');
 elgg_push_breadcrumb($title);
 
-$content = elgg_view("forms/pages/edit");
+$vars = pages_prepare_form_vars(null, $parent_page->getGUID());
+$content = elgg_view_form('pages/edit', array(), $vars);
 
 $body = elgg_view_layout('content', array(
        'filter' => '',
diff --git a/mod/pages/revision.php b/mod/pages/revision.php
new file mode 100644 (file)
index 0000000..e301e26
--- /dev/null
@@ -0,0 +1,49 @@
+<?php
+/**
+ * View a revision of page
+ *
+ * @package ElggPages
+ */
+
+$id = get_input('id');
+$annotation = get_annotation($id);
+if (!$annotation) {
+       forward();
+}
+
+$page = get_entity($annotation->entity_guid);
+if (!$page) {
+       
+}
+
+elgg_set_page_owner_guid($page->getContainerGUID());
+
+group_gatekeeper();
+
+$container = elgg_get_page_owner();
+if (!$container) {
+}
+
+$title = $page->title . ": " . elgg_echo('pages:revision');
+
+elgg_push_breadcrumb($container->name, $container->getURL());
+elgg_push_breadcrumb($page->title, $page->getURL());
+elgg_push_breadcrumb(elgg_echo('pages:revision'));
+
+$content = elgg_view('object/page_top', array(
+       'entity' => $page,
+       'revision' => $annotation,
+       'full' => true,
+));
+
+$sidebar = elgg_view('pages/sidebar/tree', array('page' => $page));
+
+$body = elgg_view_layout('content', array(
+       'filter' => '',
+       'buttons' => '',
+       'content' => $content,
+       'title' => $title,
+       'sidebar' => $sidebar,
+));
+
+echo elgg_view_page($title, $body);
index 16b73cce6f4dadf2c322a74087d9b0e63196f440..5872e6b11ccd70f8e7a532f4d7482a2f9db99bef 100644 (file)
@@ -26,6 +26,7 @@ function pages_init() {
        // Register a url handler
        register_entity_url_handler('pages_url', 'object', 'page_top');
        register_entity_url_handler('pages_url', 'object', 'page');
+       register_extender_url_handler('pages_revision_url', 'annotation', 'page');
 
        // Register some actions
        $action_base = elgg_get_plugin_path() . 'pages/actions/pages';
@@ -76,14 +77,15 @@ function pages_init() {
 /**
  * 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
+ *  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>
+ *  Revision of page: pg/pages/revision/<id>
+ *  Group pages:      pg/pages/group/<guid>/owner
  *
  * Title is ignored
  *
@@ -132,6 +134,10 @@ function pages_page_handler($page) {
                        set_input('guid', $page[1]);
                        include "$base_dir/history.php";
                        break;
+               case 'revision':
+                       set_input('id', $page[1]);
+                       include "$base_dir/revision.php";
+                       break;
                case 'all':
                default:
                        include "$base_dir/world.php";
@@ -152,6 +158,16 @@ function pages_url($entity) {
        return "pg/pages/view/$entity->guid/$title";
 }
 
+/**
+ * Override the page annotation url
+ *
+ * @param ElggAnnotation $annotation
+ * @return string
+ */
+function pages_revision_url($annotation) {
+       return "pg/pages/revision/$annotation->id";
+}
+
 /**
  * Add a menu item to the user ownerblock
  */
@@ -241,24 +257,6 @@ function pages_get_path($guid) {
        return $path;
 }
 
-/**
- * Return the correct sidebar for a given entity
- *
- * @param ElggObject $entity
- */
-function pages_get_entity_sidebar(ElggObject $entity, $fulltree = 0)
-{
-       $body = "";
-
-       $children = elgg_get_entities_from_metadata(array('metadata_names' => 'parent_guid', 'metadata_values' => $entity->guid, 'limit' => 9999));
-       $body .= elgg_view('pages/sidebar/sidebarthis', array('entity' => $entity,
-                                                                                                               'children' => $children,
-                                                                                                               'fulltree' => $fulltree));
-       //$body = elgg_view('pages/sidebar/wrapper', array('body' => $body));
-
-       return $body;
-}
-
 /**
  * Extend permissions checking to extend can-edit for write users.
  *
diff --git a/mod/pages/views/default/annotation/icon.php b/mod/pages/views/default/annotation/icon.php
deleted file mode 100644 (file)
index 42d32b0..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-<?php
-/**
- * @todo What is this doing here?
- *
- * @package ElggPages
- */
-
-$annotation = $vars['annotation'];
-$entity = get_entity($annotation->entity_guid);
-
-// Get size
-if (!in_array($vars['size'],array('small','medium','large','tiny','master','topbar')))
-       $vars['size'] = "medium";
-
-// Get any align and js
-if (!empty($vars['align'])) {
-       $align = " align=\"{$vars['align']}\" ";
-} else {
-       $align = "";
-}
-
-?>
-
-<div class="groupicon">
-<a href="<?php echo $entity->getURL() . "?rev=" . $annotation->id; ?>"><img src="<?php echo $entity->getIcon($vars['size']); ?>" border="0" <?php echo $align; ?> <?php echo $vars['js']; ?> /></a>
-</div>
index 53f38831f0edda61a33a48096f7c6d394117ee23..87d32e23ba19463ae7fbbacbbb25b7a2523d29ed 100644 (file)
@@ -1,34 +1,40 @@
 <?php
 /**
- * Default page listing?
+ * Revision view for history page
  *
  * @package ElggPages
  */
 
 $annotation = $vars['annotation'];
-$entity = get_entity($annotation->entity_guid);
+$page = get_entity($annotation->entity_guid);
 
-$icon = elgg_view(
-       "annotation/icon", array(
-               'annotation' => $vars['annotation'],
-               'size' => 'small',
-       )
-);
+$icon = elgg_view("pages/icon", array(
+       'annotation' => $annotation,
+       'size' => 'small',
+));
 
 $owner_guid = $annotation->owner_guid;
 $owner = get_entity($owner_guid);
+if (!$owner) {
 
-$rev = elgg_echo('pages:revision',
-       array(elgg_view_friendly_time($annotation->time_created)),
-       "<a href=\"" . $owner->getURL() . "\">" . $owner->name ."</a>"
-);
+}
+$owner_link = elgg_view('output/url', array(
+       'href' => $owner->getURL(),
+       'text' => $owner->name,
+));
 
-$link = $entity->getURL() . "?rev=" . $annotation->id;
+$date = elgg_view_friendly_time($annotation->time_created);
 
-$info = <<< END
+$title_link = elgg_view('output/url', array(
+       'href' => $annotation->getURL(),
+       'text' => $page->title,
+));
 
-<div><a href="$link">{$entity->title}</a></div>
-<div>$rev</div>
-END;
+$subtitle = elgg_echo('pages:revision:subtitle', array($date, $owner_link));
 
-echo elgg_view_listing($icon, $info);
+$body = <<< HTML
+<h3>$title_link</h3>
+<p class="elgg-subtitle">$subtitle</p>
+HTML;
+
+echo elgg_view_image_block($icon, $body);
\ No newline at end of file
index 94e969a57c74f627c3cef648a32a3e7934493efa..e4188a29b8559cadf3d2cfcdc2271d0bdd63f940 100644 (file)
@@ -5,92 +5,44 @@
  * @package ElggPages
  */
 
-$parent_guid = get_input('parent_guid');
-$container_guid = get_input('container_guid');
-if (!$container_guid) {
-       $container_guid = elgg_get_page_owner_guid();
-}
-
-$new_page = false;
-if (!$vars['entity']) {
-       $new_page = true;
-
-       // bootstrap the access permissions in the entity array so we can use defaults
-       if (defined('ACCESS_DEFAULT')) {
-               $vars['entity']->access_id = ACCESS_DEFAULT;
-               $vars['entity']->write_access_id = ACCESS_DEFAULT;
-       } else {
-               $vars['entity']->access_id = 0;
-               $vars['entity']->write_access_id = 0;
-       }
-
-       // pull in sticky values from session
-       if (isset($_SESSION['page_description'])) {
-               $vars['entity']->description = $_SESSION['page_description'];
-               $vars['entity']->tags = $_SESSION['page_tags'];
-               $vars['entity']->access_id = $_SESSION['page_read_access'];
-               $vars['entity']->write_access_id = $_SESSION['page_write_access'];
-
-               // clear them
-               unset($_SESSION['page_description']);
-               unset($_SESSION['page_tags']);
-               unset($_SESSION['page_read_access']);
-               unset($_SESSION['page_write_access']);
-       }
-}
-?>
-<div class="contentWrapper">
-<form action="<?php echo elgg_get_site_url(); ?>action/pages/edit" method="post">
-<?php
-echo elgg_view('input/securitytoken');
-if (is_array($vars['config']->pages) && sizeof($vars['config']->pages) > 0) {
-       foreach($vars['config']->pages as $shortname => $valtype) {
+$variables = elgg_get_config('pages');
+foreach ($variables as $name => $type) {
 ?>
-
 <p>
-       <label>
-               <?php echo elgg_echo("pages:{$shortname}") ?><br />
-               <?php echo elgg_view("input/{$valtype}",array(
-                       'internalname' => $shortname,
-                       'value' => $vars['entity']->$shortname
-               )); ?>
-       </label>
+       <label><?php echo elgg_echo("pages:$name") ?></label><br />
+       <?php echo elgg_view("input/$type", array(
+                       'internalname' => $name,
+                       'value' => $vars[$name],
+               ));
+       ?>
 </p>
-
 <?php
-
-       }
 }
 
 $cats = elgg_view('categories', $vars);
 if (!empty($cats)) {
-?>
-<p>
-       <?php
-               echo $cats;
-       ?>
-</p>
-<?php
+       echo "<p>$cats</p>";
+}
 
-       }
 
-?>
-<p>
-<?php
-if (!$new_page) {
-       ?><input type="hidden" name="pages_guid" value="<?php echo $vars['entity']->getGUID(); ?>" /><?php
+echo '<p>';
+if ($vars['guid']) {
+       echo elgg_view('input/hidden', array(
+               'internalname' => 'page_guid',
+               'value' => $vars['guid'],
+       ));
 }
-
-if ($container_guid) {
-       ?><input type="hidden" name="container_guid" value="<?php echo $container_guid; ?>" /><?php
+echo elgg_view('input/hidden', array(
+       'internalname' => 'container_guid',
+       'value' => $vars['container_guid'],
+));
+if ($vars['parent_guid']) {
+       echo elgg_view('input/hidden', array(
+               'internalname' => 'parent_guid',
+               'value' => $vars['parent_guid'],
+       ));
 }
-?>
-       <input type="hidden" name="parent_guid" value="<?php if (!$new_page) echo $vars['entity']->parent_guid; else echo $parent_guid; ?>" />
-       <input type="hidden" name="owner_guid" value="<?php if (!$new_page) echo $vars['entity']->owner_guid; else echo elgg_get_page_owner_guid(); ?>" />
-<?php
-       echo elgg_view('input/submit', array('value' => elgg_echo('save')));
-?>
-</p>
 
-</form>
-</div>
\ No newline at end of file
+echo elgg_view('input/submit', array('value' => elgg_echo('save')));
+
+echo '</p>';
index dbca0755b6aba4fb8b9c13db912c2e1f8c458de8..a5e56415d1f624dff0da425628fb0c5336b5aa00 100644 (file)
@@ -5,12 +5,4 @@
  * @package ElggPages
  */
 
-if ($vars['full']) {
-       echo elgg_view("pages/pageprofile", $vars);
-} 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
+echo elgg_view('object/page_top', $vars);
index d1a9ef7e85eb629e90fe1f4b077697510fee89d5..9770dce238ba818328e6d3c584ccb3bc02194b2a 100644 (file)
@@ -3,30 +3,45 @@
  * View for page object
  *
  * @package ElggPages
+ *
+ * @uses $vars['entity']   The page object
+ * @uses $vars['full']     Whether to display the full view
+ * @uses $vars['revision'] This parameter not supported by elgg_view_entity()
  */
 
 
 $full = elgg_get_array_value('full', $vars, FALSE);
 $page = elgg_get_array_value('entity', $vars, FALSE);
+$revision = elgg_get_array_value('revision', $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,
+if ($revision) {
+       $annotation = $revision;
+} else {
+       $annotation = $page->getAnnotations('page', 1, 0, 'desc');
+       if ($annotation) {
+               $annotation = $annotation[0];
+       }
+}
+
+$page_icon = elgg_view('pages/icon', array('annotation' => $annotation, 'size' => 'small'));
+
+$editor = get_entity($annotation->owner_guid);
+$editor_link = elgg_view('output/url', array(
+       'href' => "pg/pages/owner/$editor->username",
+       'text' => $editor->name,
 ));
-$author_text = elgg_echo('blog:author_by_line', array($owner_link));
+
+$date = elgg_view_friendly_time($annotation->time_created);
+$editor_text = elgg_echo('pages:strapline', array($date, $editor_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) {
+if ($comments_count != 0 && !$revision) {
        $text = elgg_echo("comments") . " ($comments_count)";
        $comments_link = elgg_view('output/url', array(
                'href' => $page->getURL() . '#page-comments',
@@ -36,20 +51,26 @@ if ($comments_count != 0) {
        $comments_link = '';
 }
 
+$history_link = elgg_view('output/url', array(
+       'href' => "pg/pages/history/$page->guid",
+       'text' => elgg_echo('pages:history'),
+));
+
 $metadata = elgg_view('layout/objects/list/metadata', array(
        'entity' => $page,
        'handler' => 'pages',
+       'links' => array($history_link),
 ));
 
-$subtitle = "$author_text $date $categories $comments_link";
+$subtitle = "$editor_text $categories $comments_link";
 
 // do not show the metadata and controls in widget view
-if (elgg_in_context('widgets')) {
+if (elgg_in_context('widgets') || $revision) {
        $metadata = '';
 }
 
 if ($full) {
-       $body = elgg_view('output/longtext', array('value' => $page->description));
+       $body = elgg_view('output/longtext', array('value' => $annotation->value));
 
        $params = array(
                'entity' => $page,
@@ -60,7 +81,7 @@ if ($full) {
        );
        $list_body = elgg_view('layout/objects/list/body', $params);
 
-       $info = elgg_view_image_block($owner_icon, $list_body);
+       $info = elgg_view_image_block($page_icon, $list_body);
 
        echo <<<HTML
 $info
@@ -70,6 +91,8 @@ HTML;
 } else {
        // brief view
 
+       $excerpt = elgg_get_excerpt($page->description);
+
        $params = array(
                'entity' => $page,
                'metadata' => $metadata,
@@ -79,5 +102,5 @@ HTML;
        );
        $list_body = elgg_view('layout/objects/list/body', $params);
 
-       echo elgg_view_image_block($owner_icon, $list_body);
+       echo elgg_view_image_block($page_icon, $list_body);
 }
index 48991b90417d6aa96388d8ea32ed3f353fd0f4f6..245c39b479e3a334dc422f74ea67e57c730e20c3 100644 (file)
@@ -6,6 +6,11 @@
  */
 ?>
 
+.pages-nav .elgg-child-menu {
+       display: none;
+       margin-left: 15px;
+}
+
 .treeview, .treeview ul {
        padding: 0;
        margin: 0;
diff --git a/mod/pages/views/default/pages/group_module.php b/mod/pages/views/default/pages/group_module.php
new file mode 100644 (file)
index 0000000..2e6b7f6
--- /dev/null
@@ -0,0 +1,51 @@
+<?php
+/**
+ * Group pages
+ *
+ * @package ElggPages
+ */
+
+
+$group = elgg_get_page_owner();
+
+if ($group->pages_enable == "no") {
+       return true;
+}
+
+$all_link = elgg_view('output/url', array(
+       'href' => "pg/pages/group/$group->guid/owner",
+       'text' => elgg_echo('link:view:all'),
+));
+
+$header = "<span class=\"group-widget-viewall\">$all_link</span>";
+$header .= '<h3>' . elgg_echo('pages:group') . '</h3>';
+
+
+elgg_push_context('widgets');
+$options = array(
+       'type' => 'object',
+       'subtype' => 'page_top',
+       'container_guid' => elgg_get_page_owner_guid(),
+       'limit' => 6,
+       'full_view' => false,
+       'pagination' => false,
+);
+$content = elgg_list_entities($options);
+elgg_pop_context();
+
+if (!$content) {
+       $content = '<p>' . elgg_echo('pages:none') . '</p>';
+}
+
+$new_link = elgg_view('output/url', array(
+       'href' => "pg/pages/add/$group->guid",
+       'text' => elgg_echo('pages:add'),
+));
+$content .= "<span class='elgg-widget-more'>$new_link</span>";
+
+
+$params = array(
+       'header' => $header,
+       'body' => $content,
+);
+echo elgg_view('layout/objects/module', $params);
diff --git a/mod/pages/views/default/pages/groupprofile_pages.php b/mod/pages/views/default/pages/groupprofile_pages.php
deleted file mode 100644 (file)
index 8069cdd..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<?php
-/**
- * Page icon override medium
- *
- * @package ElggPages
- */
-
-//check to make sure this group forum has been activated
-if ($vars['entity']->pages_enable != 'no') {
-?>
-
-<div id="group_pages_widget">
-<h2><?php echo elgg_echo("pages:groupprofile"); ?></h2>
-<?php
-
-       $objects = elgg_list_entities(array('types' => 'object', 'subtypes' => 'page_top', 'container_guid' => elgg_get_page_owner_guid(), 'limit' => 5, 'full_view' => FALSE));
-
-       if($objects)
-               echo $objects;
-       else
-               echo "<div class=\"forum_latest\">" . elgg_echo("pages:nogroup") . "</div>";
-
-?>
-<br class="clearfloat" />
-</div>
-
-<?php
-       }
diff --git a/mod/pages/views/default/pages/icon.php b/mod/pages/views/default/pages/icon.php
new file mode 100644 (file)
index 0000000..fd084bc
--- /dev/null
@@ -0,0 +1,27 @@
+<?php
+/**
+ * Page icon
+ *
+ * @package ElggPages
+ *
+ * @uses $vars['entity']
+ * @uses $vars['annotation']
+ */
+
+$annotation = $vars['annotation'];
+$entity = get_entity($annotation->entity_guid);
+
+// Get size
+if (!in_array($vars['size'], array('small','medium','large','tiny','master','topbar'))) {
+       $vars['size'] = "medium";
+}
+
+if (!empty($vars['align'])) {
+       $align = " align=\"{$vars['align']}\" ";
+} else {
+       $align = "";
+}
+
+?>
+
+<a href="<?php echo $annotation->getURL(); ?>"><img src="<?php echo $entity->getIcon($vars['size']); ?>" <?php echo $align; ?> /></a>
diff --git a/mod/pages/views/default/pages/pagegallery.php b/mod/pages/views/default/pages/pagegallery.php
deleted file mode 100644 (file)
index 0dadb63..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-<?php
-/**
- * Elgg Pages gallery listing.
- *
- * @package ElggPages
- */
-
-$icon = elgg_view(
-               "graphics/icon", array(
-               'entity' => $vars['entity'],
-               'size' => 'medium',
-       )
-);
-
-$info = "<div><p><b><a href=\"" . $vars['entity']->getUrl() . "\">" . $vars['entity']->title . "</a></b></p></div>";
-
-$latest = $vars['entity']->getAnnotations('page', 1, 0, 'desc');
-if ($latest) {
-       $latest = $latest[0];
-
-       $time_updated = $latest->time_created;
-       $owner_guid = $latest->owner_guid;
-       $owner = get_entity($owner_guid);
-
-
-       $info .= "<br /><div>".
-               strip_tags(substr($latest->value, 0, 100))
-       . "</div>";
-}
-
-echo elgg_view_listing($icon, $info);
\ No newline at end of file
diff --git a/mod/pages/views/default/pages/pagelisting.php b/mod/pages/views/default/pages/pagelisting.php
deleted file mode 100644 (file)
index b503431..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-<?php
-/**
- * Elgg Pages flat listing
- *
- * @package ElggPages
- */
-
-$icon = elgg_view(
-               "graphics/icon", array(
-               'entity' => $vars['entity'],
-               'size' => 'small',
-       )
-       );
-
-$info .= "<p><b><a href=\"" . $vars['entity']->getUrl() . "\">" . $vars['entity']->title . "</a></b></p>";
-
-$latest = $vars['entity']->getAnnotations('page', 1, 0, 'desc');
-if ($latest) {
-       $latest = $latest[0];
-
-       $time_updated = $latest->time_created;
-       $owner_guid = $latest->owner_guid;
-       $owner = get_entity($owner_guid);
-
-
-       $info .= "<p class=\"owner_timestamp\">" . elgg_echo("pages:strapline",
-                                       array(elgg_view_friendly_time($time_updated),
-                                       "<a href=\"" . $owner->getURL() . "\">" . $owner->name ."</a>"
-       )) . "</p>";
-}
-
-echo elgg_view_listing($icon, $info);
diff --git a/mod/pages/views/default/pages/pageprofile.php b/mod/pages/views/default/pages/pageprofile.php
deleted file mode 100644 (file)
index f839955..0000000
+++ /dev/null
@@ -1,74 +0,0 @@
-<?php
-/**
- * Elgg Pages profile
- *
- * @package ElggPages
- */
-
-// Output body
-$entity = $vars['entity'];
-
-$rev = (int)get_input('rev');
-
-if ($rev) {
-       $latest = get_annotation($rev);
-} else {
-       $latest = $entity->getAnnotations('page', 1, 0, 'desc');
-       if ($latest) $latest = $latest[0];
-}
-?>
-<div class="contentWrapper">
-       <div id="pages_page">
-
-       <?php
-       if ($entity) {
-               echo elgg_view('output/longtext', array('value' => /*$entity->description*/ $latest->value));
-
-               $tags = $vars['entity']->tags;
-               if (!empty($tags)) {
-
-       ?>
-               <!-- display tags -->
-               <p class="tags">
-                       <?php
-
-                               echo elgg_view('output/tags', array('tags' => $tags));
-
-                       ?>
-               </p>
-
-       <?php
-
-               }
-               $cats = elgg_view('categories/view',$vars);
-               if (!empty($cats)) {
-
-       ?>
-               <p class="categories">
-                       <?php echo $cats; ?>
-               </p>
-       <?php
-
-               }
-       }
-
-       // last edit & by whome
-       ?>
-
-       <p class="strapline">
-               <?php
-
-                       $time_updated = $latest->time_created;
-                       $owner_guid = $latest->owner_guid;
-                       $owner = get_entity($owner_guid);
-
-                       echo elgg_echo("pages:strapline",
-                                                       array(elgg_view_friendly_time($time_updated),
-                                                       "<a href=\"" . $owner->getURL() . "\">" . $owner->name ."</a>"
-                       ));
-
-               ?>
-       </p>
-       </div>
-
-</div>
diff --git a/mod/pages/views/default/pages/sidebar/navigation.php b/mod/pages/views/default/pages/sidebar/navigation.php
new file mode 100644 (file)
index 0000000..ddd931d
--- /dev/null
@@ -0,0 +1,16 @@
+<?php
+/**
+ * Navigation menu for a user's or a group's pages
+ */
+
+$title = elgg_echo('pages:navigation');
+
+pages_register_navigation_tree(elgg_get_page_owner());
+
+$content = elgg_view_menu('pages_nav', array('class' => 'pages-nav'));
+
+echo elgg_view('layout/objects/module', array(
+       'title' => $title,
+       'body' => $content,
+       'class' => 'elgg-aside-module',
+));
index f42a1a85f5e5f9057207c4260d895b225ba86324..63a2d8e7ef722aad82332b8f83ec36ad7ade1126 100644 (file)
@@ -1,27 +1,31 @@
-<style type="text/css">
-#pages_widget .pagination {
-       display:none;
-}
-</style>
 <?php
-
 /**
- * Elgg pages widget edit
+ * Elgg pages widget
  *
  * @package ElggPages
  */
 
-$num_display = (int) $vars['entity']->pages_num;
+$num = (int) $vars['entity']->pages_num;
 
-if (!$num_display) {
-       $num_display = 4;
-}
+$options = array(
+       'type' => 'object',
+       'subtype' => 'page_top',
+       'container_guid' => $vars['entity']->owner_guid,
+       'limit' => $num,
+       'full_view' => FALSE,
+       'pagination' => FALSE,
+);
+$content = elgg_list_entities($options);
 
-$pages = elgg_list_entities(array('types' => 'object', 'subtypes' => 'page_top', 'container_guid' => elgg_get_page_owner_guid(), 'limit' => $num_display, 'full_view' => FALSE));
+echo $content;
 
-if ($pages) {
-       $pagesurl = elgg_get_site_url() . "pg/pages/owned/" . elgg_get_page_owner()->username;
-       $pages .= "<div class=\"pages_widget_singleitem_more\"><a href=\"{$pagesurl}\">" . elgg_echo('pages:more') . "</a></div>";
+if ($content) {
+       $url = "pg/pages/owner/" . elgg_get_page_owner()->username;
+       $more_link = elgg_view('output/url', array(
+               'href' => $url,
+               'text' => elgg_echo('pages:more'),
+       ));
+       echo "<span class=\"elgg-widget-more\">$more_link</span>";
+} else {
+       echo elgg_echo('pages:none');
 }
-
-echo "<div id=\"pages_widget\">" . $pages . "</div>";
\ No newline at end of file
index 4ddfec428c7425da244f8628f52b3b6be0a4b342..7e76e69d5c0cdaa851724f0a3531376b8cfb3896 100644 (file)
@@ -5,24 +5,20 @@
  * @package ElggPages
  */
 
+// set default value
 if (!isset($vars['entity']->pages_num)) {
        $vars['entity']->pages_num = 4;
 }
 
-?>
-<p>
-<?php echo elgg_echo("pages:num"); ?>:
-<select name="params[pages_num]">
-
-<?php
-for ($i=1; $i<=10; $i++) {
-       $selected = '';
-       if ($vars['entity']->pages_num == $i) {
-               $selected = "selected='selected'";
-       }
+$params = array(
+       'internalname' => 'params[pages_num]',
+       'value' => $vars['entity']->pages_num,
+       'options' => array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10),
+);
+$dropdown = elgg_view('input/pulldown', $params);
 
-       echo "  <option value='{$i}' $selected >{$i}</option>\n";
-}
 ?>
-</select>
+<p>
+       <?php echo elgg_echo('pages:num'); ?>:
+       <?php echo $dropdown; ?>
 </p>
index e3b158c1efa6758844ba2000b7f36306321a370d..2a7ea4be98f2802e898daf87f8f573a8fd15958f 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * All pages
+ * List all pages
  *
  * @package ElggPages
  */
@@ -10,7 +10,6 @@ $title = elgg_echo('pages:all');
 elgg_pop_breadcrumb();
 elgg_push_breadcrumb(elgg_echo('pages'));
 
-// Get objects
 $content = elgg_list_entities(array(
        'types' => 'object',
        'subtypes' => 'page_top',