aboutsummaryrefslogtreecommitdiff
path: root/mod/pages
diff options
context:
space:
mode:
Diffstat (limited to 'mod/pages')
-rw-r--r--mod/pages/pages/pages/view.php2
-rw-r--r--mod/pages/start.php11
-rw-r--r--mod/pages/views/default/input/write_access.php35
-rw-r--r--mod/pages/views/default/object/page_top.php11
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);
}