diff options
Diffstat (limited to 'mod/pages/pages/pages/edit.php')
-rw-r--r-- | mod/pages/pages/pages/edit.php | 54 |
1 files changed, 54 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); |