diff options
Diffstat (limited to 'mod/pages/pages')
-rw-r--r-- | mod/pages/pages/pages/edit.php | 54 | ||||
-rw-r--r-- | mod/pages/pages/pages/friends.php | 33 | ||||
-rw-r--r-- | mod/pages/pages/pages/history.php | 47 | ||||
-rw-r--r-- | mod/pages/pages/pages/new.php | 37 | ||||
-rw-r--r-- | mod/pages/pages/pages/owner.php | 53 | ||||
-rw-r--r-- | mod/pages/pages/pages/revision.php | 53 | ||||
-rw-r--r-- | mod/pages/pages/pages/view.php | 55 | ||||
-rw-r--r-- | mod/pages/pages/pages/world.php | 31 |
8 files changed, 363 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..a925cdc55 --- /dev/null +++ b/mod/pages/pages/pages/edit.php @@ -0,0 +1,54 @@ +<?php +/** + * Edit a page + * + * @package ElggPages + */ + +gatekeeper(); + +$page_guid = (int)get_input('guid'); +$revision = (int)get_input('annotation_id'); +$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()) { + + if ($revision) { + $revision = elgg_get_annotation_from_id($revision); + if (!$revision || !($revision->entity_guid == $page_guid)) { + register_error(elgg_echo('pages:revision:not_found')); + forward(REFERER); + } + } + + $vars = pages_prepare_form_vars($page, $page->parent_guid, $revision); + + $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..cecc4053b --- /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('', '404'); +} + +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..7f5fa4f4f --- /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) { + forward('', '404'); +} + +$container = $page->getContainerEntity(); +if (!$container) { + forward('', '404'); +} + +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..7de74a3b4 --- /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('', '404'); +} + +// 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( + 'type' => 'object', + 'subtype' => '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..c130a6bd6 --- /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( + 'type' => 'object', + 'subtype' => '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); |