diff --git a/include/moodle2_4_course.class.php b/include/moodle2_4_course.class.php
deleted file mode 100644
index 44f6b7c87..000000000
--- a/include/moodle2_4_course.class.php
+++ /dev/null
@@ -1,1763 +0,0 @@
- and
- */
-/*
- * Moodle 2.4 Connector Klasse
- *
- * FHComplete Moodle Plugin muss installiert sein fuer
- * Webservice Funktion 'fhcomplete_courses_by_shortname'
- */
-require_once(dirname(__FILE__).'/basis_db.class.php');
-
-class moodle_course extends basis_db
-{
- public $result = array();
- public $serverurl;
-
- //Vilesci Attribute
- public $moodle_id;
- public $mdl_course_id;
- public $lehreinheit_id;
- public $lehrveranstaltung_id;
- public $studiensemester_kurzbz;
- public $insertamum;
- public $insertvon;
- public $gruppen;
-
- //Moodle Attribute
- public $mdl_fullname;
- public $mdl_shortname;
-
-
- //DEPRECATED ?
- /*
- public $mdl_context_id;
- public $mdl_context_level;
- public $mdl_context_instanceid;
- public $mdl_context_path;
- public $mdl_context_depth;
- */
-
- public $lehrveranstaltung_bezeichnung;
- public $lehrveranstaltung_semester;
- public $lehrveranstaltung_studiengang_kz;
-
- // Kurs Resourcen - Anzahl
- public $mdl_benotungen;
- public $mdl_resource;
- public $mdl_quiz;
- public $mdl_chat;
- public $mdl_forum;
- public $mdl_choice;
-
- public $note;
-
- /**
- * Konstruktor
- *
- */
- public function __construct()
- {
- $this->serverurl=MOODLE_PATH24.'/webservice/soap/server.php?wsdl=1&wstoken='.MOODLE_TOKEN24.'&'.microtime(true);
- return true;
- }
-
- /**
- * Laedt einen MoodleKurs
- * @param mdl_course_id ID des Moodle Kurses
- * @return true wenn ok, false im Fehlerfall
- */
- public function load($mdl_course_id=null)
- {
- $this->mdl_fullname = '';
- $this->mdl_shortname = '';
-
- $this->errormsg='';
- $this->result=array();
-
- if (!is_null($mdl_course_id))
- $this->mdl_course_id=$mdl_course_id;
- if (is_null($this->mdl_course_id)
- || empty($this->mdl_course_id)
- || !is_numeric($this->mdl_course_id))
- {
- $this->errormsg='Moodle Kurs ID fehlt';
- return false;
- }
-
- $client = new SoapClient($this->serverurl);
- $response = $client->core_course_get_courses(array($this->mdl_course_id));
-
- if($response)
- {
- if(isset($response[0]))
- {
- $this->mdl_fullname = $response[0]['fullname'];
- $this->mdl_shortname = $response[0]['shortname'];
- $this->mdl_course_id = $response[0]['id'];
- return true;
- }
- else
- {
- $this->errormsg = 'Kurs wurde nicht gefunden';
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden des Kurses';
- return false;
- }
- }
-
- /**
- * Laedt einen MoodleKurs
- * @param mdl_course_id ID des Moodle Kurses
- * @return true wenn ok, false im Fehlerfall
- */
- public function loadMoodle($mdl_course_id=null)
- {
- return $this->load($mdl_course_id);
- }
-
- /**
- * Laedt alle MoodleKurse die zu einer LV/Stsem
- * plus die MoodleKurse die auf dessen LE haengen
- * @param lehrveranstaltung_id
- * studiensemester_kurzbz
- * @return true wenn ok, false im Fehlerfall
- */
- public function getAll($lehrveranstaltung_id, $studiensemester_kurzbz)
- {
- $qry = "SELECT
- distinct on(mdl_course_id) *
- FROM
- lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_moodle
- WHERE
- tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND
- tbl_lehrveranstaltung.lehrveranstaltung_id = ".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)." AND
- tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." AND
- ((tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_moodle.lehrveranstaltung_id AND tbl_moodle.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz)
- OR
- (tbl_lehreinheit.lehreinheit_id=tbl_moodle.lehreinheit_id)
- )";
-
- if($result=$this->db_query($qry))
- {
- while($row = $this->db_fetch_object($result))
- {
- $obj = new moodle_course();
-
- $obj->moodle_id = $row->moodle_id;
- $obj->mdl_course_id = $row->mdl_course_id;
- $obj->lehreinheit_id = $row->lehreinheit_id;
- $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
- $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
- $obj->insertamum = $row->insertamum;
- $obj->insertvon = $row->insertvon;
- $obj->gruppen = $this->db_parse_bool($row->gruppen);
-
- $client = new SoapClient($this->serverurl);
- $response = $client->core_course_get_courses(array('ids'=>array($row->mdl_course_id)));
-
- if($response)
- {
- if(isset($response[0]))
- {
- $obj->mdl_fullname = $response[0]['fullname'];
- $obj->mdl_shortname = $response[0]['shortname'];
- $obj->mdl_course_id = $response[0]['id'];
- }
- }
-
- $this->result[] = $obj;
- }
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
- }
-
-
- /**
- * Laedt alle MoodleKurse die zu einer LV/Stsem
- * plus die MoodleKurse die auf dessen LE haengen
- * @param lehrveranstaltung_id
- * studiensemester_kurzbz
- * @return true wenn ok, false im Fehlerfall
- */
- public function getAllVariant($lehrveranstaltung_id='',$studiensemester_kurzbz='',$studiengang='',$semester='',$detail=false)
- {
- // Initialisierung
- $this->errormsg = '';
- $this->result=array();
-
- $qry = "SELECT distinct tbl_lehreinheit.studiensemester_kurzbz,tbl_lehrveranstaltung.semester
- ,tbl_lehrveranstaltung.bezeichnung,tbl_lehrveranstaltung.kurzbz,tbl_lehrveranstaltung.lehrveranstaltung_id,tbl_lehrveranstaltung.studiengang_kz,tbl_lehrveranstaltung.semester
- ,tbl_moodle.mdl_course_id
- FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit,lehre.tbl_moodle
- where tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id
- and ((tbl_moodle.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id
- and tbl_moodle.studiensemester_kurzbz=lehre.tbl_lehreinheit.studiensemester_kurzbz)
- OR
- (tbl_moodle.lehreinheit_id=tbl_lehreinheit.lehreinheit_id))";
-
- if ($lehrveranstaltung_id!='')
- $qry.=" and tbl_lehrveranstaltung.lehrveranstaltung_id='".addslashes($lehrveranstaltung_id)."' ";
-
- if ($studiensemester_kurzbz!='')
- $qry.=" and tbl_lehreinheit.studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' ";
-
- if ($studiengang!='')
- $qry.=" and tbl_lehrveranstaltung.studiengang_kz='".addslashes($studiengang)."' ";
-
- if ($semester!='')
- $qry.=" and tbl_lehrveranstaltung.semester='".addslashes($semester)."' ";
-
- $qry.=";";
-
- if(!$result = $this->db_query($qry))
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
-
- while($row = $this->db_fetch_object($result))
- {
- $obj = new moodle_course($this->conn_moodle);
-
- $obj->mdl_course_id = $row->mdl_course_id;
- $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
- $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
- $obj->lehrveranstaltung_kurzbz=$row->kurzbz;
-
- $obj->lehrveranstaltung_bezeichnung=$row->bezeichnung;
- $obj->lehrveranstaltung_semester=$row->semester;
- $obj->lehrveranstaltung_studiengang_kz=$row->studiengang_kz;
-
- $obj->mdl_fullname = 'DB fehler ID '.$obj->mdl_course_id;
- $obj->mdl_shortname =$obj->mdl_fullname;
-
- // Anzahl Benotungen
- $obj->mdl_benotungen = 0;
- // Anzahl Aktivitaeten und Lehrmaterial
- $obj->mdl_resource = 0;
- $obj->mdl_quiz = 0;
- $obj->mdl_chat = 0;
- $obj->mdl_forum = 0;
- $obj->mdl_choice= 0;
-
- $moddle= new moodle_course();
- if ($moddle->load($obj->mdl_course_id))
- {
- $obj->mdl_fullname = $moddle->mdl_fullname;
- $obj->mdl_shortname = $moddle->mdl_shortname;
- }
- else
- {
- $obj->mdl_fullname =$moddle->errormsg;
- $obj->mdl_course_id = 0;
- $this->result[] = $obj;
- continue;
- }
-
- if(!$detail)
- {
- $this->result[] = $obj;
- continue;
- }
-
- // Anzahl Noten je Kurs und User
- $qry_mdl = "SELECT count(*) as anz
- FROM mdl_grade_grades , mdl_grade_items
- WHERE mdl_grade_items.itemtype='course'
- AND mdl_grade_grades.finalgrade IS NOT NULL
- AND mdl_grade_grades.itemid=mdl_grade_items.id
- AND mdl_grade_items.courseid ='".addslashes($row->mdl_course_id)."'; ";
-
- if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl))
- {
- if($row_mdl = pg_fetch_object($result_mdl))
- {
- $obj->mdl_benotungen = (empty($row_mdl->anz)?0:$row_mdl->anz);
- }
- }
-
-
- $qry_mdl = "SELECT count(course) as anz FROM public.mdl_chat WHERE mdl_chat.course='".addslashes($row->mdl_course_id)."'; ";
- if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl))
- {
- if($row_mdl = pg_fetch_object($result_mdl))
- {
- $obj->mdl_chat = (empty($row_mdl->anz)?0:$row_mdl->anz);
- }
- }
-
- $qry_mdl = "SELECT count(course) as anz FROM public.mdl_resource WHERE mdl_resource.course='".addslashes($row->mdl_course_id)."'; ";
- if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl))
- {
- if($row_mdl = pg_fetch_object($result_mdl))
- {
- $obj->mdl_resource = (empty($row_mdl->anz)?0:$row_mdl->anz);
- }
- }
-
-
- $qry_mdl = "SELECT count(course) as anz FROM public.mdl_quiz WHERE mdl_quiz.course='".addslashes($row->mdl_course_id)."'; ";
- if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl))
- {
- if($row_mdl = pg_fetch_object($result_mdl))
- {
- $obj->mdl_quiz = (empty($row_mdl->anz)?0:$row_mdl->anz);
- }
- }
-
- $qry_mdl = "SELECT count(course) as anz FROM public.mdl_forum WHERE mdl_forum.course='".addslashes($row->mdl_course_id)."'; ";
- if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl))
- {
- if($row_mdl = pg_fetch_object($result_mdl))
- {
- $obj->mdl_forum = (empty($row_mdl->anz)?0:$row_mdl->anz);
- }
- }
-
- $qry_mdl = "SELECT count(course) as anz FROM public.mdl_choice WHERE mdl_choice.course='".addslashes($row->mdl_course_id)."'; ";
- if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl))
- {
- if($row_mdl = pg_fetch_object($result_mdl))
- {
- $obj->mdl_choice = (empty($row_mdl->anz)?0:$row_mdl->anz);
- }
- }
-
-
- $this->result[] = $obj;
- }
- return true;
- }
-
- /**
- * Laedt alle MoodleKurse die zu einer LV/Stsem
- * plus die MoodleKurse die auf dessen LE haengen
- * @param lehrveranstaltung_id
- * studiensemester_kurzbz
- * @return true wenn ok, false im Fehlerfall
- */
- public function getAllMoodleVariant($mdl_course_id='',$lehrveranstaltung_id='',$studiensemester_kurzbz='',$lehreinheit_id='',$studiengang='',$semester='',$detail=false,$lehre=true,$aktiv=true)
- {
- // Initialisierung
- $this->errormsg = '';
- $this->result=array();
-
-/* $qry = "SELECT distinct tbl_moodle.lehrveranstaltung_id as moodle_lehrveranstaltung_id,tbl_moodle.lehreinheit_id as moodle_lehreinheit_id, tbl_moodle.studiensemester_kurzbz,tbl_lehrveranstaltung.semester
- ,tbl_lehrveranstaltung.bezeichnung,tbl_lehrveranstaltung.kurzbz,tbl_lehrveranstaltung.lehrveranstaltung_id,tbl_lehrveranstaltung.studiengang_kz,tbl_lehrveranstaltung.semester
- ,tbl_moodle.mdl_course_id,tbl_moodle.lehreinheit_id,tbl_moodle.gruppen
- FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit,lehre.tbl_moodle
- where tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id
- and ((tbl_moodle.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id
- and tbl_moodle.studiensemester_kurzbz=lehre.tbl_lehreinheit.studiensemester_kurzbz)
- OR
- (tbl_moodle.lehreinheit_id=tbl_lehreinheit.lehreinheit_id))";
-*/
- $where='';
- if ($mdl_course_id!='')
- $where.=" and tbl_moodle.mdl_course_id='".addslashes($mdl_course_id)."' ";
-
- if ($lehreinheit_id!='')
- $where.=" and tbl_lehreinheit.lehreinheit_id='".addslashes($lehreinheit_id)."' ";
-
- if ($lehrveranstaltung_id!='')
- $where.=" and tbl_lehrveranstaltung.lehrveranstaltung_id='".addslashes($lehrveranstaltung_id)."' ";
-
- if ($studiensemester_kurzbz!='')
- $where.=" and tbl_lehreinheit.studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' ";
-
- if ($studiengang!='')
- $where.=" and tbl_lehrveranstaltung.studiengang_kz='".addslashes($studiengang)."' ";
-
- if ($semester!='')
- $where.=" and tbl_lehrveranstaltung.semester='".addslashes($semester)."' ";
-
- if ($lehre)
- $where.=" and tbl_lehrveranstaltung.lehre ";
-
- if ($aktiv)
- $where.=" and tbl_lehrveranstaltung.aktiv ";
-
- $qry ='';
- $qry.=' SELECT distinct tbl_moodle.studiensemester_kurzbz
- ,tbl_lehrveranstaltung.studiengang_kz
- ,tbl_lehrveranstaltung.semester
- ,tbl_moodle.mdl_course_id
- ,tbl_lehrveranstaltung.lehrveranstaltung_id
- ,tbl_moodle.lehreinheit_id as moodle_lehreinheit_id
- ,tbl_moodle.lehrveranstaltung_id as moodle_lehrveranstaltung_id
- ,tbl_moodle.lehreinheit_id as lehreinheit_id,tbl_lehrveranstaltung.bezeichnung,tbl_lehrveranstaltung.kurzbz,tbl_moodle.gruppen
- ,tbl_lehrveranstaltung.lehrform_kurzbz,tbl_lehrveranstaltung.orgform_kurzbz
- ,tbl_moodle.moodle_id
- FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit,lehre.tbl_moodle
-
- where tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_moodle.lehrveranstaltung_id
- and tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_moodle.lehrveranstaltung_id
- and tbl_moodle.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz
- and tbl_moodle.lehreinheit_id is null
- ';
- $qry.=$where;
-
- $qry.=' UNION ';
- $qry.=' SELECT distinct tbl_moodle.studiensemester_kurzbz
- ,tbl_lehrveranstaltung.studiengang_kz
- ,tbl_lehrveranstaltung.semester
- ,tbl_moodle.mdl_course_id
- ,tbl_lehrveranstaltung.lehrveranstaltung_id
- ,tbl_moodle.lehreinheit_id as moodle_lehreinheit_id
- ,tbl_moodle.lehrveranstaltung_id as moodle_lehrveranstaltung_id
- ,tbl_moodle.lehreinheit_id as lehreinheit_id,tbl_lehrveranstaltung.bezeichnung,tbl_lehrveranstaltung.kurzbz,tbl_moodle.gruppen
- ,tbl_lehrveranstaltung.lehrform_kurzbz,tbl_lehrveranstaltung.orgform_kurzbz
- ,tbl_moodle.moodle_id
- FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit,lehre.tbl_moodle
-
- where tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id
- and tbl_moodle.lehreinheit_id=tbl_lehreinheit.lehreinheit_id
- and tbl_moodle.lehrveranstaltung_id is null
- ';
- $qry.=$where;
-
- $qry.=' order by 1,2,3,4,5,6,7; ';
-
- if(!$result = $this->db_query($qry))
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
-
- while($row = $this->db_fetch_object($result))
- {
-
- $obj = new moodle_course($this->conn_moodle);
-
- $obj->mdl_course_id = $row->mdl_course_id;
- $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
- $obj->lehreinheit_id = $row->lehreinheit_id;
- $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
- $obj->lehrveranstaltung_kurzbz=$row->kurzbz;
- $obj->lehrveranstaltung_bezeichnung=$row->bezeichnung;
- $obj->lehrveranstaltung_semester=$row->semester;
- $obj->lehrveranstaltung_studiengang_kz=$row->studiengang_kz;
- $obj->lehrveranstaltung_lehrform_kurzbz=$row->lehrform_kurzbz;
-
- $obj->lehrveranstaltung_orgform_kurzbz=$row->orgform_kurzbz;
-
- $obj->moodle_lehrveranstaltung_id=$row->moodle_lehrveranstaltung_id;
- $obj->moodle_lehreinheit_id=$row->moodle_lehreinheit_id;
- $obj->moodle_mdl_course_id = $row->mdl_course_id;
- $obj->mdl_fullname = 'Moodle Kurs nicht vorhanden ID '.$obj->mdl_course_id;
- $obj->mdl_shortname =$obj->mdl_fullname;
- $obj->gruppen=($row->gruppen=='t'?true:false);;
-
- // Anzahl Benotungen
- $obj->mdl_benotungen = 0;
- // Anzahl Aktivitaeten und Lehrmaterial
- $obj->mdl_resource = 0;
- $obj->mdl_quiz = 0;
- $obj->mdl_chat = 0;
- $obj->mdl_forum = 0;
- $obj->mdl_choice= 0;
-
- $moddle= new moodle_course();
- if ($moddle->load($obj->mdl_course_id))
- {
- $obj->mdl_fullname = $moddle->mdl_fullname;
- $obj->mdl_shortname = $moddle->mdl_shortname;
- }
- else
- {
- $obj->mdl_course_id = 0;
- $obj->mdl_fullname =$moddle->errormsg;
- $this->result[] = $obj;
- continue;
- }
-
- if(!$detail)
- {
- $this->result[] = $obj;
- continue;
- }
-
-
- // Anzahl Noten je Kurs und User
- $qry_mdl = "SELECT count(*) as anz
- FROM mdl_grade_grades , mdl_grade_items
- WHERE mdl_grade_items.itemtype='course'
- AND mdl_grade_grades.finalgrade IS NOT NULL
- AND mdl_grade_grades.itemid=mdl_grade_items.id
- AND mdl_grade_items.courseid ='".addslashes($row->mdl_course_id)."'; ";
-
- if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl))
- {
- if($row_mdl = pg_fetch_object($result_mdl))
- {
- $obj->mdl_benotungen = (empty($row_mdl->anz)?0:$row_mdl->anz);
- }
- }
-
- $qry_mdl = "SELECT count(course) as anz FROM public.mdl_chat WHERE mdl_chat.course='".addslashes($row->mdl_course_id)."'; ";
- if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl))
- {
- if($row_mdl = pg_fetch_object($result_mdl))
- {
- $obj->mdl_chat = (empty($row_mdl->anz)?0:$row_mdl->anz);
- }
- }
-
- $qry_mdl = "SELECT count(course) as anz FROM public.mdl_resource WHERE mdl_resource.course='".addslashes($row->mdl_course_id)."'; ";
- if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl))
- {
- if($row_mdl = pg_fetch_object($result_mdl))
- {
- $obj->mdl_resource = (empty($row_mdl->anz)?0:$row_mdl->anz);
- }
- }
-
-
- $qry_mdl = "SELECT count(course) as anz FROM public.mdl_quiz WHERE mdl_quiz.course='".addslashes($row->mdl_course_id)."'; ";
- if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl))
- {
- if($row_mdl = pg_fetch_object($result_mdl))
- {
- $obj->mdl_quiz = (empty($row_mdl->anz)?0:$row_mdl->anz);
- }
- }
-
- $qry_mdl = "SELECT count(course) as anz FROM public.mdl_forum WHERE mdl_forum.course='".addslashes($row->mdl_course_id)."'; ";
- if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl))
- {
- if($row_mdl = pg_fetch_object($result_mdl))
- {
- $obj->mdl_forum = (empty($row_mdl->anz)?0:$row_mdl->anz);
- }
- }
-
- $qry_mdl = "SELECT count(course) as anz FROM public.mdl_choice WHERE mdl_choice.course='".addslashes($row->mdl_course_id)."'; ";
- if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl))
- {
- if($row_mdl = pg_fetch_object($result_mdl))
- {
- $obj->mdl_choice = (empty($row_mdl->anz)?0:$row_mdl->anz);
- }
- }
- $this->result[] = $obj;
- }
- return true;
-
- }
-
- /**
- * Schaut ob fuer diese LV/StSem schon ein
- * Moodle Kurs existiert
- * @param lehrveranstaltung_id
- * studiensemester_kurzbz
- * @return true wenn vorhanden, false wenn nicht
- */
- public function course_exists_for_lv($lehrveranstaltung_id, $studiensemester_kurzbz)
- {
- $qry = "SELECT
- 1
- FROM
- lehre.tbl_moodle
- WHERE
- lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
- AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
- if($this->db_query($qry))
- {
- if($this->db_num_rows()>0)
- return true;
- else
- return false;
- }
- else
- {
- $this->errormsg = 'Fehler bei Datenbankabfrage';
- return false;
- }
- }
-
- /**
- * Schaut ob fuer diese LE schon ein Moodle
- * Kurs existiert
- * @param lehreinheit_id
- * @return true wenn vorhanden, false wenn nicht
- */
- public function course_exists_for_le($lehreinheit_id)
- {
- $qry = "SELECT 1 FROM lehre.tbl_moodle WHERE lehreinheit_id=".$this->db_add_param($lehreinheit_id, FHC_INTEGER);
- if($this->db_query($qry))
- {
- if($this->db_num_rows()>0)
- return true;
- else
- return false;
- }
- else
- {
- $this->errormsg = 'Fehler bei Datenbankabfrage';
- return false;
- }
- }
-
- /**
- * Schaut ob fuer diese LV/StSem schon ein
- * Moodle Kurs existiert
- * @param lehrveranstaltung_id
- * studiensemester_kurzbz
- * @return true wenn vorhanden, false wenn nicht
- */
- public function course_exists_for_allLE($lehrveranstaltung_id, $studiensemester_kurzbz)
- {
- $qry = "SELECT 1 FROM lehre.tbl_lehreinheit
- WHERE lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
- AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
- AND lehreinheit_id NOT IN (SELECT lehreinheit_id FROM lehre.tbl_moodle WHERE lehreinheit_id=tbl_lehreinheit.lehreinheit_id)";
- if($this->db_query($qry))
- {
- if($this->db_num_rows()>0)
- return false;
- else
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler bei Datenbankabfrage';
- return false;
- }
- }
-
- /**
- * Legt einen Eintrag in der tbl_moodle an
- * @return true wenn ok, false im Fehlerfall
- */
- public function create_vilesci()
- {
- if($this->mdl_course_id=='')
- {
- $this->errormsg='mdl_course_id muss angegeben sein';
- return false;
- }
-
- $qry = 'BEGIN; INSERT INTO lehre.tbl_moodle(mdl_course_id, lehreinheit_id, lehrveranstaltung_id,
- studiensemester_kurzbz, insertamum, insertvon, gruppen)
- VALUES('.
- $this->db_add_param($this->mdl_course_id, FHC_INTEGER).','.
- $this->db_add_param($this->lehreinheit_id, FHC_INTEGER).','.
- $this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER).','.
- $this->db_add_param($this->studiensemester_kurzbz).','.
- $this->db_add_param($this->insertamum).','.
- $this->db_add_param($this->insertvon).','.
- $this->db_add_param($this->gruppen, FHC_BOOLEAN).');';
-
- if($this->db_query($qry))
- {
- $qry = "SELECT currval('lehre.tbl_moodle_moodle_id_seq') as id;";
- if($this->db_query($qry))
- {
- if($row = $this->db_fetch_object())
- {
- $this->moodle_id = $row->id;
- $this->db_query('COMMIT;');
- return true;
- }
- else
- {
- $this->db_query('ROLLBACK');
- $this->errormsg = 'Fehler beim Lesen der Sequence';
- return false;
- }
- }
- else
- {
- $this->db_query('ROLLBACK');
- $this->errormsg = 'Fehler beim Lesen der Sequence';
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Einfuegen des Datensatzes';
- return false;
- }
- }
-
- /**
- * Entfernt einen Eintrag in der tbl_moodle an
- * @return true wenn ok, false im Fehlerfall
- */
- public function delete_vilesci($mdl_course_id=null,$lehrveranstaltung_id=null,$lehreinheit_id=null)
- {
- $this->errormsg = '';
- if (!is_null($mdl_course_id) && !empty($mdl_course_id))
- $this->mdl_course_id=$mdl_course_id;
- if (!is_null($lehrveranstaltung_id) && !empty($lehrveranstaltung_id))
- $this->lehrveranstaltung_id=$lehrveranstaltung_id;
- if (!is_null($lehreinheit_id) && !empty($lehreinheit_id))
- $this->lehreinheit_id=$lehreinheit_id;
- $where='';
- if (!is_null($this->mdl_course_id) && !empty($this->mdl_course_id))
- $where.=($where?' and ':' where '). ' mdl_course_id='.$this->db_add_param($this->mdl_course_id, FHC_INTEGER);
- else
- $where.=($where?' and ':' where '). ' mdl_course_id=0';
- if (!is_null($this->lehrveranstaltung_id) && !empty($this->lehrveranstaltung_id))
- $where.=($where?' and ':' where '). ' lehrveranstaltung_id='.$this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER);
- if (!is_null($this->lehreinheit_id) && !empty($this->lehreinheit_id))
- $where.=($where?' and ':' where '). ' lehreinheit_id='.$this->db_add_param($this->lehreinheit_id, FHC_INTEGER);
- if (empty($where))
- {
- $this->errormsg='mdl_course_id oder LV oder LE muss angegeben sein';
- return false;
- }
-
- $qry='DELETE FROM lehre.tbl_moodle '.$where;
- if(!$this->db_query($qry))
- {
- $this->errormsg = 'Fehler beim Loeschen der Zuteilung';
- return false;
- }
-
- return true;
- }
-
- /**
- * Aendert einen Eintrag in der tbl_moodle an
- * @return true wenn ok, false im Fehlerfall
- */
- public function update_vilesci()
- {
- if($this->mdl_course_id=='')
- {
- $this->errormsg='mdl_course_id muss angegeben sein';
- return false;
- }
- if (is_null($this->new) || empty($this->new))
- $this->new=false;
-
- $this->db_query('BEGIN;');
- $qry = '';
- $res=0;
-
- if (!$this->new)
- {
- $qrySel = 'SELECT 1 FROM lehre.tbl_moodle WHERE mdl_course_id='.$this->db_add_param($this->mdl_course_id, FHC_INTEGER);
- if(!$res=$this->db_query($qrySel))
- {
- $this->errormsg = 'Fehler beim Datenbankzugriff';
- return false;
- }
- if($this->db_num_rows($res)>0)
- {
- if ($this->lehrveranstaltung_id!='' && !is_null($this->lehrveranstaltung_id))
- {
- $qry.= 'DELETE FROM lehre.tbl_moodle WHERE mdl_course_id='.$this->db_add_param($this->mdl_course_id, FHC_INTEGER).' and not lehreinheit_id = '.$this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER) .';';
- }
- else
- {
- $qry.= 'DELETE FROM lehre.tbl_moodle WHERE mdl_course_id='.$this->db_add_param($this->mdl_course_id, FHC_INTEGER).' and not lehreinheit_id in ('. (is_array($this->lehreinheit_id)? implode(',',$this->lehreinheit_id) :$this->lehreinheit_id) .');';
- }
- }
- }
-
- if ( ($this->lehrveranstaltung_id!='' && !is_null($this->lehrveranstaltung_id))
- || !is_array($this->lehreinheit_id) )
- {
- $qrySel = 'SELECT 1 FROM lehre.tbl_moodle WHERE mdl_course_id='.$this->db_add_param($this->mdl_course_id, FHC_INTEGER);
- if ($this->new)
- {
- if ( $this->lehrveranstaltung_id!='' && !is_null($this->lehrveranstaltung_id) )
- $qrySel.= ' and lehrveranstaltung_id='.$this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER);
- else
- $qrySel.= ' and lehreinheit_id='.$this->db_add_param($this->lehreinheit_id, FHC_INTEGER);
- }
-
- if(!$res=$this->db_query($qrySel))
- {
- $this->errormsg = 'Fehler beim Datenbankzugriff';
- $this->db_query('ROLLBACK');
- return false;
-
- }
- if($this->db_num_rows($res)>0)
- {
- $qry.= 'UPDATE lehre.tbl_moodle SET
- lehreinheit_id='.$this->db_add_param($this->lehreinheit_id, FHC_INTEGER).',
- lehrveranstaltung_id='.$this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER).',
- studiensemester_kurzbz='.$this->db_add_param($this->studiensemester_kurzbz).'
- ';
- if (!is_null($this->gruppen))
- $qry.= ',gruppen='.$this->db_add_param($this->gruppen, FHC_BOOLEAN);
- $qry.= ' WHERE mdl_course_id='.$this->db_add_param($this->mdl_course_id, FHC_INTEGER, false).'; ';
- }
- else
- {
- $qry.= 'INSERT INTO lehre.tbl_moodle(mdl_course_id, lehreinheit_id, lehrveranstaltung_id,
- studiensemester_kurzbz, insertamum, insertvon, gruppen)
- VALUES('.
- $this->db_add_param($this->mdl_course_id, FHC_INTEGER).','.
- $this->db_add_param($this->lehreinheit_id, FHC_INTEGER).','.
- $this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER).','.
- $this->db_add_param($this->studiensemester_kurzbz).','.
- $this->db_add_param($this->insertamum).','.
- $this->db_add_param($this->insertvon).','.
- $this->db_add_param($this->gruppen, FHC_BOOLEAN).'); ';
- }
- }
- // Lehreinheiten anlegen - Array
- else
- {
- foreach ($this->lehreinheit_id as $key=>$value)
- {
- $qrySel = 'SELECT 1 FROM lehre.tbl_moodle WHERE mdl_course_id='.$this->db_add_param($this->mdl_course_id). ' AND lehreinheit_id='.$this->db_add_param($value, FHC_INTEGER);
- if(!$res=$this->db_query($qrySel))
- {
- $this->errormsg = 'Fehler beiDatenbank abfrage';
- $this->db_query('ROLLBACK');
- return false;
- }
- if($this->db_num_rows($res)>0)
- {
- $qry.= 'UPDATE lehre.tbl_moodle SET
- lehrveranstaltung_id='.$this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER).',
- studiensemester_kurzbz='.$this->db_add_param($this->studiensemester_kurzbz).'
- ';
- if (!is_null($this->gruppen))
- $qry.= ',gruppen='.$this->db_add_param($this->gruppen, FHC_BOOLEAN);
- $qry.= ' WHERE mdl_course_id='.$this->db_add_param($this->mdl_course_id, FHC_INTEGER);
- $qry.= ' AND lehreinheit_id='.$this->db_add_param($value, FHC_INTEGER).'; ';
-
- }
- else
- {
- $qry.= 'INSERT INTO lehre.tbl_moodle(mdl_course_id, lehreinheit_id, lehrveranstaltung_id,
- studiensemester_kurzbz, insertamum, insertvon, gruppen)
- VALUES('.
- $this->db_add_param($this->mdl_course_id, FHC_INTEGER).','.
- $this->db_add_param($value, FHC_INTEGER).','.
- $this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER).','.
- $this->db_add_param($this->studiensemester_kurzbz).','.
- $this->db_add_param($this->insertamum).','.
- $this->db_add_param($this->insertvon).','.
- $this->db_add_param($this->gruppen, FHC_BOOLEAN).'); ';
- }
- }
- }
-
- if(!$this->db_query($qry))
- {
- $this->db_query('ROLLBACK');
- $this->errormsg = 'Fehler beim Aendern des Datensatzes! ';
- return false;
- }
-
- $this->db_query('COMMIT;');
- return true;
-
- }
-
- /**
- * Aendert einen Kurs im Moodle an
- * @return true wenn ok, false im Fehlerfall
- */
- public function update_moodle($oldPath = null)
- {
- if($this->mdl_course_id=='')
- {
- $this->errormsg='mdl_course_id muss angegeben sein';
- return false;
- }
-
- if( (is_null($this->lehrveranstaltung_id) || $this->lehrveranstaltung_id=='')
- && (is_null($this->lehreinheit_id) && $this->lehreinheit_id==''))
- {
- $this->errormsg='LvID oder LeID muss uebergeben werden';
- return false;
- }
-
- pg_query($this->conn_moodle, 'BEGIN;');
-
- //CourseCategorie ermitteln
-
- //lehrveranstalung ID holen falls die nur die lehreinheit_id angegeben wurde
- if($this->lehrveranstaltung_id=='' || is_null($this->lehrveranstaltung_id))
- {
- $qry = "SELECT lehrveranstaltung_id FROM lehre.tbl_lehreinheit
- WHERE lehreinheit_id='".addslashes($this->lehreinheit_id)."'";
- if($res=$this->db_query($qry))
- {
- if($row = $this->db_fetch_object($res))
- {
- $lvid = $row->lehrveranstaltung_id;
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Ermitteln der LehrveranstaltungID';
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Ermitteln der LehrveranstaltungID';
- return false;
- }
- }
- else
- $lvid = $this->lehrveranstaltung_id;
-
- //Studiengang und Semester holen
- $qry = "SELECT tbl_lehrveranstaltung.semester, UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as stg
- FROM lehre.tbl_lehrveranstaltung JOIN public.tbl_studiengang USING(studiengang_kz)
- WHERE lehrveranstaltung_id='$lvid'";
-
- if($res=$this->db_query($qry))
- {
- if($row = $this->db_fetch_object($res))
- {
- $semester = $row->semester;
- $stg = $row->stg;
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester';
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester';
- return false;
- }
-
- //Studiensemester Categorie holen
- if(!$id_stsem = $this->getCategorie($this->studiensemester_kurzbz, '0'))
- {
- if(!$id_stsem = $this->createCategorie($this->studiensemester_kurzbz, '0'))
- echo "
Fehler beim Anlegen des Studiensemesters";
- }
-
- //Studiengang Categorie holen
- if(!$id_stg = $this->getCategorie($stg, $id_stsem))
- {
- if(!$id_stg = $this->createCategorie($stg, $id_stsem))
- echo "
$this->errormsg";
- }
-
- //Semester Categorie holen
- if(!$id_sem = $this->getCategorie($semester, $id_stg))
- {
- if(!$id_sem = $this->createCategorie($semester, $id_stg))
- echo "
$this->errormsg";
- }
-
- //CourseCategorie Context holen
- $this->getContext(40, $id_sem);
-
-
- $qry = 'UPDATE public.mdl_course set
- category='.$this->addslashes($id_sem).',
- fullname='. $this->addslashes($this->mdl_fullname) .',
- shortname='.$this->addslashes($this->mdl_shortname).'
- ';
- $qry.= " WHERE id='".addslashes($this->mdl_course_id)."'; ";
-
-#echo $qry;
-#return true;
-
- if(!$result = pg_query($this->conn_moodle, $qry))
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Update';
- return false;
- }
-
- /*
- $qry = "DELETE FROM public.mdl_context where contextlevel='50' and instanceid=".$this->addslashes($this->mdl_course_id)." ;";
- if(!pg_query($this->conn_moodle, $qry))
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Entfernen des Context eintrages. '. pg_last_error();
- return false;
- }
- */
-
- $update=false;
- $qry = "SELECT id FROM public.mdl_context WHERE contextlevel='50' and instanceid=".$this->addslashes($this->mdl_course_id)." ;";
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if($row = pg_fetch_object($result))
- {
- $this->mdl_context_id = $row->id;
- $update=true;
- }
- }
-
- if($update)
- {
- //zum vorherigen Pfad die aktuelle id hinzufuegen
- $path = $this->mdl_context_path.'/'.$this->mdl_context_id;
- //vorherige tiefe um 1 erhoehen
- $depth = $this->mdl_context_depth+1;
-
- $qry = "UPDATE public.mdl_context SET
- contextlevel=50,
- instanceid=".$this->addslashes($this->mdl_course_id).",
- path=".$this->addslashes($path).",
- depth=".$this->addslashes($depth)."
- WHERE id='".addslashes($this->mdl_context_id)."';";
- if(!pg_query($this->conn_moodle, $qry))
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Update des Contexts';
- return false;
- }
-
- $qry = "UPDATE public.mdl_context SET
- path=".$this->addslashes($path)."|| '/' || mdl_context.id
- WHERE path LIKE '".$oldPath."%';";
- if(!pg_query($this->conn_moodle, $qry))
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Update des Contexts';
- return false;
- }
- }
- else
- {
- $qry ="SELECT nextval('mdl_context_id_seq') as nextId";
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if($row=pg_fetch_object($result))
- {
- // nächste id herausfinden -> wegen insert
- $path = $this->mdl_context_path.'/'.$row->nextId;
- // tiefe um 1 erhoehen
- $depth = $this->mdl_context_depth+1;
- }
- else
- {
- $this->errormsg = 'Fehler beim Select der Sequence :'. pg_last_error();
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Select der Sequence :'. pg_last_error();
- return false;
- }
-
- //Context eintragen
- $qry = "INSERT INTO public.mdl_context(contextlevel, instanceid, path, depth) VALUES('50', ".
- $this->addslashes($this->mdl_course_id).",'".$this->addslashes($path)."',".$this->addslashes($depth).");";
- if(pg_query($this->conn_moodle, $qry))
- {
- $qry = "SELECT currval('mdl_context_id_seq') as id";
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if($row = pg_fetch_object($result))
- {
- $this->mdl_context_id = $row->id;
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Auslesen der Sequence ::'. pg_last_error($result).' '. pg_last_error();
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Select der Sequence :'. pg_last_error();
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim INSERT';
- return false;
- }
- }
-
-
- pg_query($this->conn_moodle, 'COMMIT;');
- return true;
- }
-
-
-
- /**
- * Legt einen Kurs im Moodle an
- * @return true wenn ok, false im Fehlerfall
- */
- public function create_moodle()
- {
- //CourseCategorie ermitteln
-
- //lehrveranstalung ID holen falls die nur die lehreinheit_id angegeben wurde
- if($this->lehrveranstaltung_id=='')
- {
- $qry = "SELECT lehrveranstaltung_id FROM lehre.tbl_lehreinheit
- WHERE lehreinheit_id=".$this->db_add_param($this->lehreinheit_id, FHC_INTEGER);
- if($res=$this->db_query($qry))
- {
- if($row = $this->db_fetch_object($res))
- {
- $lvid = $row->lehrveranstaltung_id;
- }
- else
- {
- $this->errormsg = 'Fehler beim Ermitteln der LehrveranstaltungID';
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Ermitteln der LehrveranstaltungID';
- return false;
- }
- }
- else
- $lvid = $this->lehrveranstaltung_id;
-
- //Studiengang und Semester holen
- $qry = "SELECT tbl_lehrveranstaltung.semester, UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as stg
- FROM lehre.tbl_lehrveranstaltung JOIN public.tbl_studiengang USING(studiengang_kz)
- WHERE lehrveranstaltung_id=".$this->db_add_param($lvid, FHC_INTEGER);
-
- if($res=$this->db_query($qry))
- {
- if($row = $this->db_fetch_object($res))
- {
- $semester = $row->semester;
- $stg = $row->stg;
- }
- else
- {
- $this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester';
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester';
- return false;
- }
-
- //Studiensemester Categorie holen
- if(!$id_stsem = $this->getCategorie($this->studiensemester_kurzbz, '0'))
- {
- if(!$id_stsem = $this->createCategorie($this->studiensemester_kurzbz, '0'))
- echo "
Fehler beim Anlegen des Studiensemesters";
- }
- //Studiengang Categorie holen
- if(!$id_stg = $this->getCategorie($stg, $id_stsem))
- {
- if(!$id_stg = $this->createCategorie($stg, $id_stsem))
- echo "
$this->errormsg";
- }
- //Semester Categorie holen
- if(!$id_sem = $this->getCategorie($semester, $id_stg))
- {
- if(!$id_sem = $this->createCategorie($semester, $id_stg))
- echo "
$this->errormsg";
- }
-
-
- $client = new SoapClient($this->serverurl);
-
- $data = new stdClass();
- $data->fullname=$this->mdl_fullname;
- $data->shortname=$this->mdl_shortname;
- $data->categoryid=$id_sem;
- $data->format='topics';
-
- $response = $client->core_course_create_courses(array($data));
- if(isset($response[0]))
- {
- $this->mdl_course_id=$response[0]['id'];
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Anlegen des Kurses';
- return false;
- }
-
- //Bloecke hinzufuegen
- /* TODO
-
- $qry =
- "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(20, $this->mdl_course_id, 'course-view', 'l', 0, 1);". //Teilnehmer
- "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(1, $this->mdl_course_id, 'course-view', 'l', 1, 1);". //Aktivit�ten
- "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(25, $this->mdl_course_id, 'course-view', 'l', 2, 1);". //Forumssuche
- "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(2, $this->mdl_course_id, 'course-view', 'l', 3, 1);". //Admin
- "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(9, $this->mdl_course_id, 'course-view', 'l', 4, 1);". //Kursliste
- "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(18, $this->mdl_course_id, 'course-view', 'r', 0, 1);". //Neueste Nachrichten
- "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(8, $this->mdl_course_id, 'course-view', 'r', 1, 1);". //Kalender / Bald aktuell...
- "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(22, $this->mdl_course_id, 'course-view', 'r', 2, 1);"; //Neueste Aktivit�ten
- if(!pg_query($this->conn_moodle, $qry))
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim INSERT der bloecke';
- return false;
- }
- else
- {
- pg_query($this->conn_moodle, 'COMMIT');
- return true;
- }*/
-
- return true;
- }
-
- /**
- * Laedt eine CourseCategorie anhand der Bezeichnung und der
- * ParentID
- */
- public function getCategorie($bezeichnung, $parent)
- {
- if($bezeichnung=='')
- {
- $this->errormsg = 'Bezeichnung muss angegeben werden';
- return false;
- }
- if($parent=='')
- {
- $this->errormsg = 'getCategorie: parent wurde nicht uebergeben';
- return false;
- }
-
- $client = new SoapClient($this->serverurl);
- $response = $client->core_course_get_categories(array(array('key'=>'name','value'=>$bezeichnung),array('key'=>'parent','value'=>$parent)));
-
- if(isset($response[0]))
- {
- return $response[0]['id'];
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der KursKategorie';
- return false;
- }
- }
-
- /**
- * Erzeugt eine CourseCategorie anhand der Bezeichnung und der
- * ParentID
- */
- public function createCategorie($bezeichnung, $parent)
- {
- if($bezeichnung=='')
- {
- $this->errormsg = 'Bezeichnung muss angegeben werden';
- return false;
- }
- if($parent=='')
- {
- $this->errormsg = 'createCategorie: parent wurde nicht uebergeben';
- return false;
- }
-
- $client = new SoapClient($this->serverurl);
- $response = $client->core_course_create_categories(array(array('name'=>$bezeichnung,'parent'=>$parent)));
-
- if(isset($response[0]))
- {
- return $response[0]['id'];
- }
- else
- {
- $this->errormsg = 'Fehler beim Anlegen der Kategorie';
- return false;
- }
- }
-
- /**
- * Liefert alle Kurse dieser LV in denen der Student
- * zugeteilt ist
- */
- public function getCourse($lehrveranstaltung_id, $studiensemester_kurzbz, $student_uid)
- {
- //alle betreffenden Kurse holen
- $qry = "SELECT tbl_lehreinheit.lehreinheit_id, mdl_course_id FROM lehre.tbl_moodle JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id, studiensemester_kurzbz)
- WHERE tbl_moodle.lehrveranstaltung_id='".addslashes($lehrveranstaltung_id)."'
- AND tbl_moodle.studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'
- UNION
- SELECT tbl_lehreinheit.lehreinheit_id, mdl_course_id FROM lehre.tbl_moodle JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
- WHERE tbl_lehreinheit.lehrveranstaltung_id='".addslashes($lehrveranstaltung_id)."' AND
- tbl_lehreinheit.studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'";
-
- $courses = array();
- if($result = $this->db_query($qry))
- {
- while($row = $this->db_fetch_object($result))
- {
- //schauen in welchen der Student ist
- $qry = "SELECT 1 FROM campus.vw_student_lehrveranstaltung
- WHERE uid='".addslashes($student_uid)."' AND lehreinheit_id='".addslashes($row->lehreinheit_id)."'";
-
- if($result_vw = $this->db_query($qry))
- {
- if($this->db_num_rows($result_vw)>0)
- {
- if(!array_key_exists($row->mdl_course_id, $courses))
- $courses[]=$row->mdl_course_id;
- }
- }
- }
- }
-
- return $courses;
- }
-
- /**
- * Aktualisiert die Spalte gruppen in der tbl_moodle
- * @param moodle_id ID der MoodleZuteilung
- * gruppen boolean true wenn syncronisiert
- * werden soll, false wenn nicht
- * @return true wenn ok, false im Fehlerfall
- */
- public function updateGruppenSync($moodle_id, $gruppen)
- {
- if(!is_numeric($moodle_id))
- {
- $this->errormsg = 'Moodle_id muss eine gueltige Zahl sein';
- return false;
- }
-
- $qry = "UPDATE lehre.tbl_moodle SET gruppen=".$this->db_add_param($gruppen, FHC_BOOLEAN)."
- WHERE moodle_id=".$this->db_add_param($moodle_id, FHC_INTEGER);
-
- if($this->db_query($qry))
- {
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Update';
- return false;
- }
- }
-
- /**
- * Legt einen Testkurs an
- */
- public function createTestkurs($lehrveranstaltung_id, $studiensemester_kurzbz)
- {
- //CourseCategorie ermitteln
-
- //Studiengang und Semester holen
-
- $qry = "SELECT
- tbl_lehrveranstaltung.semester,
- UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as stg
- FROM
- lehre.tbl_lehrveranstaltung
- JOIN public.tbl_studiengang USING(studiengang_kz)
- WHERE
- lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER);
-
- if($this->db_query($qry))
- {
- if($row = $this->db_fetch_object())
- {
- $semester = $row->semester;
- $stg = $row->stg;
- }
- else
- {
- $this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester';
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester';
- return false;
- }
-
- //Testkurs Categorie holen
- if(!$id_testkurs = $this->getCategorie('Testkurse', '0'))
- {
- if(!$id_testkurs = $this->createCategorie('Testkurse', '0'))
- echo "
Fehler beim Anlegen der Testkurskategorie";
- }
- //StSem Categorie holen
- if(!$id_stsem = $this->getCategorie($studiensemester_kurzbz, $id_testkurs))
- {
- if(!$id_stsem = $this->createCategorie($studiensemester_kurzbz, $id_testkurs))
- echo "
$this->errormsg";
- }
-
- $client = new SoapClient($this->serverurl);
-
- $data = new stdClass();
- $data->fullname=$this->mdl_fullname;
- $data->shortname=$this->mdl_shortname;
- $data->categoryid=$id_stsem;
- $data->format='topics';
-
- $response = $client->core_course_create_courses(array($data));
- if(isset($response[0]))
- {
- $this->mdl_course_id=$response[0]['id'];
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Anlegen des Testkurses';
- return false;
- }
- }
-
- /**
- * Laedt den Testkurs zu dieser Lehrveranstaltung
- * @param lehrveranstaltung_id
- * studiensemester_kurzbz
- * @return ID wenn gefunden, false wenn nicht vorhanden
- */
- public function loadTestkurs($lehrveranstaltung_id, $studiensemester_kurzbz)
- {
- $qry = "SELECT
- UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as kuerzel,
- tbl_lehrveranstaltung.semester, tbl_lehrveranstaltung.kurzbz
- FROM
- lehre.tbl_lehrveranstaltung JOIN public.tbl_studiengang USING(studiengang_kz)
- WHERE
- lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER, false);
-
- if($this->db_query($qry))
- {
- if($row = $this->db_fetch_object())
- {
- $shortname = mb_strtoupper('TK-'.$studiensemester_kurzbz.'-'.$row->kuerzel.'-'.$row->semester.'-'.$row->kurzbz);
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden des Testkurses';
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden des Testkurses';
- return false;
- }
-
- //Testkurs Categorie holen
- if(!$id_testkurs = $this->getCategorie('Testkurse', '0'))
- {
- $this->errormsg = 'Categorie nicht gefunden';
- return false;
- }
-
- //StSem Categorie holen
- if(!$id_stsem = $this->getCategorie($studiensemester_kurzbz, $id_testkurs))
- {
- $this->errormsg = 'Categorie nicht gefunden';
- return false;
- }
-
- $client = new SoapClient($this->serverurl);
- $response = $client->fhcomplete_courses_by_shortname(array('shortnames'=>array($shortname)));
-
- if(isset($response[0]))
- {
- $this->mdl_fullname = $response[0]['fullname'];
- $this->mdl_shortname = $response[0]['shortname'];
- $this->mdl_course_id = $response[0]['id'];
- return true;
- }
- else
- {
- $this->errormsg='Es wurde kein Testkurs gefunden';
- return false;
- }
- }
-
-
- /**
- * Laedt die Noten zu einem Moodle Course ID
- * @param mdl_course_id
- *
- * @return objekt mit den Noten der Teilnehmer dieses Kurses
- */
- public function loadNoten($lehrveranstaltung_id=null, $studiensemester_kurzbz=null,$student_uid='',$bDetailinfo=false,$bServerinfo=false)
- {
-
-
- $this->errormsg='';
- $this->result=null;
-
- // Init
- if (!is_null($lehrveranstaltung_id))
- $this->lehrveranstaltung_id=trim($lehrveranstaltung_id);
- if (!is_null($studiensemester_kurzbz))
- $this->studiensemester_kurzbz=trim($studiensemester_kurzbz);
- $student_uid=trim($student_uid);
-
-
-
- // plausib
- if (empty($this->lehrveranstaltung_id)
- || empty($this->studiensemester_kurzbz) )
- {
- $this->errormsg = 'Es fehlt die Eingabe von ';
- $this->errormsg.=(empty($this->lehrveranstaltung_id)?' Lehrveranstaltung ':$this->lehrveranstaltung_id);
- $this->errormsg.=(empty($this->studiensemester_kurzbz)?' Semester (Kurzbz.) ':$this->studiensemester_kurzbz);
- return false;
- }
-
- // --------------------------------------------------------------------
- // Ermitteln die Lehreinheiten und Moodle ID
- // mit dem studiensemester_kurzbz ( bsp WS2008 )
- // und der lehrveranstaltung_id aus FAS ( bsp 23802 )
- // --------------------------------------------------------------------
-
- $qry = "
- SELECT tbl_lehreinheit.lehreinheit_id, mdl_course_id,tbl_lehreinheit.studiensemester_kurzbz,tbl_lehreinheit.lehrveranstaltung_id
- FROM lehre.tbl_moodle
- JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id, studiensemester_kurzbz)
- WHERE tbl_moodle.lehrveranstaltung_id > 0 ";
- if ($this->lehrveranstaltung_id)
- $qry.= " and tbl_moodle.lehrveranstaltung_id ='".addslashes($this->lehrveranstaltung_id)."' ";
- if ($this->studiensemester_kurzbz)
- $qry.= " and tbl_moodle.studiensemester_kurzbz ='".addslashes($this->studiensemester_kurzbz)."' ";
- $qry.= "
- UNION
- SELECT tbl_lehreinheit.lehreinheit_id, mdl_course_id,tbl_lehreinheit.studiensemester_kurzbz,tbl_lehreinheit.lehrveranstaltung_id
- FROM lehre.tbl_moodle
- JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
- WHERE tbl_lehreinheit.lehrveranstaltung_id > 0 ";
- if ($this->lehrveranstaltung_id)
- $qry.= " and tbl_lehreinheit.lehrveranstaltung_id ='".addslashes($this->lehrveranstaltung_id)."' ";
- if ($this->studiensemester_kurzbz)
- $qry.= " and tbl_moodle.studiensemester_kurzbz ='".addslashes($this->studiensemester_kurzbz)."' ";
-
- if(!$result_moodle=$this->db_query($qry))
- {
- $this->errormsg = 'Fehler beim Lesen der Moodle Kurse , '.$this->errormsg;
- return false;
- }
-
-
- // init
- $_lehreinheit=array(); // Lehreinheiten zum lesen Studenten im Campus (Student und LE im FAS)
- $_lehrveranstaltung = array(); // Gesamte Information der Lehreinheit und Moodle IDs
- $_studiensemester_kurzbz=array();
- $_lehreinheit_kpl=array();
- while($row = $this->db_fetch_object($result_moodle))
- {
-
- $row->lehreinheit_id=trim($row->lehreinheit_id);
- $_lehreinheit_kpl[$row->lehreinheit_id]=$row;
-
- $_lehreinheit[$row->lehreinheit_id]=$row->lehreinheit_id; // Fuer Select Campus
-
- $row->lehrveranstaltung_id=trim($row->lehrveranstaltung_id);
- $_lehrveranstaltung[$row->lehrveranstaltung_id]=$row->lehrveranstaltung_id; // Fuer Select Campus
-
- $row->studiensemester_kurzbz=trim($row->studiensemester_kurzbz);
- $_studiensemester_kurzbz[$row->studiensemester_kurzbz]=$row->studiensemester_kurzbz; // Fuer Select Campus
-
- }
- if (count($_lehreinheit)<1) // Es gibt keine Lehreinheiten
- {
- $this->errormsg='Es wurde kein passender Moodle-Kurs gefunden';
- return false;
- }
-
- // --------------------------------------------------------------------
- //
- // Suchen Studenten Lehreinheiten zu Moodle - LE
- // Fuer die Notenermittlung sind nur Studenten wichtig
- // die einen Moodlekurs besuchen der auch eine Lehrveranstaltung ist
- // Als Ergebnis sind alle Studenten mit gemeinsame Moodle und FAS LV
- // --------------------------------------------------------------------
- $qry = "SELECT distinct vw_student_lehrveranstaltung.lehreinheit_id,lehrveranstaltung_id,studiensemester_kurzbz,kurzbz,bezeichnung,semester,studiengang_kz
- FROM campus.vw_student_lehrveranstaltung
- ";
- $qry.= " WHERE vw_student_lehrveranstaltung.lehreinheit_id in (".implode(",",$_lehreinheit).") ";
- $qry.= " AND lehrveranstaltung_id in (".implode(",",$_lehrveranstaltung).") ";
- $qry.= " AND vw_student_lehrveranstaltung.studiensemester_kurzbz in ('".implode("','",$_studiensemester_kurzbz)."') ";
- if (!empty($student_uid))
- $qry.= " AND uid ='".addslashes($student_uid)."' ";
-
- if(!$result_moodle=$this->db_query($qry))
- {
- $this->errormsg = 'Fehler beim Lesen der Studenten mit Lehreinheit(en) ';
- return false;
- }
-
- if (!$anz=$this->db_num_rows($result_moodle))
- {
- $this->errormsg ="keine Lehrveranstaltung (Lehreinheit) fuer Moodle Kursdaten gefunden!";
- return false;
- }
-
- $last_moodle_id=false;
- while($row = $this->db_fetch_object($result_moodle))
- {
-
- // Von der Lehreinheit kann der Moodle-Kurs ermittelt werden
- $this->mdl_course_id=trim($_lehreinheit_kpl[$row->lehreinheit_id]->mdl_course_id);
- if ($last_moodle_id==$this->mdl_course_id)
- continue;
- $last_moodle_id=$this->mdl_course_id;
-
- // XML RPC - Call
- $method = "NotenCourseByID";
-
- $m_user=array();
- $m_user['CourseID']=$this->mdl_course_id;
- $mdl_username=trim($student_uid);
- $m_user['UserId']=$mdl_username;
-
- if (!$result=$this->callMoodleXMLRPC($method,$m_user,$bServerinfo))
- return false;
-
- if ($result[0]==1)
- {
-
- $error=(isset($result[1])?$result[1]:"Kurs Info ");
- $kursArr=(isset($result[2])?$result[2]:array());
- $kursasObj=(isset($result[3])?$result[3]:array());
- $userArr=(isset($result[4])?$result[4]:array());
- $userasObj=(isset($result[5])?$result[5]:array());
- $id=(isset($result[6])?$result[6]:'');
- $kursname=(isset($result[7])?$result[7]:'');
- $shortname=(isset($result[8])?$result[8]:'');
- $courseArr=(isset($result[9])?$result[9]:array());
-
- if (!empty($student_uid))
- $note=(isset($userArr) && isset($userArr[6])?$userArr[6]:'?');
- else
- $note=0;
-
- $obj = new moodle_course($this->conn_moodle);
-
- $obj->mdl_course_id = $this->mdl_course_id;
- $obj->lehreinheit_id=$row->lehreinheit_id;
-
- $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
- $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
-
- $obj->lehrveranstaltung_kurzbz=$row->kurzbz;
- $obj->lehrveranstaltung_bezeichnung=$row->bezeichnung;
- $obj->lehrveranstaltung_semester=$row->semester;
- $obj->lehrveranstaltung_studiengang_kz=$row->studiengang_kz;
-
- $obj->mdl_fullname=$kursname;
- $obj->mdl_shortname=$shortname;
- $obj->note=$note;
-
- $obj->errormsg=(isset($result[1])?$result[1]:"");
- $obj->note=$note;
-
- if ($bDetailinfo || empty($student_uid))
- $obj->result=$result;
- else
- $obj->result=$userArr;
-
- $this->errormsg.=(!empty($this->errormsg)?", \n":"").$obj->errormsg;
- $this->result[]=$obj;
-
- }
- else
- {
- $this->errormsg.=(!empty($this->errormsg)?", \n":"").(isset($result[1])?$result[1]:"Fehler Kurs Info ".$this->moodle_id);
- }
-
- }
- return $this->result;
- } // Ende moodle Noten
-
-
- /**
- * Loescht einen Moodle Course im Moodel und in der DB
- * @param mdl_course_id
- * @param bServerinfo Detail xmlrpc Debug informationen
- *
- * @return objekt mit den Noten der Teilnehmer dieses Kurses
- */
- public function deleteKurs($mdl_course_id=null,$moodle_id=null,$bServerinfo=false)
- {
- $this->errormsg='';
- $this->result=array();
-
- if (!is_null($mdl_course_id))
- $this->mdl_course_id=$mdl_course_id;
-
-
- if (!is_null($moodle_id))
- $this->moodle_id=$moodle_id;
-
- if (is_null($this->mdl_course_id) || empty($this->mdl_course_id) || !is_numeric($this->mdl_course_id))
- {
- $this->errormsg='Moodle Kurs ID fehlt';
- return false;
- }
-
- // Variable Daten Initialisieren
- $args=array();
- $args['CourseID']=$this->mdl_course_id;
- $method = "DeleteCourseByID";
-
- if (!$result=$this->callMoodleXMLRPC($method,$args,$bServerinfo))
- return false;
-
- if (isset($result[1]))
- $this->errormsg=$result[1];
-
- if ($result[0]==1 || !$this->load($this->mdl_course_id)) // Methodenaufruf erfolgreich
- {
- $qry = "DELETE FROM lehre.tbl_moodle WHERE mdl_course_id='". addslashes($this->mdl_course_id) ."' ";
- if (!is_null($this->moodle_id) && $this->moodle_id!='')
- $qry.= " and moodle_id='".addslashes($this->moodle_id)."'";
- if(!$this->db_query($qry))
- {
- $this->errormsg=$this->errormsg." Moodlekurs $mdl_course_id wurde NICHT gelöscht in Lehre. ";
- return false;
- }
- }
- else // Result = 0 ein Fehler im RFC wurde festgestellt
- {
- $this->errormsg=(isset($result[1])?$result[1]:" - Fehler beim Kurs ".$this->mdl_course_id." löschen ");
- return false;
- }
-
- if (empty($this->errormsg))
- $this->errormsg.="Moodlekurs ".$this->mdl_course_id." wurde gelöscht.";
- return true;
-
- }
-}
diff --git a/include/moodle2_4_user.class.php b/include/moodle2_4_user.class.php
deleted file mode 100644
index 4d118f106..000000000
--- a/include/moodle2_4_user.class.php
+++ /dev/null
@@ -1,563 +0,0 @@
- and
- */
-/*
- * Connector fuer Moodle 2.4 User
- *
- * FHComplete Moodle Plugin muss installiert sein fuer
- * Webservice Funktion 'fhcomplete_user_get_users'
- */
-require_once(dirname(__FILE__).'/basis_db.class.php');
-
-class moodle_user extends basis_db
-{
- public $log=''; //log message fuer Syncro
- public $log_public=''; //log message fuer Syncro
- public $sync_create=0; //anzahl der durchgefuehrten zuteilungen beim syncro
- public $group_update=0; //anzahl der updates an gruppen
- private $serverurl;
-
- public $mdl_user_id;
- public $mdl_user_username;
- public $mdl_user_firstname;
- public $mdl_user_lastname;
-
- /**
- * Konstruktor
- */
- public function __construct()
- {
- $this->serverurl=MOODLE_PATH24.'/webservice/soap/server.php?wsdl=1&wstoken='.MOODLE_TOKEN24.'&'.microtime(true);
- return true;
- }
-
- /**
- * Laedt einen Moodle User
- *
- * @param $uid
- * @return boolean
- */
- public function loaduser($uid)
- {
- $client = new SoapClient($this->serverurl);
- $response = $client->fhcomplete_user_get_users(array(array('key'=>'username', 'value'=>$uid)));
-
- if(isset($response['users'][0]))
- {
- $this->mdl_user_id = $response['users'][0]['id'];
- $this->mdl_user_username = $response['users'][0]['username'];
- $this->mdl_user_firstname = $response['users'][0]['firstname'];
- $this->mdl_user_lastname = $response['users'][0]['lastname'];
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden des Users';
- return false;
- }
- }
-
- /**
- * Liefert ein Array mit allen Lektoren die
- * zu dem Moodle Kurs zugeteilt sind
- */
- public function getMitarbeiter($mdl_course_id)
- {
- //Mitarbeiter laden die zu diesem Kurs zugeteilt sind
- $qry = "SELECT
- mitarbeiter_uid
- FROM
- lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_moodle USING(lehreinheit_id)
- WHERE
- mdl_course_id=".$this->db_add_param($mdl_course_id, FHC_INTEGER)."
- UNION
- SELECT
- mitarbeiter_uid
- FROM
- lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
- JOIN lehre.tbl_moodle USING(lehrveranstaltung_id)
- WHERE
- tbl_lehreinheit.studiensemester_kurzbz=tbl_moodle.studiensemester_kurzbz
- AND mdl_course_id=".$this->db_add_param($mdl_course_id, FHC_INTEGER);
- $mitarbeiter=array();
- if($this->db_query($qry))
- {
- while($row_ma = $this->db_fetch_object())
- {
- $mitarbeiter[] = $row_ma->mitarbeiter_uid;
- }
- return $mitarbeiter;
- }
- else
- {
- $this->errormsg='Fehler beim Laden der Mitarbeiter';
- return false;
- }
- }
-
- /**
- * Synchronisiert die Lektoren der Lehreinheiten
- * mit denen des Moodle Kurses
- * @param $mdl_course_id ID des MoodleKurses
- * lehrveranstaltung_id wird nur angegeben beim Syncro von Testkursen
- * studiensemester_kurzbz wird nur angegeben beim Syncro von Testkursen
- * @return true wenn ok, false wenn Fehler
- */
- public function sync_lektoren($mdl_course_id, $lehrveranstaltung_id=null, $studiensemester_kurzbz=null)
- {
- //Mitarbeiter laden die zu diesem Kurs zugeteilt sind
- if(!is_null($lehrveranstaltung_id) && !is_null($studiensemester_kurzbz))
- {
- //Bei Testkursen werden alle Lektoren einer Lehrveranstaltung zugeteilt
- //da hier kein Eintrag in der tbl_moodle vorhanden ist, werden die Lektoren direkt aus
- //der tbl_lehreinheitmitarbeiter geholt.
- $qry = "SELECT
- mitarbeiter_uid
- FROM
- lehre.tbl_lehreinheitmitarbeiter
- JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
- WHERE
- lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
- AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
- }
- else
- {
- $qry = "SELECT
- mitarbeiter_uid
- FROM
- lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_moodle USING(lehreinheit_id)
- WHERE
- mdl_course_id=".$this->db_add_param($mdl_course_id, FHC_INTEGER)."
- UNION
- SELECT
- mitarbeiter_uid
- FROM
- lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
- JOIN lehre.tbl_moodle USING(lehrveranstaltung_id)
- WHERE
- tbl_lehreinheit.studiensemester_kurzbz=tbl_moodle.studiensemester_kurzbz
- AND mdl_course_id=".$this->db_add_param($mdl_course_id, FHC_INTEGER);
- }
- $mitarbeiter='';
-
- $client = new SoapClient($this->serverurl);
- $enrolled_users = $client->core_enrol_get_enrolled_users($mdl_course_id,array());
-
- if($result_ma = $this->db_query($qry))
- {
- while($row_ma = $this->db_fetch_object($result_ma))
- {
- //MoodleID des Users holen bzw ggf neu anlegen
- if(!$this->loaduser($row_ma->mitarbeiter_uid))
- {
- //User anlegen
- if(!$this->createUser($row_ma->mitarbeiter_uid))
- {
- $this->errormsg = "Fehler beim Anlegen des Users $row_ma->mitarbeiter_uid: $this->errormsg";
- return false;
- }
- else
- $this->errormsg = '';
- }
-
- if($mitarbeiter!='')
- $mitarbeiter.=',';
- $mitarbeiter.=$this->mdl_user_id;
-
- $user_zugeteilt=false;
- foreach($enrolled_users as $user)
- {
- if($user->id==$this->mdl_user_id)
- {
- $user_zugeteilt=true;
- break;
- }
- }
-
- if(!$user_zugeteilt)
- {
- //Mitarbeiter ist noch nicht zugeteilt.
- $data = new stdClass();
- $data->roleid=3; // 3=Lektor
- $data->userid=$this->mdl_user_id;
- $data->courseid=$mdl_course_id;
-
- if($client->enrol_manual_enrol_users(array($data)))
- {
- $this->log.="\nder Lektor $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
- $this->log_public.="\nder Lektor $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
- $this->sync_create++;
- }
- else
- $this->log.="\nFehler beim Anlegen der Lektoren-Zuteilung: $this->errormsg";
- }
- }
-
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Ermitteln der Zugeteilten Lektoren';
- return false;
- }
- }
-
- /**
- * Synchronisiert die Studenten der Lehreinheiten
- * mit denen des Moodle Kurses
- * @param $mdl_course_id ID des MoodleKurses
- * @return true wenn ok, false wenn Fehler
- */
- public function sync_studenten($mdl_course_id)
- {
- //Studentengruppen laden die zu diesem Kurs zugeteilt sind
- $qry = "SELECT
- studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, tbl_moodle.studiensemester_kurzbz, tbl_moodle.gruppen
- FROM
- lehre.tbl_lehreinheitgruppe JOIN lehre.tbl_moodle USING(lehreinheit_id)
- WHERE
- mdl_course_id=".$this->db_add_param($mdl_course_id)."
- UNION
- SELECT
- studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, tbl_moodle.studiensemester_kurzbz, tbl_moodle.gruppen
- FROM
- lehre.tbl_lehreinheitgruppe JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
- JOIN lehre.tbl_moodle USING(lehrveranstaltung_id)
- WHERE
- tbl_lehreinheit.studiensemester_kurzbz=tbl_moodle.studiensemester_kurzbz
- AND mdl_course_id=".$this->db_add_param($mdl_course_id);
- $studenten='';
-
- $client = new SoapClient($this->serverurl);
- $enrolled_users = $client->core_enrol_get_enrolled_users($mdl_course_id, array());
-
- if($result_std = $this->db_query($qry))
- {
- while($row_std = $this->db_fetch_object($result_std))
- {
- //Schauen ob fuer diesen Kurs die Gruppen mitgesynct werden sollen
- $gruppensync = $this->db_parse_bool($row_std->gruppen);
-
- //Studenten dieser Gruppe holen
-
- if($row_std->gruppe_kurzbz=='') //LVB Gruppe
- {
- $qry = "SELECT
- distinct student_uid
- FROM
- public.tbl_studentlehrverband
- WHERE
- studiensemester_kurzbz=".$this->db_add_param($row_std->studiensemester_kurzbz)." AND
- studiengang_kz = ".$this->db_add_param($row_std->studiengang_kz)." AND
- semester = ".$this->db_add_param($row_std->semester);
-
- if(trim($row_std->verband)!='')
- {
- $qry.=" AND verband = ".$this->db_add_param($row_std->verband);
- if(trim($row_std->gruppe)!='')
- {
- $qry.=" AND gruppe = ".$this->db_add_param($row_std->gruppe);
- }
- }
- $studiengang_obj = new studiengang();
- $studiengang_obj->load($row_std->studiengang_kz);
- $gruppenbezeichnung = $studiengang_obj->kuerzel.'-'.trim($row_std->semester).trim($row_std->verband).trim($row_std->gruppe);
- }
- else //Spezialgruppe
- {
- $qry = "SELECT
- distinct uid as student_uid
- FROM
- public.tbl_benutzergruppe
- WHERE
- gruppe_kurzbz=".$this->db_add_param($row_std->gruppe_kurzbz)." AND
- studiensemester_kurzbz=".$this->db_add_param($row_std->studiensemester_kurzbz);
- $gruppenbezeichnung = $row_std->gruppe_kurzbz;
- }
-
- if($result_user = $this->db_query($qry))
- {
- while($row_user = $this->db_fetch_object($result_user))
- {
- //MoodleID des Users holen bzw ggf neu anlegen
- if(!$this->loaduser($row_user->student_uid))
- {
- //User anlegen
- if(!$this->createUser($row_user->student_uid))
- {
- $this->errormsg = "Fehler beim Anlegen des Users $row_user->student_uid: $this->errormsg";
- return false;
- }
- else
- $this->errormsg = '';
- }
-
- if($studenten!='')
- $studenten.=',';
- $studenten.=$this->mdl_user_id;
-
- //Nachschauen ob dieser Student bereits zugeteilt ist
-
- $user_zugeteilt=false;
- foreach($enrolled_users as $user)
- {
- if(isset($user->id) && $user->id==$this->mdl_user_id)
- {
- $user_zugeteilt=true;
- break;
- }
- }
-
- if(!$user_zugeteilt)
- {
- //Student ist noch nicht zugeteilt.
-
- $data = new stdClass();
- $data->roleid=5; // 5=Teilnehmer/Student
- $data->userid=$this->mdl_user_id;
- $data->courseid=$mdl_course_id;
-
- if($client->enrol_manual_enrol_users(array($data)))
- {
- $this->log.="\nder Student $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
- $this->log_public.="\nder Student $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
- $this->sync_create++;
- }
- else
- $this->log.="\nFehler beim Anlegen der Studenten-Zuteilung: $this->errormsg";
- }
- //Gruppenzuteilung
- if($gruppensync)
- {
- //Schauen ob die Gruppe vorhanden ist
- if(!$groupid = $this->getGroup($mdl_course_id, $gruppenbezeichnung))
- {
- //wenn nicht dann anlegen
- if(!$groupid = $this->createGroup($mdl_course_id, $gruppenbezeichnung))
- continue;
- $this->group_update++;
- $this->log.="\nes wurde eine neue Gruppe angelgt: $gruppenbezeichnung";
- $this->log_public.="\nes wurde eine neue Gruppe angelgt: $gruppenbezeichnung";
- }
-
- //Schauen ob eine Zuteilung zu dieser Gruppe vorhanden ist
- if(!$this->getGroupMember($groupid, $this->mdl_user_id))
- {
- //wenn nicht dann zuteilen
- $this->createGroupMember($groupid, $this->mdl_user_id);
- $this->group_update++;
- $this->log.="\nder Student $this->mdl_user_firstname $this->mdl_user_lastname wurde der Gruppe $gruppenbezeichnung zugeordnet";
- $this->log_public.="\nder Student $this->mdl_user_firstname $this->mdl_user_lastname wurde der Gruppe $gruppenbezeichnung zugeordnet";
- }
- }
- }
- }
- }
-
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Ermitteln der Zugeteilten Studenten';
- return false;
- }
- }
-
- /**
- * Schaut ob eine Zuteilung von Person zu Gruppe
- * existiert
- * @param grouid ID der Gruppe
- * userid ID des Users
- * @return true wenn zugeteilt sonst false
- */
- public function getGroupMember($groupid, $userid)
- {
- $client = new SoapClient($this->serverurl);
- $response = $client->core_group_get_group_members(array($groupid));
-
- foreach($response as $row)
- {
- if(isset($row->id) && $row->id==$userid)
- return true;
- }
-
- return false;
- }
-
- /**
- * Legt eine Zuteilung eines Users zu
- * einer Gruppe an
- * @param groupid ID der Gruppe
- * userid ID des Users
- * @return boolean
- */
- public function createGroupMember($groupid, $userid)
- {
- $client = new SoapClient($this->serverurl);
- $response = $client->core_group_add_group_members(array(array('groupid'=>$groupid, 'userid'=>$userid)));
- if(isset($response[0]))
- return true;
- else
- return false;
- }
-
- /**
- * Holt die ID einer MoodleGruppe
- * @param $mdl_course_id ID des Kurses
- * $gruppenbezeichnung Name der Gruppe
- * @return GruppenID wenn ok, false im Fehlerfall
- */
- public function getGroup($mdl_course_id, $gruppenbezeichnung)
- {
- $client = new SoapClient($this->serverurl);
- $response = $client->core_group_get_course_groups($mdl_course_id);
-
- foreach($response as $row)
- {
- if($row['name']==$gruppenbezeichnung)
- return $row['id'];
- }
-
- $this->errormsg = "Gruppe wurde nicht gefunden $gruppenbezeichnung";
- return false;
- }
-
- /**
- * Legt eine MoodleGruppe zu einem Kurs an
- * @param mdl_course_id ID des MoodleKuses
- * gruppenbezeichnung Bezeichnung der Gruppe
- * @return ID der Gruppe wenn ok, false im Fehlerfall
- */
- public function createGroup($mdl_course_id, $gruppenbezeichnung)
- {
- $client = new SoapClient($this->serverurl);
- $data = new stdClass();
- $data->courseid=$mdl_course_id;
- $data->name = $gruppenbezeichnung;
- $data->description = $gruppenbezeichnung;
-
- $response = $client->core_group_create_groups(array($data));
-
- if(isset($response[0]))
- {
- return $response[0]['id'];
- }
- else
- {
- $this->errormsg = 'Fehler beim Anlegen der Gruppe';
- return false;
- }
- }
-
- /**
- * Legt einen User im Moodle an
- * @param $uid UID der Person die angelegt werden soll
- * @return true wenn ok, false wenn Fehler
- */
- public function createUser($uid)
- {
- $qry = "SELECT uid, vorname, nachname FROM campus.vw_benutzer WHERE uid=".$this->db_add_param($uid);
- if($this->db_query($qry))
- {
- if($row = $this->db_fetch_object())
- {
- $username = $row->uid;
- $vorname = $row->vorname;
- $nachname = $row->nachname;
-
- $user = new stdClass();
- $user->username = $username;
- /*
- Passwort muss gesetzt werden damit das Anlegen funktioniert.
- Es wird ein random Passwort gesetzt
- Dieses wird beim Login nicht verwendet da ueber ldap authentifiziert wird.
- Prefix ist noetig damit es nicht zu Problemen kommt wenn
- im Moodle die Passwort Policy aktiviert ist
- */
- $user->password = "FHCv!A2".hash('sha512', rand());
- $user->firstname = $vorname;
- $user->lastname = $nachname;
- $user->email = $username.'@'.DOMAIN;
- $user->auth = 'ldap';
- $user->idnumber = $username;
- $user->lang = 'de';
-
- $client = new SoapClient($this->serverurl);
- $response = $client->core_user_create_users(array($user));
-
- if(isset($response[0]))
- {
- $this->mdl_user_id = $response[0]['id'];
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden des Users';
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden des Users';
- return false;
- }
- }
- else
- {
- $this->errormsg='Fehler beim Laden des Users';
- return false;
- }
- }
-
- /**
- * Teilt die TestStudenten zu einem Testkurs zu
- * @param mdl_course_id ID des Moodle Kurses
- */
- public function createTestStudentenZuordnung($mdl_course_id)
- {
- //Context des Kurses holen
- $mdlcourse = new moodle_course();
-
- $users = array('student1', 'student2', 'student3');
-
- foreach ($users as $row_user)
- {
- //MoodleID des Users holen
- if(!$this->loaduser($row_user))
- {
- $this->errormsg = "Fehler beim Laden des Users $row_user: $this->errormsg";
- return false;
- }
-
- $data = new stdClass();
- $data->roleid=5;
- $data->userid=$this->mdl_user_id;
- $data->courseid=$mdl_course_id;
-
- $client = new SoapClient($this->serverurl);
- $client->enrol_manual_enrol_users(array($data));
- // WS-Funktion enrol_manual_enrol_users liefert immer null zurück
- // Fehler bei der Zuordnung koennen daher nicht abgefangen werden.
- // Eventuell sollten hier nochmals die Teilnehmer des Kurses geladen werden
- // um zu pruefen ob die Zuordnung erfolgreich war.
- }
-
- return true;
- }
-}
diff --git a/include/moodle_course.class.php b/include/moodle_course.class.php
deleted file mode 100644
index 9b4c8f6b0..000000000
--- a/include/moodle_course.class.php
+++ /dev/null
@@ -1,2236 +0,0 @@
-,
- * Andreas Oesterreicher and
- * Rudolf Hangl .
- */
-/*
- *
- */
-require_once(dirname(__FILE__).'/basis_db.class.php');
-
-if (!function_exists('xu_load_extension'))
- include_once(dirname(__FILE__)."/xmlrpcutils/utils.php");
-
-class moodle_course extends basis_db
-{
- private $conn_moodle;
- public $result = array();
-
- //Vilesci Attribute
- public $moodle_id;
- public $mdl_course_id;
- public $lehreinheit_id;
- public $lehrveranstaltung_id;
- public $studiensemester_kurzbz;
- public $insertamum;
- public $insertvon;
- public $gruppen;
-
- //Moodle Attribute
- public $mdl_fullname;
- public $mdl_shortname;
-
- public $mdl_context_id;
- public $mdl_context_level;
- public $mdl_context_instanceid;
- public $mdl_context_path;
- public $mdl_context_depth;
-
- public $lehrveranstaltung_bezeichnung;
- public $lehrveranstaltung_semester;
- public $lehrveranstaltung_studiengang_kz;
-
- // Kurs Resourcen - Anzahl
- public $mdl_benotungen;
- public $mdl_resource;
- public $mdl_quiz;
- public $mdl_chat;
- public $mdl_forum;
- public $mdl_choice;
-
- public $note;
-
- /**
- * Konstruktor
- *
- */
- public function __construct($conn_moodle=null)
- {
- if(is_null($conn_moodle))
- {
- if(!$this->conn_moodle = pg_pconnect(CONN_STRING_MOODLE))
- {
- $this->errormsg = 'Fehler beim Herstellen der Moodle Connection';
- return false;
- }
- else
- return true;
- }
- else
- $this->conn_moodle = $conn_moodle;
-
- return true;
- }
-
- /**
- * Laedt einen MoodleKurs
- * @param mdl_course_id ID des Moodle Kurses
- * @return true wenn ok, false im Fehlerfall
- */
- public function load($mdl_course_id=null)
- {
- $this->mdl_fullname = '';
- $this->mdl_shortname = '';
-
- $this->errormsg='';
- $this->result=array();
-
- if (!is_null($mdl_course_id))
- $this->mdl_course_id=$mdl_course_id;
- if (is_null($this->mdl_course_id) || empty($this->mdl_course_id) || !is_numeric($this->mdl_course_id))
- {
- $this->errormsg='Moodle Kurs ID fehlt';
- return false;
- }
-
- $qry = "SELECT * FROM public.mdl_course WHERE id='".addslashes($mdl_course_id)."'";
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if($row = pg_fetch_object($result))
- {
- $this->mdl_fullname = $row->fullname;
- $this->mdl_shortname = $row->shortname;
- $this->mdl_course_id = $row->id;
- return true;
- }
- else
- {
- $this->errormsg = 'Kurs wurde nicht gefunden';
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden des Kurses';
- return false;
- }
- }
-
- /**
- * Laedt einen MoodleKurs
- * @param mdl_course_id ID des Moodle Kurses
- * @return true wenn ok, false im Fehlerfall
- */
- public function loadMoodle($mdl_course_id=null)
- {
- $this->mdl_fullname = '';
- $this->mdl_shortname = '';
-
- $this->errormsg='';
- $this->result=array();
-
- if (!is_null($mdl_course_id))
- $this->mdl_course_id=$mdl_course_id;
- if (is_null($this->mdl_course_id) || empty($this->mdl_course_id) || !is_numeric($this->mdl_course_id))
- {
- $this->errormsg='Moodle Kurs ID fehlt';
- return false;
- }
-
- // Variable Daten Initialisieren
- $args=array();
- $args['CourseID']=$this->mdl_course_id;
- $method = "ReadCourseByID";
- $bServerinfo=false; // Debug
- $result=$this->callMoodleXMLRPC($method,$args,$bServerinfo);
- if (!$result || !is_array($result) || count($result)<1 || !isset($result[0]))
- {
- $this->errormsg='Fehler xmlrpc Aufruf.';
- return false;
- }
- if (isset($result[1]))
- $this->errormsg=$result[1];
- if (!isset($result[0]) || empty($result[0])) // Methodenaufruf nicht erfolgreich
- return false;
- if (isset($result[2]) && is_array($result[2]) ) // Methodenaufruf erfolgreich
- {
-
- $this->result[]=(object)$result[2];
- $this->result[0]->mdl_fullname=(isset($this->result[0]->fullname)?$this->result[0]->fullname:'Fehler ID '.$this->mdl_course_id);
- $this->result[0]->mdl_shortname=(isset($this->result[0]->shortname)?$this->result[0]->shortname:'Fehler');
-
- $this->mdl_fullname=(isset($this->result[0]->fullname)?$this->result[0]->fullname:'Fehler ID '.$this->mdl_course_id);
- $this->mdl_shortname=(isset($this->result[0]->shortname)?$this->result[0]->shortname:'Fehler');
-
- }
- else // Result = 0 ein Fehler im RFC wurde festgestellt
- {
- $this->errormsg=(isset($result[1])?$result[1]:" - Fehler beim Kurs ".$this->mdl_course_id." lesen ");
- return false;
- }
-# return $this->result;
- return true;
-}
- /**
- * Laedt alle MoodleKurse die zu einer LV/Stsem
- * plus die MoodleKurse die auf dessen LE haengen
- * @param lehrveranstaltung_id
- * studiensemester_kurzbz
- * @return true wenn ok, false im Fehlerfall
- */
- public function getAll($lehrveranstaltung_id, $studiensemester_kurzbz)
- {
- $qry = "SELECT distinct on(mdl_course_id) *
- FROM
- lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_moodle
- WHERE
- tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id AND
- tbl_lehrveranstaltung.lehrveranstaltung_id = '".addslashes($lehrveranstaltung_id)."' AND
- tbl_lehreinheit.studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' AND
- ((tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_moodle.lehrveranstaltung_id AND tbl_moodle.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz)
- OR
- (tbl_lehreinheit.lehreinheit_id=tbl_moodle.lehreinheit_id)
- )";
-
- if($result=$this->db_query($qry))
- {
- while($row = $this->db_fetch_object($result))
- {
- $obj = new moodle_course($this->conn_moodle);
-
- $obj->moodle_id = $row->moodle_id;
- $obj->mdl_course_id = $row->mdl_course_id;
- $obj->lehreinheit_id = $row->lehreinheit_id;
- $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
- $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
- $obj->insertamum = $row->insertamum;
- $obj->insertvon = $row->insertvon;
- $obj->gruppen = ($row->gruppen=='t'?true:false);
-
- $qry_mdl = "SELECT * FROM public.mdl_course WHERE id='".addslashes($row->mdl_course_id)."'";
- if($result_mdl = pg_query($this->conn_moodle, $qry_mdl))
- {
- if($row_mdl = pg_fetch_object($result_mdl))
- {
- $obj->mdl_fullname = $row_mdl->fullname;
- $obj->mdl_shortname = $row_mdl->shortname;
- }
- }
- $this->result[] = $obj;
- }
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
-
- }
-
-
- /**
- * Laedt alle MoodleKurse die zu einer LV/Stsem
- * plus die MoodleKurse die auf dessen LE haengen
- * @param lehrveranstaltung_id
- * studiensemester_kurzbz
- * @return true wenn ok, false im Fehlerfall
- */
- public function getAllVariant($lehrveranstaltung_id='',$studiensemester_kurzbz='',$studiengang='',$semester='',$detail=false)
- {
- // Initialisierung
- $this->errormsg = '';
- $this->result=array();
-
- $qry = "SELECT distinct tbl_lehreinheit.studiensemester_kurzbz,tbl_lehrveranstaltung.semester
- ,tbl_lehrveranstaltung.bezeichnung,tbl_lehrveranstaltung.kurzbz,tbl_lehrveranstaltung.lehrveranstaltung_id,tbl_lehrveranstaltung.studiengang_kz,tbl_lehrveranstaltung.semester
- ,tbl_moodle.mdl_course_id
- FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit,lehre.tbl_moodle
- where tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id
- and ((tbl_moodle.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id
- and tbl_moodle.studiensemester_kurzbz=lehre.tbl_lehreinheit.studiensemester_kurzbz)
- OR
- (tbl_moodle.lehreinheit_id=tbl_lehreinheit.lehreinheit_id))";
-
- if ($lehrveranstaltung_id!='')
- $qry.=" and tbl_lehrveranstaltung.lehrveranstaltung_id='".addslashes($lehrveranstaltung_id)."' ";
-
- if ($studiensemester_kurzbz!='')
- $qry.=" and tbl_lehreinheit.studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' ";
-
- if ($studiengang!='')
- $qry.=" and tbl_lehrveranstaltung.studiengang_kz='".addslashes($studiengang)."' ";
-
- if ($semester!='')
- $qry.=" and tbl_lehrveranstaltung.semester='".addslashes($semester)."' ";
-
- $qry.=";";
-
- if(!$result = $this->db_query($qry))
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
-
- while($row = $this->db_fetch_object($result))
- {
- $obj = new moodle_course($this->conn_moodle);
-
- $obj->mdl_course_id = $row->mdl_course_id;
- $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
- $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
- $obj->lehrveranstaltung_kurzbz=$row->kurzbz;
-
- $obj->lehrveranstaltung_bezeichnung=$row->bezeichnung;
- $obj->lehrveranstaltung_semester=$row->semester;
- $obj->lehrveranstaltung_studiengang_kz=$row->studiengang_kz;
-
- $obj->mdl_fullname = 'DB fehler ID '.$obj->mdl_course_id;
- $obj->mdl_shortname =$obj->mdl_fullname;
-
- // Anzahl Benotungen
- $obj->mdl_benotungen = 0;
- // Anzahl Aktivitaeten und Lehrmaterial
- $obj->mdl_resource = 0;
- $obj->mdl_quiz = 0;
- $obj->mdl_chat = 0;
- $obj->mdl_forum = 0;
- $obj->mdl_choice= 0;
-
- $moddle= new moodle_course();
- if ($moddle->load($obj->mdl_course_id))
- {
- $obj->mdl_fullname = $moddle->mdl_fullname;
- $obj->mdl_shortname = $moddle->mdl_shortname;
- }
- else
- {
- $obj->mdl_fullname =$moddle->errormsg;
- $obj->mdl_course_id = 0;
- $this->result[] = $obj;
- continue;
- }
-
- if(!$detail)
- {
- $this->result[] = $obj;
- continue;
- }
-
- // Anzahl Noten je Kurs und User
- $qry_mdl = "SELECT count(*) as anz
- FROM mdl_grade_grades , mdl_grade_items
- WHERE mdl_grade_items.itemtype='course'
- AND mdl_grade_grades.finalgrade IS NOT NULL
- AND mdl_grade_grades.itemid=mdl_grade_items.id
- AND mdl_grade_items.courseid ='".addslashes($row->mdl_course_id)."'; ";
-
- if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl))
- {
- if($row_mdl = pg_fetch_object($result_mdl))
- {
- $obj->mdl_benotungen = (empty($row_mdl->anz)?0:$row_mdl->anz);
- }
- }
-
-
- $qry_mdl = "SELECT count(course) as anz FROM public.mdl_chat WHERE mdl_chat.course='".addslashes($row->mdl_course_id)."'; ";
- if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl))
- {
- if($row_mdl = pg_fetch_object($result_mdl))
- {
- $obj->mdl_chat = (empty($row_mdl->anz)?0:$row_mdl->anz);
- }
- }
-
- $qry_mdl = "SELECT count(course) as anz FROM public.mdl_resource WHERE mdl_resource.course='".addslashes($row->mdl_course_id)."'; ";
- if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl))
- {
- if($row_mdl = pg_fetch_object($result_mdl))
- {
- $obj->mdl_resource = (empty($row_mdl->anz)?0:$row_mdl->anz);
- }
- }
-
-
- $qry_mdl = "SELECT count(course) as anz FROM public.mdl_quiz WHERE mdl_quiz.course='".addslashes($row->mdl_course_id)."'; ";
- if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl))
- {
- if($row_mdl = pg_fetch_object($result_mdl))
- {
- $obj->mdl_quiz = (empty($row_mdl->anz)?0:$row_mdl->anz);
- }
- }
-
- $qry_mdl = "SELECT count(course) as anz FROM public.mdl_forum WHERE mdl_forum.course='".addslashes($row->mdl_course_id)."'; ";
- if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl))
- {
- if($row_mdl = pg_fetch_object($result_mdl))
- {
- $obj->mdl_forum = (empty($row_mdl->anz)?0:$row_mdl->anz);
- }
- }
-
- $qry_mdl = "SELECT count(course) as anz FROM public.mdl_choice WHERE mdl_choice.course='".addslashes($row->mdl_course_id)."'; ";
- if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl))
- {
- if($row_mdl = pg_fetch_object($result_mdl))
- {
- $obj->mdl_choice = (empty($row_mdl->anz)?0:$row_mdl->anz);
- }
- }
-
-
- $this->result[] = $obj;
- }
- return true;
- }
-
-// ----------------------------------------------------------------------------------------------------------------
- /**
- * Laedt alle MoodleKurse die zu einer LV/Stsem
- * plus die MoodleKurse die auf dessen LE haengen
- * @param lehrveranstaltung_id
- * studiensemester_kurzbz
- * @return true wenn ok, false im Fehlerfall
- */
- public function getAllMoodleVariant($mdl_course_id='',$lehrveranstaltung_id='',$studiensemester_kurzbz='',$lehreinheit_id='',$studiengang='',$semester='',$detail=false,$lehre=true,$aktiv=true)
- {
- // Initialisierung
- $this->errormsg = '';
- $this->result=array();
-
-/* $qry = "SELECT distinct tbl_moodle.lehrveranstaltung_id as moodle_lehrveranstaltung_id,tbl_moodle.lehreinheit_id as moodle_lehreinheit_id, tbl_moodle.studiensemester_kurzbz,tbl_lehrveranstaltung.semester
- ,tbl_lehrveranstaltung.bezeichnung,tbl_lehrveranstaltung.kurzbz,tbl_lehrveranstaltung.lehrveranstaltung_id,tbl_lehrveranstaltung.studiengang_kz,tbl_lehrveranstaltung.semester
- ,tbl_moodle.mdl_course_id,tbl_moodle.lehreinheit_id,tbl_moodle.gruppen
- FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit,lehre.tbl_moodle
- where tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id
- and ((tbl_moodle.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id
- and tbl_moodle.studiensemester_kurzbz=lehre.tbl_lehreinheit.studiensemester_kurzbz)
- OR
- (tbl_moodle.lehreinheit_id=tbl_lehreinheit.lehreinheit_id))";
-*/
- $where='';
- if ($mdl_course_id!='')
- $where.=" and tbl_moodle.mdl_course_id='".addslashes($mdl_course_id)."' ";
-
- if ($lehreinheit_id!='')
- $where.=" and tbl_lehreinheit.lehreinheit_id='".addslashes($lehreinheit_id)."' ";
-
- if ($lehrveranstaltung_id!='')
- $where.=" and tbl_lehrveranstaltung.lehrveranstaltung_id='".addslashes($lehrveranstaltung_id)."' ";
-
- if ($studiensemester_kurzbz!='')
- $where.=" and tbl_lehreinheit.studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' ";
-
- if ($studiengang!='')
- $where.=" and tbl_lehrveranstaltung.studiengang_kz='".addslashes($studiengang)."' ";
-
- if ($semester!='')
- $where.=" and tbl_lehrveranstaltung.semester='".addslashes($semester)."' ";
-
- if ($lehre)
- $where.=" and tbl_lehrveranstaltung.lehre ";
-
- if ($aktiv)
- $where.=" and tbl_lehrveranstaltung.aktiv ";
-
- $qry ='';
- $qry.=' SELECT distinct tbl_moodle.studiensemester_kurzbz
- ,tbl_lehrveranstaltung.studiengang_kz
- ,tbl_lehrveranstaltung.semester
- ,tbl_moodle.mdl_course_id
- ,tbl_lehrveranstaltung.lehrveranstaltung_id
- ,tbl_moodle.lehreinheit_id as moodle_lehreinheit_id
- ,tbl_moodle.lehrveranstaltung_id as moodle_lehrveranstaltung_id
- ,tbl_moodle.lehreinheit_id as lehreinheit_id,tbl_lehrveranstaltung.bezeichnung,tbl_lehrveranstaltung.kurzbz,tbl_moodle.gruppen
- ,tbl_lehrveranstaltung.lehrform_kurzbz,tbl_lehrveranstaltung.orgform_kurzbz
- ,tbl_moodle.moodle_id
- FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit,lehre.tbl_moodle
-
- where tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_moodle.lehrveranstaltung_id
- and tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_moodle.lehrveranstaltung_id
- and tbl_moodle.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz
- and tbl_moodle.lehreinheit_id is null
- ';
- $qry.=$where;
-
- $qry.=' UNION ';
- $qry.=' SELECT distinct tbl_moodle.studiensemester_kurzbz
- ,tbl_lehrveranstaltung.studiengang_kz
- ,tbl_lehrveranstaltung.semester
- ,tbl_moodle.mdl_course_id
- ,tbl_lehrveranstaltung.lehrveranstaltung_id
- ,tbl_moodle.lehreinheit_id as moodle_lehreinheit_id
- ,tbl_moodle.lehrveranstaltung_id as moodle_lehrveranstaltung_id
- ,tbl_moodle.lehreinheit_id as lehreinheit_id,tbl_lehrveranstaltung.bezeichnung,tbl_lehrveranstaltung.kurzbz,tbl_moodle.gruppen
- ,tbl_lehrveranstaltung.lehrform_kurzbz,tbl_lehrveranstaltung.orgform_kurzbz
- ,tbl_moodle.moodle_id
- FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit,lehre.tbl_moodle
-
- where tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id
- and tbl_moodle.lehreinheit_id=tbl_lehreinheit.lehreinheit_id
- and tbl_moodle.lehrveranstaltung_id is null
- ';
- $qry.=$where;
-
- $qry.=' order by 1,2,3,4,5,6,7; ';
-
-
-#echo "
$qry
";
-
- if(!$result = $this->db_query($qry))
- {
- $this->errormsg = 'Fehler beim Laden der Daten';
- return false;
- }
-
- while($row = $this->db_fetch_object($result))
- {
-
- $obj = new moodle_course($this->conn_moodle);
-
- $obj->mdl_course_id = $row->mdl_course_id;
- $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
- $obj->lehreinheit_id = $row->lehreinheit_id;
- $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
- $obj->lehrveranstaltung_kurzbz=$row->kurzbz;
- $obj->lehrveranstaltung_bezeichnung=$row->bezeichnung;
- $obj->lehrveranstaltung_semester=$row->semester;
- $obj->lehrveranstaltung_studiengang_kz=$row->studiengang_kz;
- $obj->lehrveranstaltung_lehrform_kurzbz=$row->lehrform_kurzbz;
-
- $obj->lehrveranstaltung_orgform_kurzbz=$row->orgform_kurzbz;
-
- $obj->moodle_lehrveranstaltung_id=$row->moodle_lehrveranstaltung_id;
- $obj->moodle_lehreinheit_id=$row->moodle_lehreinheit_id;
- $obj->moodle_mdl_course_id = $row->mdl_course_id;
- $obj->mdl_fullname = 'Moodle Kurs nicht vorhanden ID '.$obj->mdl_course_id;
- $obj->mdl_shortname =$obj->mdl_fullname;
- $obj->gruppen=($row->gruppen=='t'?true:false);;
-
- // Anzahl Benotungen
- $obj->mdl_benotungen = 0;
- // Anzahl Aktivitaeten und Lehrmaterial
- $obj->mdl_resource = 0;
- $obj->mdl_quiz = 0;
- $obj->mdl_chat = 0;
- $obj->mdl_forum = 0;
- $obj->mdl_choice= 0;
-
- $moddle= new moodle_course();
- if ($moddle->load($obj->mdl_course_id))
- {
- $obj->mdl_fullname = $moddle->mdl_fullname;
- $obj->mdl_shortname = $moddle->mdl_shortname;
- }
- else
- {
- $obj->mdl_course_id = 0;
- $obj->mdl_fullname =$moddle->errormsg;
- $this->result[] = $obj;
- continue;
- }
-
- if(!$detail)
- {
- $this->result[] = $obj;
- continue;
- }
-
-
- // Anzahl Noten je Kurs und User
- $qry_mdl = "SELECT count(*) as anz
- FROM mdl_grade_grades , mdl_grade_items
- WHERE mdl_grade_items.itemtype='course'
- AND mdl_grade_grades.finalgrade IS NOT NULL
- AND mdl_grade_grades.itemid=mdl_grade_items.id
- AND mdl_grade_items.courseid ='".addslashes($row->mdl_course_id)."'; ";
-
- if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl))
- {
- if($row_mdl = pg_fetch_object($result_mdl))
- {
- $obj->mdl_benotungen = (empty($row_mdl->anz)?0:$row_mdl->anz);
- }
- }
-
- $qry_mdl = "SELECT count(course) as anz FROM public.mdl_chat WHERE mdl_chat.course='".addslashes($row->mdl_course_id)."'; ";
- if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl))
- {
- if($row_mdl = pg_fetch_object($result_mdl))
- {
- $obj->mdl_chat = (empty($row_mdl->anz)?0:$row_mdl->anz);
- }
- }
-
- $qry_mdl = "SELECT count(course) as anz FROM public.mdl_resource WHERE mdl_resource.course='".addslashes($row->mdl_course_id)."'; ";
- if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl))
- {
- if($row_mdl = pg_fetch_object($result_mdl))
- {
- $obj->mdl_resource = (empty($row_mdl->anz)?0:$row_mdl->anz);
- }
- }
-
-
- $qry_mdl = "SELECT count(course) as anz FROM public.mdl_quiz WHERE mdl_quiz.course='".addslashes($row->mdl_course_id)."'; ";
- if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl))
- {
- if($row_mdl = pg_fetch_object($result_mdl))
- {
- $obj->mdl_quiz = (empty($row_mdl->anz)?0:$row_mdl->anz);
- }
- }
-
- $qry_mdl = "SELECT count(course) as anz FROM public.mdl_forum WHERE mdl_forum.course='".addslashes($row->mdl_course_id)."'; ";
- if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl))
- {
- if($row_mdl = pg_fetch_object($result_mdl))
- {
- $obj->mdl_forum = (empty($row_mdl->anz)?0:$row_mdl->anz);
- }
- }
-
- $qry_mdl = "SELECT count(course) as anz FROM public.mdl_choice WHERE mdl_choice.course='".addslashes($row->mdl_course_id)."'; ";
- if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl))
- {
- if($row_mdl = pg_fetch_object($result_mdl))
- {
- $obj->mdl_choice = (empty($row_mdl->anz)?0:$row_mdl->anz);
- }
- }
- $this->result[] = $obj;
- }
- return true;
-
- }
-
- /**
- * Schaut ob fuer diese LV/StSem schon ein
- * Moodle Kurs existiert
- * @param lehrveranstaltung_id
- * studiensemester_kurzbz
- * @return true wenn vorhanden, false wenn nicht
- */
- public function course_exists_for_lv($lehrveranstaltung_id, $studiensemester_kurzbz)
- {
- $qry = "SELECT 1 FROM lehre.tbl_moodle WHERE lehrveranstaltung_id='".addslashes($lehrveranstaltung_id)."' AND studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'";
- if($this->db_query($qry))
- {
- if($this->db_num_rows()>0)
- return true;
- else
- return false;
- }
- else
- {
- $this->errormsg = 'Fehler bei SELECT Abfrage in moodle_course.class.php / course_exists_for_lv';
- return false;
- }
- }
-
- /**
- * Schaut ob fuer diese LE schon ein Moodle
- * Kurs existiert
- * @param lehreinheit_id
- * @return true wenn vorhanden, false wenn nicht
- */
- public function course_exists_for_le($lehreinheit_id)
- {
- $qry = "SELECT 1 FROM lehre.tbl_moodle WHERE lehreinheit_id='".addslashes($lehreinheit_id)."'";
- if($this->db_query($qry))
- {
- if($this->db_num_rows()>0)
- return true;
- else
- return false;
- }
- else
- {
- $this->errormsg = 'Fehler bei SELECT Abfrage in moodle_course.class.php / course_exists_for_le';
- return false;
- }
- }
-
- /**
- * Schaut ob fuer diese LV/StSem schon ein
- * Moodle Kurs existiert
- * @param lehrveranstaltung_id
- * studiensemester_kurzbz
- * @return true wenn vorhanden, false wenn nicht
- */
- public function course_exists_for_allLE($lehrveranstaltung_id, $studiensemester_kurzbz)
- {
- $qry = "SELECT 1 FROM lehre.tbl_lehreinheit
- WHERE lehrveranstaltung_id='".addslashes($lehrveranstaltung_id)."'
- AND studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'
- AND lehreinheit_id NOT IN (SELECT lehreinheit_id FROM lehre.tbl_moodle WHERE lehreinheit_id=tbl_lehreinheit.lehreinheit_id)";
- if($this->db_query($qry))
- {
- if($this->db_num_rows()>0)
- return false;
- else
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler bei SELECT Abfrage in moodle_course.class.php / course_exists_for_allLE';
- return false;
- }
- }
-
- /**
- * Legt einen Eintrag in der tbl_moodle an
- * @return true wenn ok, false im Fehlerfall
- */
- public function create_vilesci()
- {
- if($this->mdl_course_id=='')
- {
- $this->errormsg='mdl_course_id muss angegeben sein';
- return false;
- }
-
- $qry = 'BEGIN; INSERT INTO lehre.tbl_moodle(mdl_course_id, lehreinheit_id, lehrveranstaltung_id,
- studiensemester_kurzbz, insertamum, insertvon, gruppen)
- VALUES('.
- $this->addslashes($this->mdl_course_id).','.
- $this->addslashes($this->lehreinheit_id).','.
- $this->addslashes($this->lehrveranstaltung_id).','.
- $this->addslashes($this->studiensemester_kurzbz).','.
- $this->addslashes($this->insertamum).','.
- $this->addslashes($this->insertvon).','.
- ($this->gruppen?'true':'false').');';
-
- if($this->db_query($qry))
- {
- $qry = "SELECT currval('lehre.tbl_moodle_moodle_id_seq') as id;";
- if($this->db_query($qry))
- {
- if($row = $this->db_fetch_object())
- {
- $this->moodle_id = $row->id;
- $this->db_query('COMMIT;');
- return true;
- }
- else
- {
- $this->db_query('ROLLBACK');
- $this->errormsg = 'Fehler beim Lesen der Sequence';
- return false;
- }
- }
- else
- {
- $this->db_query('ROLLBACK');
- $this->errormsg = 'Fehler beim Lesen der Sequence';
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Einfuegen des Datensatzes';
- return false;
- }
- }
-/**
- * Entfernt einen Eintrag in der tbl_moodle an
- * @return true wenn ok, false im Fehlerfall
- */
- public function delete_vilesci($mdl_course_id=null,$lehrveranstaltung_id=null,$lehreinheit_id=null)
- {
- $this->errormsg = '';
- if (!is_null($mdl_course_id) && !empty($mdl_course_id))
- $this->mdl_course_id=$mdl_course_id;
- if (!is_null($lehrveranstaltung_id) && !empty($lehrveranstaltung_id))
- $this->lehrveranstaltung_id=$lehrveranstaltung_id;
- if (!is_null($lehreinheit_id) && !empty($lehreinheit_id))
- $this->lehreinheit_id=$lehreinheit_id;
- $where='';
- if (!is_null($this->mdl_course_id) && !empty($this->mdl_course_id))
- $where.=($where?' and ':' where '). ' mdl_course_id='.$this->addslashes($this->mdl_course_id);
- else
- $where.=($where?' and ':' where '). ' mdl_course_id=0';
- if (!is_null($this->lehrveranstaltung_id) && !empty($this->lehrveranstaltung_id))
- $where.=($where?' and ':' where '). ' lehrveranstaltung_id='.$this->addslashes($this->lehrveranstaltung_id);
- if (!is_null($this->lehreinheit_id) && !empty($this->lehreinheit_id))
- $where.=($where?' and ':' where '). ' lehreinheit_id='.$this->addslashes($this->lehreinheit_id);
- if (empty($where))
- {
- $this->errormsg='mdl_course_id oder LV oder LE muss angegeben sein';
- return false;
- }
-
- $qry='DELETE FROM lehre.tbl_moodle '.$where;
- if(!$this->db_query($qry))
- {
- $this->errormsg = 'Fehler beim loeschen Moodle Lehrveranstaltung ! '.$qry.' '. $this->db_last_error().' in File:='.__FILE__.' Line:='.__LINE__;
- return false;
- }
-
- return true;
- }
-/**
- * Aendert einen Eintrag in der tbl_moodle an
- * @return true wenn ok, false im Fehlerfall
- */
- public function update_vilesci()
- {
- if($this->mdl_course_id=='')
- {
- $this->errormsg='mdl_course_id muss angegeben sein';
- return false;
- }
- if (is_null($this->new) || empty($this->new))
- $this->new=false;
-
- $this->db_query('BEGIN;');
- $qry = '';
- $res=0;
-
- if (!$this->new)
- {
- $qrySel = 'SELECT 1 FROM lehre.tbl_moodle WHERE mdl_course_id='.$this->addslashes($this->mdl_course_id);
- if(!$res=$this->db_query($qrySel))
- {
- $this->errormsg = 'Fehler bei SELECT Abfrage! '. $this->db_last_error().' in File:='.__FILE__.' Line:='.__LINE__;
- return false;
- }
- if($this->db_num_rows($res)>0)
- {
- if ($this->lehrveranstaltung_id!='' && !is_null($this->lehrveranstaltung_id))
- {
- $qry.= 'DELETE from lehre.tbl_moodle where mdl_course_id='.$this->addslashes($this->mdl_course_id).' and not lehreinheit_id = '.$this->addslashes($this->lehrveranstaltung_id) .' ; ';
- }
- else
- {
- $qry.= 'DELETE from lehre.tbl_moodle where mdl_course_id='.$this->addslashes($this->mdl_course_id).' and not lehreinheit_id in ('. (is_array($this->lehreinheit_id)? implode(',',$this->lehreinheit_id) :$this->lehreinheit_id) .') ; ';
- }
- }
- }
-
- if ( ($this->lehrveranstaltung_id!='' && !is_null($this->lehrveranstaltung_id))
- OR !is_array($this->lehreinheit_id) )
- {
- $qrySel = 'SELECT 1 FROM lehre.tbl_moodle WHERE mdl_course_id='.$this->addslashes($this->mdl_course_id);
- if ($this->new)
- {
- if ( $this->lehrveranstaltung_id!='' && !is_null($this->lehrveranstaltung_id) )
- $qrySel.= ' and lehrveranstaltung_id='.$this->addslashes($this->lehrveranstaltung_id);
- else
- $qrySel.= ' and lehreinheit_id='.$this->addslashes($this->lehreinheit_id);
- }
-
- if(!$res=$this->db_query($qrySel))
- {
- $this->errormsg = 'Fehler beim Select Moodle Lehrveranstaltung ! '.$qrySel.' '. $this->db_last_error().' in File:='.__FILE__.' Line:='.__LINE__;
- $this->db_query('ROLLBACK');
- return false;
-
- }
- if($this->db_num_rows($res)>0)
- {
- $qry.= 'UPDATE lehre.tbl_moodle set
- lehreinheit_id='.$this->addslashes($this->lehreinheit_id).',
- lehrveranstaltung_id='.$this->addslashes($this->lehrveranstaltung_id).',
- studiensemester_kurzbz='.$this->addslashes($this->studiensemester_kurzbz).'
- ';
- if (!is_null($this->gruppen))
- $qry.= ',gruppen='.($this->gruppen?'true':'false');
- $qry.= ' where mdl_course_id='.$this->addslashes($this->mdl_course_id).'; ';
- }
- else
- {
- $qry.= 'INSERT INTO lehre.tbl_moodle(mdl_course_id, lehreinheit_id, lehrveranstaltung_id,
- studiensemester_kurzbz, insertamum, insertvon, gruppen)
- VALUES('.
- $this->addslashes($this->mdl_course_id).','.
- $this->addslashes($this->lehreinheit_id).','.
- $this->addslashes($this->lehrveranstaltung_id).','.
- $this->addslashes($this->studiensemester_kurzbz).','.
- $this->addslashes($this->insertamum).','.
- $this->addslashes($this->insertvon).','.
- ($this->gruppen?'true':'false').'); ';
- }
- }
- // Lehreinheiten anlegen - Array
- else
- {
- foreach ($this->lehreinheit_id as $key=>$value)
- {
- $qrySel = 'SELECT 1 FROM lehre.tbl_moodle WHERE mdl_course_id='.$this->addslashes($this->mdl_course_id). ' and lehreinheit_id='.$this->addslashes($value);
- if(!$res=$this->db_query($qrySel))
- {
- $this->errormsg = 'Fehler beim Select Moodle Lehreinheit ! '. $this->db_last_error().' in File:='.__FILE__.' Line:='.__LINE__;
- $this->db_query('ROLLBACK');
- return false;
- }
- if($this->db_num_rows($res)>0)
- {
- $qry.= 'UPDATE lehre.tbl_moodle set
- lehrveranstaltung_id='.$this->addslashes($this->lehrveranstaltung_id).',
- studiensemester_kurzbz='.$this->addslashes($this->studiensemester_kurzbz).'
- ';
- if (!is_null($this->gruppen))
- $qry.= ',gruppen='.($this->gruppen?'true':'false');
- $qry.= ' where mdl_course_id='.$this->addslashes($this->mdl_course_id);
- $qry.= ' and lehreinheit_id='.$this->addslashes($value).'; ';
-
- }
- else
- {
- $qry.= 'INSERT INTO lehre.tbl_moodle(mdl_course_id, lehreinheit_id, lehrveranstaltung_id,
- studiensemester_kurzbz, insertamum, insertvon, gruppen)
- VALUES('.
- $this->addslashes($this->mdl_course_id).','.
- $this->addslashes($value).','.
- $this->addslashes($this->lehrveranstaltung_id).','.
- $this->addslashes($this->studiensemester_kurzbz).','.
- $this->addslashes($this->insertamum).','.
- $this->addslashes($this->insertvon).','.
- ($this->gruppen?'true':'false').'); ';
- }
- }
- }
-
- if(!$this->db_query($qry))
- {
- $this->db_query('ROLLBACK');
- $this->errormsg = 'Fehler beim aendern des Datensatzes! '. $this->db_last_error().' in File:='.__FILE__.' Line:='.__LINE__;
- return false;
- }
-
-#echo $qry;
- $this->db_query('COMMIT;');
- return true;
-
- }
-
- /**
- * Aendert einen Kurs im Moodle an
- * @return true wenn ok, false im Fehlerfall
- */
- public function update_moodle($oldPath = null)
- {
- if($this->mdl_course_id=='')
- {
- $this->errormsg='mdl_course_id muss angegeben sein';
- return false;
- }
-
- if( (is_null($this->lehrveranstaltung_id) || $this->lehrveranstaltung_id=='')
- && (is_null($this->lehreinheit_id) && $this->lehreinheit_id==''))
- {
- $this->errormsg='LvID oder LeID muss uebergeben werden';
- return false;
- }
-
- pg_query($this->conn_moodle, 'BEGIN;');
-
- //CourseCategorie ermitteln
-
- //lehrveranstalung ID holen falls die nur die lehreinheit_id angegeben wurde
- if($this->lehrveranstaltung_id=='' || is_null($this->lehrveranstaltung_id))
- {
- $qry = "SELECT lehrveranstaltung_id FROM lehre.tbl_lehreinheit
- WHERE lehreinheit_id='".addslashes($this->lehreinheit_id)."'";
- if($res=$this->db_query($qry))
- {
- if($row = $this->db_fetch_object($res))
- {
- $lvid = $row->lehrveranstaltung_id;
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Ermitteln der LehrveranstaltungID';
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Ermitteln der LehrveranstaltungID';
- return false;
- }
- }
- else
- $lvid = $this->lehrveranstaltung_id;
-
- //Studiengang und Semester holen
- $qry = "SELECT tbl_lehrveranstaltung.semester, UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as stg
- FROM lehre.tbl_lehrveranstaltung JOIN public.tbl_studiengang USING(studiengang_kz)
- WHERE lehrveranstaltung_id='$lvid'";
-
- if($res=$this->db_query($qry))
- {
- if($row = $this->db_fetch_object($res))
- {
- $semester = $row->semester;
- $stg = $row->stg;
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester';
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester';
- return false;
- }
-
- //Studiensemester Categorie holen
- if(!$id_stsem = $this->getCategorie($this->studiensemester_kurzbz, '0'))
- {
- if(!$id_stsem = $this->createCategorie($this->studiensemester_kurzbz, '0'))
- echo "
Fehler beim Anlegen des Studiensemesters";
- }
-
- //Studiengang Categorie holen
- if(!$id_stg = $this->getCategorie($stg, $id_stsem))
- {
- if(!$id_stg = $this->createCategorie($stg, $id_stsem))
- echo "
$this->errormsg";
- }
-
- //Semester Categorie holen
- if(!$id_sem = $this->getCategorie($semester, $id_stg))
- {
- if(!$id_sem = $this->createCategorie($semester, $id_stg))
- echo "
$this->errormsg";
- }
-
- //CourseCategorie Context holen
- $this->getContext(40, $id_sem);
-
-
- $qry = 'UPDATE public.mdl_course set
- category='.$this->addslashes($id_sem).',
- fullname='. $this->addslashes($this->mdl_fullname) .',
- shortname='.$this->addslashes($this->mdl_shortname).'
- ';
- $qry.= " WHERE id='".addslashes($this->mdl_course_id)."'; ";
-
-#echo $qry;
-#return true;
-
- if(!$result = pg_query($this->conn_moodle, $qry))
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Update';
- return false;
- }
-
- /*
- $qry = "DELETE FROM public.mdl_context where contextlevel='50' and instanceid=".$this->addslashes($this->mdl_course_id)." ;";
- if(!pg_query($this->conn_moodle, $qry))
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Entfernen des Context eintrages. '. pg_last_error();
- return false;
- }
- */
-
- $update=false;
- $qry = "SELECT id FROM public.mdl_context WHERE contextlevel='50' and instanceid=".$this->addslashes($this->mdl_course_id)." ;";
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if($row = pg_fetch_object($result))
- {
- $this->mdl_context_id = $row->id;
- $update=true;
- }
- }
-
- if($update)
- {
- //zum vorherigen Pfad die aktuelle id hinzufuegen
- $path = $this->mdl_context_path.'/'.$this->mdl_context_id;
- //vorherige tiefe um 1 erhoehen
- $depth = $this->mdl_context_depth+1;
-
- $qry = "UPDATE public.mdl_context SET
- contextlevel=50,
- instanceid=".$this->addslashes($this->mdl_course_id).",
- path=".$this->addslashes($path).",
- depth=".$this->addslashes($depth)."
- WHERE id='".addslashes($this->mdl_context_id)."';";
- if(!pg_query($this->conn_moodle, $qry))
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Update des Contexts';
- return false;
- }
-
- $qry = "UPDATE public.mdl_context SET
- path=".$this->addslashes($path)."|| '/' || mdl_context.id
- WHERE path LIKE '".$oldPath."%';";
- if(!pg_query($this->conn_moodle, $qry))
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Update des Contexts';
- return false;
- }
- }
- else
- {
- $qry ="SELECT nextval('mdl_context_id_seq') as nextId";
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if($row=pg_fetch_object($result))
- {
- // nächste id herausfinden -> wegen insert
- $path = $this->mdl_context_path.'/'.$row->nextId;
- // tiefe um 1 erhoehen
- $depth = $this->mdl_context_depth+1;
- }
- else
- {
- $this->errormsg = 'Fehler beim Select der Sequence :'. pg_last_error();
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Select der Sequence :'. pg_last_error();
- return false;
- }
-
- //Context eintragen
- $qry = "INSERT INTO public.mdl_context(contextlevel, instanceid, path, depth) VALUES('50', ".
- $this->addslashes($this->mdl_course_id).",'".$this->addslashes($path)."',".$this->addslashes($depth).");";
- if(pg_query($this->conn_moodle, $qry))
- {
- $qry = "SELECT currval('mdl_context_id_seq') as id";
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if($row = pg_fetch_object($result))
- {
- $this->mdl_context_id = $row->id;
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Auslesen der Sequence ::'. pg_last_error($result).' '. pg_last_error();
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Select der Sequence :'. pg_last_error();
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim INSERT';
- return false;
- }
- }
-
-
- pg_query($this->conn_moodle, 'COMMIT;');
- return true;
- }
-
-
-
- /**
- * Legt einen Kurs im Moodle an
- * @return true wenn ok, false im Fehlerfall
- */
- public function create_moodle()
- {
- pg_query($this->conn_moodle, 'BEGIN;');
-
- //CourseCategorie ermitteln
-
- //lehrveranstalung ID holen falls die nur die lehreinheit_id angegeben wurde
- if($this->lehrveranstaltung_id=='')
- {
- $qry = "SELECT lehrveranstaltung_id FROM lehre.tbl_lehreinheit
- WHERE lehreinheit_id='".addslashes($this->lehreinheit_id)."'";
- if($res=$this->db_query($qry))
- {
- if($row = $this->db_fetch_object($res))
- {
- $lvid = $row->lehrveranstaltung_id;
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Ermitteln der LehrveranstaltungID';
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Ermitteln der LehrveranstaltungID';
- return false;
- }
- }
- else
- $lvid = $this->lehrveranstaltung_id;
-
- //Studiengang und Semester holen
- $qry = "SELECT tbl_lehrveranstaltung.semester, UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as stg
- FROM lehre.tbl_lehrveranstaltung JOIN public.tbl_studiengang USING(studiengang_kz)
- WHERE lehrveranstaltung_id='$lvid'";
-
- if($res=$this->db_query($qry))
- {
- if($row = $this->db_fetch_object($res))
- {
- $semester = $row->semester;
- $stg = $row->stg;
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester';
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester';
- return false;
- }
-
- //Studiensemester Categorie holen
- if(!$id_stsem = $this->getCategorie($this->studiensemester_kurzbz, '0'))
- {
- if(!$id_stsem = $this->createCategorie($this->studiensemester_kurzbz, '0'))
- echo "
Fehler beim Anlegen des Studiensemesters";
- }
- //Studiengang Categorie holen
- if(!$id_stg = $this->getCategorie($stg, $id_stsem))
- {
- if(!$id_stg = $this->createCategorie($stg, $id_stsem))
- echo "
$this->errormsg";
- }
- //Semester Categorie holen
- if(!$id_sem = $this->getCategorie($semester, $id_stg))
- {
- if(!$id_sem = $this->createCategorie($semester, $id_stg))
- echo "
$this->errormsg";
- }
-
- //CourseCategorie Context holen
- $this->getContext(40, $id_sem);
-
- //Eintrag in tbl_mdl_course
- $qry = "INSERT INTO public.mdl_course(category, sortorder, fullname, shortname, format, showgrades, newsitems, enrollable, guest)
- VALUES (".$this->addslashes($id_sem).", (SELECT max(sortorder)+1 FROM public.mdl_course), ".$this->addslashes($this->mdl_fullname).", ".
- $this->addslashes($this->mdl_shortname).",'topics', 1, 5, 0, 1);";
-
- if($result = pg_query($this->conn_moodle, $qry))
- {
- $qry = "SELECT currval('mdl_course_id_seq') as id";
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if($row = pg_fetch_object($result))
- {
- $this->mdl_course_id = $row->id;
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Auslesen der Sequence';
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Auslesen der Sequence';
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim INSERT';
- return false;
- }
-
- //zum vorherigen Pfad die aktuelle id hinzufuegen
- $path = "(SELECT '$this->mdl_context_path' || '/' || currval('mdl_context_id_seq'))";
- //vorherige tiefe um 1 erhoehen
- $depth = $this->mdl_context_depth+1;
-
- //Context eintragen
- $qry = "INSERT INTO public.mdl_context(contextlevel, instanceid, path, depth) VALUES('50', ".
- $this->addslashes($this->mdl_course_id).",".$path.",".$this->addslashes($depth).");";
-
- if(pg_query($this->conn_moodle, $qry))
- {
- $qry = "SELECT currval('mdl_context_id_seq') as id";
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if($row = pg_fetch_object($result))
- {
- $this->mdl_context_id = $row->id;
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Auslesen der Sequence';
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Auslesen der Sequence';
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim INSERT';
- return false;
- }
-
- //Bloecke hinzufuegen
- $qry =
- "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(20, $this->mdl_course_id, 'course-view', 'l', 0, 1);". //Teilnehmer
- "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(1, $this->mdl_course_id, 'course-view', 'l', 1, 1);". //Aktivit�ten
- "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(25, $this->mdl_course_id, 'course-view', 'l', 2, 1);". //Forumssuche
- "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(2, $this->mdl_course_id, 'course-view', 'l', 3, 1);". //Admin
- "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(9, $this->mdl_course_id, 'course-view', 'l', 4, 1);". //Kursliste
- "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(18, $this->mdl_course_id, 'course-view', 'r', 0, 1);". //Neueste Nachrichten
- "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(8, $this->mdl_course_id, 'course-view', 'r', 1, 1);". //Kalender / Bald aktuell...
- "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(22, $this->mdl_course_id, 'course-view', 'r', 2, 1);"; //Neueste Aktivit�ten
- if(!pg_query($this->conn_moodle, $qry))
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim INSERT der bloecke';
- return false;
- }
- else
- {
- pg_query($this->conn_moodle, 'COMMIT');
- return true;
- }
-
- }
-
-
- /**
- * Laedt eine CourseCategorie anhand der Bezeichnung und der
- * ParentID
- */
- public function deleteCategorie($bezeichnung, $parent)
- {
- if($bezeichnung=='')
- {
- $this->errormsg = 'Bezeichnung muss angegeben werden';
- return false;
- }
- if($parent=='')
- {
- $this->errormsg = 'getCategorie: parent wurde nicht uebergeben';
- return false;
- }
- $qry = "DELETE FROM public.mdl_course_categories WHERE name='".addslashes($bezeichnung)."' AND parent='".addslashes($parent)."'";
-
- if($result = pg_query($this->conn_moodle, $qry))
- {
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim loeschen der KursKategorie';
- return false;
- }
- }
-
- /**
- * Laedt eine CourseCategorie anhand der Bezeichnung und der
- * ParentID
- */
- public function getCategorie($bezeichnung, $parent)
- {
- if($bezeichnung=='')
- {
- $this->errormsg = 'Bezeichnung muss angegeben werden';
- return false;
- }
- if($parent=='')
- {
- $this->errormsg = 'getCategorie: parent wurde nicht uebergeben';
- return false;
- }
- $qry = "SELECT id FROM public.mdl_course_categories WHERE name='".addslashes($bezeichnung)."' AND parent='".addslashes($parent)."'";
-
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if($row = pg_fetch_object($result))
- {
- return $row->id;
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der KursKategorie';
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der KursKategorie';
- return false;
- }
- }
-
- /**
- * Erzeugt eine CourseCategorie anhand der Bezeichnung und der
- * ParentID
- */
- public function createCategorie($bezeichnung, $parent)
- {
- if($bezeichnung=='')
- {
- $this->errormsg = 'Bezeichnung muss angegeben werden';
- return false;
- }
- if($parent=='')
- {
- $this->errormsg = 'createCategorie: parent wurde nicht uebergeben: '.$bezeichnung.' '.$parent;
- return false;
- }
- if($parent!='0')
- {
- //Parent laden
- $qry = "SELECT * FROM public.mdl_course_categories WHERE id='".addslashes($parent)."'";
- //echo $qry;
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if($row = pg_fetch_object($result))
- {
- $depth = $row->depth;
- $path = $row->path;
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der KursKategorie';
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden der KursKategorie';
- return false;
- }
- }
- else
- {
- $depth=0;
- $path='';
- }
-
- //KursKategorie anlegen
- $qry = "BEGIN; INSERT INTO public.mdl_course_categories(name, parent, sortorder,
- coursecount, visible, timemodified, depth, path, theme)
- VALUES(".$this->addslashes($bezeichnung).",".$this->addslashes($parent).",".
- "'999',0,1,0,".$this->addslashes($depth+1).
- ", (SELECT ".$this->addslashes($path.'/')." || currval('mdl_course_categories_id_seq')), null);";
-
- if($res=pg_query($this->conn_moodle, $qry))
- {
- $qry = "SELECT currval('mdl_course_categories_id_seq') as id";
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if($row = pg_fetch_object($result))
- {
- $coursecatid = $row->id;
-
- //Context anlegen
- //wenn Parent 0 ist, dann den SYSTEM Eintrag holen
- if($parent!='0')
- $qry = "SELECT path, depth FROM public.mdl_context WHERE contextlevel='40' AND instanceid='".addslashes($parent)."'";
- else
- $qry = "SELECT path, depth FROM public.mdl_context WHERE contextlevel='10' AND instanceid='".addslashes($parent)."'";
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if($row = pg_fetch_object($result))
- {
- $path = $row->path;
- $depth = $row->depth;
-
- //zum vorherigen Pfad die aktuelle id hinzufuegen
- $path = "(SELECT '$path' || '/' || currval('mdl_context_id_seq'))";
- //vorherige tiefe um 1 erhoehen
- $depth=$depth+1;
-
- //Context eintragen
- $qry = "INSERT INTO public.mdl_context(contextlevel, instanceid, path, depth) VALUES('40', ".
- $this->addslashes($coursecatid).",".$path.",".$this->addslashes($depth).");";
-
- if(pg_query($this->conn_moodle, $qry))
- {
- $qry = "SELECT currval('mdl_context_id_seq') as id";
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if($row = pg_fetch_object($result))
- {
- pg_query($this->conn_moodle,'COMMIT;');
- return $coursecatid;
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Auslesen der Sequence';
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Auslesen der Sequence';
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim INSERT';
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK;');
- $this->errormsg = 'Fehler beim Auslesen des Contextes'.$qry;
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK;');
- $this->errormsg = 'Fehler beim Auslesen des Contextes';
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Auslesen der Sequence';
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Auslesen der Sequence';
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Speichern der KursKategorie';
- return false;
- }
- }
-
- /**
- * Laedt einen Context anhand des contextlevels und der instanceid
- */
- public function getContext($contextlevel, $instanceid)
- {
-
- $qry ="SELECT * FROM public.mdl_context WHERE contextlevel='".addslashes($contextlevel)."'
- AND instanceid='".addslashes($instanceid)."'";
-
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if($row = pg_fetch_object($result))
- {
- $this->mdl_context_id = $row->id;
- $this->mdl_context_contextlevelid = $row->id;
- $this->mdl_context_instanceid = $row->instanceid;
- $this->mdl_context_path = $row->path;
- $this->mdl_context_depth = $row->depth;
-
- return true;
- }
- else
- {
- $this->errormsg = 'Eintrag wurde nicht gefunden';
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Auslesen des Contexts';
- return false;
- }
- }
-
- /**
- * Liefert alle Kurse dieser LV in denen der Student
- * zugeteilt ist
- */
- public function getCourse($lehrveranstaltung_id, $studiensemester_kurzbz, $student_uid)
- {
- //alle betreffenden Kurse holen
- $qry = "SELECT tbl_lehreinheit.lehreinheit_id, mdl_course_id FROM lehre.tbl_moodle JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id, studiensemester_kurzbz)
- WHERE tbl_moodle.lehrveranstaltung_id='".addslashes($lehrveranstaltung_id)."'
- AND tbl_moodle.studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'
- UNION
- SELECT tbl_lehreinheit.lehreinheit_id, mdl_course_id FROM lehre.tbl_moodle JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
- WHERE tbl_lehreinheit.lehrveranstaltung_id='".addslashes($lehrveranstaltung_id)."' AND
- tbl_lehreinheit.studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'";
-
- $courses = array();
- if($result = $this->db_query($qry))
- {
- while($row = $this->db_fetch_object($result))
- {
- //schauen in welchen der Student ist
- $qry = "SELECT 1 FROM campus.vw_student_lehrveranstaltung
- WHERE uid='".addslashes($student_uid)."' AND lehreinheit_id='".addslashes($row->lehreinheit_id)."'";
-
- if($result_vw = $this->db_query($qry))
- {
- if($this->db_num_rows($result_vw)>0)
- {
- if(!array_key_exists($row->mdl_course_id, $courses))
- $courses[]=$row->mdl_course_id;
- }
- }
- }
- }
-
- return $courses;
- }
-
- /**
- * Aktualisiert die Spalte gruppen in der tbl_moodle
- * @param moodle_id ID der MoodleZuteilung
- * gruppen boolean true wenn syncronisiert
- * werden soll, false wenn nicht
- * @return true wenn ok, false im Fehlerfall
- */
- public function updateGruppenSync($moodle_id, $gruppen)
- {
- if(!is_numeric($moodle_id))
- {
- $this->errormsg = 'Moodle_id muss eine gueltige Zahl sein';
- return false;
- }
-
- $qry = "UPDATE lehre.tbl_moodle SET gruppen=".($gruppen?'true':'false')." WHERE moodle_id='".addslashes($moodle_id)."'";
-
- if($this->db_query($qry))
- {
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Update';
- return false;
- }
- }
-
-
-
- /**
- * Liefert den Path zur Übergebenen InstanceId und Contextlevel zurück
- * @param instanceId Kurs ID
- * @param contextLevel Integer
- * @return path wenn ok, false im Fehlerfall
- */
- public function getPath($instanceId, $contextLevel = '50')
- {
- if(!is_numeric($instanceId))
- {
- $this->errormsg = 'Moodle_id muss eine gueltige Zahl sein';
- return false;
- }
-
- $qry = "SELECT * FROM public.mdl_context WHERE
- instanceid=".$this->addslashes($instanceId)." AND
- contextlevel = ".$this->addslashes($contextLevel).";";
-
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if($row = pg_fetch_object($result))
- {
- return $row->path;
- }
- }
- else
- {
- $this->errormsg = 'Fehler bei der Abfrage aufgetreten';
- return false;
- }
- }
-
-
-
- /**
- * Legt einen Testkurs an
- */
- public function createTestkurs($lehrveranstaltung_id, $studiensemester_kurzbz)
- {
- pg_query($this->conn_moodle, 'BEGIN;');
-
- //CourseCategorie ermitteln
-
- //Studiengang und Semester holen
-
- $qry = "SELECT tbl_lehrveranstaltung.semester, UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as stg FROM lehre.tbl_lehrveranstaltung JOIN public.tbl_studiengang USING(studiengang_kz)
- WHERE lehrveranstaltung_id='$lehrveranstaltung_id'";
-
- if($this->db_query($qry))
- {
- if($row = $this->db_fetch_object())
- {
- $semester = $row->semester;
- $stg = $row->stg;
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester';
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester';
- return false;
- }
-
- //Testkurs Categorie holen
- if(!$id_testkurs = $this->getCategorie('Testkurse', '0'))
- {
- if(!$id_testkurs = $this->createCategorie('Testkurse', '0'))
- echo "
Fehler beim Anlegen der Testkurskategorie";
- }
- //StSem Categorie holen
- if(!$id_stsem = $this->getCategorie($studiensemester_kurzbz, $id_testkurs))
- {
- if(!$id_stsem = $this->createCategorie($studiensemester_kurzbz, $id_testkurs))
- echo "
$this->errormsg";
- }
-
- //CourseCategorie Context holen
- $this->getContext(40, $id_stsem);
-
- //Eintrag in tbl_mdl_course
- $qry = "INSERT INTO public.mdl_course(category, sortorder, fullname, shortname, format, showgrades, newsitems, enrollable, guest)
- VALUES (".$this->addslashes($id_stsem).", (SELECT max(sortorder)+1 FROM public.mdl_course), ".$this->addslashes($this->mdl_fullname).", ".
- $this->addslashes($this->mdl_shortname).",'topics', 1, 5, 0, 1);";
-
- if($result = pg_query($this->conn_moodle, $qry))
- {
- $qry = "SELECT currval('mdl_course_id_seq') as id";
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if($row = pg_fetch_object($result))
- {
- $this->mdl_course_id = $row->id;
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Auslesen der Sequence';
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Auslesen der Sequence';
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim INSERT';
- return false;
- }
-
- //zum vorherigen Pfad die aktuelle id hinzufuegen
- $path = "(SELECT '$this->mdl_context_path' || '/' || currval('mdl_context_id_seq'))";
- //vorherige tiefe um 1 erhoehen
- $depth = $this->mdl_context_depth+1;
-
- //Context eintragen
- $qry = "INSERT INTO public.mdl_context(contextlevel, instanceid, path, depth) VALUES('50', ".
- $this->addslashes($this->mdl_course_id).",".$path.",".$this->addslashes($depth).");";
-
- if(pg_query($this->conn_moodle, $qry))
- {
- $qry = "SELECT currval('mdl_context_id_seq') as id";
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if($row = pg_fetch_object($result))
- {
- $this->mdl_context_id = $row->id;
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Auslesen der Sequence';
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim Auslesen der Sequence';
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim INSERT';
- return false;
- }
-
- //Bloecke hinzufuegen
- $qry =
- "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(20, $this->mdl_course_id, 'course-view', 'l', 0, 1);". //Teilnehmer
- "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(1, $this->mdl_course_id, 'course-view', 'l', 1, 1);". //Aktivit�ten
- "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(25, $this->mdl_course_id, 'course-view', 'l', 2, 1);". //Forumssuche
- "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(2, $this->mdl_course_id, 'course-view', 'l', 3, 1);". //Admin
- "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(9, $this->mdl_course_id, 'course-view', 'l', 4, 1);". //Kursliste
- "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(18, $this->mdl_course_id, 'course-view', 'r', 0, 1);". //Neueste Nachrichten
- "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(8, $this->mdl_course_id, 'course-view', 'r', 1, 1);". //Kalender / Bald aktuell...
- "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(22, $this->mdl_course_id, 'course-view', 'r', 2, 1);"; //Neueste Aktivit�ten
-
- if(!pg_query($this->conn_moodle, $qry))
- {
- pg_query($this->conn_moodle, 'ROLLBACK');
- $this->errormsg = 'Fehler beim INSERT der Bloecke';
- return false;
- }
- else
- {
- pg_query($this->conn_moodle, 'COMMIT');
- return true;
- }
- }
-
- /**
- * Laedt den Testkurs zu dieser Lehrveranstaltung
- * @param lehrveranstaltung_id
- * studiensemester_kurzbz
- * @return ID wenn gefunden, false wenn nicht vorhanden
- */
- public function loadTestkurs($lehrveranstaltung_id, $studiensemester_kurzbz)
- {
- $qry = "SELECT
- UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as kuerzel,
- tbl_lehrveranstaltung.semester, tbl_lehrveranstaltung.kurzbz
- FROM
- lehre.tbl_lehrveranstaltung JOIN public.tbl_studiengang USING(studiengang_kz)
- WHERE
- lehrveranstaltung_id='".addslashes($lehrveranstaltung_id)."'";
-
- if($this->db_query($qry))
- {
- if($row = $this->db_fetch_object())
- {
- $shortname = mb_strtoupper('TK-'.$studiensemester_kurzbz.'-'.$row->kuerzel.'-'.$row->semester.'-'.$row->kurzbz);
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden des Testkurses';
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden des Testkurses';
- return false;
- }
-
- //Testkurs Categorie holen
- if(!$id_testkurs = $this->getCategorie('Testkurse', '0'))
- {
- $this->errormsg = 'Categorie nicht gefunden';
- return false;
- }
-
- //StSem Categorie holen
- if(!$id_stsem = $this->getCategorie($studiensemester_kurzbz, $id_testkurs))
- {
- $this->errormsg = 'Categorie nicht gefunden';
- return false;
- }
-
- $qry = "SELECT id, fullname, shortname FROM public.mdl_course WHERE shortname='".addslashes($shortname)."' AND category='$id_stsem' LIMIT 1";
-
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if($row = pg_fetch_object($result))
- {
- $this->mdl_fullname = $row->fullname;
- $this->mdl_shortname = $row->shortname;
- $this->mdl_course_id = $row->id;
- return true;
- }
- else
- {
- $this->errormsg = 'Es wurde kein Testkurs gefunden';
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Abfragen der Kurse';
- return false;
- }
- }
-
-
- /**
- * Laedt die Noten zu einem Moodle Course ID
- * @param mdl_course_id
- *
- * @return objekt mit den Noten der Teilnehmer dieses Kurses
- */
- public function loadNoten($lehrveranstaltung_id=null, $studiensemester_kurzbz=null,$student_uid='',$bDetailinfo=false,$bServerinfo=false)
- {
-
-
- $this->errormsg='';
- $this->result=null;
-
- // Init
- if (!is_null($lehrveranstaltung_id))
- $this->lehrveranstaltung_id=trim($lehrveranstaltung_id);
- if (!is_null($studiensemester_kurzbz))
- $this->studiensemester_kurzbz=trim($studiensemester_kurzbz);
- $student_uid=trim($student_uid);
-
-
-
- // plausib
- if (empty($this->lehrveranstaltung_id)
- || empty($this->studiensemester_kurzbz) )
- {
- $this->errormsg = 'Es fehlt die Eingabe von ';
- $this->errormsg.=(empty($this->lehrveranstaltung_id)?' Lehrveranstaltung ':$this->lehrveranstaltung_id);
- $this->errormsg.=(empty($this->studiensemester_kurzbz)?' Semester (Kurzbz.) ':$this->studiensemester_kurzbz);
- return false;
- }
-
- // --------------------------------------------------------------------
- // Ermitteln die Lehreinheiten und Moodle ID
- // mit dem studiensemester_kurzbz ( bsp WS2008 )
- // und der lehrveranstaltung_id aus FAS ( bsp 23802 )
- // --------------------------------------------------------------------
-
- $qry = "
- SELECT tbl_lehreinheit.lehreinheit_id, mdl_course_id,tbl_lehreinheit.studiensemester_kurzbz,tbl_lehreinheit.lehrveranstaltung_id
- FROM lehre.tbl_moodle
- JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id, studiensemester_kurzbz)
- WHERE tbl_moodle.lehrveranstaltung_id > 0 ";
- if ($this->lehrveranstaltung_id)
- $qry.= " and tbl_moodle.lehrveranstaltung_id ='".addslashes($this->lehrveranstaltung_id)."' ";
- if ($this->studiensemester_kurzbz)
- $qry.= " and tbl_moodle.studiensemester_kurzbz ='".addslashes($this->studiensemester_kurzbz)."' ";
- $qry.= "
- UNION
- SELECT tbl_lehreinheit.lehreinheit_id, mdl_course_id,tbl_lehreinheit.studiensemester_kurzbz,tbl_lehreinheit.lehrveranstaltung_id
- FROM lehre.tbl_moodle
- JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
- WHERE tbl_lehreinheit.lehrveranstaltung_id > 0 ";
- if ($this->lehrveranstaltung_id)
- $qry.= " and tbl_lehreinheit.lehrveranstaltung_id ='".addslashes($this->lehrveranstaltung_id)."' ";
- if ($this->studiensemester_kurzbz)
- $qry.= " and tbl_moodle.studiensemester_kurzbz ='".addslashes($this->studiensemester_kurzbz)."' ";
-
- if(!$result_moodle=$this->db_query($qry))
- {
- $this->errormsg = 'Fehler beim Lesen der Moodle Kurse , '.$this->errormsg;
- return false;
- }
-
-
- // init
- $_lehreinheit=array(); // Lehreinheiten zum lesen Studenten im Campus (Student und LE im FAS)
- $_lehrveranstaltung = array(); // Gesamte Information der Lehreinheit und Moodle IDs
- $_studiensemester_kurzbz=array();
- $_lehreinheit_kpl=array();
- while($row = $this->db_fetch_object($result_moodle))
- {
-
- $row->lehreinheit_id=trim($row->lehreinheit_id);
- $_lehreinheit_kpl[$row->lehreinheit_id]=$row;
-
- $_lehreinheit[$row->lehreinheit_id]=$row->lehreinheit_id; // Fuer Select Campus
-
- $row->lehrveranstaltung_id=trim($row->lehrveranstaltung_id);
- $_lehrveranstaltung[$row->lehrveranstaltung_id]=$row->lehrveranstaltung_id; // Fuer Select Campus
-
- $row->studiensemester_kurzbz=trim($row->studiensemester_kurzbz);
- $_studiensemester_kurzbz[$row->studiensemester_kurzbz]=$row->studiensemester_kurzbz; // Fuer Select Campus
-
- }
- if (count($_lehreinheit)<1) // Es gibt keine Lehreinheiten
- {
- $this->errormsg='Es wurde kein passender Moodle-Kurs gefunden';
- return false;
- }
-
- // --------------------------------------------------------------------
- //
- // Suchen Studenten Lehreinheiten zu Moodle - LE
- // Fuer die Notenermittlung sind nur Studenten wichtig
- // die einen Moodlekurs besuchen der auch eine Lehrveranstaltung ist
- // Als Ergebnis sind alle Studenten mit gemeinsame Moodle und FAS LV
- // --------------------------------------------------------------------
- $qry = "SELECT distinct vw_student_lehrveranstaltung.lehreinheit_id,lehrveranstaltung_id,studiensemester_kurzbz,kurzbz,bezeichnung,semester,studiengang_kz
- FROM campus.vw_student_lehrveranstaltung
- ";
- $qry.= " WHERE vw_student_lehrveranstaltung.lehreinheit_id in (".implode(",",$_lehreinheit).") ";
- $qry.= " AND lehrveranstaltung_id in (".implode(",",$_lehrveranstaltung).") ";
- $qry.= " AND vw_student_lehrveranstaltung.studiensemester_kurzbz in ('".implode("','",$_studiensemester_kurzbz)."') ";
- if (!empty($student_uid))
- $qry.= " AND uid ='".addslashes($student_uid)."' ";
-
- if(!$result_moodle=$this->db_query($qry))
- {
- $this->errormsg = 'Fehler beim Lesen der Studenten mit Lehreinheit(en) ';
- return false;
- }
-
- if (!$anz=$this->db_num_rows($result_moodle))
- {
- $this->errormsg ="keine Lehrveranstaltung (Lehreinheit) fuer Moodle Kursdaten gefunden!";
- return false;
- }
-
- $last_moodle_id=false;
- while($row = $this->db_fetch_object($result_moodle))
- {
-
- // Von der Lehreinheit kann der Moodle-Kurs ermittelt werden
- $this->mdl_course_id=trim($_lehreinheit_kpl[$row->lehreinheit_id]->mdl_course_id);
- if ($last_moodle_id==$this->mdl_course_id)
- continue;
- $last_moodle_id=$this->mdl_course_id;
-
- // XML RPC - Call
- $method = "NotenCourseByID";
-
- $m_user=array();
- $m_user['CourseID']=$this->mdl_course_id;
- $mdl_username=trim($student_uid);
- $m_user['UserId']=$mdl_username;
-
- if (!$result=$this->callMoodleXMLRPC($method,$m_user,$bServerinfo))
- return false;
-
- if ($result[0]==1)
- {
-
- $error=(isset($result[1])?$result[1]:"Kurs Info ");
- $kursArr=(isset($result[2])?$result[2]:array());
- $kursasObj=(isset($result[3])?$result[3]:array());
- $userArr=(isset($result[4])?$result[4]:array());
- $userasObj=(isset($result[5])?$result[5]:array());
- $id=(isset($result[6])?$result[6]:'');
- $kursname=(isset($result[7])?$result[7]:'');
- $shortname=(isset($result[8])?$result[8]:'');
- $courseArr=(isset($result[9])?$result[9]:array());
-
- if (!empty($student_uid))
- $note=(isset($userArr) && isset($userArr[6])?$userArr[6]:'?');
- else
- $note=0;
-
- $obj = new moodle_course($this->conn_moodle);
-
- $obj->mdl_course_id = $this->mdl_course_id;
- $obj->lehreinheit_id=$row->lehreinheit_id;
-
- $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
- $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
-
- $obj->lehrveranstaltung_kurzbz=$row->kurzbz;
- $obj->lehrveranstaltung_bezeichnung=$row->bezeichnung;
- $obj->lehrveranstaltung_semester=$row->semester;
- $obj->lehrveranstaltung_studiengang_kz=$row->studiengang_kz;
-
- $obj->mdl_fullname=$kursname;
- $obj->mdl_shortname=$shortname;
- $obj->note=$note;
-
- $obj->errormsg=(isset($result[1])?$result[1]:"");
- $obj->note=$note;
-
- if ($bDetailinfo || empty($student_uid))
- $obj->result=$result;
- else
- $obj->result=$userArr;
-
- $this->errormsg.=(!empty($this->errormsg)?", \n":"").$obj->errormsg;
- $this->result[]=$obj;
-
- }
- else
- {
- $this->errormsg.=(!empty($this->errormsg)?", \n":"").(isset($result[1])?$result[1]:"Fehler Kurs Info ".$this->moodle_id);
- }
-
- }
- return $this->result;
- } // Ende moodle Noten
-
-
- /**
- * Loescht einen Moodle Course im Moodel und in der DB
- * @param mdl_course_id
- * @param bServerinfo Detail xmlrpc Debug informationen
- *
- * @return objekt mit den Noten der Teilnehmer dieses Kurses
- */
- public function deleteKurs($mdl_course_id=null,$moodle_id=null,$bServerinfo=false)
- {
- $this->errormsg='';
- $this->result=array();
-
- if (!is_null($mdl_course_id))
- $this->mdl_course_id=$mdl_course_id;
-
-
- if (!is_null($moodle_id))
- $this->moodle_id=$moodle_id;
-
- if (is_null($this->mdl_course_id) || empty($this->mdl_course_id) || !is_numeric($this->mdl_course_id))
- {
- $this->errormsg='Moodle Kurs ID fehlt';
- return false;
- }
-
- // Variable Daten Initialisieren
- $args=array();
- $args['CourseID']=$this->mdl_course_id;
- $method = "DeleteCourseByID";
-
- if (!$result=$this->callMoodleXMLRPC($method,$args,$bServerinfo))
- return false;
-
- if (isset($result[1]))
- $this->errormsg=$result[1];
-
- if ($result[0]==1 || !$this->load($this->mdl_course_id)) // Methodenaufruf erfolgreich
- {
- $qry = "DELETE FROM lehre.tbl_moodle WHERE mdl_course_id='". addslashes($this->mdl_course_id) ."' ";
- if (!is_null($this->moodle_id) && $this->moodle_id!='')
- $qry.= " and moodle_id='".addslashes($this->moodle_id)."'";
- if(!$this->db_query($qry))
- {
- $this->errormsg=$this->errormsg." Moodlekurs $mdl_course_id wurde NICHT gelöscht in Lehre. ";
- return false;
- }
- }
- else // Result = 0 ein Fehler im RFC wurde festgestellt
- {
- $this->errormsg=(isset($result[1])?$result[1]:" - Fehler beim Kurs ".$this->mdl_course_id." löschen ");
- return false;
- }
-
- if (empty($this->errormsg))
- $this->errormsg.="Moodlekurs ".$this->mdl_course_id." wurde gelöscht.";
- return true;
-
- }
-
- /**
- * ruft eine XMLRPC Methode im Moodle auf
- * @param methode
- * @param argumente - parameter
- * @param server debug informationen
- *
- * @return objekt mit den Noten der Teilnehmer dieses Kurses
- */
- public function callMoodleXMLRPC($method=null,$args=null,$debug=false)
- {
- if (is_null($method) || empty($method))
- {
- $this->errormsg ="Fehler xmlrpc call - Methode fehlt";
- return false;
- }
-
- // Aktuellen Moodle Server ermitteln.
- if (defined('MOODLE_PATH')) // Eintrag MOODLE_PATH in Vilesci config.inc.php. Hostname herausfiltern
- {
- $host = str_replace('https://','',str_replace('http://','',str_replace('/moodle','',str_replace('/moodle/','',MOODLE_PATH))));
- }
- elseif ($_SERVER["HTTP_HOST"]=="dav.technikum-wien.at" || $_SERVER["HTTP_HOST"]=="calva.technikum-wien.at") // Vilesci config.inc.php nicht erweitert HTTP_HOST pruefen
- {
- $host = $_SERVER["HTTP_HOST"];
- }
- else // Produktivessystem
- {
- $host = 'cis.technikum-wien.at';
- }
- $port = '';
- $uri = "/moodle/xmlrpc/xmlrpc.php";
-
- // Ausgabeeinstellungen
- $output=array('encoding' => 'UTF-8' );
-
-
-
- $result=false;
- $callspec = array(
- 'user' => (isset($_SERVER['PHP_AUTH_USER'])?$_SERVER['PHP_AUTH_USER']:'') ,
- 'pass' => (isset($_SERVER['PHP_AUTH_PW'])?$_SERVER['PHP_AUTH_PW']:''),
- 'method' => $method,
- 'host' => $host,
- 'port' => $port,
- 'uri' => $uri,
- 'secure' => false,
- 'debug' => $debug,
- 'args' => (!is_null($args)?$args:''),
- 'output'=>$output);
-
- $result = xu_rpc_http_concise($callspec);
- if (!is_array($result))
- {
- $this->errormsg ="Fehler xmlrpc call ";
- return false;
- }
- return $result;
- }
-
-} // Ende moodle_course class
\ No newline at end of file
diff --git a/include/moodle_user.class.php b/include/moodle_user.class.php
deleted file mode 100644
index 1deb55bbd..000000000
--- a/include/moodle_user.class.php
+++ /dev/null
@@ -1,780 +0,0 @@
-,
- * Andreas Oesterreicher and
- * Rudolf Hangl .
- */
-/*
- * requires moodle_course.class.php
- * studiengang.class.php
- */
-require_once(dirname(__FILE__).'/basis_db.class.php');
-
-class moodle_user extends basis_db
-{
- private $conn_moodle;
- public $log=''; //log message fuer Syncro
- public $log_public=''; //log message fuer Syncro
- public $sync_create=0; //anzahl der durchgefuehrten zuteilungen beim syncro
- public $group_update=0; //anzahl der updates an gruppen
-
- public $mdl_user_id;
- public $mdl_user_username;
- public $mdl_user_firstname;
- public $mdl_user_lastname;
-
- /**
- * Konstruktor
- */
- public function __construct()
- {
- if(!$this->conn_moodle=pg_pconnect(CONN_STRING_MOODLE))
- {
- $this->errormsg = 'Fehler beim Herstellen der Moodle Verbindung';
- return false;
- }
- else
- return true;
- }
-
- /**
- * Laedt einen Moodle User
- *
- * @param $uid
- * @return boolean
- */
- public function loaduser($uid)
- {
- $qry = "SELECT * FROM public.mdl_user WHERE username='".addslashes($uid)."'";
-
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if($row = pg_fetch_object($result))
- {
- $this->mdl_user_id = $row->id;
- $this->mdl_user_username = $row->username;
- $this->mdl_user_firstname = $row->firstname;
- $this->mdl_user_lastname = $row->lastname;
- return true;
- }
- else
- {
- $this->errormsg = 'User wurde nicht gefunden: '.$uid;
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden des Users';
- return false;
- }
- }
-
- /**
- * Liefert ein Array mit allen Lektoren die
- * zu dem Moodle Kurs zugeteilt sind
- */
- public function getMitarbeiter($mdl_course_id)
- {
- //Mitarbeiter laden die zu diesem Kurs zugeteilt sind
- $qry = "SELECT
- mitarbeiter_uid
- FROM
- lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_moodle USING(lehreinheit_id)
- WHERE
- mdl_course_id='".addslashes($mdl_course_id)."'
- UNION
- SELECT
- mitarbeiter_uid
- FROM
- lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
- JOIN lehre.tbl_moodle USING(lehrveranstaltung_id)
- WHERE
- tbl_lehreinheit.studiensemester_kurzbz=tbl_moodle.studiensemester_kurzbz
- AND mdl_course_id='".addslashes($mdl_course_id)."'";
- $mitarbeiter=array();
- if($this->db_query($qry))
- {
- while($row_ma = $this->db_fetch_object())
- {
- $mitarbeiter[] = $row_ma->mitarbeiter_uid;
- }
- return $mitarbeiter;
- }
- else
- {
- $this->errormsg='Fehler beim Laden der Mitarbeiter';
- return false;
- }
- }
-
- /**
- * Synchronisiert die Lektoren der Lehreinheiten
- * mit denen des Moodle Kurses
- * @param $mdl_course_id ID des MoodleKurses
- * lehrveranstaltung_id wird nur angegeben beim Syncro von Testkursen
- * studiensemester_kurzbz wird nur angegeben beim Syncro von Testkursen
- * @return true wenn ok, false wenn Fehler
- */
- public function sync_lektoren($mdl_course_id, $lehrveranstaltung_id=null, $studiensemester_kurzbz=null)
- {
- //Mitarbeiter laden die zu diesem Kurs zugeteilt sind
- if(!is_null($lehrveranstaltung_id) && !is_null($studiensemester_kurzbz))
- {
- //Bei Testkursen werden alle Lektoren einer Lehrveranstaltung zugeteilt
- //da hier kein Eintrag in der tbl_moodle vorhanden ist, werden die Lektoren direkt aus
- //der tbl_lehreinheitmitarbeiter geholt.
- $qry = "SELECT mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
- WHERE lehrveranstaltung_id='".addslashes($lehrveranstaltung_id)."'
- AND studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'";
- }
- else
- {
- $qry = "SELECT
- mitarbeiter_uid
- FROM
- lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_moodle USING(lehreinheit_id)
- WHERE
- mdl_course_id='".addslashes($mdl_course_id)."'
- UNION
- SELECT
- mitarbeiter_uid
- FROM
- lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
- JOIN lehre.tbl_moodle USING(lehrveranstaltung_id)
- WHERE
- tbl_lehreinheit.studiensemester_kurzbz=tbl_moodle.studiensemester_kurzbz
- AND mdl_course_id='".addslashes($mdl_course_id)."'";
- }
- $mitarbeiter='';
- if($result_ma = $this->db_query($qry))
- {
- //Context des Kurses holen
- $mdlcourse = new moodle_course();
- if(!$mdlcourse->getContext(50, $mdl_course_id))
- {
- $this->errormsg = 'Fehler beim Laden des Contexts';
- return false;
- }
-
- while($row_ma = $this->db_fetch_object($result_ma))
- {
- //MoodleID des Users holen bzw ggf neu anlegen
- if(!$this->loaduser($row_ma->mitarbeiter_uid))
- {
- //User anlegen
- if(!$this->createUser($row_ma->mitarbeiter_uid))
- {
- $this->errormsg = "Fehler beim Anlegen des Users $row_ma->mitarbeiter_uid: $this->errormsg";
- return false;
- }
- else
- $this->errormsg = '';
- }
-
- if($mitarbeiter!='')
- $mitarbeiter.=',';
- $mitarbeiter.=$this->mdl_user_id;
-
- //Nachschauen ob dieser Lektor bereits zugeteilt ist
- $qry = "SELECT 1 FROM public.mdl_role_assignments
- WHERE
- userid='".addslashes($this->mdl_user_id)."' AND
- contextid='".addslashes($mdlcourse->mdl_context_id)."'";
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if(pg_num_rows($result)==0)
- {
- //Mitarbeiter ist noch nicht zugeteilt.
-
- if($this->createZuteilung($this->mdl_user_id, $mdlcourse->mdl_context_id, 3))
- {
- $this->log.="\nder Lektor $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
- $this->log_public.="\nder Lektor $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
- $this->sync_create++;
- }
- else
- $this->log.="\nFehler beim Anlegen der Lektoren-Zuteilung: $this->errormsg";
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Auslesen der Rollen';
- return false;
- }
- }
-
- //Lektoren loeschen die nicht mehr zugeordnet sind
- /* Derzeit werden zugeteilte Personen nicht geloescht
- $qry = "SELECT * FROM mdl_role_assignments
- WHERE
- contextid='".addslashes($mdlcourse->mdl_context_id)."' AND
- userid NOT in ($mitarbeiter)";
-
- if($result = pg_query($this->conn_moodle, $qry))
- {
- while($row = pg_fetch_object($result))
- {
- $this->deleteZuteilung($row->userid, $mdlcourse->mdl_context_id);
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Ermitteln der Lektoren die nicht mehr zugeteilt sind';
- return false;
- }
- */
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Ermitteln der Zugeteilten Lektoren';
- return false;
- }
- }
-
- /**
- * Synchronisiert die Studenten der Lehreinheiten
- * mit denen des Moodle Kurses
- * @param $mdl_course_id ID des MoodleKurses
- * @return true wenn ok, false wenn Fehler
- */
- public function sync_studenten($mdl_course_id)
- {
- //Studentengruppen laden die zu diesem Kurs zugeteilt sind
- $qry = "SELECT
- studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, tbl_moodle.studiensemester_kurzbz, tbl_moodle.gruppen
- FROM
- lehre.tbl_lehreinheitgruppe JOIN lehre.tbl_moodle USING(lehreinheit_id)
- WHERE
- mdl_course_id='".addslashes($mdl_course_id)."'
- UNION
- SELECT
- studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, tbl_moodle.studiensemester_kurzbz, tbl_moodle.gruppen
- FROM
- lehre.tbl_lehreinheitgruppe JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
- JOIN lehre.tbl_moodle USING(lehrveranstaltung_id)
- WHERE
- tbl_lehreinheit.studiensemester_kurzbz=tbl_moodle.studiensemester_kurzbz
- AND mdl_course_id='".addslashes($mdl_course_id)."'";
- $studenten='';
- if($result_std = $this->db_query($qry))
- {
- //Context des Kurses holen
- $mdlcourse = new moodle_course();
- if(!$mdlcourse->getContext(50, $mdl_course_id))
- {
- $this->errormsg = 'Fehler beim Laden des Contexts';
- return false;
- }
-
- while($row_std = $this->db_fetch_object($result_std))
- {
- //Schauen ob fuer diesen Kurs die Gruppen mitgesynct werden sollen
- $gruppensync = $row_std->gruppen=='t'?true:false;
-
- //Studenten dieser Gruppe holen
-
- if($row_std->gruppe_kurzbz=='') //LVB Gruppe
- {
- $qry = "SELECT
- distinct student_uid
- FROM
- public.tbl_studentlehrverband
- WHERE
- studiensemester_kurzbz='".addslashes($row_std->studiensemester_kurzbz)."' AND
- studiengang_kz = '".addslashes($row_std->studiengang_kz)."' AND
- semester = '".addslashes($row_std->semester)."'";
- if(trim($row_std->verband)!='')
- {
- $qry.=" AND verband = '$row_std->verband'";
- if(trim($row_std->gruppe)!='')
- {
- $qry.=" AND gruppe = '$row_std->gruppe'";
- }
- }
- $studiengang_obj = new studiengang();
- $studiengang_obj->load($row_std->studiengang_kz);
- $gruppenbezeichnung = $studiengang_obj->kuerzel.'-'.trim($row_std->semester).trim($row_std->verband).trim($row_std->gruppe);
- }
- else //Spezialgruppe
- {
- $qry = "SELECT
- distinct uid as student_uid
- FROM
- public.tbl_benutzergruppe
- WHERE
- gruppe_kurzbz='".addslashes($row_std->gruppe_kurzbz)."' AND
- studiensemester_kurzbz='".addslashes($row_std->studiensemester_kurzbz)."'";
- $gruppenbezeichnung = $row_std->gruppe_kurzbz;
- }
-
- if($result_user = $this->db_query($qry))
- {
- while($row_user = $this->db_fetch_object($result_user))
- {
- //MoodleID des Users holen bzw ggf neu anlegen
- if(!$this->loaduser($row_user->student_uid))
- {
- //User anlegen
- if(!$this->createUser($row_user->student_uid))
- {
- $this->errormsg = "Fehler beim Anlegen des Users $row_user->student_uid: $this->errormsg";
- return false;
- }
- else
- $this->errormsg = '';
- }
-
- if($studenten!='')
- $studenten.=',';
- $studenten.=$this->mdl_user_id;
-
- //Nachschauen ob dieser Student bereits zugeteilt ist
- $qry = "SELECT 1 FROM public.mdl_role_assignments
- WHERE
- userid='".addslashes($this->mdl_user_id)."' AND
- contextid='".addslashes($mdlcourse->mdl_context_id)."'";
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if(pg_num_rows($result)==0)
- {
- //Student ist noch nicht zugeteilt.
-
- if($this->createZuteilung($this->mdl_user_id, $mdlcourse->mdl_context_id, 5))
- {
- $this->log.="\nder Student $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
- $this->log_public.="\nder Student $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
- $this->sync_create++;
- }
- else
- $this->log.="\nFehler beim Anlegen der Studenten-Zuteilung: $this->errormsg";
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Auslesen der Rollen';
- return false;
- }
-
- //Gruppenzuteilung
- if($gruppensync)
- {
- //Schauen ob die Gruppe vorhanden ist
- if(!$groupid = $this->getGroup($mdl_course_id, $gruppenbezeichnung))
- {
- //wenn nicht dann anlegen
- if(!$groupid = $this->createGroup($mdl_course_id, $gruppenbezeichnung))
- continue;
- $this->group_update++;
- $this->log.="\nes wurde eine neue Gruppe angelgt: $gruppenbezeichnung";
- $this->log_public.="\nes wurde eine neue Gruppe angelgt: $gruppenbezeichnung";
- }
-
- //Schauen ob eine Zuteilung zu dieser Gruppe vorhanden ist
- if(!$this->getGroupMember($groupid, $this->mdl_user_id))
- {
- //wenn nicht dann zuteilen
- $this->createGroupMember($groupid, $this->mdl_user_id);
- $this->group_update++;
- $this->log.="\nder Student $this->mdl_user_firstname $this->mdl_user_lastname wurde der Gruppe $gruppenbezeichnung zugeordnet";
- $this->log_public.="\nder Student $this->mdl_user_firstname $this->mdl_user_lastname wurde der Gruppe $gruppenbezeichnung zugeordnet";
- }
- }
- }
- }
- }
-
- //Studenten loeschen die nicht mehr zugeordnet sind
- /* Derzeit werden zugeteilte Personen nicht geloescht
- $qry = "SELECT * FROM mdl_role_assignments
- WHERE
- contextid='".addslashes($mdlcourse->mdl_context_id)."' AND
- userid NOT in ($studenten)";
-
- if($result = pg_query($this->conn_moodle, $qry))
- {
- while($row = pg_fetch_object($result))
- {
- $this->deleteZuteilung($row->userid, $mdlcourse->mdl_context_id);
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Ermitteln der Studenten die nicht mehr zugeteilt sind';
- return false;
- }
- */
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Ermitteln der Zugeteilten Studenten';
- return false;
- }
- }
-
- /**
- * Schaut ob eine Zuteilung von Person zu Gruppe
- * existiert
- * @param grouid ID der Gruppe
- * userid ID des Users
- * @return ID der Zuteilung
- */
- public function getGroupMember($groupid, $userid)
- {
- $qry = "SELECT id FROM public.mdl_groups_members WHERE groupid='".addslashes($groupid)."' AND userid='".addslashes($userid)."'";
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if($row = pg_fetch_object($result))
- {
- return $row->id;
- }
- else
- {
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Ermitteln der Gruppe';
- return false;
- }
- }
-
- /**
- * Legt eine Zuteilung eines Users zu
- * einer Gruppe an
- * @param groupid ID der Gruppe
- * userid ID des Users
- * @return ID der Zuteilung oder false im Fehlerfall
- */
- public function createGroupMember($groupid, $userid)
- {
- $qry = 'BEGIN; INSERT INTO public.mdl_groups_members(groupid, userid) VALUES('.
- $this->addslashes($groupid).','.$this->addslashes($userid).');';
- if(pg_query($this->conn_moodle, $qry))
- {
- $qry = "SELECT currval('mdl_groups_members_id_seq') as id";
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if($row = pg_fetch_object($result))
- {
- pg_query($this->conn_moodle, 'COMMIT;');
- return $row->id;
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK;');
- $this->errormsg = 'Fehler beim Auslesen der Sequence';
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK;');
- $this->errormsg = 'Fehler beim Auslesen der Sequence';
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Anlegen der Zuteilung';
- return false;
- }
- }
-
- /**
- * Holt die ID einer MoodleGruppe
- * @param $mdl_course_id ID des Kurses
- * $gruppenbezeichnung Name der Gruppe
- * @return GruppenID wenn ok, false im Fehlerfall
- */
- public function getGroup($mdl_course_id, $gruppenbezeichnung)
- {
- $qry = "SELECT id FROM public.mdl_groups WHERE courseid='".addslashes($mdl_course_id)."' AND name='".addslashes($gruppenbezeichnung)."'";
-
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if($row = pg_fetch_object($result))
- {
- return $row->id;
- }
- else
- {
- $this->errormsg = "Gruppe wurde nicht gefunden $gruppenbezeichnung";
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden einer Gruppe';
- return false;
- }
- }
-
- /**
- * Legt eine MoodleGruppe zu einem Kurs an
- * @param mdl_course_id ID des MoodleKuses
- * gruppenbezeichnung Bezeichnung der Gruppe
- * @return ID der Gruppe wenn ok, false im Fehlerfall
- */
- public function createGroup($mdl_course_id, $gruppenbezeichnung)
- {
- $qry = 'BEGIN;INSERT INTO public.mdl_groups(courseid, name, description) VALUES('.
- $this->addslashes($mdl_course_id).','.
- $this->addslashes($gruppenbezeichnung).','.
- $this->addslashes($gruppenbezeichnung).');';
- if(pg_query($this->conn_moodle, $qry))
- {
- $qry = "SELECT currval('mdl_groups_id_seq') as id";
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if($row = pg_fetch_object($result))
- {
- pg_query($this->conn_moodle, 'COMMIT;');
- return $row->id;
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK;');
- $this->errormsg = 'Fehler beim Auslesen der GruppenSequence';
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle, 'ROLLBACK;');
- $this->errormsg = 'Fehler beim Auslesen der GruppenSequence';
- return false;
- }
- }
- else
- {
- $this->errormsgr ='Fehler beim Anlegen der Gruppe';
- return false;
- }
- }
-
- /**
- * Legt einen User im Moodle an
- * @param $uid UID der Person die angelegt werden soll
- * @return true wenn ok, false wenn Fehler
- */
- public function createUser($uid)
- {
- $qry = "SELECT uid, vorname, nachname FROM campus.vw_benutzer WHERE uid='".addslashes($uid)."'";
- if($this->db_query($qry))
- {
- if($row = $this->db_fetch_object())
- {
- $username = $row->uid;
- $vorname = $row->vorname;
- $nachname = $row->nachname;
-
- $qry = "BEGIN; INSERT INTO public.mdl_user(auth, username, idnumber, firstname, lastname, email, mnethostid, confirmed, lang)
- VALUES('ldap', ".
- $this->addslashes($username).", ".
- $this->addslashes($username).",".
- $this->addslashes($vorname).",".
- $this->addslashes($nachname).",".
- $this->addslashes($username.'@'.DOMAIN).", 3, 1, 'de_utf8');";
-
- if(pg_query($this->conn_moodle, $qry))
- {
- $qry ="SELECT currval('mdl_user_id_seq') as id;";
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if($row = pg_fetch_object($result))
- {
- pg_query($this->conn_moodle, 'COMMIT;');
- $this->mdl_user_id = $row->id;
- return true;
- }
- else
- {
- pg_query($this->conn_moodle,'ROLLBACK');
- $this->errormsg = 'Fehler beim Lesen der Sequence';
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle,'ROLLBACK');
- $this->errormsg = 'Fehler beim Lesen der Sequence';
- return false;
- }
- }
- else
- {
- pg_query($this->conn_moodle,'ROLLBACK');
- $this->errormsg = 'Fehler beim Anlegen des Users';
- return false;
- }
- }
- else
- {
- $this->errormsg = 'User wurde nicht gefunden: '.$uid;
- return false;
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Laden des Users';
- return false;
- }
- }
-
- /**
- * Teilt den User mit der ID $mdl_user_id zum
- * Kurs mit der ContextID $mdl_context_id zu.
- * @param $mdl_user_id Moodle ID des Users
- * $mdl_context_id ContextID des Kurses
- * $role Rolle der Zuteilung (1=Admin/3=Lektor/5=Student)
- * @return true wenn ok, false wenn Fehler
- */
- public function createZuteilung($mdl_user_id, $mdl_context_id, $role)
- {
- $qry = "INSERT INTO public.mdl_role_assignments(roleid, contextid, userid)
- VALUES(".
- $this->addslashes($role).",".
- $this->addslashes($mdl_context_id).",".
- $this->addslashes($mdl_user_id).");";
-
- if(pg_query($this->conn_moodle, $qry))
- {
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Speichern der Zuteilung';
- return false;
- }
- }
-
- /**
- * Fuegt dem User die globale Gastrolle hinzu
- * @param $mdl_user_id Moodle ID des Users der
- * die GastRolle bekommt
- * @return true wenn ok, false wenn Fehler
- */
- public function createGlobaleGastrolle($mdl_user_id)
- {
-
- //Nachschauen ob diese Person bereits eine globale Gastrolle hat
- $qry = "SELECT 1 FROM public.mdl_role_assignments
- WHERE
- userid='".addslashes($mdl_user_id)."' AND
- contextid='1' AND
- roleid='6'";
-
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if(pg_num_rows($result)==0)
- {
- //noch nicht zugeteilt
- if($this->createZuteilung($mdl_user_id, 1, 6))
- {
- $this->log.="\n$this->mdl_user_firstname $this->mdl_user_lastname wurde die globale Gastrolle zugeteilt";
- $this->log_public.="\n$this->mdl_user_firstname $this->mdl_user_lastname wurde die globale Gastrolle zugeteilt";
- }
- else
- $this->log.="\nFehler beim Anlegen der Gast-Zuteilung: $this->errormsg";
- }
- return true;
- }
- else
- {
- $this->errormsg = 'Fehler beim Auslesen der Rollen';
- return false;
- }
- }
-
- /**
- * Loescht die Zuteilung eines Users zu einem Kurs
- * @param $mdl_user_id MoodleID des Users
- * $mdl_context_id ContextID des Users
- * @return true wenn ok, false wenn Fehler
- */
- public function deleteZuteilung($mdl_user_id, $mdl_context_id)
- {
- $qry = "DELETE FROM public.mdl_role_assignments
- WHERE userid='".addslashes($mdl_user_id)."' AND contextid='".addslashes($mdl_context_id)."'";
- if(pg_query($this->conn_moodle, $qry))
- return true;
- else
- {
- $this->errormsg = 'Fehler beim Loeschen der Zuteilung';
- return false;
- }
- }
-
- /**
- * Teilt die TestStudenten zu einem Testkurs zu
- * @param mdl_course_id ID des Moodle Kurses
- */
- public function createTestStudentenZuordnung($mdl_course_id)
- {
- //Context des Kurses holen
- $mdlcourse = new moodle_course();
- if(!$mdlcourse->getContext(50, $mdl_course_id))
- {
- $this->errormsg = 'Fehler beim Laden des Contexts';
- return false;
- }
-
- $users = array('student1', 'student2', 'student3');
- foreach ($users as $row_user)
- {
- //MoodleID des Users holen
- if(!$this->loaduser($row_user))
- {
- $this->errormsg = "Fehler beim Laden des Users $row_user: $this->errormsg";
- return false;
- }
-
- //Nachschauen ob dieser Student bereits zugeteilt ist
- $qry = "SELECT 1 FROM public.mdl_role_assignments
- WHERE
- userid='".addslashes($this->mdl_user_id)."' AND
- contextid='".addslashes($mdlcourse->mdl_context_id)."'";
-
- if($result = pg_query($this->conn_moodle, $qry))
- {
- if(pg_num_rows($result)==0)
- {
- //Student ist noch nicht zugeteilt.
- if($this->createZuteilung($this->mdl_user_id, $mdlcourse->mdl_context_id, 5))
- {
- $this->log.="\nder Student $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
- $this->log_public.="\nder Student $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
- $this->sync_create++;
- }
- else
- $this->log.="\nFehler beim Anlegen der Studenten-Zuteilung: $this->errormsg";
- }
- }
- else
- {
- $this->errormsg = 'Fehler beim Auslesen der Rollen';
- return false;
- }
- }
- return true;
- }
-}
\ No newline at end of file