Browse Source

Fix message URL + fix conditions

Julio Montoya 5 years ago
parent
commit
e859a26682
2 changed files with 36 additions and 40 deletions
  1. 36 28
      main/inc/lib/message.lib.php
  2. 0 12
      main/social/view_promoted_message.php

+ 36 - 28
main/inc/lib/message.lib.php

@@ -63,7 +63,7 @@ class MessageManager
         $messageStatusCondition = implode("','", $messageStatus);
 
         $table = Database::get_main_table(TABLE_MESSAGE);
-        $keyword = isset($params['keyword']) ? $params['keyword'] : '';
+        $keyword = isset($params['keyword']) && !empty($params['keyword']) ? $params['keyword'] : '';
 
         $keywordCondition = '';
         if (!empty($keyword)) {
@@ -125,8 +125,11 @@ class MessageManager
             $column = 2;
         }
 
-        $keyword = isset($extraParams['keyword']) ? $extraParams['keyword'] : '';
-        $viewUrl = isset($extraParams['view_url']) ? $extraParams['view_url'] : api_get_path(WEB_CODE_PATH).'message/view_message.php';
+        $keyword = isset($extraParams['keyword']) && !empty($extraParams['keyword']) ? $extraParams['keyword'] : '';
+        $viewUrl = api_get_path(WEB_CODE_PATH).'messages/view_message.php';
+        if (isset($extraParams['view_url']) && !empty($extraParams['view_url'])) {
+            $viewUrl = $extraParams['view_url'];
+        }
 
         $keywordCondition = '';
         if (!empty($keyword)) {
@@ -1190,7 +1193,7 @@ class MessageManager
         }
         $table = Database::get_main_table(TABLE_MESSAGE);
         $request = api_is_xml_http_request();
-        $keyword = isset($extraParams['keyword']) ? $extraParams['keyword'] : '';
+        $keyword = isset($extraParams['keyword']) && !empty($extraParams['keyword']) ? $extraParams['keyword'] : '';
         $keywordCondition = '';
         if (!empty($keyword)) {
             $keyword = Database::escape_string($keyword);
@@ -1270,38 +1273,43 @@ class MessageManager
      *
      * @return string html with the message content
      */
-    public static function showMessageBox($messageId, $source = 'inbox')
+    public static function showMessageBox($messageId, $source)
     {
         $table = Database::get_main_table(TABLE_MESSAGE);
         $messageId = (int) $messageId;
+
+        if (empty($messageId)) {
+            return '';
+        }
         $currentUserId = api_get_user_id();
 
-        if ($source === 'outbox') {
-            if (isset($messageId) && is_numeric($messageId)) {
-                $query = "SELECT * FROM $table
-                          WHERE
-                            user_sender_id = ".$currentUserId." AND
-                            id = $messageId AND
-                            msg_status = ".MESSAGE_STATUS_OUTBOX;
-                $result = Database::query($query);
-            }
-        } else {
-            if (is_numeric($messageId) && !empty($messageId)) {
+        switch ($source) {
+            case 'outbox':
+                $status = MESSAGE_STATUS_OUTBOX;
+                $userCondition = " user_sender_id = $currentUserId AND ";
+
+                break;
+            case 'inbox':
+                $status = MESSAGE_STATUS_NEW;
+                $userCondition = " user_receiver_id = $currentUserId AND ";
+
                 $query = "UPDATE $table SET
                           msg_status = '".MESSAGE_STATUS_NEW."'
-                          WHERE
-                            user_receiver_id=".$currentUserId." AND
-                            id = '".$messageId."'";
+                          WHERE id = $messageId ";
                 Database::query($query);
-
-                $query = "SELECT * FROM $table
-                          WHERE
-                            msg_status<> ".MESSAGE_STATUS_OUTBOX." AND
-                            user_receiver_id = ".$currentUserId." AND
-                            id = '".$messageId."'";
-                $result = Database::query($query);
-            }
-        }
+                break;
+            case 'promoted_messages':
+                $status = MESSAGE_STATUS_PROMOTED;
+                $userCondition = " user_receiver_id = $currentUserId AND ";
+                break;
+        }
+
+        $query = "SELECT * FROM $table
+                          WHERE                            
+                            id = $messageId AND 
+                            $userCondition
+                            msg_status = $status";
+        $result = Database::query($query);
         $row = Database::fetch_array($result, 'ASSOC');
 
         if (empty($row)) {

+ 0 - 12
main/social/view_promoted_message.php

@@ -17,17 +17,6 @@ $interbreadcrumb[] = ['url' => api_get_path(WEB_PATH).'main/social/home.php', 'n
 $interbreadcrumb[] = ['url' => 'promoted_messages.php', 'name' => get_lang('PromotedMessages')];
 
 $social_right_content = '';
-/*$social_right_content = '<div class="actions">';
-if (api_get_setting('allow_message_tool') === 'true') {
-    $social_right_content .= '<a href="'.api_get_path(WEB_PATH).'main/messages/new_message.php">'.
-        Display::return_icon('new-message.png', get_lang('ComposeMessage')).'</a>';
-    $social_right_content .= '<a href="'.api_get_path(WEB_PATH).'main/messages/inbox.php">'.
-        Display::return_icon('inbox.png', get_lang('Inbox')).'</a>';
-    $social_right_content .= '<a href="'.api_get_path(WEB_PATH).'main/messages/outbox.php">'.
-        Display::return_icon('outbox.png', get_lang('Outbox')).'</a>';
-}
-$social_right_content .= '</div>';*/
-
 if (empty($_GET['id'])) {
     $messageId = $_GET['id_send'];
     $source = 'outbox';
@@ -46,7 +35,6 @@ $logInfo = [
     'action_details' => 'view-message',
 ];
 Event::registerLog($logInfo);
-
 $social_menu_block = SocialManager::show_social_menu($show_menu);
 $message .= MessageManager::showMessageBox($messageId, 'promoted_messages');