Add filters

1.10.x
jmontoya 10 years ago
parent 42afde4f00
commit b1a5c910a6
  1. 92
      main/inc/lib/message.lib.php
  2. 25
      main/messages/inbox.php
  3. 30
      main/messages/outbox.php

@ -1,6 +1,8 @@
<?php <?php
/* For licensing terms, see /license.txt */ /* For licensing terms, see /license.txt */
use ChamiloSession as Session;
/** /**
* Class MessageManager * Class MessageManager
* *
@ -105,11 +107,21 @@ class MessageManager
$condition_msg_status = ' msg_status IN('.MESSAGE_STATUS_NEW.','.MESSAGE_STATUS_UNREAD.') '; $condition_msg_status = ' msg_status IN('.MESSAGE_STATUS_NEW.','.MESSAGE_STATUS_UNREAD.') ';
} }
$keyword = Session::read('message_search_keyword');
$keywordCondition = '';
if (!empty($keyword)) {
$keyword = Database::escape_string($keyword);
$keywordCondition = " AND (title like '%$keyword%' OR content LIKE '%$keyword%') ";
}
$sql = "SELECT COUNT(*) as number_messages $sql = "SELECT COUNT(*) as number_messages
FROM $table_message FROM $table_message
WHERE $condition_msg_status AND user_receiver_id=".api_get_user_id(); WHERE $condition_msg_status AND
$sql_result = Database::query($sql); user_receiver_id=".api_get_user_id()."
$result = Database::fetch_array($sql_result); $keywordCondition
";
$result = Database::query($sql);
$result = Database::fetch_array($result);
return $result['number_messages']; return $result['number_messages'];
} }
@ -134,13 +146,24 @@ class MessageManager
if (!in_array($direction, array('ASC', 'DESC'))) if (!in_array($direction, array('ASC', 'DESC')))
$direction = 'ASC'; $direction = 'ASC';
} }
$keyword = Session::read('message_search_keyword');
$keywordCondition = '';
if (!empty($keyword)) {
$keyword = Database::escape_string($keyword);
$keywordCondition = " AND (title like '%$keyword%' OR content LIKE '%$keyword%') ";
}
$table_message = Database::get_main_table(TABLE_MESSAGE); $table_message = Database::get_main_table(TABLE_MESSAGE);
$sql = "SELECT id as col0, user_sender_id as col1, title as col2, send_date as col3, msg_status as col4 $sql = "SELECT id as col0, user_sender_id as col1, title as col2, send_date as col3, msg_status as col4
FROM $table_message FROM $table_message
WHERE user_receiver_id=".api_get_user_id()." AND msg_status IN (0,1) WHERE
user_receiver_id=".api_get_user_id()." AND
msg_status IN (0,1)
$keywordCondition
ORDER BY col$column $direction ORDER BY col$column $direction
LIMIT $from,$number_of_items"; LIMIT $from, $number_of_items";
$sql_result = Database::query($sql); $sql_result = Database::query($sql);
$i = 0; $i = 0;
@ -865,12 +888,21 @@ class MessageManager
} }
$table_message = Database::get_main_table(TABLE_MESSAGE); $table_message = Database::get_main_table(TABLE_MESSAGE);
$request = api_is_xml_http_request(); $request = api_is_xml_http_request();
$keyword = Session::read('message_sent_search_keyword');
$keywordCondition = '';
if (!empty($keyword)) {
$keyword = Database::escape_string($keyword);
$keywordCondition = " AND (title like '%$keyword%' OR content LIKE '%$keyword%') ";
}
$sql = "SELECT $sql = "SELECT
id as col0, user_sender_id as col1, title as col2, send_date as col3, user_receiver_id as col4, msg_status as col5 id as col0, user_sender_id as col1, title as col2, send_date as col3, user_receiver_id as col4, msg_status as col5
FROM $table_message FROM $table_message
WHERE WHERE
user_sender_id=".api_get_user_id()." AND user_sender_id=".api_get_user_id()." AND
msg_status=".MESSAGE_STATUS_OUTBOX." msg_status=".MESSAGE_STATUS_OUTBOX."
$keywordCondition
ORDER BY col$column $direction ORDER BY col$column $direction
LIMIT $from, $number_of_items"; LIMIT $from, $number_of_items";
$sql_result = Database::query($sql); $sql_result = Database::query($sql);
@ -921,10 +953,22 @@ class MessageManager
public static function get_number_of_messages_sent() public static function get_number_of_messages_sent()
{ {
$table_message = Database::get_main_table(TABLE_MESSAGE); $table_message = Database::get_main_table(TABLE_MESSAGE);
$keyword = Session::read('message_sent_search_keyword');
$keywordCondition = '';
if (!empty($keyword)) {
$keyword = Database::escape_string($keyword);
$keywordCondition = " AND (title like '%$keyword%' OR content LIKE '%$keyword%') ";
}
$sql = "SELECT COUNT(*) as number_messages FROM $table_message $sql = "SELECT COUNT(*) as number_messages FROM $table_message
WHERE msg_status=".MESSAGE_STATUS_OUTBOX." AND user_sender_id=".api_get_user_id(); WHERE
$sql_result = Database::query($sql); msg_status=".MESSAGE_STATUS_OUTBOX." AND
$result = Database::fetch_array($sql_result); user_sender_id=".api_get_user_id()."
$keywordCondition
";
$result = Database::query($sql);
$result = Database::fetch_array($result);
return $result['number_messages']; return $result['number_messages'];
} }
@ -1523,13 +1567,15 @@ class MessageManager
//@todo this functions should be in the message class //@todo this functions should be in the message class
public static function inbox_display() public static function inbox_display($keyword = '')
{ {
$success = get_lang('SelectedMessagesDeleted'); $success = get_lang('SelectedMessagesDeleted');
$success_read = get_lang('SelectedMessagesRead'); $success_read = get_lang('SelectedMessagesRead');
$success_unread = get_lang('SelectedMessagesUnRead'); $success_unread = get_lang('SelectedMessagesUnRead');
$html = ''; $html = '';
Session::write('message_search_keyword', $keyword);
if (isset($_REQUEST['action'])) { if (isset($_REQUEST['action'])) {
switch ($_REQUEST['action']) { switch ($_REQUEST['action']) {
case 'mark_as_unread' : case 'mark_as_unread' :
@ -1590,18 +1636,25 @@ class MessageManager
) )
); );
$html .= $table->return_table(); $html .= $table->return_table();
Session::erase('message_search_keyword');
return $html; return $html;
} }
/** /**
* @return string * @param string $keyword
* @return null|string
*/ */
static function outbox_display() public static function outbox_display($keyword = '')
{ {
$social_link = false; $social_link = false;
if (isset($_REQUEST['f']) && $_REQUEST['f'] == 'social') { if (isset($_REQUEST['f']) && $_REQUEST['f'] == 'social') {
$social_link = 'f=social'; $social_link = 'f=social';
} }
Session::write('message_sent_search_keyword', $keyword);
$success = get_lang('SelectedMessagesDeleted').'&nbsp</b><br /><a href="outbox.php?'.$social_link.'">'.get_lang('BackToOutbox').'</a>'; $success = get_lang('SelectedMessagesDeleted').'&nbsp</b><br /><a href="outbox.php?'.$social_link.'">'.get_lang('BackToOutbox').'</a>';
$html = null; $html = null;
@ -1645,6 +1698,8 @@ class MessageManager
$table->set_form_actions(array('delete' => get_lang('DeleteSelectedMessages'))); $table->set_form_actions(array('delete' => get_lang('DeleteSelectedMessages')));
$html .= $table->return_table(); $html .= $table->return_table();
Session::erase('message_sent_search_keyword');
return $html; return $html;
} }
@ -1756,4 +1811,19 @@ class MessageManager
return false; return false;
} }
/**
* @param string $url
*
* @return FormValidator
*/
public static function getSearchForm($url)
{
$form = new FormValidator('search', 'post', $url, null, [], FormValidator::LAYOUT_INLINE);
$form->addElement('text', 'keyword');
$form->addButtonSearch(get_lang('Search'));
return $form;
}
} }

