2 /************************************************************************/
4 /************************************************************************/
5 /* Copyright (c) 2002-2010 */
6 /* Inclusive Design Institute */
8 /* This program is free software. You can redistribute it and/or */
9 /* modify it under the terms of the GNU General Public License */
10 /* as published by the Free Software Foundation. */
11 /************************************************************************/
14 define('AT_INCLUDE_PATH', '../../../../include/');
15 require(AT_INCLUDE_PATH.'vitals.inc.php');
18 /* @See ./admin.php */
19 function writeAdminSettings(&$admin) {
20 if (file_exists(AT_CONTENT_DIR . 'chat/'.$_SESSION['course_id'].'/admin.settings')) {
21 chmod(AT_CONTENT_DIR . 'chat/'.$_SESSION['course_id'].'/admin.settings', 0755);
24 $fp = @fopen(AT_CONTENT_DIR . 'chat/'.$_SESSION['course_id'].'/admin.settings', 'w+');
31 foreach ($admin as $prefKey => $prefValue) {
32 $settings .= $prefKey.'='.$prefValue."\n";
36 if (!@fwrite($fp, $settings)) {
40 chmod(AT_CONTENT_DIR . 'chat/'.$_SESSION['course_id'].'/admin.settings', 0600);
45 function getAdminSettings() {
46 if (!file_exists(AT_CONTENT_DIR . 'chat/'.$_SESSION['course_id'].'/admin.settings')) {
52 $file_prefs = file(AT_CONTENT_DIR . 'chat/'.$_SESSION['course_id'].'/admin.settings');
53 foreach ($file_prefs as $pref) {
54 $pref = explode('=', $pref, 2);
55 $admin[$pref[0]] = trim($pref[1]);
58 if ($admin['returnT'] && $admin['returnL']) {
59 $admin['returnLink'] = '<a href="'.$admin['returnL'].'" onFocus="this.className=\'highlight\'" onBlur="this.className=\'\'">'.$admin['returnT'].'</a>';
61 $admin['returnLink'] = '';
67 function defaultAdminSettings() {
70 //$admin['cgiURL'] = 'http://dev.atutor.ca/chat/';
71 //$admin['htmlDir'] = '/usr/webserver/content/snow/chat/';
72 //$admin['htmlURL'] = 'http://dev.atutor.ca/discussions/achat/';
73 $admin['msgLifeSpan'] = 1800; /* 30 min */
74 $admin['chatIDLifeSpan'] = 2678400; /* 1 month */
75 $admin['chatSessionLifeSpan'] = 3600; /* 1 hour */
76 //$admin['chatName'] = 'Accessible Chat';
77 //$admin['chatIDListFlag'] = 0;
78 // $admin['returnL'] = 'http://dev.atutor.ca';
79 //$admin['returnT'] = 'Return to the ATRC';
80 //$admin['adminPass'] = 'temppass';
85 $admin = getAdminSettings();
87 $admin = defaultAdminSettings();
90 if (isset($_POST['submit'])) {
91 $admin['adminPass'] = $_POST['newAdminPass'];
92 $adminPass = $_POST['newAdminPass'];
93 $admin['chatName'] = $_POST['chatName'];
94 $admin['returnL'] = $_POST['returnL'];
95 $admin['returnT'] = $_POST['returnT'];
96 $admin['msgLifeSpan'] = $_POST['msgLifeSpan'];
97 $admin['chatSessionLifeSpan'] = $_POST['chatSessionLifeSpan'];
98 $admin['chatIDLifeSpan'] = $_POST['chatIDLifeSpan'];
99 writeAdminSettings($admin);
101 } else if (isset($_POST['submit2'])) {
102 @mkdir(AT_CONTENT_DIR . 'chat/'.$_SESSION['course_id'] . '/tran');
103 if(file_exists(AT_CONTENT_DIR . 'chat/'.$_SESSION['course_id'].'/tran/'.$_POST['tranFile'].'.html')){
104 $warnings = array('CHAT_TRAN_EXISTS', $_POST['tranFile']); //'file already exists';
105 $msg->addWarning($warnings);
106 } else if ($_POST['function'] == 'startTran') {
107 if (!(preg_match("/^[a-zA-Z0-9_]([a-zA-Z0-9_])*$/i", $_POST['tranFile']))){
108 $msg->addError('CHAT_TRAN_REJECTED');
110 $admin['produceTran'] = 1;
111 $admin['tranFile'] = $_POST['tranFile'] . '.html';
112 writeAdminSettings($admin);
113 $tran = '<p>'._AT('chat_transcript_start').' '.date('Y-M-d H:i').'</p>';
114 $tran .= '<table border="0" cellpadding="3" summary="" class="chat-transcript">';
116 $fp = fopen(AT_CONTENT_DIR . 'chat/'.$_SESSION['course_id'].'/tran/'.$admin['tranFile'], 'w+');
119 if (!fwrite($fp, $tran)) {
124 header('Location: index.php');
127 } else if ($_POST['function'] == 'stopTran') {
128 $admin['produceTran'] = 0;
129 writeAdminSettings($admin);
131 $tran = '<p>'._AT('chat_transcript_end').' '.date('Y-M-d H:i').'</p>';
132 $fp = @fopen(AT_CONTENT_DIR . 'chat/'.$_SESSION['course_id'].'/tran/'.$admin['tranFile'], 'a');
134 @flock($fp, LOCK_EX);
135 if (!@fwrite($fp, $tran)) {
140 header('Location: index.php');
143 } else if ($_GET['function'] == 'clearOldChatIDs') {
144 $return = clearOutOldChatPrefs();
145 } else if ($_POST['submit3']) {
146 deleteUser($_POST['delName']);
147 } else if ($_POST['submit4']) {
148 if ($dir = @opendir(AT_CONTENT_DIR . 'chat/'.$_SESSION['course_id'].'/users/')) {
149 while (($file = readdir($dir)) !== false) {
150 if (substr($file, -strlen('.prefs')) == '.prefs') {
151 $chatName = substr($file, 0, -strlen('.prefs'));
152 deleteUser($chatName);
158 //check chat directory
159 if (!@opendir(AT_CONTENT_DIR . 'chat/')){
160 mkdir(AT_CONTENT_DIR . 'chat/', 0777);
163 if(!file_exists(AT_CONTENT_DIR . 'chat/'.$_SESSION['course_id'].'/admin.settings')){
164 @mkdir(AT_CONTENT_DIR . 'chat/'.$_SESSION['course_id'], 0777);
165 @mkdir(AT_CONTENT_DIR . 'chat/'.$_SESSION['course_id'].'/tran/', 0776);
166 @mkdir(AT_CONTENT_DIR . 'chat/'.$_SESSION['course_id'].'/msgs/', 0776);
167 @mkdir(AT_CONTENT_DIR . 'chat/'.$_SESSION['course_id'].'/users/', 0776);
168 @copy('admin.settings.default', AT_CONTENT_DIR . 'chat/'.$_SESSION['course_id'].'/admin.settings');
169 @chmod (AT_CONTENT_DIR . 'chat/'.$_SESSION['course_id'].'/admin.settings', 0777);
173 require(AT_INCLUDE_PATH.'header.inc.php');
176 echo '<code>'.$return.'</code>';
179 if ($admin['msgLifeSpan'] < 650) {
181 } else if ($admin['msgLifeSpan'] < 950) {
183 } else if ($admin['msgLifeSpan'] < 1850) {
185 } else if ($admin['msgLifeSpan'] < 10850) {
186 $m180 = ' selected ';
191 if ($admin['chatSessionLifeSpan'] < 650) {
193 } else if ($admin['chatSessionLifeSpan'] < 950) {
195 } else if ($admin['chatSessionLifeSpan'] < 1850) {
197 } else if ($admin['chatSessionLifeSpan'] < 10850) {
198 $s180 = ' selected ';
202 if ($admin['chatIDLifeSpan'] < 86450) {
204 } else if ($admin['chatIDLifeSpan'] < 1728050) {
205 $i20D = ' selected ';
206 } else if ($admin['chatIDLifeSpan'] < 2592050) {
212 $savant->assign('admin', $admin);
213 $savant->assign('adminPass', $adminPass);
214 $savant->display('instructor/chat/start_transcript.tmpl.php');
215 require(AT_INCLUDE_PATH.'footer.inc.php');