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
/* For licensing terms, see /license.txt */
use ChamiloSession as Session;
/**
* Class MessageManager
*
@ -105,11 +107,21 @@ class MessageManager
$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
FROM $table_message
WHERE $condition_msg_status AND user_receiver_id=".api_get_user_id();
$sql_result = Database::query($sql);
$result = Database::fetch_array($sql_result);
WHERE $condition_msg_status AND
user_receiver_id=".api_get_user_id()."
$keywordCondition
";
$result = Database::query($sql);
$result = Database::fetch_array($result);
return $result['number_messages'];
}
@ -134,13 +146,24 @@ class MessageManager
if (!in_array($direction, array('ASC', 'DESC')))
$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);
$sql = "SELECT id as col0, user_sender_id as col1, title as col2, send_date as col3, msg_status as col4
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
LIMIT $from,$number_of_items";
LIMIT $from, $number_of_items";
$sql_result = Database::query($sql);
$i = 0;
@ -865,12 +888,21 @@ class MessageManager
}
$table_message = Database::get_main_table(TABLE_MESSAGE);
$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
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
WHERE
user_sender_id=".api_get_user_id()." AND
msg_status=".MESSAGE_STATUS_OUTBOX."
$keywordCondition
ORDER BY col$column $direction
LIMIT $from, $number_of_items";
$sql_result = Database::query($sql);
@ -921,10 +953,22 @@ class MessageManager
public static function get_number_of_messages_sent()
{
$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
WHERE msg_status=".MESSAGE_STATUS_OUTBOX." AND user_sender_id=".api_get_user_id();
$sql_result = Database::query($sql);
$result = Database::fetch_array($sql_result);
WHERE
msg_status=".MESSAGE_STATUS_OUTBOX." AND
user_sender_id=".api_get_user_id()."
$keywordCondition
";
$result = Database::query($sql);
$result = Database::fetch_array($result);
return $result['number_messages'];
}
@ -1523,13 +1567,15 @@ class MessageManager
//@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_read = get_lang('SelectedMessagesRead');
$success_unread = get_lang('SelectedMessagesUnRead');
$html = '';
Session::write('message_search_keyword', $keyword);
if (isset($_REQUEST['action'])) {
switch ($_REQUEST['action']) {
case 'mark_as_unread' :
@ -1590,18 +1636,25 @@ class MessageManager
)
);
$html .= $table->return_table();
Session::erase('message_search_keyword');
return $html;
}
/**
* @return string
* @param string $keyword
* @return null|string
*/
static function outbox_display()
public static function outbox_display($keyword = '')
{
$social_link = false;
if (isset($_REQUEST['f']) && $_REQUEST['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>';
$html = null;
@ -1645,6 +1698,8 @@ class MessageManager
$table->set_form_actions(array('delete' => get_lang('DeleteSelectedMessages')));
$html .= $table->return_table();
Session::erase('message_sent_search_keyword');
return $html;
}
@ -1756,4 +1811,19 @@ class MessageManager
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
$social_right_content = null;
$keyword = '';
if (api_get_setting('allow_social_tool') == 'true') {
$social_right_content .= '<div class="col-md-12">';
$social_right_content .= '<div class="actions">';
$social_right_content .= '<a href="'.api_get_path(WEB_PATH).'main/messages/new_message.php?f=social">'.
$actionsLeft = '<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>';
$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>';
$social_right_content .= '</div>';
$social_right_content .= '</div>';
$social_right_content .= '<div class="col-md-12">';
$form = MessageManager::getSearchForm(api_get_path(WEB_PATH).'main/messages/inbox.php');
if ($form->validate()) {
$values = $form->getSubmitValues();
$keyword = $values['keyword'];
}
$actionsRight = $form->returnForm();
$social_right_content .= Display::toolbarAction('toolbar', [$actionsLeft, $actionsRight]);
}
//MAIN CONTENT
if (!isset($_GET['del_msg'])) {
$social_right_content .= MessageManager::inbox_display();
$social_right_content .= MessageManager::inbox_display($keyword);
} else {
$num_msg = intval($_POST['total']);
for ($i = 0; $i < $num_msg; $i++) {
@ -166,10 +169,6 @@ if (!isset($_GET['del_msg'])) {
$social_right_content .= MessageManager::inbox_display();
}
if (api_get_setting('allow_social_tool') == 'true') {
$social_right_content .= '</div>';
}
$tpl = new Template(null);
// Block Social Avatar
SocialManager::setSocialUserBlock($tpl, $user_id, 'messages');

@ -99,15 +99,21 @@ if (isset($_REQUEST['action'])) {
$action = $_REQUEST['action'];
}
$keyword = '';
$social_right_content = '';
if (api_get_setting('allow_social_tool') == 'true') {
//Block Social Menu
$social_menu_block = SocialManager::show_social_menu('messages');
$social_right_content .= '<div class="actions">';
$social_right_content .= '<a href="'.api_get_path(WEB_PATH).'main/messages/inbox.php?f=social">'.
$actionsLeft = '<a href="'.api_get_path(WEB_PATH).'main/messages/inbox.php?f=social">'.
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
if ($action == 'delete') {
@ -118,20 +124,19 @@ if ($action == 'delete') {
if (isset($_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]);
}
$delete_list_id=array();
$social_right_content .= MessageManager::outbox_display();
} elseif($action =='deleteone') {
$delete_list_id=array();
$social_right_content .= MessageManager::outbox_display($keyword);
} elseif ($action == 'deleteone') {
$delete_list_id = array();
$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();
$social_right_content .= MessageManager::outbox_display();
$social_right_content .= MessageManager::outbox_display($keyword);
} else {
$social_right_content .= MessageManager::outbox_display();
$social_right_content .= MessageManager::outbox_display($keyword);
}
$tpl = new Template(get_lang('ComposeMessage'));
@ -146,7 +151,6 @@ if (api_get_setting('allow_social_tool') == 'true') {
} else {
$content = $social_right_content;
$tpl->assign('actions', $actions);
//$tpl->assign('message', $show_message);
$tpl->assign('content', $content);
$tpl->display_one_col_template();
}

Loading…
Cancel
Save