Moodle  2.2.1
http://www.collinsharper.com
C:/xampp/htdocs/moodle/mod/chat/gui_basic/index.php
Go to the documentation of this file.
00001 <?php
00002 
00003 require_once('../../../config.php');
00004 require_once('../lib.php');
00005 
00006 $id      = required_param('id', PARAM_INT);
00007 $groupid = optional_param('groupid', 0, PARAM_INT);  // only for teachers
00008 $message = optional_param('message', '', PARAM_CLEANHTML);
00009 $refresh = optional_param('refresh', '', PARAM_RAW); // force refresh
00010 $last    = optional_param('last', 0, PARAM_INT);     // last time refresh or sending
00011 $newonly = optional_param('newonly', 0, PARAM_BOOL); // show only new messages
00012 
00013 $url = new moodle_url('/mod/chat/gui_basic/index.php', array('id'=>$id));
00014 if ($groupid !== 0) {
00015     $url->param('groupid', $groupid);
00016 }
00017 if ($message !== 0) {
00018     $url->param('message', $message);
00019 }
00020 if ($refresh !== 0) {
00021     $url->param('refresh', $refresh);
00022 }
00023 if ($last !== 0) {
00024     $url->param('last', $last);
00025 }
00026 if ($newonly !== 0) {
00027     $url->param('newonly', $newonly);
00028 }
00029 $PAGE->set_url($url);
00030 
00031 if (!$chat = $DB->get_record('chat', array('id'=>$id))) {
00032     print_error('invalidid', 'chat');
00033 }
00034 
00035 if (!$course = $DB->get_record('course', array('id'=>$chat->course))) {
00036     print_error('invalidcourseid');
00037 }
00038 
00039 if (!$cm = get_coursemodule_from_instance('chat', $chat->id, $course->id)) {
00040     print_error('invalidcoursemodule');
00041 }
00042 
00043 $context = get_context_instance(CONTEXT_MODULE, $cm->id);
00044 require_login($course->id, false, $cm);
00045 require_capability('mod/chat:chat', $context);
00046 $PAGE->set_pagelayout('base');
00047 
00049  if ($groupmode = groups_get_activity_groupmode($cm)) {   // Groups are being used
00050     if ($groupid = groups_get_activity_group($cm)) {
00051         if (!$group = groups_get_group($groupid)) {
00052             print_error('invalidgroupid');
00053         }
00054         $groupname = ': '.$group->name;
00055     } else {
00056         $groupname = ': '.get_string('allparticipants');
00057     }
00058 } else {
00059     $groupid = 0;
00060     $groupname = '';
00061 }
00062 
00063 $strchat  = get_string('modulename', 'chat'); // must be before current_language() in chat_login_user() to force course language!!!
00064 $strchats = get_string('modulenameplural', 'chat');
00065 $stridle  = get_String('idle', 'chat');
00066 if (!$chat_sid = chat_login_user($chat->id, 'basic', $groupid, $course)) {
00067     print_error('cantlogin', 'chat');
00068 }
00069 
00070 if (!$chatusers = chat_get_users($chat->id, $groupid, $cm->groupingid)) {
00071     print_error('errornousers', 'chat');
00072 }
00073 
00074 $DB->set_field('chat_users', 'lastping', time(), array('sid'=>$chat_sid));
00075 
00076 if (!isset($SESSION->chatprefs)) {
00077     $SESSION->chatprefs = array();
00078 }
00079 if (!isset($SESSION->chatprefs[$chat->id])) {
00080     $SESSION->chatprefs[$chat->id] = array();
00081     $SESSION->chatprefs[$chat->id]['chatentered'] = time();
00082 }
00083 $chatentered = $SESSION->chatprefs[$chat->id]['chatentered'];
00084 
00085 $refreshedmessage = '';
00086 
00087 if (!empty($refresh) and data_submitted()) {
00088     $refreshedmessage = $message;
00089 
00090     chat_delete_old_users();
00091 
00092 } else if (empty($refresh) and data_submitted() and confirm_sesskey()) {
00093 
00094     if ($message!='') {
00095         $newmessage = new stdClass();
00096         $newmessage->chatid = $chat->id;
00097         $newmessage->userid = $USER->id;
00098         $newmessage->groupid = $groupid;
00099         $newmessage->systrem = 0;
00100         $newmessage->message = $message;
00101         $newmessage->timestamp = time();
00102         $DB->insert_record('chat_messages', $newmessage);
00103         $DB->insert_record('chat_messages_current', $newmessage);
00104 
00105         $DB->set_field('chat_users', 'lastmessageping', time(), array('sid'=>$chat_sid));
00106 
00107         add_to_log($course->id, 'chat', 'talk', "view.php?id=$cm->id", $chat->id, $cm->id);
00108     }
00109 
00110     chat_delete_old_users();
00111 
00112     $url = new moodle_url('/mod/chat/gui_basic/index.php', array('id'=>$id, 'newonly'=>$newonly, 'last'=>$last));
00113     redirect($url);
00114 }
00115 
00116 $PAGE->set_title("$strchat: $course->shortname: ".format_string($chat->name,true)."$groupname");
00117 echo $OUTPUT->header();
00118 echo '<div id="">';
00119 echo $OUTPUT->container_start(null, 'page-mod-chat-gui_basic');
00120 echo $OUTPUT->heading(get_string('participants'), 2, 'mdl-left');
00121 
00122 echo $OUTPUT->box_start('generalbox', 'participants');
00123 echo '<ul>';
00124 foreach($chatusers as $chu) {
00125     echo '<li class="clearfix">';
00126     echo $OUTPUT->user_picture($chu, array('size'=>24, 'courseid'=>$course->id));
00127     echo '<div class="userinfo">';
00128     echo fullname($chu).' ';
00129     if ($idle = time() - $chu->lastmessageping) {
00130         echo '<span class="idle">'.$stridle.' '.format_time($idle).'</span>';
00131     } else {
00132         echo '<span class="idle" />';
00133     }
00134     echo '</div>';
00135     echo '</li>';
00136 }
00137 echo '</ul>';
00138 echo $OUTPUT->box_end();
00139 echo '<div id="send">';
00140 echo '<form id="editing" method="post" action="index.php">';
00141 
00142 echo '<h2><label for="message">'.get_string('sendmessage', 'message').'</label></h2>';
00143 echo '<div>';
00144 echo '<input type="text" id="message" name="message" value="'.s($refreshedmessage, true).'" size="60" />';
00145 echo '</div><div>';
00146 echo '<input type="hidden" name="id" value="'.$id.'" />';
00147 echo '<input type="hidden" name="groupid" value="'.$groupid.'" />';
00148 echo '<input type="hidden" name="last" value="'.time().'" />';
00149 echo '<input type="hidden" name="sesskey" value="'.sesskey().'" />';
00150 echo '<input type="submit" value="'.get_string('submit').'" />&nbsp;';
00151 echo '<input type="submit" name="refresh" value="'.get_string('refresh').'" />';
00152 echo '<input type="checkbox" name="newonly" id="newonly" '.($newonly?'checked="checked" ':'').'/><label for="newonly">'.get_string('newonlymsg', 'message').'</label>';
00153 echo '</div>';
00154 echo '</form>';
00155 echo '</div>';
00156 
00157 echo '<div id="messages">';
00158 echo $OUTPUT->heading(get_string('messages', 'chat'), 2, 'mdl-left');
00159 
00160 $allmessages = array();
00161 $options = new stdClass();
00162 $options->para = false;
00163 $options->newlines = true;
00164 
00165 $params = array('last'=>$last, 'groupid'=>$groupid, 'chatid'=>$chat->id, 'chatentered'=>$chatentered);
00166 
00167 if ($newonly) {
00168     $lastsql = "AND timestamp > :last";
00169 } else {
00170     $lastsql = "";
00171 }
00172 
00173 $groupselect = $groupid ? "AND (groupid=:groupid OR groupid=0)" : "";
00174 
00175 $messages = $DB->get_records_select("chat_messages_current",
00176                     "chatid = :chatid AND timestamp > :chatentered $lastsql $groupselect", $params,
00177                     "timestamp DESC");
00178 
00179 if ($messages) {
00180     foreach ($messages as $message) {
00181         $allmessages[] = chat_format_message($message, $course->id, $USER);
00182     }
00183 }
00184 
00185 if (empty($allmessages)) {
00186     echo get_string('nomessagesfound', 'message');
00187 } else {
00188     foreach ($allmessages as $message) {
00189         echo $message->basic;
00190     }
00191 }
00192 
00193 echo '</div>';
00194 echo $OUTPUT->container_end();
00195 echo $OUTPUT->footer();
 All Data Structures Namespaces Files Functions Variables Enumerations