function getSidebarMessages() { global $uid, $urlServer, $langFrom, $dateFormatLong, $langDropboxNoMessage, $langMailSubject, $langCourse; $message_content = ''; $mbox = new Mailbox($uid, 0); $msgs = $mbox->getInboxMsgs(''); $msgs = array_filter($msgs, function ($msg) { return !$msg->is_read; }); if (!count($msgs)) { $message_content .= "<li class='list-item no-messages'>" . "<span class='item-wholeline'>" . $langDropboxNoMessage . "</span>" . "</li>"; } else { foreach ($msgs as $message) { if ($message->course_id > 0) { $course_title = q(ellipsize(course_id_to_title($message->course_id), 30)); } else { $course_title = ''; } $message_date = claro_format_locale_date($dateFormatLong, $message->timestamp); $message_content .= "<li class='list-item'> <span class='item-wholeline'> <div class='text-title'>$langFrom: " . display_user($message->author_id, false, false) . "<br> $langMailSubject: <a href='{$urlServer}modules/dropbox/index.php?mid=$message->id'>" . q($message->subject) . "</a> </div>"; if ($course_title) { $message_content .= "<div class='text-grey'>$langCourse: $course_title</div>"; } $message_content .= "<div>$message_date</div> </span> </li>"; } } return $message_content; }
/** * display users logging * Note: $module_id = $course_id = 0 means other logging (e.g. modify user profile, course creation etc.) * @param int $course_id (-1 means all courses) * @param type $user_id (-1 means all users) * @param int $module_id (-1 means all modules) * @param type $logtype (-1 means logtypes) * @param type $date_from * @param type $date_now * @param type script_page * @return none */ public function display($course_id, $user_id, $module_id, $logtype, $date_from, $date_now, $script_page) { global $tool_content, $modules; global $langNoUsersLog, $langDate, $langUser, $langAction, $langDetail, $langCourse, $langModule, $langAdminUsers, $langExternalLinks, $langCourseInfo; $q1 = $q2 = $q3 = $q4 = ''; if ($user_id != -1) { $q1 = "AND user_id = {$user_id}"; // display specific user } if ($logtype > 0) { $q3 = "AND action_type = {$logtype}"; // specific course logging if ($logtype > 3) { // specific system logging $module_id = $course_id = 0; } } elseif ($logtype == -2) { // display all system logging $q2 = "AND module_id = 0"; $q4 = "AND course_id = 0"; } if ($module_id > 0) { $q2 = "AND module_id = {$module_id}"; // display specific module } elseif ($module_id == -1) { // display all course module logging $q2 = "AND module_id > 0"; // but exclude system logging } if ($course_id > 0) { $q4 = "AND course_id = {$course_id}"; // display specific course } elseif ($course_id == -1) { // display all course logging $q4 = "AND course_id > 0"; // but exclude system logging } // count logs $num_of_logs = Database::get()->querySingle("SELECT COUNT(*) AS count FROM log WHERE ts BETWEEN '{$date_from}' AND '{$date_now}' {$q1} {$q2} {$q3} {$q4}")->count; // fetch logs $sql = Database::get()->queryArray("SELECT user_id, course_id, module_id, details, action_type, ts FROM log\n WHERE ts BETWEEN '{$date_from}' AND '{$date_now}'\n {$q1} {$q2} {$q3} {$q4}\n ORDER BY ts DESC"); if ($num_of_logs > 0) { if ($course_id > 0) { $tool_content .= "<div class='alert alert-info'>{$langCourse}: " . q(course_id_to_title($course_id)) . "</div>"; } if ($module_id > 0) { if ($module_id == MODULE_ID_USERS) { $tool_content .= "<div class='alert alert-info'>{$langModule}: " . $langAdminUsers . "</div>"; } elseif ($module_id == MODULE_ID_TOOLADMIN) { $tool_content .= "<div class='alert alert-info'>{$langModule}: " . $langExternalLinks . "</div>"; } else { $tool_content .= "<div class='alert alert-info'>{$langModule}: " . $modules[$module_id]['title'] . "</div>"; } } $tool_content .= "<table id = 'log_results_table' class='tbl'>"; $tool_content .= "<thead>"; // log header $tool_content .= "<tr><th>{$langDate}</th><th>{$langUser}</th>"; if ($course_id == -1) { $tool_content .= "<th>{$langCourse}</th>"; } if ($module_id == -1) { $tool_content .= "<th>{$langModule}</th>"; } $tool_content .= "<th>{$langAction}</th><th>{$langDetail}</th>"; $tool_content .= "</tr>"; $tool_content .= "</thead>"; $tool_content .= "<tbody>"; // display logs foreach ($sql as $r) { $tool_content .= "<tr>"; $tool_content .= "<td>" . nice_format($r->ts, true) . "</td>"; if ($r->user_id == 0 or $logtype == LOG_DELETE_USER) { // login failures or delete user $tool_content .= "<td> ———</td>"; } else { $tool_content .= "<td>" . display_user($r->user_id, false, false) . "</td>"; } if ($course_id == -1) { // all courses $tool_content .= "<td>" . q(course_id_to_title($r->course_id)) . "</td>"; } if ($module_id == -1) { // all modules $mid = $r->module_id; if ($mid == MODULE_ID_USERS) { $tool_content .= "<td>" . $langAdminUsers . "</td>"; } elseif ($mid == MODULE_ID_TOOLADMIN) { $tool_content .= "<td>" . $langExternalLinks . "</td>"; } elseif ($mid == MODULE_ID_SETTINGS) { $tool_content .= "<td>" . $langCourseInfo . "</td>"; } else { $tool_content .= "<td>" . $modules[$mid]['title'] . "</td>"; } } $tool_content .= "<td>" . $this->get_action_names($r->action_type) . "</td>"; if ($course_id == 0 or $module_id == 0) { // system logging $tool_content .= "<td>" . $this->other_action_details($r->action_type, $r->details) . "</td>"; } else { // course logging $tool_content .= "<td>" . $this->course_action_details($r->module_id, $r->details) . "</td>"; } $tool_content .= "</tr>"; } $tool_content .= "</tbody>"; $tool_content .= "</table>"; } else { $tool_content .= "<div class='alert alert-warning'>{$langNoUsersLog}</div>"; } return; }
if (isset($_GET['cid'])) { $cid = q($_GET['cid']); $_SESSION['cid_tmp'] = $cid; } if (!isset($_GET['cid'])) { $cid = $_SESSION['cid_tmp']; } if (!isset($_POST['doit'])) { $tool_content .= " <div class='form-wrapper'> <form class='form-horizontal' method='post' action='$_SERVER[SCRIPT_NAME]?u=$_SESSION[uid]&cid=$cid'> <div class='form-group'> <div class='col-sm-12'> $langConfirmUnregCours: <b>" . q(course_id_to_title($cid)) . "</b> </div> </div> <div class='form-group'> <label class='col-sm-2'>$langYes:</label> <div class='col-sm-10'> <button class='btn btn-danger' name='doit'><i class='fa fa-sign-out'></i> $langUnregCourse</button> </div> </div> <div class='form-group'> <label class='col-sm-2'>$langNo:</label> <div class='col-sm-10'> <a href='{$urlAppend}main/portfolio.php' class='btn btn-default'><i class='fa fa-reply'></i> $langCancel</a> </div> </div> </form>
require_once 'include/sendMail.inc.php'; require_once 'include/log.php'; $toolName = $langUsers; $pageName = $langAddUser; $navigation[] = array('url' => "index.php?course={$course_code}", 'name' => $langUsers); if (isset($_GET['add'])) { $uid_to_add = intval($_GET['add']); $result = Database::get()->query("INSERT IGNORE INTO course_user (user_id, course_id, status, reg_date)\n VALUES (?d, ?d, " . USER_STUDENT . ", CURDATE())", $uid_to_add, $course_id); Log::record($course_id, MODULE_ID_USERS, LOG_INSERT, array('uid' => $uid_to_add, 'right' => '+5')); if ($result) { $tool_content .= "<div class='alert alert-success'>{$langTheU} {$langAdded}</div>"; // notify user via email $email = uid_to_email($uid_to_add); if (!empty($email) and email_seems_valid($email)) { $emailsubject = "{$langYourReg} " . course_id_to_title($course_id); $emailbody = "{$langNotifyRegUser1} '" . course_id_to_title($course_id) . "' {$langNotifyRegUser2} {$langFormula} \n{$gunet}"; send_mail('', '', '', $email, $emailsubject, $emailbody, $charset); } } else { $tool_content .= "<div class='alert alert-warning'>{$langAddError}</div>"; } $tool_content .= "<br /><p><a href='{$_SERVER['SCRIPT_NAME']}?course={$course_code}'>{$langAddBack}</a></p><br />\n"; } else { register_posted_variables(array('search_surname' => true, 'search_givenname' => true, 'search_username' => true, 'search_am' => true), 'any'); $tool_content .= action_bar(array(array('title' => $langBack, 'url' => "index.php?course={$course_code}", 'icon' => 'fa-reply', 'level' => 'primary-label'))); $tool_content .= "<div class='alert alert-info'>{$langAskUser}</div>\n <div class='form-wrapper'>\n <form class='form-horizontal' role='form' method='post' action='{$_SERVER['SCRIPT_NAME']}?course={$course_code}'> \n <fieldset>\n <div class='form-group'>\n <label for='surname' class='col-sm-2 control-label'>{$langSurname}:</label>\n <div class='col-sm-10'>\n <input class='form-control' id='surname' type='text' name='search_surname' value='" . q($search_surname) . "' placeholder='{$langSurname}'></div>\n </div>\n <div class='form-group'>\n <label for='name' class='col-sm-2 control-label'>{$langName}:</label>\n <div class='col-sm-10'>\n <input class='form-control' id='name' type='text' name='search_givenname' value='" . q($search_givenname) . "' placeholder='{$langName}'></div>\n </div>\n <div class='form-group'>\n <label for='username' class='col-sm-2 control-label'>{$langUsername}:</label>\n <div class='col-sm-10'>\n <input class='form-control' id='username' type='text' name='search_username' value='" . q($search_username) . "' placeholder='{$langUsername}'></div>\n </div>\n <div class='form-group'>\n <label for='am' class='col-sm-2 control-label'>{$langAm}:</label>\n <div class='col-sm-10'>\n <input class='form-control' id='am' type='text' name='search_am' value='" . q($search_am) . "' placeholder='{$langAm}'></div>\n </div>\n <div class='col-sm-offset-2 col-sm-10'>\n <input class='btn btn-primary' type='submit' name='search' value='{$langSearch}'>\n <a class='btn btn-default' href='index.php?course={$course_code}'>{$langCancel}</a>\n </div>\n </fieldset>\n </form>\n </div>"; $search = array(); $values = array(); foreach (array('surname', 'givenname', 'username', 'am') as $term) { $tvar = 'search_' . $term; if (!empty($GLOBALS[$tvar])) {
</a><span class='smaller'> (".format_file_size($msg->filesize).")</span><br />"; } else { $filename = ''; } $i = 0; if ($mbox_type == 'inbox') { $td[$i++] = "<i class='fa $envelove_icon' title='".q($msg->subject)."' /></i> $bold_start<a href='inbox.php?mid=$msg->id".$urlstr."'>".q($msg->subject)."</a>".$bold_end.$filename; } else { $td[$i++] = "<i class='fa fa-envelope-o' title='".q($msg->subject)."' /></i> <a href='outbox.php?mid=$msg->id".$urlstr."'>".q($msg->subject)."</a>".$filename; } if ($course_id == 0) { if ($msg->course_id != 0) { $td[$i++] = "$bold_start<a class=\"outtabs\" href=\"index.php?course=".course_id_to_code($msg->course_id)."\">".course_id_to_title($msg->course_id)."</a>$bold_end"; } else { $td[$i++] = ""; } } if ($mbox_type == 'inbox') { $td[$i++] = display_user($msg->author_id, false, false, "outtabs"); } else { $recipients = ''; foreach ($msg->recipients as $r) { if ($r != $msg->author_id) { $recipients .= display_user($r, false, false, "outtabs").'<br/>'; } } $td[$i++] = $recipients;
} else { $tool_content .= action_bar(array( array('title' => $langBack, 'url' => "index.php", 'icon' => 'fa-reply', 'level' => 'primary-label'))); } // Delete course if (isset($_GET['delete']) && $course_id) { delete_course($course_id); $tool_content .= "<div class='alert alert-success'>" . $langCourseDelSuccess . "</div>"; } // Display confirmatiom message for course deletion else { if (!Database::get()->querySingle("SELECT * FROM course WHERE id = ?d", $course_id)) { $tool_content .= "<p class='right'><a href='index.php'>$langBack</a></p>"; draw($tool_content, 3); exit(); } $tool_content .= "<div class='alert alert-danger'>" . $langCourseDelConfirm2 . " <em>" . q(course_id_to_title($course_id)) . "</em>; <br><br><i>" . $langNoticeDel . "</i><br> </div>"; $tool_content .= "<ul class='list-group'> <li class='list-group-item'><a href='" . $_SERVER['SCRIPT_NAME'] . "?c=" . q($course_id) . "&delete=yes'><b>$langYes</b></a></li> <li class='list-group-item'><a href='listcours.php'><b>$langNo</b></a></li> </ul>"; } draw($tool_content, 3);
if (!$doit) { if ($u_account && $c) { $tool_content .= "<div class='alert alert-warning'>$langConfirmDeleteQuestion1 <em>$u_realname ($u_account)</em> $langConfirmDeleteQuestion2 <em>" . q(course_id_to_title($c)) . "</em> </div> <div class='col-sm-offset-5 btn btn-primary'><a href='$_SERVER[SCRIPT_NAME]?u=$u&c=$c&doit=yes'>$langDelete</a></div>"; } else { $tool_content .= "<div class='alert alert-danger'>$langErrorUnreguser</div>"; } } else { if ($c and $u) { $q = Database::get()->query("DELETE from course_user WHERE user_id = ?d AND course_id = ?d", $u, $c); if ($q->affectedRows>0) { Database::get()->query("DELETE FROM group_members WHERE user_id = ?d AND group_id IN (SELECT id FROM `group` WHERE course_id = ?d)", $u, $c); $tool_content .= "<div class='alert alert-info'>$langWithUsername \"$u_account\" $langWasCourseDeleted <em>" . q(course_id_to_title($c)) . "</em></div>"; $m = 1; } } else { $tool_content .= "<div class='alert alert-danger'>$langErrorDelete</div>"; } $tool_content .= "<br> "; if ((isset($m)) && (!empty($m))) { $tool_content .= "<br><a href='edituser.php?u=$u'>$langEditUser $u_account</a> "; } } draw($tool_content, 3);
/** * @brief send emails to course prof * @global type $langSendingMessage * @global type $langHeaderMessage * @global type $langContactIntro * @param type $course_id * @param type $content * @param type $from_name * @param type $from_address * @return type */ function email_profs($course_id, $content, $from_name, $from_address) { global $langSendingMessage, $langHeaderMessage, $langContactIntro; $title = course_id_to_title($course_id); $ret = "<div class='alert alert-info'>$langSendingMessage $title</div>"; $public_code = course_id_to_public_code($course_id); $profs = Database::get()->queryArray("SELECT user.id AS prof_uid, user.email AS email, user.surname, user.givenname FROM course_user JOIN user ON user.id = course_user.user_id WHERE course_id = ?d AND course_user.status = " . USER_TEACHER . "", $course_id); $message = sprintf($langContactIntro, $from_name, $from_address, $content); $subject = "$langHeaderMessage ($public_code - $title)"; foreach ($profs as $prof) { if (!get_user_email_notification_from_courses($prof->prof_uid) or (!get_user_email_notification($prof->prof_uid, $course_id))) { continue; } else { $to_name = $prof->givenname . ' ' . $prof->surname; $ret .= "<div class='alert alert-success'>" . icon('fa-university') . " " . q($to_name) . "</div>"; if (!send_mail($from_name, $from_address, $to_name, $prof->email, $subject, $message, $GLOBALS['charset'])) { $ret .= "<div class='alert alert-warning'>$GLOBALS[langErrorSendingMessage]</div>"; } } } return $ret; }
/** * @brief get user personal messages * @global type $uid * @global type $urlServer * @global type $langFrom * @global type $dateFormatLong * @param type $lesson_id * @return string */ function getUserMessages() { global $uid, $urlServer, $langFrom, $dateFormatLong; $message_content = ''; $mbox = new Mailbox($uid, 0); $msgs = $mbox->getInboxMsgs('', 5); foreach ($msgs as $message) { if ($message->course_id > 0) { $course_title = q(ellipsize(course_id_to_title($message->course_id), 30)); } else { $course_title = ''; } $message_date = claro_format_locale_date($dateFormatLong, $message->timestamp); $message_content .= "<li class='list-item'> <div class='item-wholeline'> <div class='text-title'>$langFrom ".display_user($message->author_id, false, false).": <a href='{$urlServer}modules/dropbox/index.php?mid=$message->id'>" .q($message->subject)."</a> </div> <div class='text-grey'>$course_title</div> <div>$message_date</div> </div> </li>"; } return $message_content; }
<div class='panel-body'> <div class='row margin-bottom-thin'> <div class='col-sm-2'> <strong>$langSubject:</strong> </div> <div class='col-sm-10'> ".q($msg->subject)." </div> </div>"; if ($msg->course_id != 0 && $course_id == 0) { $out .= " <div class='row margin-bottom-thin'> <div class='col-sm-2'> <strong>$langCourse:</strong> </div> <div class='col-sm-10'> <a class=\"outtabs\" href=\"index.php?course=".course_id_to_code($msg->course_id)."\">".course_id_to_title($msg->course_id)."</a> </div> </div>"; } $out .= " <div class='row margin-bottom-thin'> <div class='col-sm-2'> <strong>$langDate:</strong> </div> <div class='col-sm-10'> ".nice_format(date('Y-m-d H:i:s',$msg->timestamp), true)." </div> </div> <div class='row margin-bottom-thin'> <div class='col-sm-2'> <strong>$langSender:</strong>
if (isset($_GET['add'])) { $uid_to_add = intval(getDirectReference($_GET['add'])); $result = Database::get()->query("INSERT IGNORE INTO course_user (user_id, course_id, status, reg_date, document_timestamp) VALUES (?d, ?d, " . USER_STUDENT . ", " . DBHelper::timeAfter() . ", " . DBHelper::timeAfter(). ")", $uid_to_add, $course_id); Log::record($course_id, MODULE_ID_USERS, LOG_INSERT, array('uid' => $uid_to_add, 'right' => '+5')); if ($result) { Session::Messages( $langTheU . $langAdded, "alert alert-success"); //$tool_content .= "<div class='alert alert-success'>$langTheU $langAdded</div>"; // notify user via email $email = uid_to_email($uid_to_add); if (!empty($email) and email_seems_valid($email)) { $emailsubject = "$langYourReg " . course_id_to_title($course_id); $emailbody = "$langNotifyRegUser1 '" . course_id_to_title($course_id) . "' $langNotifyRegUser2 $langFormula \n$gunet"; send_mail('', '', '', $email, $emailsubject, $emailbody, $charset); } } else { Session::Messages( $langAddError, "alert alert-warning"); //$tool_content .= "<div class='alert alert-warning'>$langAddError</div>"; } redirect_to_home_page("modules/user/index.php?course=$course_code"); //$tool_content .= "<br /><p><a href='$_SERVER[SCRIPT_NAME]?course=$course_code'>$langAddBack</a></p><br />\n"; } else { register_posted_variables(array('search_surname' => true, 'search_givenname' => true, 'search_username' => true, 'search_am' => true), 'any'); $tool_content .= action_bar(array(
function notify_users($forum_id, $forum_name, $topic_id, $subject, $message, $topic_date) { global $logo, $langNewForumNotify, $course_code, $course_code, $course_id, $langForumFrom, $uid, $langBodyForumNotify, $langInForums, $urlServer, $langdate, $langSender, $langCourse, $langCategory, $langForum, $langSubject, $langNote, $langLinkUnsubscribe, $langHere, $charset, $langMailBody; $subject_notify = "$logo - $langNewForumNotify"; $category_id = forum_category($forum_id); $cat_name = category_name($category_id); $c = course_code_to_title($course_code); $name = uid_to_name($uid); $title = course_id_to_title($course_id); $header_html_topic_notify = "<!-- Header Section --> <div id='mail-header'> <br> <div> <div id='header-title'>$langBodyForumNotify <a href='{$urlServer}courses/$course_code'>".q($title)."</a>.</div> <ul id='forum-category'> <li><span><b>$langCategory:</b></span> <span>" . q($cat_name) . "</span></li> <li><span><b>$langForum:</b></span> <span><a href='{$urlServer}modules/forum/viewforum.php?course=$course_code&forum=$forum_id'>" . q($forum_name) . "</a></span></li> <li><span><b>$langForumFrom :</b></span> <span>$name</span></li> <li><span><b>$langdate:</b></span> <span> $topic_date </span></li> </ul> </div> </div>"; $body_html_topic_notify = "<!-- Body Section --> <div id='mail-body'> <br> <div><b>$langSubject:</b> <span class='left-space'><a href='{$urlServer}modules/forum/viewforum.php?course=$course_code&forum=$forum_id&topic=$topic_id'>" . q($subject) . "</a></span></div><br> <div><b>$langMailBody:</b></div> <div id='mail-body-inner'> $message </div> </div>"; $footer_html_topic_notify = "<!-- Footer Section --> <div id='mail-footer'> <br> <div> <small>" . sprintf($langLinkUnsubscribe, q($title)) ." <a href='${urlServer}main/profile/emailunsubscribe.php?cid=$course_id'>$langHere</a></small> </div> </div>"; $html_topic_notify = $header_html_topic_notify.$body_html_topic_notify.$footer_html_topic_notify; $plain_message = html2text($message); $plain_topic_notify = "$langBodyForumNotify $langInForums\n" . "$langSender: $name\n" . "$langCourse: $title\n {$urlServer}courses/$course_code/\n" . "$langCategory: $cat_name\n" . "$langForum: $forum_name\n {$urlServer}modules/forum/viewforum.php?course=$course_code&forum=$forum_id\n" . "$langSubject: $subject\n {$urlServer}modules/forum/viewforum.php?course=$course_code&forum=$forum_id&topic=$topic_id\n" . "--------------------------------------------\n$plain_message\n" . "--------------------------------------------\n" . "$langNote: " . canonicalize_whitespace(str_replace('<br />', "\n", sprintf($langLinkUnsubscribe, q($title)))) . " $langHere:\n${urlServer}main/profile/emailunsubscribe.php?cid=$course_id\n"; $users = Database::get()->queryArray("SELECT DISTINCT user_id FROM forum_notify WHERE (forum_id = ?d OR cat_id = ?d) AND notify_sent = 1 AND course_id = ?d AND user_id != ?d", $forum_id, $category_id, $course_id, $uid); $email = array(); foreach ($users as $user) { if (get_user_email_notification($user->user_id, $course_id)) { $email[] = uid_to_email($user->user_id); } } send_mail_multipart('', '', '', $email, $subject_notify, $plain_topic_notify, $html_topic_notify, $charset); }
$course_id = 0; } if (isset($_GET['mid'])) { $mid = intval($_GET['mid']); $msg = new Msg($mid, $uid, 'msg_view'); if (!$msg->error) { $urlstr = ''; if ($course_id != 0) { $urlstr = "?course=" . $course_code; } $out = "<div style=\"float:right;\"><a href=\"outbox.php" . $urlstr . "\">{$langBack}</a></div>"; $out .= "<div id='out_del_msg'></div><div id='out_msg_area'><table class='table-default'>"; $out .= "<tr><td>{$langSubject}:</td><td>" . q($msg->subject) . "</td></tr>"; $out .= "<tr id='{$msg->id}'><td>{$langDelete}:</td><td class='delete'><i class='class='fa fa-times'></i></td></tr>"; if ($msg->course_id != 0 && $course_id == 0) { $out .= "<tr><td>{$langCourse}:</td><td><a class=\"outtabs\" href=\"index.php?course=" . course_id_to_code($msg->course_id) . "\">" . course_id_to_title($msg->course_id) . "</a></td></tr>"; } $out .= "<tr><td>{$langDate}:</td><td>" . nice_format(date('Y-m-d H:i:s', $msg->timestamp), true) . "</td></tr>"; $out .= "<tr><td>{$langSender}:</td><td>" . display_user($msg->author_id, false, false, "outtabs") . "</td></tr>"; $recipients = ''; foreach ($msg->recipients as $r) { if ($r != $msg->author_id) { $recipients .= display_user($r, false, false, "outtabs") . '<br/>'; } } $out .= "<tr><td>{$langRecipients}:</td><td>" . $recipients . "</td></tr>"; $out .= "<tr><td>{$langMessage}:</td><td id='out_msg_body'>" . standard_text_escape($msg->body) . "</td></tr>"; if ($msg->filename != '') { $out .= "<tr><td>{$langAttachedFile}</td><td><a href=\"dropbox_download.php?course=" . course_id_to_code($msg->course_id) . "&id={$msg->id}\" class=\"outtabs\" target=\"_blank\">{$msg->real_filename}\r\n <img class='outtabs' src='{$themeimg}/save.png' /></a> (" . format_file_size($msg->filesize) . ")</td></tr>"; } $out .= "</table><br/>";
* Panepistimiopolis Ilissia, 15784, Athens, Greece * e-mail: info@openeclass.org * ======================================================================== */ $require_login = TRUE; include '../include/baseTheme.php'; require_once 'include/log.php'; $pageName = $langUnregCourse; if (isset($_GET['cid'])) { $cid = q($_GET['cid']); $_SESSION['cid_tmp'] = $cid; } if (!isset($_GET['cid'])) { $cid = $_SESSION['cid_tmp']; } if (!isset($_GET['doit']) or $_GET['doit'] != "yes") { $tool_content .= "\n <table width='100%'>\n <tbody>\n <tr>\n <td class='alert alert-danger' height='60' colspan='2'>\n <p>{$langConfirmUnregCours}:</p><p> <em>" . q(course_id_to_title($cid)) . "</em>; </p>\n <ul class='listBullet'>\n <li>{$langYes}:\n <a href='{$_SERVER['SCRIPT_NAME']}?u={$_SESSION['uid']}&cid={$cid}&doit=yes' class=mainpage>{$langUnregCourse}</a>\n </li>\n <li>{$langNo}: <a href='../index.php' class=mainpage>{$langBack}</a>\n </li></ul>\n </td>\n </tr>\n </tbody>\n </table>"; } else { if (isset($_SESSION['uid']) and $_GET['u'] == $_SESSION['uid']) { $q = Database::get()->query("DELETE from course_user\n WHERE course_id = ?d\n AND user_id = ?d", $cid, $_GET['u']); if ($q->affectedRows > 0) { Log::record($cid, MODULE_ID_USERS, LOG_DELETE, array('uid' => $_GET['u'], 'right' => 0)); $code = course_id_to_code($cid); // clear session access to lesson unset($_SESSION['dbname']); unset($_SESSION['cid_tmp']); unset($_SESSION['courses'][$code]); $tool_content .= "<div class='alert alert-success'>{$langCoursDelSuccess}</div>"; } else { $tool_content .= "<div class='alert alert-danger'>{$langCoursError}</div>"; } }
Database::get()->query("INSERT INTO forum_user_stats (user_id, num_posts, course_id) VALUES (?d,?d,?d)", $uid, $forum_user_stats->c, $course_id); Database::get()->query("UPDATE forum_topic\n SET last_post_id = ?d\n WHERE id = ?d\n AND forum_id = ?d", $post_id, $topic_id, $forum_id); Database::get()->query("UPDATE forum\n SET num_topics = num_topics+1,\n num_posts = num_posts+1,\n last_post_id = ?d\n\t\tWHERE id = ?d", $post_id, $forum_id); $topic = $topic_id; $total_forum = get_total_topics($forum_id); $total_topic = get_total_posts($topic) - 1; // subtract 1 because we want the number of replies, not the number of posts. // -------------------------------- // notify users // -------------------------------- $subject_notify = "{$logo} - {$langNewForumNotify}"; $category_id = forum_category($forum_id); $cat_name = category_name($category_id); $c = course_code_to_title($course_code); $name = uid_to_name($uid); $title = course_id_to_title($course_id); $forum_message = "-------- {$langBodyMessage} ({$langSender}: {$name})\n{$message}--------"; $plain_forum_message = q(html2text($forum_message)); $body_topic_notify = "{$langBodyForumNotify} {$langInForums} '" . q($forum_name) . "' \n {$langInCat} '" . q($cat_name) . "' {$langTo} {$langCourseS} '{$c}' <br /><br />" . q($forum_message) . "<br />\n <br />{$gunet}<br /><a href='{$urlServer}courses/{$course_code}'>{$urlServer}courses/{$course_code}</a>"; $plain_body_topic_notify = "{$langBodyForumNotify} {$langInForums} '" . q($forum_name) . "' {$langInCat} '" . q($cat_name) . "' {$langTo} {$langCourseS} '{$c}' \n\n{$plain_forum_message} \n\n{$gunet}\n<a href='{$urlServer}courses/{$course_code}'>{$urlServer}courses/{$course_code}</a>"; $linkhere = " <a href='{$urlServer}main/profile/emailunsubscribe.php?cid={$course_id}'>{$langHere}</a>."; $unsubscribe = "<br /><br />{$langNote}: " . sprintf($langLinkUnsubscribe, $title); $plain_body_topic_notify .= $unsubscribe . $linkhere; $body_topic_notify .= $unsubscribe . $linkhere; $sql = Database::get()->queryArray("SELECT DISTINCT user_id FROM forum_notify\n\t\t\tWHERE (forum_id = ?d OR cat_id = ?d)\n\t\t\tAND notify_sent = 1 AND course_id = ?d AND user_id != ?d", $forum_id, $category_id, $course_id, $uid); foreach ($sql as $r) { if (get_user_email_notification($r->user_id, $course_id)) { $emailaddr = uid_to_email($r->user_id); send_mail_multipart('', '', '', $emailaddr, $subject_notify, $plain_body_topic_notify, $body_topic_notify, $charset); } }
$filename = safe_filename($format); $recipients = $_POST["recipients"]; //After uploading the file, create the db entries if (!$error) { $filename_final = $dropbox_dir . '/' . $filename; move_uploaded_file($filetmpname, $filename_final) or die($langUploadError); @chmod($filename_final, 0644); $msg = new Msg($uid, $cid, $subject, $_POST['body'], $recipients, $filename, $real_filename, $filesize); } chdir($cwd); } if (isset($_POST['mailing']) and $_POST['mailing']) { // send mail to recipients of dropbox file if ($course_id != 0 || isset($_POST['course'])) { //message in course context $c = course_id_to_title($cid); $subject_dropbox = "{$c} (" . course_id_to_code($cid) . ") - {$langNewDropboxFile}"; foreach ($recipients as $userid) { if (get_user_email_notification($userid, $cid)) { $linkhere = "<a href='{$urlServer}main/profile/emailunsubscribe.php?cid={$cid}'>{$langHere}</a>."; $unsubscribe = "<br />" . sprintf($langLinkUnsubscribe, $c); $body_dropbox_message = "{$langSender}: " . q($_SESSION['givenname']) . " " . q($_SESSION['surname']) . " <br /><br /> {$subject} <br /><br />" . $_POST['body'] . "<br />"; if ($filesize > 0) { $body_dropbox_message .= "<a href='{$urlServer}modules/dropbox/dropbox_download.php?course=" . course_id_to_code($cid) . "&id={$msg->id}'>[{$langAttachedFile}]</a><br /><br />"; } $body_dropbox_message .= "{$langNote}: {$langDoNotReply} <a href='{$urlServer}modules/dropbox/index.php?course=" . course_id_to_code($cid) . "'>{$langHere}</a>.<br />"; $body_dropbox_message .= "{$unsubscribe} {$linkhere}"; $plain_body_dropbox_message = html2text($body_dropbox_message); $emailaddr = uid_to_email($userid); send_mail_multipart('', '', '', $emailaddr, $subject_dropbox, $plain_body_dropbox_message, $body_dropbox_message, $charset); }
validateUserNodes(intval($u), true); } $u_account = $u ? q(uid_to_name($u, 'username')) : ''; $u_realname = $u ? q(uid_to_name($u)) : ''; $userdata = user_get_data($u); $u_status = $userdata->status; if (!$doit) { if ($u_account && $c) { $tool_content .= "<p class='title1'>{$langConfirmDelete}</p>\n <div class='alert alert-warning'>{$langConfirmDeleteQuestion1} <em>{$u_realname} ({$u_account})</em>\n \t{$langConfirmDeleteQuestion2} <em>" . q(course_id_to_title($c)) . "</em>\n </div>\n <p class='eclass_button'><a href='{$_SERVER['SCRIPT_NAME']}?u={$u}&c={$c}&doit=yes'>{$langDelete}</a></p>"; } else { $tool_content .= "<p>{$langErrorUnreguser}</p>"; } $tool_content .= "<div class='right'><a href='edituser.php?u={$u}'>{$langBack}</a></div><br/>"; } else { if ($c and $u) { $q = Database::get()->query("DELETE from course_user WHERE user_id = ?d AND course_id = ?d", $u, $c); if ($q->affectedRows > 0) { Database::get()->query("DELETE FROM group_members\n WHERE user_id = ?d AND\n group_id IN (SELECT id FROM `group` WHERE course_id = ?d)", $u, $c); $tool_content .= "<p>{$langUserWithId} {$u} {$langWasCourseDeleted} <em>" . q(course_id_to_title($c)) . "</em></p>\n"; $m = 1; } } else { $tool_content .= $langErrorDelete; } $tool_content .= "<br /> "; if (isset($m) && !empty($m)) { $tool_content .= "<br /><a href='edituser.php?u={$u}'>{$langEditUser} {$u_account}</a> "; } $tool_content .= "<a href='index.php'>{$langBackAdmin}</a>.<br />\n"; } draw($tool_content, 3);