/** * return the membre user list of the course * * @return array of user identification */ public function getRecipientList() { $userList = array(); $userCourseList = claro_get_course_user_list($this->courseId); if ($userCourseList) { foreach ($userCourseList as $user) { $userList[] = (int) $user['user_id']; } } return $userList; }
/** * return the autorisation of the current user to send a message to the user in parameter * * @param int $userId user id of the recipient * @return bool true if the current user is autorised do send a message to the user in parameter * flase if the current user is not autorised do send a message to the user in parameter */ function current_user_is_allowed_to_send_message_to_user($userId) { if (claro_is_platform_admin()) { return true; } if (claro_is_in_a_group()) { if (claro_is_group_tutor() || claro_is_course_manager()) { $userList = get_group_user_list(claro_get_current_group_id(), claro_get_current_course_id()); for ($count = 0; $count < count($userList); $count++) { if ($userList[$count]['id'] == $userId) { return true; } } } return false; } elseif (claro_is_in_a_course()) { if (claro_is_course_manager()) { $userList = claro_get_course_user_list(); for ($count = 0; $count < count($userList); $count++) { if ($userList[$count]['user_id'] == $userId) { return true; } } } return false; } else { // can answerd to a user $tableName = get_module_main_tbl(array('im_message', 'im_recipient')); $select = "SELECT count(*)\n" . " FROM `" . $tableName['im_message'] . "` as M\n" . " INNER JOIN `" . $tableName['im_recipient'] . "` as R ON R.message_id = M.message_id\n" . " WHERE (R.user_id = " . (int) claro_get_current_user_id() . " OR R.user_id = 0)\n" . " AND M.sender = " . (int) $userId; $nbMessage = claro_sql_query_fetch_single_value($select); if ($nbMessage > 0) { return true; } elseif (get_conf('userCanSendMessage')) { } return true; return false; } }
$recipient->addUserIdList($userIdList); $recipient->sendMessage($message); $dialogBox = new DialogBox(); $dialogBox->success(get_lang('Message sent')); if ($failure = claro_failure::get_last_failure()) { $dialogBox->warning($failure); } $dialogBox->info('<a href="' . $_SERVER['PHP_SELF'] . '"><< ' . get_lang('Back') . '</a>'); $content .= $dialogBox->render(); } // end cmd exSendMessage } else { /* * Get user list of this course */ $singleUserList = claro_get_course_user_list(claro_get_current_course_id()); $userList = array(); if (is_array($singleUserList) && !empty($singleUserList)) { foreach ($singleUserList as $singleUser) { $userList[] = $singleUser; } } /* * Get group list of this course */ $courseTableName = get_module_course_tbl(array('group_team', 'group_rel_team_user')); $courseTableName = get_module_course_tbl(array('group_team', 'group_rel_team_user')); $mainTableName = claro_sql_get_main_tbl(); $sql = "SELECT \n `g`.`id`,\n `g`.`name`,\n COUNT(`cu`.`user_id`) AS `userNb`\n FROM \n `" . $courseTableName['group_team'] . "` AS `g` \n LEFT JOIN \n `" . $courseTableName['group_rel_team_user'] . "` AS `gu`\n ON \n `g`.`id` = `gu`.`team`\n LEFT JOIN \n `" . $mainTableName['rel_course_user'] . "` AS cu\n ON \n `gu`.`user` = cu.user_id\n AND \n cu.code_cours = '" . claro_sql_escape(claro_get_current_course_id()) . "'\n GROUP BY `g`.`id`"; $groupSelect = claro_sql_query_fetch_all($sql); $groupList = array();