*/ require_once(dirname(__FILE__).'/basis_db.class.php'); class moodle extends basis_db { public $result = array(); public $moodle_id; public $mdl_course_id; public $lehreinheit_id; public $lehrveranstaltung_id; public $studiensemester_kurzbz; public $insertamum; public $insertvon; public $gruppen; public $moodle_version; public $version; /** * Konstruktor * */ public function __construct() { $this->getVersionen(); return true; } /** * Laedt alle Moodlekurse zu einer LV/Stsem * plus die Moodlekurse die auf dessen LE haengen * * @param lehrveranstaltung_id * @param 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 stdClass(); $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); $obj->moodle_version = $row->moodle_version; $this->result[] = $obj; } return true; } else { $this->errormsg = 'Fehler beim Laden der Daten'; return false; } } /** * Schaut ob fuer diese LV/StSem schon ein * Moodle Kurs existiert * * @param lehrveranstaltung_id * @param 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 einer 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; } } /** * Prueft ob fuer alle Lehreinheiten dieser LV bereits ein Moodlekurs existiert * * @param lehrveranstaltung_id * @param 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 einer Datenbankabfrage'; return false; } } /** * Laedt die Moodle Versionsinformationen */ public function getVersionen() { $qry = "SELECT * FROM lehre.tbl_moodle_version"; if($result = $this->db_query($qry)) { while($row = $this->db_fetch_object($result)) { $this->version[$row->moodle_version]['bezeichnung']=$row->bezeichnung; $this->version[$row->moodle_version]['pfad']=$row->pfad; } return true; } else { $this->errormsg = 'Fehler beim Laden der Versionsdaten'; return false; } } /** * Liefert den Pfad zur Moodle Installation * @param version Versionsnummer * @return pfad (URL) zur Moodle Installation */ public function getPfad($version) { if(isset($this->version[$version]['pfad'])) return $this->version[$version]['pfad']; } /** * Liefert alle Kurse dieser LV zu denen der Student * zugeteilt ist * * @param lehrveranstaltung_id * @param studiensemester_kurzbz * @param student_uid * @return array mit Moodle Kurs IDs */ public function getCourse($lehrveranstaltung_id, $studiensemester_kurzbz, $student_uid) { //alle betreffenden Kurse holen $qry = "SELECT tbl_lehreinheit.lehreinheit_id, mdl_course_id, tbl_moodle.moodle_version FROM lehre.tbl_moodle JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id, studiensemester_kurzbz) WHERE tbl_moodle.lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)." AND tbl_moodle.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)." UNION SELECT tbl_lehreinheit.lehreinheit_id, mdl_course_id, tbl_moodle.moodle_version FROM lehre.tbl_moodle JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) WHERE tbl_lehreinheit.lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)." AND tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz); $courses = array(); if($result = $this->db_query($qry)) { while($row = $this->db_fetch_object($result)) { //schauen in welchen Kursen der Student ist $qry = "SELECT 1 FROM campus.vw_student_lehrveranstaltung WHERE uid=".$this->db_add_param($student_uid)." AND lehreinheit_id=".$this->db_add_param($row->lehreinheit_id, FHC_INTEGER); if($result_vw = $this->db_query($qry)) { if($this->db_num_rows($result_vw)>0) { if(!array_key_exists($row->mdl_course_id, $courses)) { $obj = new stdClass(); $obj->mdl_course_id = $row->mdl_course_id; $obj->moodle_version = $row->moodle_version; $this->result[] = $obj; } } } } } return true; } }