/** * Messages page menu setup * * @param string $hook Equals 'register' * @param string $type Equals 'menu:page' * @param array $return An array of menu items * @param array $params Additional parameters * @return array An array of menu items */ function hj_inbox_page_menu_setup($hook, $type, $return, $params) { if (!elgg_in_context('messages')) { return $return; } $user = elgg_get_page_owner_entity(); $return = array(); $return[] = ElggMenuItem::factory(array('name' => 'inbox', 'text' => elgg_echo('hj:inbox:inbox'), 'href' => 'messages/inbox', 'priority' => 100, 'class' => 'inbox-load')); $intypes = hj_inbox_get_incoming_message_types($user); if ($intypes) { foreach ($intypes as $type) { $return[] = ElggMenuItem::factory(array('name' => "inbox:{$type}", 'parent_name' => 'inbox', 'text' => elgg_echo("item:object:message:{$type}:plural"), 'href' => "messages/inbox?message_type={$type}", 'class' => 'inbox-load')); } } $return[] = ElggMenuItem::factory(array('name' => 'sentmessages', 'text' => elgg_echo('hj:inbox:sent'), 'href' => 'messages/sent', 'priority' => 500, 'class' => 'inbox-load')); $outtypes = hj_inbox_get_outgoing_message_types($user); if ($outtypes) { foreach ($outtypes as $type) { $return[] = ElggMenuItem::factory(array('name' => "sent:{$type}", 'parent_name' => 'sentmessages', 'text' => elgg_echo("item:object:message:{$type}:plural"), 'href' => "messages/sent?message_type={$type}", 'class' => 'inbox-load')); } } return $return; }
<?php $message_type = elgg_extract('message_type', $vars, 'all'); $user = elgg_get_page_owner_entity(); $i = 100; $text = elgg_echo('hj:inbox:all'); $count = hj_inbox_count_unread_messages(null, $user); if ($count) { $text .= ' <span class="inbox-unread-count">' . $count . '</span>'; } $tabs = array(); $message_types = hj_inbox_get_incoming_message_types($user); if ($message_types) { foreach ($message_types as $type) { $text = elgg_echo("item:object:message:{$type}:plural"); $count = hj_inbox_count_unread_messages($type, $user); if ($count) { $text .= ' <span class="inbox-unread-count">' . $count . '</span>'; } $tabs[$type] = array('text' => $text, 'href' => "messages/inbox/{$user->username}?message_type={$type}", 'priority' => $i++, 'class' => 'inbox-load'); } } foreach ($tabs as $name => $tab) { if ($tab) { $tab['name'] = $name; $tab['selected'] = $message_type == $name; elgg_register_menu_item('filter', $tab); } } echo elgg_view_menu('filter', array('sort_by' => 'priority', 'class' => 'elgg-menu-hz'));