diff --git a/cis/private/lehre/moodle2_4_wartung.php b/cis/private/lehre/moodle2_4_wartung.php new file mode 100644 index 000000000..67bbbc706 --- /dev/null +++ b/cis/private/lehre/moodle2_4_wartung.php @@ -0,0 +1,383 @@ + + */ +/* + * Verwaltung der Moodlekurse zu einer LV + * Moodle 2.4 + */ +require_once('../../../config/cis.config.inc.php'); +require_once('../../../include/basis_db.class.php'); +require_once('../../../include/functions.inc.php'); +require_once('../../../include/benutzerberechtigung.class.php'); +require_once('../../../include/moodle2_4_course.class.php'); +require_once('../../../include/moodle2_4_user.class.php'); +require_once('../../../include/lehrveranstaltung.class.php'); +require_once('../../../include/lehreinheit.class.php'); +require_once('../../../include/lehreinheitgruppe.class.php'); +require_once('../../../include/lehreinheitmitarbeiter.class.php'); +require_once('../../../include/studiengang.class.php'); +require_once('../../../include/phrasen.class.php'); + +$sprache = getSprache(); +$p = new phrasen($sprache); + +if (!$db = new basis_db()) + die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung')); + +if (!$user=get_uid()) + die($p->t('moodle/sieSindNichtAngemeldet').' !'); + +if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) + $lvid=$_GET['lvid']; +else + die($p->t('moodle/lvidMussUebergebenWerden')); + +if(isset($_GET['stsem']) && check_stsem($_GET['stsem'])) + $stsem = $_GET['stsem']; +else + die($p->t('moodle/esWurdeKeinStudiensemesterUebergeben')); + +$art = (isset($_POST['art'])?$_POST['art']:'lv'); + +$berechtigt = false; + +//Pruefen ob Rechte fuer diese LV vorhanden sind +$lem = new lehreinheitmitarbeiter(); +if($lem->existsLV($lvid, $stsem, $user)) + $berechtigt=true; + +$rechte = new benutzerberechtigung(); +$rechte->getBerechtigungen($user); + +if($rechte->isBerechtigt('admin')) + $berechtigt=true; + +$lv = new lehrveranstaltung(); +$lv->load($lvid); + +echo ' + +
+ + + + + +| ';
+
+if(isset($_POST['neu']))
+{
+ if($_POST['bezeichnung']=='')
+ {
+ echo ''.$p->t('benotungstool/bezeichnungMussEingegebenWerden').' '; + } + else + { + $lehrveranstaltung = new lehrveranstaltung(); + $lehrveranstaltung->load($lvid); + $studiengang = new studiengang(); + $studiengang->load($lehrveranstaltung->studiengang_kz); + + $orgform = ($lehrveranstaltung->orgform_kurzbz!=''?$lehrveranstaltung->orgform_kurzbz:$studiengang->orgform_kurzbz); + + //Kurzbezeichnung generieren Format: STSEM-STG-SEM-LV/LEID/LEID/LEID... + //$shortname = $stsem.'-'.$studiengang->kuerzel.'-'.$lehrveranstaltung->semester.'-'.$lehrveranstaltung->kurzbz; + $shortname = $studiengang->kuerzel.'-'.$orgform.'-'.$lehrveranstaltung->semester.'-'.$stsem.'-'.$lehrveranstaltung->kurzbz; + + //Gesamte LV zu einem Moodle Kurs zusammenlegen + if($art=='lv') + { + $mdl_course = new moodle_course(); + + $mdl_course->lehrveranstaltung_id = $lvid; + $mdl_course->studiensemester_kurzbz = $stsem; + $mdl_course->mdl_fullname = $_POST['bezeichnung']; + $mdl_course->mdl_shortname = $shortname; + $mdl_course->insertamum = date('Y-m-d H:i:s'); + $mdl_course->insertvon = $user; + $mdl_course->gruppen = isset($_POST['gruppen']); + + //Moodlekurs anlegen + if($mdl_course->create_moodle()) + { + //Eintrag in der Vilesci DB + $mdl_course->create_vilesci(); + + $mdl_user = new moodle_user(); + //Lektoren Synchronisieren + if(!$mdl_user->sync_lektoren($mdl_course->mdl_course_id)) + echo $mdl_user->errormsg; + + $mdl_user = new moodle_user(); + //Studenten Synchronisieren + if(!$mdl_user->sync_studenten($mdl_course->mdl_course_id)) + echo $mdl_user->errormsg; + } + else + { + echo $mdl_course->errormsg; + } + } + elseif($art=='le') //Getrennte Kurse fuer die Lehreinheiten + { + $lehreinheiten=array(); + + foreach ($_POST as $key=>$value) + { + if(mb_strstr($key, 'lehreinheit_')) + { + $shortname.='/'.$value; + $lehreinheiten[]=$value; + } + } + + if(count($lehreinheiten)>0) + { + $mdl_course = new moodle_course(); + + $mdl_course->mdl_fullname = $_POST['bezeichnung']; + $mdl_course->mdl_shortname = $shortname; + $mdl_course->studiensemester_kurzbz = $stsem; + $mdl_course->insertamum = date('Y-m-d H:i:s'); + $mdl_course->insertvon = $user; + $mdl_course->lehreinheit_id=$lehreinheiten[0]; + $mdl_course->gruppen = isset($_POST['gruppen']); + + //Kurs im Moodle anlegen + if($mdl_course->create_moodle()) + { + //fuer jede Lehreinheit einen Eintrag in VilesciDB anlegen + foreach ($lehreinheiten as $value) + { + $mdl_course->lehreinheit_id = $value; + if(!$mdl_course->create_vilesci()) + echo ' '.$p->t('moodle/fehlerBeimAnlegenAufgetreten').':'.$mdl_course->errormsg; + } + + $mdl_user = new moodle_user(); + //Lektoren Synchronisieren + if(!$mdl_user->sync_lektoren($mdl_course->mdl_course_id)) + echo $mdl_user->errormsg; + + $mdl_user = new moodle_user(); + //Studenten Synchronisieren + if(!$mdl_user->sync_studenten($mdl_course->mdl_course_id)) + echo $mdl_user->errormsg; + } + } + else + { + echo ''.$p->t('moodle/esMussMindestensEineLehreinheitMarkiertSein').' '; + } + } + else + die($p->t('moodle/artIstUnbekannt')); + } +} +//Gruppen Syncro ein/aus schalten +if(isset($_POST['changegruppe'])) +{ + if(isset($_POST['moodle_id']) && is_numeric($_POST['moodle_id'])) + { + $mcourse = new moodle_course(); + if($mcourse->updateGruppenSync($_POST['moodle_id'], isset($_POST['gruppen']))) + echo ''.$p->t('moodle/datenWurdenAktualisiert').' '; + else + echo ''.$p->t('global/fehlerBeimAktualisierenDerDaten').''; + } + else + { + echo ''.$p->t('moodle/esWurdeKeineGueltigeIdUebergeben').''; + } +} + +//Anlegen eines Testkurses +if(isset($_GET['action']) && $_GET['action']=='createtestkurs') +{ + $mdl_course = new moodle_course(); + if(!$mdl_course->loadTestkurs($lvid, $stsem)) + { + $lehrveranstaltung = new lehrveranstaltung(); + $lehrveranstaltung->load($lvid); + $studiengang = new studiengang(); + $studiengang->load($lehrveranstaltung->studiengang_kz); + + //$orgform = ($lehrveranstaltung->orgform_kurzbz!=''?$lehrveranstaltung->orgform_kurzbz:$studiengang->orgform_kurzbz); + + //Kurzbezeichnung generieren Format: STSEM-STG-SEM-LV/LEID/LEID/LEID... + $shortname = 'TK-'.$stsem.'-'.$studiengang->kuerzel.'-'.$lehrveranstaltung->semester.'-'.$lehrveranstaltung->kurzbz; + + $mdl_course->lehrveranstaltung_id = $lvid; + $mdl_course->studiensemester_kurzbz = $stsem; + $mdl_course->mdl_fullname = 'Testkurs - '.$lehrveranstaltung->bezeichnung; + $mdl_course->mdl_shortname = $shortname; + + //TestKurs erstellen + if($mdl_course->createTestkurs($lvid, $stsem)) + { + $id=$mdl_course->mdl_course_id; + $errormsg=''; + + $mdl_user = new moodle_user(); + //Lektoren zuweisen + if(!$mdl_user->sync_lektoren($id, $lvid, $stsem)) + $errormsg.=$p->t('moodle/fehlerBeiDerLektorenZuordnung').':'.$mdl_user->errormsg.' '; + //Teststudenten zuweisen + if(!$mdl_user->createTestStudentenZuordnung($id)) + $errormsg.=$p->t('moodle/fehlerBeiDerStudentenZuordnung').':'.$mdl_user->errormsg.' '; + + if($errormsg!='') + echo $errormsg; + else + echo ''.$p->t('moodle/testkursWurdeErfolgreichAngelegt').' '; + } + } + else + { + echo ''.$p->t('moodle/esExistiertBereitsEinTestkurs').' '; + } +} + +$mdl_course = new moodle_course(); +if($mdl_course->course_exists_for_lv($lvid, $stsem) || $mdl_course->course_exists_for_allLE($lvid, $stsem)) +{ + echo $p->t('moodle/esIstBereitsEinMoodleKursVorhanden'); +} +else +{ + //wenn bereits ein Moodle Kurs fuer eine Lehreinheit angelegt wurde, dann dass + //anlegen fuer die Lehrveranstaltung verhindern + $qry = "SELECT 1 FROM lehre.tbl_moodle + WHERE lehreinheit_id in(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit + WHERE lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." + AND studiensemester_kurzbz=".$db->db_add_param($stsem).")"; + $disable_lv=''; + if($result = $db->db_query($qry)) + if($db->db_num_rows($result)>0) + { + $disable_lv='disabled="true"'; + //wenn schon ein Moodle Kurs zu einer Lehreinheit angelegt wurde, + //dann ist standardmaessig die Lehreinheit markiert + if($art=='lv') + $art='le'; + } + + echo ''.$p->t('moodle/moodleKursAnlegen').': + '; +} +echo ' | ';
+
+echo '';
+echo ''.$p->t('moodle/vorhandeneMoodleKurse').'';
+if(!$mdl_course->getAll($lvid, $stsem))
+ echo $mdl_course->errormsg;
+echo '
|