From 0a887d5c647bc4901eb99bc0b2dfd3bc77b0d02e Mon Sep 17 00:00:00 2001 From: Julio Montoya Date: Mon, 31 Jan 2011 18:11:22 +0100 Subject: [PATCH] Adding a counter of the new events in the social tab + fixing a bug when sending a message --- main/inc/lib/banner.lib.php | 25 +++++++++++++++++++++---- main/inc/lib/message.lib.php | 8 +++++--- main/inc/lib/social.lib.php | 4 ++-- main/inc/lib/tracking.lib.php | 20 ++++++++++++++++++-- main/messages/new_message.php | 11 ++++------- 5 files changed, 50 insertions(+), 18 deletions(-) diff --git a/main/inc/lib/banner.lib.php b/main/inc/lib/banner.lib.php index a8d1d74665..a693a74138 100755 --- a/main/inc/lib/banner.lib.php +++ b/main/inc/lib/banner.lib.php @@ -10,11 +10,10 @@ require_once(api_get_path(SYS_CODE_PATH).'inc/banner.inc.php'); * * @return array containing all the possible tabs * - * @version Dokeos 1.8.4 * @author Patrick Cool , Ghent University */ function get_tabs() { - global $_course, $rootAdminWeb, $_user; + global $_course; // Campus Homepage $navigation[SECTION_CAMPUS]['url'] = api_get_path(WEB_PATH).'index.php'; @@ -65,8 +64,26 @@ function get_tabs() { // Social if (api_get_setting('allow_social_tool')=='true') { - $navigation['social']['url'] = api_get_path(WEB_CODE_PATH).'social/home.php'; - $navigation['social']['title'] = get_lang('SocialNetwork'); + $navigation['social']['url'] = api_get_path(WEB_CODE_PATH).'social/home.php'; + + require_once api_get_path(LIBRARY_PATH).'message.lib.php'; + require_once api_get_path(LIBRARY_PATH).'social.lib.php'; + + // get count unread message and total invitations + $count_unread_message = MessageManager::get_number_of_messages(true); + + + $number_of_new_messages_of_friend = SocialManager::get_message_number_invitation_by_user_id(api_get_user_id()); + $group_pending_invitations = GroupPortalManager::get_groups_by_user(api_get_user_id(), GROUP_USER_PERMISSION_PENDING_INVITATION,false); + $group_pending_invitations = 0; + if (!empty($group_pending_invitations )) { + $group_pending_invitations = count($group_pending_invitations); + } + $total_invitations = intval($number_of_new_messages_of_friend) + $group_pending_invitations + intval($count_unread_message); + $total_invitations = (!empty($total_invitations)?' ('.$total_invitations.')':''); + + + $navigation['social']['title'] = get_lang('SocialNetwork'). $total_invitations; } // Dashboard diff --git a/main/inc/lib/message.lib.php b/main/inc/lib/message.lib.php index 76146fc4d3..ff06bc620a 100755 --- a/main/inc/lib/message.lib.php +++ b/main/inc/lib/message.lib.php @@ -244,16 +244,18 @@ class MessageManager $content = Database::escape_string($content); //message in inbox for user friend + //@todo is possible to edit a message?????????? if ($edit_message_id) { - $query = " UPDATE $table_message SET update_date = '".date('Y-m-d H:i:s')."', title = '$subject', content = '$content' WHERE id = '$edit_message_id' "; + $query = " UPDATE $table_message SET update_date = '".api_get_utc_datetime()."', title = '$subject', content = '$content' WHERE id = '$edit_message_id' "; $result = Database::query($query); $inbox_last_id = $edit_message_id; } else { $query = "INSERT INTO $table_message(user_sender_id, user_receiver_id, msg_status, send_date, title, content, group_id, parent_id, update_date ) ". - " VALUES ('$user_sender_id', '$receiver_user_id', '1', '".date('Y-m-d H:i:s')."','$subject','$content','$group_id','$parent_id', '".date('Y-m-d H:i:s')."')"; + " VALUES ('$user_sender_id', '$receiver_user_id', '1', '".api_get_utc_datetime()."','$subject','$content','$group_id','$parent_id', '".api_get_utc_datetime()."')"; $result = Database::query($query); $inbox_last_id = Database::insert_id(); } + // save attachment file for inbox messages if (is_array($file_attachments)) { @@ -269,7 +271,7 @@ class MessageManager if (empty($group_id)) { //message in outbox for user friend or group $sql = "INSERT INTO $table_message(user_sender_id, user_receiver_id, msg_status, send_date, title, content, group_id, parent_id, update_date ) ". - " VALUES ('$user_sender_id', '$receiver_user_id', '4', '".date('Y-m-d H:i:s')."','$subject','$content', '$group_id', '$parent_id', '".date('Y-m-d H:i:s')."')"; + " VALUES ('$user_sender_id', '$receiver_user_id', '4', '".api_get_utc_datetime()."','$subject','$content', '$group_id', '$parent_id', '".api_get_utc_datetime()."')"; $rs = Database::query($sql); $outbox_last_id = Database::insert_id(); diff --git a/main/inc/lib/social.lib.php b/main/inc/lib/social.lib.php index 910ba05477..b725a30dae 100755 --- a/main/inc/lib/social.lib.php +++ b/main/inc/lib/social.lib.php @@ -535,8 +535,8 @@ class SocialManager extends UserManager { $user_id = api_get_user_id(); } - $show_groups = array('groups', 'group_messages', 'messages_list', 'group_add', 'mygroups', 'group_edit', 'member_list', 'invite_friends', 'waiting_list'); - $show_messages = array('messages', 'messages_inbox', 'messages_outbox', 'messages_compose'); + $show_groups = array('groups', 'group_messages', 'messages_list', 'group_add', 'mygroups', 'group_edit', 'member_list', 'invite_friends', 'waiting_list'); + $show_messages = array('messages', 'messages_inbox', 'messages_outbox', 'messages_compose'); // get count unread message and total invitations $count_unread_message = MessageManager::get_number_of_messages(true); diff --git a/main/inc/lib/tracking.lib.php b/main/inc/lib/tracking.lib.php index 6839543159..2219e2df7d 100755 --- a/main/inc/lib/tracking.lib.php +++ b/main/inc/lib/tracking.lib.php @@ -325,7 +325,7 @@ class Tracking { // Compose a filter based on optional exercise given $condition_quiz = ""; - if(!empty($exercise_id)) { + if (!empty($exercise_id)) { $exercise_id = intval($exercise_id); $condition_quiz =" AND id = $exercise_id "; } @@ -347,9 +347,25 @@ class Tracking { } else { $condition_user = " AND exe_user_id = '$student_id' "; } + + if (empty($exercise_id)) { + $sql = "SELECT id FROM $tbl_course_quiz WHERE active <> -1 $condition_quiz"; + $exercises = Database::fetch_row(Database::query($sql)); + $exercise_list = array(); + $exercise_id = 0; + if (!empty($exercises)) { + foreach($exercises as $row) { + $exercise_list[] = $row['id']; + } + $exercise_id = implode("','",$exercise_list); + } + } + + $count_quiz = Database::fetch_row(Database::query($sql)); + $sql = "SELECT SUM(exe_result/exe_weighting*100) as avg_score, COUNT(*) as num_attempts FROM $tbl_stats_exercise - WHERE exe_exo_id IN (SELECT id FROM $tbl_course_quiz WHERE active <> -1 $condition_quiz) + WHERE exe_exo_id IN ('".$exercise_id."') $condition_user AND orig_lp_id = 0 AND exe_cours_id = '$course_code' diff --git a/main/messages/new_message.php b/main/messages/new_message.php index f3e224c134..7317725e41 100755 --- a/main/messages/new_message.php +++ b/main/messages/new_message.php @@ -219,9 +219,7 @@ function manage_form ($default, $select_from_user_list = null) { $form->setDefaults($default); if ($form->validate()) { - - $check = Security::check_token('post'); - + $check = Security::check_token('post'); if ($check) { $values = $default; $user_list = $values['users']; @@ -232,11 +230,10 @@ function manage_form ($default, $select_from_user_list = null) { $group_id = $values['group_id']; $parent_id = $values['parent_id']; - if (is_array($user_list) && count($user_list)> 0) { + if (is_array($user_list) && count($user_list)> 0) { //all is well, send the message foreach ($user_list as $user) { - $res = MessageManager::send_message($user, $title, $content, $_FILES, $file_comments, $group_id, $parent_id, true); - + $res = MessageManager::send_message($user, $title, $content, $_FILES, $file_comments, $group_id, $parent_id); if ($res) { if (is_string($res)) { Display::display_error_message($res); @@ -244,7 +241,7 @@ function manage_form ($default, $select_from_user_list = null) { MessageManager::display_success_message($user); } } - } + } } else { Display::display_error_message('ErrorSendingMessage'); }