[svn r18385] logic changes - allow show inbox and outbox correctly - (see FS#3618)

skala
Isaac Flores 17 years ago
parent b1012c77c5
commit 0f616d0dce
  1. 65
      main/inc/lib/message.lib.php
  2. 72
      main/messages/message.class.php
  3. 15
      main/messages/outbox.php
  4. 20
      main/messages/view_message.php
  5. 2
      main/social/index.php

@ -27,6 +27,33 @@ require_once '../messages/message.class.php';
function inbox_display() {
$table_message = Database::get_main_table(TABLE_MESSAGE);
$request=api_is_xml_http_request();
if ($_SESSION['social_exist']===true) {
$redirect="#remote-tab-2";
if (api_get_setting('allow_social_tool')=='true' && api_get_setting('allow_message_tool')=='true') {
$success= get_lang('SelectedMessagesDeleted').
"&nbsp
<br><a href=\"".
"../social/index.php$redirect\">".
get_lang('BackToInbox').
"</a>";
}else {
$success= get_lang('SelectedMessagesDeleted').
"&nbsp
<br><a href=\"".
"../social/index.php$redirect\">".
get_lang('BackToInbox').
"</a>";
}
} else {
$success= get_lang('SelectedMessagesDeleted').
"&nbsp
</b>".
"<br><a href=\"".
"inbox.php\">".
get_lang('BackToOutbox').
"</a>";
}
if (isset ($_REQUEST['action'])) {
switch ($_REQUEST['action']) {
@ -35,11 +62,11 @@ function inbox_display() {
foreach ($_POST['id'] as $index => $message_id) {
MessageManager::delete_message_by_user_receiver(api_get_user_id(), $message_id);
}
Display::display_normal_message(get_lang('SelectedMessagesDeleted'));
Display::display_normal_message($success,false);
break;
case 'deleteone' :
MessageManager::delete_message_by_user_receiver(api_get_user_id(), $_GET['id']);
Display::display_confirmation_message(get_lang('MessageDeleted'));
Display::display_confirmation_message($success,false);
echo '<br/>';
break;
}
@ -73,7 +100,33 @@ function get_message_data_mask($from, $number_of_items, $column, $direction) {
function outbox_display() {
$table_message = Database::get_main_table(TABLE_MESSAGE);
$request=api_is_xml_http_request();
if ($_SESSION['social_exist']===true) {
$redirect="#remote-tab-3";
if (api_get_setting('allow_social_tool')=='true' && api_get_setting('allow_message_tool')=='true') {
$success= get_lang('SelectedMessagesDeleted').
"&nbsp
<br><a href=\"".
"../social/index.php$redirect\">".
get_lang('BackToOutbox').
"</a>";
}else {
$success= get_lang('SelectedMessagesDeleted').
"&nbsp
<br><a href=\"".
"../social/index.php$redirect\">".
get_lang('BackToOutbox').
"</a>";
}
} else {
$success= get_lang('SelectedMessagesDeleted').
"&nbsp
</b>".
"<br><a href=\"".
"outbox.php\">".
get_lang('BackToOutbox').
"</a>";
}
if (isset ($_REQUEST['action'])) {
switch ($_REQUEST['action']) {
case 'delete' :
@ -82,12 +135,12 @@ if (isset ($_REQUEST['action'])) {
foreach ($_POST['id'] as $index => $message_id) {
MessageManager::delete_message_by_user_receiver(api_get_user_id(), $message_id);
}
}
Display::display_normal_message(get_lang('SelectedMessagesDeleted'));
}
Display::display_normal_message($success,false);
break;
case 'deleteone' :
MessageManager::delete_message_by_user_receiver(api_get_user_id(), $_GET['id']);
Display::display_confirmation_message(get_lang('MessageDeleted'));
Display::display_confirmation_message($success,false);
echo '<br/>';
break;
}

@ -42,7 +42,31 @@ class MessageManager {
* Displays info stating that the message is sent successfully.
*/
public static function display_success_message($uid) {
$success= get_lang('MessageSentTo').
if ($_SESSION['social_exist']===true) {
$redirect="#remote-tab-2";
if (api_get_setting('allow_social_tool')=='true' && api_get_setting('allow_message_tool')=='true') {
$success= get_lang('MessageSentTo').
"&nbsp;<b>".
GetFullUserName($uid).
"</b>".
"<br><a href=\"".
"../social/index.php$redirect\">".
get_lang('BackToInbox').
"</a>";
}else {
$success= get_lang('MessageSentTo').
"&nbsp;<b>".
GetFullUserName($uid).
"</b>".
"<br><a href=\"".
"inbox.php\">".
get_lang('BackToInbox').
"</a>";
}
} else {
$success= get_lang('MessageSentTo').
"&nbsp;<b>".
GetFullUserName($uid).
"</b>".
@ -50,6 +74,7 @@ class MessageManager {
"inbox.php\">".
get_lang('BackToInbox').
"</a>";
}
Display::display_confirmation_message($success, false);
}
@ -93,7 +118,7 @@ class MessageManager {
*/
public static function get_number_of_messages () {
$table_message = Database::get_main_table(TABLE_MESSAGE);
$sql_query = "SELECT COUNT(*) as number_messages FROM $table_message WHERE msg_status IN (0,1,3) AND user_receiver_id=".api_get_user_id();
$sql_query = "SELECT COUNT(*) as number_messages FROM $table_message WHERE msg_status IN (0,1) AND user_receiver_id=".api_get_user_id();
$sql_result = api_sql_query($sql_query,__FILE__,__LINE__);
$result = Database::fetch_array($sql_result);
return $result['number_messages'];
@ -109,7 +134,7 @@ class MessageManager {
$table_message = Database::get_main_table(TABLE_MESSAGE);
$request=api_is_xml_http_request();
$sql_query = "SELECT id as col0, user_sender_id as col1, title as col2, send_date as col3 FROM $table_message " .
"WHERE user_receiver_id=".api_get_user_id()." AND msg_status IN (0,1,3)" .
"WHERE user_receiver_id=".api_get_user_id()." AND msg_status IN (0,1)" .
"ORDER BY col$column $direction LIMIT $from,$number_of_items";
$sql_result = api_sql_query($sql_query,__FILE__,__LINE__);
$i = 0;
@ -137,20 +162,34 @@ class MessageManager {
public static function send_message ($receiver_user_id, $title, $content) {
$table_message = Database::get_main_table(TABLE_MESSAGE);
//message in inbox
$query = "INSERT INTO $table_message(user_sender_id, user_receiver_id, msg_status, send_date, title, content ) ".
" VALUES (".
"'".api_get_user_id()."', '".Database::escape_string($receiver_user_id)."', '1', '".date('Y-m-d H:i:s')."','".Database::escape_string($title)."','".Database::escape_string($content)."'".
")";
//message in outbox
$sql = "INSERT INTO $table_message(user_sender_id, user_receiver_id, msg_status, send_date, title, content ) ".
" VALUES (".
"'".api_get_user_id()."', '".Database::escape_string($receiver_user_id)."', '4', '".date('Y-m-d H:i:s')."','".Database::escape_string($title)."','".Database::escape_string($content)."'".
")";
$rs = api_sql_query($sql,__FILE__,__LINE__);
$result = api_sql_query($query,__FILE__,__LINE__);
return $result;
}
public static function delete_message_by_user_receiver ($user_receiver_id,$id) {
$table_message = Database::get_main_table(TABLE_MESSAGE);
$query = "DELETE FROM $table_message " .
"WHERE user_receiver_id=".Database::escape_string($user_receiver_id)." AND id=".Database::escape_string($id);
$result = api_sql_query($query,__FILE__,__LINE__);
return $result;
$sql="SELECT COUNT(*) as count FROM $table_message WHERE id=".$id." AND msg_status<>4;";
$rs=api_sql_query($sql,__FILE__,__LINE__);
$row=Database::fetch_array($rs,'ASSOC');
if ($row['count']==1) {
$query = "DELETE FROM $table_message " .
"WHERE user_receiver_id=".Database::escape_string($user_receiver_id)." AND id=".Database::escape_string($id);
$result = api_sql_query($query,__FILE__,__LINE__);
return $result;
} else {
return false;
}
}
/**
* Set status deleted
@ -161,14 +200,15 @@ class MessageManager {
*/
public static function delete_message_by_user_sender ($user_sender_id,$id) {
$table_message = Database::get_main_table(TABLE_MESSAGE);
$query = "UPDATE $table_message " .
"SET msg_status=3 WHERE user_sender_id=".Database::escape_string($user_sender_id)." AND id=".Database::escape_string($id);
$query = "DELETE FROM $table_message " .
"WHERE user_sender_id=".Database::escape_string($user_sender_id)." AND id=".Database::escape_string($id);
$result = api_sql_query($query,__FILE__,__LINE__);
return $result;
}
public static function update_message ($user_id, $id) {
$table_message = Database::get_main_table(TABLE_MESSAGE);
$query = "UPDATE $table_message SET msg_status = '0' WHERE user_receiver_id=".Database::escape_string($user_id)." AND id='".Database::escape_string($id)."'";
$query = "UPDATE $table_message SET msg_status = '0' WHERE msg_status<>4 AND user_receiver_id=".Database::escape_string($user_id)." AND id='".Database::escape_string($id)."'";
$result = api_sql_query($query,__FILE__,__LINE__);
}
@ -207,7 +247,7 @@ class MessageManager {
$table_message = Database::get_main_table(TABLE_MESSAGE);
$request=api_is_xml_http_request();
$sql_query = "SELECT id as col0, user_sender_id as col1, title as col2, send_date as col3 FROM $table_message " .
"WHERE user_sender_id=".api_get_user_id()." AND msg_status IN (0,1)" .
"WHERE user_sender_id=".api_get_user_id()." AND msg_status=4 " .
"ORDER BY col$column $direction LIMIT $from,$number_of_items";
$sql_result = api_sql_query($sql_query,__FILE__,__LINE__);
$i = 0;
@ -239,7 +279,7 @@ class MessageManager {
*/
public static function get_number_of_messages_sent () {
$table_message = Database::get_main_table(TABLE_MESSAGE);
$sql_query = "SELECT COUNT(*) as number_messages FROM $table_message WHERE msg_status IN (0,1) AND user_sender_id=".api_get_user_id();
$sql_query = "SELECT COUNT(*) as number_messages FROM $table_message WHERE msg_status=4 AND user_sender_id=".api_get_user_id();
$sql_result = api_sql_query($sql_query,__FILE__,__LINE__);
$result = Database::fetch_array($sql_result);
return $result['number_messages'];
@ -247,13 +287,15 @@ class MessageManager {
public static function show_message_box () {
$table_message = Database::get_main_table(TABLE_MESSAGE);
if (isset($_GET['id_send'])) {
$query = "SELECT * FROM $table_message WHERE user_sender_id=".api_get_user_id()." AND id=".$_GET['id_send']." AND msg_status IN (0,1);";
$query = "SELECT * FROM $table_message WHERE user_sender_id=".api_get_user_id()." AND id=".$_GET['id_send']." AND msg_status=4;";
$result = api_sql_query($query,__FILE__,__LINE__);
$path='outbox.php';
} else {
$query = "UPDATE $table_message SET msg_status = '0' WHERE user_receiver_id=".api_get_user_id()." AND id='".Database::escape_string($_GET['id'])."';";
$result = api_sql_query($query,__FILE__,__LINE__);
$query = "SELECT * FROM $table_message WHERE user_receiver_id=".api_get_user_id()." AND id='".Database::escape_string($_GET['id'])."';";
$query = "SELECT * FROM $table_message WHERE msg_status<>4 AND user_receiver_id=".api_get_user_id()." AND id='".Database::escape_string($_GET['id'])."';";
$result = api_sql_query($query,__FILE__,__LINE__);
$path='inbox.php';
}
$row = Database::fetch_array($result);
$user_con = self::users_connected_by_id();
@ -267,7 +309,7 @@ class MessageManager {
}
echo '<div class=actions>';
echo $reply;
echo '<a href="inbox.php?action=deleteone&id='.$row[0].'" onclick="javascript:if(!confirm('."'".addslashes(htmlentities(get_lang('ConfirmDeleteMessage')))."'".')) return false;">'.Display::return_icon('message_delete.png',get_lang('DeleteMessage')).''.get_lang('Delete').'</a>';
echo '<a href="'.$path.'?action=deleteone&id='.$row[0].'" onclick="javascript:if(!confirm('."'".addslashes(htmlentities(get_lang('ConfirmDeleteMessage')))."'".')) return false;">'.Display::return_icon('message_delete.png',get_lang('DeleteMessage')).''.get_lang('Delete').'</a>';
echo '</div><br />';
echo '
<table class="message_view_table" >

@ -98,17 +98,20 @@ echo get_lang('ShowMessageOutbox');
echo '</div>';
$user_sender_id=api_get_user_id();
$id=Security::remove_XSS($_GET['id']);
if ($_REQUEST['action']!='delete') {
outbox_display();
} else {
if ($_REQUEST['action']=='delete') {
$delete_list_id=array();
$delete_list_id=$_POST['id'];
for ($i=0;$i<count($delete_list_id);$i++) {
//the user_id was necesarry to delete a message??
MessageManager::delete_message_by_user_sender(api_get_user_id(), $delete_list_id[$i]);
}
outbox_display();
outbox_display();
} elseif ($_REQUEST['action']=='deleteone') {
$delete_list_id=array();
$id=Security::remove_XSS($_GET['id']);
MessageManager::delete_message_by_user_sender(api_get_user_id(),$id);
outbox_display();
}else {
outbox_display();
}
/*
==============================================================================

@ -1,4 +1,4 @@
<?php // $Id: view_message.php 18292 2009-02-06 19:08:47Z iflorespaz $
<?php // $Id: view_message.php 18385 2009-02-09 21:56:23Z iflorespaz $
/*
==============================================================================
Dokeos - elearning and course management software
@ -7,7 +7,7 @@
Copyright (c) 2009 Julio Montoya Armas <gugli100@gmail.com>
Copyright (c) Facultad de Matematicas, UADY (México)
Copyright (c) Evie, Free University of Brussels (Belgium)
Copyright (c) 2009 Isaac Flores Paz <isaac.flores.paz@gmail.com>
For a full list of contributors, see "credits.txt".
The full license can be read in "license.txt".
@ -41,8 +41,20 @@ $nameTools = get_lang('Messages');
if (isset($_GET['id_send']) || isset($_GET['id'])) {
if (isset($_GET['rs'])) {
$interbreadcrumb[]= array (
'url' => '../social/'.$_SESSION['social_dest'].'?#remote-tab-2',
'name' => get_lang('SocialNetwork')
'url' => '#',
'name' => get_lang($nameTools)
);
$interbreadcrumb[]= array (
'url' => '../social/'.$_SESSION['social_dest'].'?#remote-tab-2',
'name' => get_lang('SocialNetwork')
);
$interbreadcrumb[]= array (
'url' => 'inbox.php',
'name' => get_lang('Inbox')
);
$interbreadcrumb[]= array (
'url' => 'outbox.php',
'name' => get_lang('Outbox')
);
} else {
$interbreadcrumb[]= array (

@ -67,6 +67,7 @@ function delete_friend (element_div) {
//alert(datos);
$("div#"+"div_"+user_id[1]).hide("slow");
$("div#"+"div_"+user_id[1]).html("");
clear_form ();
}
});
}
@ -175,6 +176,7 @@ code {
font-family: "Courier New", Courier, monospace;
}
</style>';
$_SESSION['social_exist']=true;
$_SESSION['social_dest'] = 'index.php';
$interbreadcrumb[]= array (
'url' => '#',

Loading…
Cancel
Save