aboutsummaryrefslogtreecommitdiff
path: root/mod/pages/pages
diff options
context:
space:
mode:
Diffstat (limited to 'mod/pages/pages')
-rw-r--r--mod/pages/pages/pages/edit.php43
-rw-r--r--mod/pages/pages/pages/friends.php33
-rw-r--r--mod/pages/pages/pages/history.php47
-rw-r--r--mod/pages/pages/pages/new.php37
-rw-r--r--mod/pages/pages/pages/owner.php53
-rw-r--r--mod/pages/pages/pages/revision.php53
-rw-r--r--mod/pages/pages/pages/view.php55
-rw-r--r--mod/pages/pages/pages/world.php31
8 files changed, 352 insertions, 0 deletions
diff --git a/mod/pages/pages/pages/edit.php b/mod/pages/pages/pages/edit.php
new file mode 100644
index 000000000..1f411b94d
--- /dev/null
+++ b/mod/pages/pages/pages/edit.php
@@ -0,0 +1,43 @@
+<?php
+/**
+ * Edit a page
+ *
+ * @package ElggPages
+ */
+
+gatekeeper();
+
+$page_guid = (int)get_input('guid');
+$page = get_entity($page_guid);
+if (!$page) {
+ register_error(elgg_echo('noaccess'));
+ forward('');
+}
+
+$container = $page->getContainerEntity();
+if (!$container) {
+ register_error(elgg_echo('noaccess'));
+ forward('');
+}
+
+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");
+
+if ($page->canEdit()) {
+ $vars = pages_prepare_form_vars($page);
+ $content = elgg_view_form('pages/edit', array(), $vars);
+} else {
+ $content = elgg_echo("pages:noaccess");
+}
+
+$body = elgg_view_layout('content', array(
+ 'filter' => '',
+ 'content' => $content,
+ 'title' => $title,
+));
+
+echo elgg_view_page($title, $body);
diff --git a/mod/pages/pages/pages/friends.php b/mod/pages/pages/pages/friends.php
new file mode 100644
index 000000000..87ac631c2
--- /dev/null
+++ b/mod/pages/pages/pages/friends.php
@@ -0,0 +1,33 @@
+<?php
+/**
+ * List a user's friends' pages
+ *
+ * @package ElggPages
+ */
+
+$owner = elgg_get_page_owner_entity();
+if (!$owner) {
+ forward('pages/all');
+}
+
+elgg_push_breadcrumb($owner->name, "pages/owner/$owner->username");
+elgg_push_breadcrumb(elgg_echo('friends'));
+
+elgg_register_title_button();
+
+$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);
diff --git a/mod/pages/pages/pages/history.php b/mod/pages/pages/pages/history.php
new file mode 100644
index 000000000..872596179
--- /dev/null
+++ b/mod/pages/pages/pages/history.php
@@ -0,0 +1,47 @@
+<?php
+/**
+ * History of revisions of a page
+ *
+ * @package ElggPages
+ */
+
+$page_guid = get_input('guid');
+
+$page = get_entity($page_guid);
+if (!$page) {
+
+}
+
+$container = $page->getContainerEntity();
+if (!$container) {
+
+}
+
+elgg_set_page_owner_guid($container->getGUID());
+
+if (elgg_instanceof($container, 'group')) {
+ elgg_push_breadcrumb($container->name, "pages/group/$container->guid/all");
+} else {
+ elgg_push_breadcrumb($container->name, "pages/owner/$container->username");
+}
+pages_prepare_parent_breadcrumbs($page);
+elgg_push_breadcrumb($page->title, $page->getURL());
+elgg_push_breadcrumb(elgg_echo('pages:history'));
+
+$title = $page->title . ": " . elgg_echo('pages:history');
+
+$content = elgg_list_annotations(array(
+ 'guid' => $page_guid,
+ 'annotation_name' => 'page',
+ 'limit' => 20,
+ 'order_by' => "n_table.time_created desc"
+));
+
+$body = elgg_view_layout('content', array(
+ 'filter' => '',
+ 'content' => $content,
+ 'title' => $title,
+ 'sidebar' => elgg_view('pages/sidebar/navigation', array('page' => $page)),
+));
+
+echo elgg_view_page($title, $body);
diff --git a/mod/pages/pages/pages/new.php b/mod/pages/pages/pages/new.php
new file mode 100644
index 000000000..7cab2facb
--- /dev/null
+++ b/mod/pages/pages/pages/new.php
@@ -0,0 +1,37 @@
+<?php
+/**
+ * Create a new page
+ *
+ * @package ElggPages
+ */
+
+gatekeeper();
+
+$container_guid = (int) get_input('guid');
+$container = get_entity($container_guid);
+if (!$container) {
+
+}
+
+$parent_guid = 0;
+$page_owner = $container;
+if (elgg_instanceof($container, 'object')) {
+ $parent_guid = $container->getGUID();
+ $page_owner = $container->getContainerEntity();
+}
+
+elgg_set_page_owner_guid($page_owner->getGUID());
+
+$title = elgg_echo('pages:add');
+elgg_push_breadcrumb($title);
+
+$vars = pages_prepare_form_vars(null, $parent_guid);
+$content = elgg_view_form('pages/edit', array(), $vars);
+
+$body = elgg_view_layout('content', array(
+ 'filter' => '',
+ 'content' => $content,
+ 'title' => $title,
+));
+
+echo elgg_view_page($title, $body);
diff --git a/mod/pages/pages/pages/owner.php b/mod/pages/pages/pages/owner.php
new file mode 100644
index 000000000..b29332ee1
--- /dev/null
+++ b/mod/pages/pages/pages/owner.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * List a user's or group's pages
+ *
+ * @package ElggPages
+ */
+
+$owner = elgg_get_page_owner_entity();
+if (!$owner) {
+ forward('pages/all');
+}
+
+// access check for closed groups
+group_gatekeeper();
+
+$title = elgg_echo('pages:owner', array($owner->name));
+
+elgg_push_breadcrumb($owner->name);
+
+elgg_register_title_button();
+
+$content = elgg_list_entities(array(
+ 'types' => 'object',
+ 'subtypes' => 'page_top',
+ 'container_guid' => elgg_get_page_owner_guid(),
+ 'full_view' => false,
+));
+if (!$content) {
+ $content = '<p>' . elgg_echo('pages:none') . '</p>';
+}
+
+$filter_context = '';
+if (elgg_get_page_owner_guid() == elgg_get_logged_in_user_guid()) {
+ $filter_context = 'mine';
+}
+
+$sidebar = elgg_view('pages/sidebar/navigation');
+$sidebar .= elgg_view('pages/sidebar');
+
+$params = array(
+ 'filter_context' => $filter_context,
+ 'content' => $content,
+ 'title' => $title,
+ 'sidebar' => $sidebar,
+);
+
+if (elgg_instanceof($owner, 'group')) {
+ $params['filter'] = '';
+}
+
+$body = elgg_view_layout('content', $params);
+
+echo elgg_view_page($title, $body);
diff --git a/mod/pages/pages/pages/revision.php b/mod/pages/pages/pages/revision.php
new file mode 100644
index 000000000..66a36e4e7
--- /dev/null
+++ b/mod/pages/pages/pages/revision.php
@@ -0,0 +1,53 @@
+<?php
+/**
+ * View a revision of page
+ *
+ * @package ElggPages
+ */
+
+$id = get_input('id');
+$annotation = elgg_get_annotation_from_id($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_entity();
+if (!$container) {
+}
+
+$title = $page->title . ": " . elgg_echo('pages:revision');
+
+if (elgg_instanceof($container, 'group')) {
+ elgg_push_breadcrumb($container->name, "pages/group/$container->guid/all");
+} else {
+ elgg_push_breadcrumb($container->name, "pages/owner/$container->username");
+}
+pages_prepare_parent_breadcrumbs($page);
+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_view' => true,
+));
+
+$sidebar = elgg_view('pages/sidebar/history', array('page' => $page));
+
+$body = elgg_view_layout('content', array(
+ 'filter' => '',
+ 'content' => $content,
+ 'title' => $title,
+ 'sidebar' => $sidebar,
+));
+
+echo elgg_view_page($title, $body);
diff --git a/mod/pages/pages/pages/view.php b/mod/pages/pages/pages/view.php
new file mode 100644
index 000000000..e1c3fdbfd
--- /dev/null
+++ b/mod/pages/pages/pages/view.php
@@ -0,0 +1,55 @@
+<?php
+/**
+ * View a single page
+ *
+ * @package ElggPages
+ */
+
+$page_guid = get_input('guid');
+$page = get_entity($page_guid);
+if (!$page) {
+ register_error(elgg_echo('noaccess'));
+ $_SESSION['last_forward_from'] = current_page_url();
+ forward('');
+}
+
+elgg_set_page_owner_guid($page->getContainerGUID());
+
+group_gatekeeper();
+
+$container = elgg_get_page_owner_entity();
+if (!$container) {
+}
+
+$title = $page->title;
+
+if (elgg_instanceof($container, 'group')) {
+ elgg_push_breadcrumb($container->name, "pages/group/$container->guid/all");
+} else {
+ elgg_push_breadcrumb($container->name, "pages/owner/$container->username");
+}
+pages_prepare_parent_breadcrumbs($page);
+elgg_push_breadcrumb($title);
+
+$content = elgg_view_entity($page, array('full_view' => true));
+$content .= elgg_view_comments($page);
+
+// can add subpage if can edit this page and write to container (such as a group)
+if ($page->canEdit() && $container->canWriteToContainer(0, 'object', 'page')) {
+ $url = "pages/add/$page->guid";
+ elgg_register_menu_item('title', array(
+ 'name' => 'subpage',
+ 'href' => $url,
+ 'text' => elgg_echo('pages:newchild'),
+ 'link_class' => 'elgg-button elgg-button-action',
+ ));
+}
+
+$body = elgg_view_layout('content', array(
+ 'filter' => '',
+ 'content' => $content,
+ 'title' => $title,
+ 'sidebar' => elgg_view('pages/sidebar/navigation'),
+));
+
+echo elgg_view_page($title, $body);
diff --git a/mod/pages/pages/pages/world.php b/mod/pages/pages/pages/world.php
new file mode 100644
index 000000000..e6a705b6b
--- /dev/null
+++ b/mod/pages/pages/pages/world.php
@@ -0,0 +1,31 @@
+<?php
+/**
+ * List all pages
+ *
+ * @package ElggPages
+ */
+
+$title = elgg_echo('pages:all');
+
+elgg_pop_breadcrumb();
+elgg_push_breadcrumb(elgg_echo('pages'));
+
+elgg_register_title_button();
+
+$content = elgg_list_entities(array(
+ 'types' => 'object',
+ 'subtypes' => 'page_top',
+ 'full_view' => false,
+));
+if (!$content) {
+ $content = '<p>' . elgg_echo('pages:none') . '</p>';
+}
+
+$body = elgg_view_layout('content', array(
+ 'filter_context' => 'all',
+ 'content' => $content,
+ 'title' => $title,
+ 'sidebar' => elgg_view('pages/sidebar'),
+));
+
+echo elgg_view_page($title, $body);