diff options
Diffstat (limited to 'mod/blog/start.php')
-rw-r--r-- | mod/blog/start.php | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/mod/blog/start.php b/mod/blog/start.php index 437970de4..344da21d4 100644 --- a/mod/blog/start.php +++ b/mod/blog/start.php @@ -63,6 +63,9 @@ function blog_init() { elgg_register_action('blog/auto_save_revision', "$action_path/auto_save_revision.php"); elgg_register_action('blog/delete', "$action_path/delete.php"); + // entity menu + elgg_register_plugin_hook_handler('register', 'menu:entity', 'blog_entity_menu_setup'); + // ecml elgg_register_plugin_hook_handler('get_views', 'ecml', 'blog_ecml_views_hook'); } @@ -181,6 +184,34 @@ function blog_owner_block_menu($hook, $type, $return, $params) { } /** + * Add particular blog links/info to entity menu + */ +function blog_entity_menu_setup($hook, $type, $return, $params) { + if (elgg_in_context('widgets')) { + return $return; + } + + $entity = $params['entity']; + $handler = elgg_extract('handler', $params, false); + if ($handler != 'blog') { + return $return; + } + + if ($entity->canEdit() && $entity->status != 'published') { + $status_text = elgg_echo("blog:status:{$entity->status}"); + $options = array( + 'name' => 'published_status', + 'text' => $status_text, + 'href' => false, + 'priority' => 150, + ); + $return[] = ElggMenuItem::factory($options); + } + + return $return; +} + +/** * Register blogs with ECML. */ function blog_ecml_views_hook($hook, $entity_type, $return_value, $params) { |