aboutsummaryrefslogtreecommitdiff
path: root/mod/pages
diff options
context:
space:
mode:
Diffstat (limited to 'mod/pages')
-rw-r--r--mod/pages/actions/pages/edit.php125
-rw-r--r--mod/pages/edit.php3
-rw-r--r--mod/pages/friends.php2
-rw-r--r--mod/pages/history.php3
-rw-r--r--mod/pages/index.php3
-rw-r--r--mod/pages/languages/en.php7
-rw-r--r--mod/pages/lib/pages.php71
-rw-r--r--mod/pages/new.php10
-rw-r--r--mod/pages/revision.php49
-rw-r--r--mod/pages/start.php50
-rw-r--r--mod/pages/views/default/annotation/icon.php26
-rw-r--r--mod/pages/views/default/annotation/page.php42
-rw-r--r--mod/pages/views/default/forms/pages/edit.php104
-rw-r--r--mod/pages/views/default/object/page.php10
-rw-r--r--mod/pages/views/default/object/page_top.php51
-rw-r--r--mod/pages/views/default/pages/css.php5
-rw-r--r--mod/pages/views/default/pages/group_module.php51
-rw-r--r--mod/pages/views/default/pages/groupprofile_pages.php28
-rw-r--r--mod/pages/views/default/pages/icon.php27
-rw-r--r--mod/pages/views/default/pages/pagegallery.php31
-rw-r--r--mod/pages/views/default/pages/pagelisting.php32
-rw-r--r--mod/pages/views/default/pages/pageprofile.php74
-rw-r--r--mod/pages/views/default/pages/sidebar/navigation.php16
-rw-r--r--mod/pages/views/default/widgets/pages/content.php38
-rw-r--r--mod/pages/views/default/widgets/pages/edit.php24
-rw-r--r--mod/pages/world.php3
26 files changed, 426 insertions, 459 deletions
diff --git a/mod/pages/actions/pages/edit.php b/mod/pages/actions/pages/edit.php
index 4487c67a3..e8e7a254a 100644
--- a/mod/pages/actions/pages/edit.php
+++ b/mod/pages/actions/pages/edit.php
@@ -1,110 +1,79 @@
<?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
diff --git a/mod/pages/edit.php b/mod/pages/edit.php
index 23b6cc168..8e530084b 100644
--- a/mod/pages/edit.php
+++ b/mod/pages/edit.php
@@ -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");
}
diff --git a/mod/pages/friends.php b/mod/pages/friends.php
index fd2e01833..1f047701e 100644
--- a/mod/pages/friends.php
+++ b/mod/pages/friends.php
@@ -1,6 +1,6 @@
<?php
/**
- * Elgg Pages list
+ * List a user's friends' pages
*
* @package ElggPages
*/
diff --git a/mod/pages/history.php b/mod/pages/history.php
index 7a13ae484..cb8a52ee2 100644
--- a/mod/pages/history.php
+++ b/mod/pages/history.php
@@ -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'));
diff --git a/mod/pages/index.php b/mod/pages/index.php
index 2da53ed7b..b257b14b4 100644
--- a/mod/pages/index.php
+++ b/mod/pages/index.php
@@ -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')) {
diff --git a/mod/pages/languages/en.php b/mod/pages/languages/en.php
index eab972343..1cb879edc 100644
--- a/mod/pages/languages/en.php
+++ b/mod/pages/languages/en.php
@@ -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
diff --git a/mod/pages/lib/pages.php b/mod/pages/lib/pages.php
index 943383fd7..e3ed3c822 100644
--- a/mod/pages/lib/pages.php
+++ b/mod/pages/lib/pages.php
@@ -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;
+}
diff --git a/mod/pages/new.php b/mod/pages/new.php
index 8a51d9f03..31b0c7951 100644
--- a/mod/pages/new.php
+++ b/mod/pages/new.php
@@ -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
index 000000000..e301e26df
--- /dev/null
+++ b/mod/pages/revision.php
@@ -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);
diff --git a/mod/pages/start.php b/mod/pages/start.php
index 16b73cce6..5872e6b11 100644
--- a/mod/pages/start.php
+++ b/mod/pages/start.php
@@ -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";
@@ -153,6 +159,16 @@ function pages_url($entity) {
}
/**
+ * 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
*/
function pages_owner_block_menu($hook, $type, $return, $params) {
@@ -242,24 +258,6 @@ function pages_get_path($guid) {
}
/**
- * 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.
*
* @param unknown_type $hook
diff --git a/mod/pages/views/default/annotation/icon.php b/mod/pages/views/default/annotation/icon.php
deleted file mode 100644
index 42d32b021..000000000
--- a/mod/pages/views/default/annotation/icon.php
+++ /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>
diff --git a/mod/pages/views/default/annotation/page.php b/mod/pages/views/default/annotation/page.php
index 53f38831f..87d32e23b 100644
--- a/mod/pages/views/default/annotation/page.php
+++ b/mod/pages/views/default/annotation/page.php
@@ -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
diff --git a/mod/pages/views/default/forms/pages/edit.php b/mod/pages/views/default/forms/pages/edit.php
index 94e969a57..e4188a29b 100644
--- a/mod/pages/views/default/forms/pages/edit.php
+++ b/mod/pages/views/default/forms/pages/edit.php
@@ -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>';
diff --git a/mod/pages/views/default/object/page.php b/mod/pages/views/default/object/page.php
index dbca0755b..a5e56415d 100644
--- a/mod/pages/views/default/object/page.php
+++ b/mod/pages/views/default/object/page.php
@@ -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);
diff --git a/mod/pages/views/default/object/page_top.php b/mod/pages/views/default/object/page_top.php
index d1a9ef7e8..9770dce23 100644
--- a/mod/pages/views/default/object/page_top.php
+++ b/mod/pages/views/default/object/page_top.php
@@ -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);
}
diff --git a/mod/pages/views/default/pages/css.php b/mod/pages/views/default/pages/css.php
index 48991b904..245c39b47 100644
--- a/mod/pages/views/default/pages/css.php
+++ b/mod/pages/views/default/pages/css.php
@@ -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
index 000000000..2e6b7f6ec
--- /dev/null
+++ b/mod/pages/views/default/pages/group_module.php
@@ -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
index 8069cdd8b..000000000
--- a/mod/pages/views/default/pages/groupprofile_pages.php
+++ /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
index 000000000..fd084bca7
--- /dev/null
+++ b/mod/pages/views/default/pages/icon.php
@@ -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
index 0dadb63c2..000000000
--- a/mod/pages/views/default/pages/pagegallery.php
+++ /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
index b5034313f..000000000
--- a/mod/pages/views/default/pages/pagelisting.php
+++ /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
index f8399556a..000000000
--- a/mod/pages/views/default/pages/pageprofile.php
+++ /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
index 000000000..ddd931dab
--- /dev/null
+++ b/mod/pages/views/default/pages/sidebar/navigation.php
@@ -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',
+));
diff --git a/mod/pages/views/default/widgets/pages/content.php b/mod/pages/views/default/widgets/pages/content.php
index f42a1a85f..63a2d8e7e 100644
--- a/mod/pages/views/default/widgets/pages/content.php
+++ b/mod/pages/views/default/widgets/pages/content.php
@@ -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
diff --git a/mod/pages/views/default/widgets/pages/edit.php b/mod/pages/views/default/widgets/pages/edit.php
index 4ddfec428..7e76e69d5 100644
--- a/mod/pages/views/default/widgets/pages/edit.php
+++ b/mod/pages/views/default/widgets/pages/edit.php
@@ -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>
diff --git a/mod/pages/world.php b/mod/pages/world.php
index e3b158c1e..2a7ea4be9 100644
--- a/mod/pages/world.php
+++ b/mod/pages/world.php
@@ -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',