@ -139,22 +139,25 @@ if (api_get_setting('allow_social_tool') == 'true') {
//Right content //Right content
$social_right_content = null; $social_right_content = null;
$keyword = '';
if (api_get_setting('allow_social_tool') == 'true') { if (api_get_setting('allow_social_tool') == 'true') {
$social_right_content .= '<div class="col-md-12">'; $actionsLeft = '<a href="'.api_get_path(WEB_PATH).'main/messages/new_message.php?f=social">'.
$social_right_content .= '<div class="actions">';
$social_right_content .= '<a href="'.api_get_path(WEB_PATH).'main/messages/new_message.php?f=social">'.
Display::return_icon('new-message.png', get_lang('ComposeMessage'), array(), 32).'</a>'; Display::return_icon('new-message.png', get_lang('ComposeMessage'), array(), 32).'</a>';
$social_right_content .= '<a href="'.api_get_path(WEB_PATH).'main/messages/outbox.php?f=social">'. $actionsLeft .= '<a href="'.api_get_path(WEB_PATH).'main/messages/outbox.php?f=social">'.
Display::return_icon('outbox.png', get_lang('Outbox'), array(), 32).'</a>'; Display::return_icon('outbox.png', get_lang('Outbox'), array(), 32).'</a>';
$social_right_content .= '</div>';
$social_right_content .= '</div>'; $form = MessageManager::getSearchForm(api_get_path(WEB_PATH).'main/messages/inbox.php');
$social_right_content .= '<div class="col-md-12">'; if ($form->validate()) {
$values = $form->getSubmitValues();
$keyword = $values['keyword'];
}
$actionsRight = $form->returnForm();
$social_right_content .= Display::toolbarAction('toolbar', [$actionsLeft, $actionsRight]);
} }
//MAIN CONTENT //MAIN CONTENT
if (!isset($_GET['del_msg'])) { if (!isset($_GET['del_msg'])) {
$social_right_content .= MessageManager::inbox_display(); $social_right_content .= MessageManager::inbox_display($keyword);
} else { } else {
$num_msg = intval($_POST['total']); $num_msg = intval($_POST['total']);
for ($i = 0; $i < $num_msg; $i++) { for ($i = 0; $i < $num_msg; $i++) {
@ -166,10 +169,6 @@ if (!isset($_GET['del_msg'])) {
$social_right_content .= MessageManager::inbox_display(); $social_right_content .= MessageManager::inbox_display();
} }
if (api_get_setting('allow_social_tool') == 'true') {
$social_right_content .= '</div>';
}
$tpl = new Template(null); $tpl = new Template(null);
// Block Social Avatar // Block Social Avatar
SocialManager::setSocialUserBlock($tpl, $user_id, 'messages'); SocialManager::setSocialUserBlock($tpl, $user_id, 'messages');

@ -99,15 +99,21 @@ if (isset($_REQUEST['action'])) {
$action = $_REQUEST['action']; $action = $_REQUEST['action'];
} }
$keyword = '';
$social_right_content = ''; $social_right_content = '';
if (api_get_setting('allow_social_tool') == 'true') { if (api_get_setting('allow_social_tool') == 'true') {
//Block Social Menu //Block Social Menu
$social_menu_block = SocialManager::show_social_menu('messages'); $social_menu_block = SocialManager::show_social_menu('messages');
$actionsLeft = '<a href="'.api_get_path(WEB_PATH).'main/messages/inbox.php?f=social">'.
$social_right_content .= '<div class="actions">';
$social_right_content .= '<a href="'.api_get_path(WEB_PATH).'main/messages/inbox.php?f=social">'.
Display::return_icon('back.png', get_lang('Back'), array(), 32).'</a>'; Display::return_icon('back.png', get_lang('Back'), array(), 32).'</a>';
$social_right_content .= '</div>';
$form = MessageManager::getSearchForm(api_get_path(WEB_PATH).'main/messages/outbox.php');
if ($form->validate()) {
$values = $form->getSubmitValues();
$keyword = $values['keyword'];
}
$actionsRight = $form->returnForm();
$social_right_content .= Display::toolbarAction('toolbar', [$actionsLeft, $actionsRight]);
} }
//MAIN CONTENT //MAIN CONTENT
if ($action == 'delete') { if ($action == 'delete') {
@ -118,20 +124,19 @@ if ($action == 'delete') {
if (isset($_POST['id'])) { if (isset($_POST['id'])) {
$delete_list_id=$_POST['id']; $delete_list_id=$_POST['id'];
} }
for ($i=0;$i<count($delete_list_id);$i++) { for ($i = 0; $i < count($delete_list_id); $i++) {
MessageManager::delete_message_by_user_sender(api_get_user_id(), $delete_list_id[$i]); MessageManager::delete_message_by_user_sender(api_get_user_id(), $delete_list_id[$i]);
} }
$delete_list_id=array(); $delete_list_id=array();
$social_right_content .= MessageManager::outbox_display(); $social_right_content .= MessageManager::outbox_display($keyword);
} elseif ($action == 'deleteone') {
} elseif($action =='deleteone') { $delete_list_id = array();
$delete_list_id=array();
$id = Security::remove_XSS($_GET['id']); $id = Security::remove_XSS($_GET['id']);
MessageManager::delete_message_by_user_sender(api_get_user_id(),$id); MessageManager::delete_message_by_user_sender(api_get_user_id(), $id);
$delete_list_id=array(); $delete_list_id=array();
$social_right_content .= MessageManager::outbox_display(); $social_right_content .= MessageManager::outbox_display($keyword);
} else { } else {
$social_right_content .= MessageManager::outbox_display(); $social_right_content .= MessageManager::outbox_display($keyword);
} }
$tpl = new Template(get_lang('ComposeMessage')); $tpl = new Template(get_lang('ComposeMessage'));
@ -146,7 +151,6 @@ if (api_get_setting('allow_social_tool') == 'true') {
} else { } else {
$content = $social_right_content; $content = $social_right_content;
$tpl->assign('actions', $actions); $tpl->assign('actions', $actions);
//$tpl->assign('message', $show_message);
$tpl->assign('content', $content); $tpl->assign('content', $content);
$tpl->display_one_col_template(); $tpl->display_one_col_template();
} }

Loading…
Cancel
Save