]> gitweb.fluxo.info Git - lorea/elgg.git/commitdiff
Fixes #4015 decrementing the count before adding to the topbar
authorCash Costello <cash.costello@gmail.com>
Sat, 29 Oct 2011 12:28:10 +0000 (08:28 -0400)
committerCash Costello <cash.costello@gmail.com>
Sat, 29 Oct 2011 12:28:10 +0000 (08:28 -0400)
mod/messages/pages/messages/read.php
mod/messages/start.php
mod/messages/views/default/object/messages.php

index 310485ee24a1f6a05a7ab11c6872dfc68221df5a..d41551be4bdf3ffcb271b250861fceda83694078 100644 (file)
@@ -12,6 +12,9 @@ if (!$message) {
        forward();
 }
 
+// mark the message as read
+$message->readYet = true;
+
 elgg_set_page_owner_guid($message->getOwnerGUID());
 $page_owner = elgg_get_page_owner_entity();
 
index 14fc4c3bb145ef380bebdc90dfba5bd49f8b2d66..4a3b0b250362532e6f840a5ea2fe240633433c19 100644 (file)
@@ -28,25 +28,11 @@ function messages_init() {
                        'text' => elgg_echo('messages:sentmessages'),
                        'href' => "messages/sent/" . elgg_get_logged_in_user_entity()->username,
                        'context' => 'messages',
-               ));
-               
-               $class = "elgg-icon elgg-icon-mail";
-               $text = "<span class='$class'></span>";
-               
-               // get unread messages
-               $num_messages = (int)messages_count_unread();
-               if ($num_messages != 0) {
-                       $text .= "<span class=\"messages-new\">$num_messages</span>";
-               }
-               
-               elgg_register_menu_item('topbar', array(
-                       'name' => 'messages',
-                       'href' => 'messages/inbox/' . elgg_get_logged_in_user_entity()->username,
-                       'text' => $text,
-                       'priority' => 600,
-               ));
+               ));             
        }
 
+       elgg_register_event_handler('pagesetup', 'system', 'messages_notifier');
+
        // Extend system CSS with our own styles, which are defined in the messages/css view
        elgg_extend_view('css/elgg', 'messages/css');
        elgg_extend_view('js/elgg', 'messages/js');
@@ -133,6 +119,29 @@ function messages_page_handler($page) {
        return true;
 }
 
+/**
+ * Display notification of new messages in topbar
+ */
+function messages_notifier() {
+       if (elgg_is_logged_in()) {
+               $class = "elgg-icon elgg-icon-mail";
+               $text = "<span class='$class'></span>";
+
+               // get unread messages
+               $num_messages = (int)messages_count_unread();
+               if ($num_messages != 0) {
+                       $text .= "<span class=\"messages-new\">$num_messages</span>";
+               }
+
+               elgg_register_menu_item('topbar', array(
+                       'name' => 'messages',
+                       'href' => 'messages/inbox/' . elgg_get_logged_in_user_entity()->username,
+                       'text' => $text,
+                       'priority' => 600,
+               ));
+       }
+}
+
 /**
  * Override the canEditMetadata function to return true for messages
  *
index 8c840dd57be9f84534871c2ff857171cb4a05669..e8e745e94a4c3731fd8dcb45e3920dbc439b64d6 100644 (file)
@@ -12,10 +12,6 @@ if (!$message) {
        return true;
 }
 
-if ($full) {
-       $message->readYet = true;
-}
-
 if ($message->toId == elgg_get_page_owner_guid()) {
        // received
        $user = get_entity($message->fromId);