From c2d82db47ccdbd388658433d1f703c560d7fb84b Mon Sep 17 00:00:00 2001 From: cash Date: Sun, 6 Feb 2011 19:16:23 +0000 Subject: Fixes #2853 pages plugin uses the icon url plugin hook and fixes delete action git-svn-id: http://code.elgg.org/elgg/trunk@8044 36083f99-b078-4883-b0ff-0f9b5a30f544 --- mod/pages/actions/pages/delete.php | 41 ++++++++++++---------- mod/pages/start.php | 23 ++++++++++++ .../views/default/icon/object/page/medium.php | 8 ----- mod/pages/views/default/icon/object/page/small.php | 8 ----- .../views/default/icon/object/page_top/medium.php | 9 ----- .../views/default/icon/object/page_top/small.php | 8 ----- mod/pages/views/default/pages/icon.php | 12 +++---- 7 files changed, 49 insertions(+), 60 deletions(-) delete mode 100644 mod/pages/views/default/icon/object/page/medium.php delete mode 100644 mod/pages/views/default/icon/object/page/small.php delete mode 100644 mod/pages/views/default/icon/object/page_top/medium.php delete mode 100644 mod/pages/views/default/icon/object/page_top/small.php diff --git a/mod/pages/actions/pages/delete.php b/mod/pages/actions/pages/delete.php index 8bc20b821..aea383ef8 100644 --- a/mod/pages/actions/pages/delete.php +++ b/mod/pages/actions/pages/delete.php @@ -2,36 +2,39 @@ /** * Remove a page * + * Subpages are not deleted but are moved up a level in the tree + * * @package ElggPages */ -$page = get_input('page'); - -if ($page = get_entity($page)) { - +$guid = get_input('guid'); +$page = get_entity($guid); +if ($page) { if ($page->canEdit()) { - $container = get_entity($page->container_guid); // Bring all child elements forward - $parent = $page->parent_guid; - if ($children = elgg_get_entities_from_metadata(array('metadata_name' => 'parent_guid', 'metadata_value' => $page->getGUID()))) { - foreach($children as $child) { - $child->parent_guid = $parent; - } + $parent = $page->parent_guid; + $children = elgg_get_entities_from_metadata(array( + 'metadata_name' => 'parent_guid', + 'metadata_value' => $page->getGUID() + )); + if ($children) { + foreach ($children as $child) { + $child->parent_guid = $parent; } - if ($page->delete()) { - system_message(elgg_echo('pages:delete:success')); - if ($parent) { - if ($parent = get_entity($parent)) { - forward($parent->getURL()); - } + } + + if ($page->delete()) { + system_message(elgg_echo('pages:delete:success')); + if ($parent) { + if ($parent = get_entity($parent)) { + forward($parent->getURL()); } - forward("pg/pages/owned/$container->username/"); } - + forward("pg/pages/owned/$container->username/"); + } } - } register_error(elgg_echo('pages:delete:failure')); diff --git a/mod/pages/start.php b/mod/pages/start.php index efbf243d6..4a48368ec 100644 --- a/mod/pages/start.php +++ b/mod/pages/start.php @@ -68,6 +68,9 @@ function pages_init() { elgg_register_plugin_hook_handler('permissions_check', 'object', 'pages_write_permission_check'); elgg_register_plugin_hook_handler('container_permissions_check', 'object', 'pages_container_permission_check'); + // icon url override + elgg_register_plugin_hook_handler('entity:icon:url', 'object', 'pages_icon_url_override'); + // register ecml views to parse elgg_register_plugin_hook_handler('get_views', 'ecml', 'pages_ecml_views_hook'); } @@ -172,6 +175,26 @@ function pages_revision_url($annotation) { return "pg/pages/revision/$annotation->id"; } +/** + * Override the default entity icon for pages + * + * @return string Relative URL + */ +function pages_icon_url_override($hook, $type, $returnvalue, $params) { + $entity = $params['entity']; + if (elgg_instanceof($entity, 'object', 'page_top') || + elgg_instanceof($entity, 'object', 'page')) { + switch ($params['size']) { + case 'small': + return 'mod/pages/images/pages.gif'; + break; + case 'medium': + return 'mod/pages/images/pages_lrg.gif'; + break; + } + } +} + /** * Add a menu item to the user ownerblock */ diff --git a/mod/pages/views/default/icon/object/page/medium.php b/mod/pages/views/default/icon/object/page/medium.php deleted file mode 100644 index ebf028ef7..000000000 --- a/mod/pages/views/default/icon/object/page/medium.php +++ /dev/null @@ -1,8 +0,0 @@ - diff --git a/mod/pages/views/default/icon/object/page_top/small.php b/mod/pages/views/default/icon/object/page_top/small.php deleted file mode 100644 index bb9e0047a..000000000 --- a/mod/pages/views/default/icon/object/page_top/small.php +++ /dev/null @@ -1,8 +0,0 @@ -entity_guid); // Get size -if (!in_array($vars['size'], array('small','medium','large','tiny','master','topbar'))) { +if (!in_array($vars['size'], array('small', 'medium', 'large', 'tiny', 'master', 'topbar'))) { $vars['size'] = "medium"; } -if (!empty($vars['align'])) { - $align = " align=\"{$vars['align']}\" "; -} else { - $align = ""; -} - ?> - /> + -- cgit v1.2.3