$CFG,$DB,$USER。
[root@moodle moodle23]# diff -urN -wbBE mod_tmp/openmeetings/mod_form.php mod/openmeetings/mod_form.php
--- mod_tmp/openmeetings/mod_form.php 2012-08-02 19:04:40.000000000 +0800
+++ mod/openmeetings/mod_form.php 2014-02-25 09:17:39.130260495 +0800
@@ -29,11 +29,13 @@
class mod_openmeetings_mod_form extends moodleform_mod {
function definition() {
- global $openmeetings_gateway, $om_login;
+ global $CFG,$DB,$USER,$openmeetings_gateway, $om_login;
$mform = $this->_form;
+ $current=$this->current;
@@ -44,11 +46,78 @@
$mform->addElement('hidden', 'room_id', '0', array('size'=>'64'));
+
+ /// Adding the "Available Recordings to Shows" field
+ $recordingsbyroom = array();
+ $recordings = array();
+ if ($om_login) {
+
+ $query = 'SELECT id,course,room_id FROM '.$CFG->prefix.'openmeetings';
+ $course_room = $DB->get_records_sql($query);
+ foreach ($course_room as $cr) {
+ $resultDom = $openmeetings_gateway->openmeetings_getFlvRecordingByRoomId($cr->room_id);
+ $query = 'SELECT id,category,shortname FROM '.$CFG->prefix.'course WHERE id='.$cr->course;
+ $course = $DB->get_records_sql($query);
+ $query = 'SELECT id,path FROM '.$CFG->prefix.'course_categories where id='.$course[$cr->course]->category;
+ $course_categories = $DB->get_records_sql($query);
+ $cc=explode('/',$course_categories[$course[$cr->course]->category]->path);
+ if (count($cc) > 2){
+ $query = 'SELECT id,name FROM '.$CFG->prefix.'course_categories where id='.$cc[1];
+ $course_categories = $DB->get_records_sql($query);
+ $acysem = $course_categories[$cc[1]]->name.'/';
+ } else { $acysem = ”; }
+ $flvrecordings = $resultDom->getElementsByTagName('return');
+
+ foreach ($flvrecordings as $flvrecording) {
+ $flvRecordingIdNode = $flvrecording->getElementsByTagName('flvRecordingId');
+ $flvRecordingNameNode = $flvrecording->getElementsByTagName('fileName');
+ if ($flvRecordingIdNode->length > 0) {
+ $recordingsbyroom[$flvRecordingIdNode->item(0)->nodeValue] =
+ $acysem.$course[$cr->course]->shortname.' '.
+ substr_replace($flvRecordingNameNode->item(0)->nodeValue,”,0,9);
+ //$recordings[$flvRecordingIdNode->item(0)->nodeValue] = $flvRecordingNameNode->item(0)->nodeValue;
+ }
+ }
+ }
+
+ $context = get_context_instance(CONTEXT_SYSTEM);
+
+ if (has_capability('mod/openmeetings:becomemoderator', $context)) {
+ $resultDom = $openmeetings_gateway->openmeetings_getFlvRecordingByExternalRoomTypeByList();
+ }
+ else {
+ $resultDom = $openmeetings_gateway->openmeetings_getFlvRecordingByExternalUserId();
+ }
+ $flvrecordings = $resultDom->getElementsByTagName('return');
+
+ foreach ($flvrecordings as $flvrecording) {
+ $flvRecordingIdNode = $flvrecording->getElementsByTagName('flvRecordingId');
+ $flvRecordingNameNode = $flvrecording->getElementsByTagName('fileName');
+ if ($flvRecordingIdNode->length > 0 && $recordingsbyroom[$flvRecordingIdNode->item(0)->nodeValue] !=”) {
+ $recordings[$flvRecordingIdNode->item(0)->nodeValue] =
+ $recordingsbyroom[$flvRecordingIdNode->item(0)->nodeValue];
+ } else {
+ $recordings[$flvRecordingIdNode->item(0)->nodeValue] =
+ substr_replace($flvRecordingNameNode->item(0)->nodeValue,”,0,9);
+ }
+ }
+ //uksort($recordings); //dywang sort by date
+ asort($recordings);
+
+ }
/// Adding the "Room Type" field
+ $recordingcheck = array_filter($recordings);
+ if ($current->id == ” and count($recordingcheck)>0 ) {
$mform->addElement('select', 'type', get_string('Room_Type', 'openmeetings'), array('1'=>get_string('Conference', 'openmeetings'), '3'=>get_string('Restricted', 'openmeetings'), '4'=>get_string('Interview', 'openmeetings'), '0'=>get_string('Recording', 'openmeetings')));
+ } elseif ($current->type != 0 or count($recordingcheck) == 0){
+ $mform->addElement('select', 'type', get_string('Room_Type', 'openmeetings'), array('1'=>get_string('Conference', 'openmeetings'), '3'=>get_string('Restricted', 'openmeetings'), '4'=>get_string('Interview', 'openmeetings')));
+ } else {
+ $mform->addElement('select', 'type', get_string('Room_Type', 'openmeetings'), array('0'=>get_string('Recording', 'openmeetings')));
+ }
/// Adding the "Number of Participants" field
- $mform->addElement('select', 'max_user', get_string('Max_User', 'openmeetings'), array('2'=>'2', '4'=>'4', '8'=>'8', '16'=>'16', '24'=>'24', '36'=>'36', '50'=>'50', '100'=>'100', '150'=>'150', '200'=>'200', '250'=>'250', '500'=>'500', '1000'=>'1000'));
+ $mform->addElement('select', 'max_user', get_string('Max_User', 'openmeetings'), array('2'=>'2', '4'=>'4', '8'=>'8', '16'=>'16', '24'=>'24', '36'=>'36', '50'=>'50', '100'=>'100', '150'=>'150'));//dywang
@@ -87,7 +156,7 @@
$mform->addElement('select', 'language', get_string('Room_Language', 'openmeetings'), $language_array);
/// Some description
- $mform->addElement('static', 'description', ”, get_string('Moderation_Description', 'openmeetings'));
+ $this->add_intro_editor(false, get_string('Comment', 'openmeetings')); //dywang
@@ -96,43 +165,27 @@
/// Adding the optional "intro" and "introformat" pair of fields
- $mform->addElement('htmleditor', 'intro', get_string('Comment', 'openmeetings'));
- $mform->setType('intro', PARAM_RAW);
-
-
- /// Adding the "Available Recordings to Shows" field
- $recordings = array();
-
- if ($om_login) {
-
- $resultDom = $openmeetings_gateway->openmeetings_getRecordingsByExternalRooms();
-
- $flvrecordings = $resultDom->getElementsByTagName('return');
-
- foreach ($flvrecordings as $flvrecording) {
-
- $flvRecordingIdNode = $flvrecording->getElementsByTagName('flvRecordingId');
- $flvRecordingNameNode = $flvrecording->getElementsByTagName('fileName');
- if ($flvRecordingIdNode->length > 0) {
- $recordings[$flvRecordingIdNode->item(0)->nodeValue] = $flvRecordingNameNode->item(0)->nodeValue;
- }
-
- }
-
-
- }
$mform->registerNoSubmitButton('avi');
$mform->registerNoSubmitButton('flv');
+ $mform->registerNoSubmitButton('rm_rec');
$dgrp = array();
$dgrp[] =& $mform->createElement('static', 'description', ”, get_string('recordings_label', 'openmeetings'));
$dgrp[] =& $mform->createElement('select', 'room_recording_id', get_string('recordings_show', 'openmeetings'), $recordings);
+ $dgrp[] =& $mform->createElement('submit', 'rm_rec', get_string('rm_rec', 'openmeetings')); //dywang
$dgrp[] =& $mform->createElement('submit', 'avi', get_string('download_avi', 'openmeetings'));
$dgrp[] =& $mform->createElement('submit', 'flv', get_string('download_flv', 'openmeetings'));
$mform->addGroup($dgrp, 'dgrp', get_string('recordings_show', 'openmeetings'), array(' '), false);
+ $mform->setType('rm_rec', PARAM_NOTAGS);
$mform->setType('avi', PARAM_NOTAGS);
$mform->setType('flv', PARAM_NOTAGS);
@@ -158,7 +211,36 @@
$mform = new mod_openmeetings_mod_form();
-if ($mform->no_submit_button_pressed() && $om_login) {
+if ($mform->no_submit_button_pressed() && $om_login) { //dywang
+ if (isset($mform->get_submitted_data()->{'rm_rec'})) {
+ $openmeetings_gateway->openmeetings_deleteFlvRecording($mform->get_submitted_data()->{'room_recording_id'});
+ return;
+ }
+ else {
$type = isset($mform->get_submitted_data()->{'avi'}) ? "avi" :
(isset($mform->get_submitted_data()->{'flv'}) ? "flv" : "none");
$filename = 'flvRecording_' . $mform->get_submitted_data()->{'room_recording_id'} . '.' . $type;
. '&sid=' . $openmeetings_gateway->session_id);
exit(0);
}
+}