diff options
Diffstat (limited to 'mod/pages')
-rw-r--r-- | mod/pages/pages/pages/view.php | 2 | ||||
-rw-r--r-- | mod/pages/start.php | 11 | ||||
-rw-r--r-- | mod/pages/views/default/input/write_access.php | 35 | ||||
-rw-r--r-- | mod/pages/views/default/object/page_top.php | 11 |
4 files changed, 55 insertions, 4 deletions
diff --git a/mod/pages/pages/pages/view.php b/mod/pages/pages/pages/view.php index b9f1fde83..b73bc985c 100644 --- a/mod/pages/pages/pages/view.php +++ b/mod/pages/pages/pages/view.php @@ -33,7 +33,7 @@ $content = elgg_view_entity($page, true); $content .= elgg_view_comments($page); $buttons = ''; -if ($page->canEdit()) { +if (elgg_get_logged_in_user_guid() == $page->getOwnerGuid()) { $url = "pages/add/$page->guid"; $buttons = elgg_view('output/url', array( 'text' => elgg_echo('pages:newchild'), diff --git a/mod/pages/start.php b/mod/pages/start.php index 2e2bc1ed6..744306649 100644 --- a/mod/pages/start.php +++ b/mod/pages/start.php @@ -65,7 +65,7 @@ function pages_init() { 'description' => 'longtext', 'tags' => 'tags', 'access_id' => 'access', - 'write_access_id' => 'access', + 'write_access_id' => 'write_access', )); elgg_register_plugin_hook_handler('register', 'menu:owner_block', 'pages_owner_block_menu'); @@ -231,6 +231,15 @@ function pages_entity_menu_setup($hook, $type, $return, $params) { return $return; } + // remove delete if not owner or admin + if (!elgg_is_admin_logged_in() && elgg_get_logged_in_user_guid() != $entity->getOwnerGuid()) { + foreach ($return as $index => $item) { + if ($item->getName() == 'delete') { + unset($return[$index]); + } + } + } + $options = array( 'name' => 'history', 'text' => elgg_echo('pages:history'), diff --git a/mod/pages/views/default/input/write_access.php b/mod/pages/views/default/input/write_access.php new file mode 100644 index 000000000..69277ca20 --- /dev/null +++ b/mod/pages/views/default/input/write_access.php @@ -0,0 +1,35 @@ +<?php +/** + * Write access + * + * Removes the public option found in input/access + * + * @uses $vars['value'] The current value, if any + * @uses $vars['options_values'] + * @uses $vars['name'] The name of the input field + * @uses $vars['entity'] Optional. The entity for this access control (uses write_access_id) + */ + +$options = get_write_access_array(); +unset($options[ACCESS_PUBLIC]); + +$defaults = array( + 'class' => 'elgg-input-access', + 'disabled' => FALSE, + 'value' => get_default_access(), + 'options_values' => $options, +); + +if (isset($vars['entity'])) { + $defaults['value'] = $vars['entity']->write_access_id; + unset($vars['entity']); +} + +$vars = array_merge($defaults, $vars); + +if ($vars['value'] == ACCESS_DEFAULT) { + $vars['value'] = get_default_access(); +} +$vars['value'] = ($vars['value'] == ACCESS_PUBLIC) ? ACCESS_LOGGED_IN : $vars['value']; + +echo elgg_view('input/dropdown', $vars); diff --git a/mod/pages/views/default/object/page_top.php b/mod/pages/views/default/object/page_top.php index 756c542b4..2ad44e38c 100644 --- a/mod/pages/views/default/object/page_top.php +++ b/mod/pages/views/default/object/page_top.php @@ -18,6 +18,13 @@ if (!$page) { return TRUE; } +// pages used to use Public for write access +if ($page->write_access_id == ACCESS_PUBLIC) { + // this works because this metadata is public + $page->write_access_id = ACCESS_LOGGED_IN; +} + + if ($revision) { $annotation = $revision; } else { @@ -75,7 +82,7 @@ if ($full) { 'subtitle' => $subtitle, 'tags' => $tags, ); - $list_body = elgg_view('page/components/summary', $params); + $list_body = elgg_view('object/elements/summary', $params); $info = elgg_view_image_block($page_icon, $list_body); @@ -96,7 +103,7 @@ HTML; 'tags' => $tags, 'content' => $excerpt, ); - $list_body = elgg_view('page/components/summary', $params); + $list_body = elgg_view('object/elements/summary', $params); echo elgg_view_image_block($page_icon, $list_body); } |