From c8a41db207c068c5b9b3cb9297afa6540080a405 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andreas=20=C3=96sterreicher?= Date: Fri, 5 Sep 2008 13:48:36 +0000 Subject: [PATCH] --- cis/private/lehre/lesson.php | 1 + cis/private/lehre/moodle_choice.php | 104 ++++++++++++++++++++++++++++ include/moodle_course.class.php | 36 ++++++++++ include/tw/cis_menu_lv.inc.php | 39 ++++++++++- 4 files changed, 178 insertions(+), 2 deletions(-) create mode 100644 cis/private/lehre/moodle_choice.php diff --git a/cis/private/lehre/lesson.php b/cis/private/lehre/lesson.php index edd26dd23..e3c6d1f2b 100644 --- a/cis/private/lehre/lesson.php +++ b/cis/private/lehre/lesson.php @@ -26,6 +26,7 @@ require_once('../../../include/studiensemester.class.php'); require_once('../../../include/lehrveranstaltung.class.php'); require_once('../../../include/studiengang.class.php'); + require_once('../../../include/moodle_course.class.php'); //Connection Herstellen if(!$sql_conn = pg_pconnect(CONN_STRING)) diff --git a/cis/private/lehre/moodle_choice.php b/cis/private/lehre/moodle_choice.php new file mode 100644 index 000000000..23ece58a1 --- /dev/null +++ b/cis/private/lehre/moodle_choice.php @@ -0,0 +1,104 @@ +, + * Andreas Oesterreicher and + * Rudolf Hangl . + */ +/* + * + */ +require_once('../../config.inc.php'); +require_once('../../../include/functions.inc.php'); +require_once('../../../include/moodle_course.class.php'); +require_once('../../../include/moodle_user.class.php'); + +if(!$conn = pg_pconnect(CONN_STRING)) + die('Fehler beim Connecten zur DB'); + +//$conn_moodle=''; +if(!$conn_moodle = pg_pconnect(CONN_STRING_MOODLE)) + die('Fehler beim Connecten zur DB'); + +$user = get_uid(); + +if(isset($_GET['lvid'])) + $lvid=$_GET['lvid']; +else + die('lvid muss uebergeben werden'); + +if(isset($_GET['stsem'])) + $stsem = $_GET['stsem']; +else + die('Es wurde kein Studiensemester uebergeben'); + +echo ' + + + + + + + + + + + + + + + + + + + + +
 MOODLE Kurse
 
  + + + + + +
'; + +$mdlcourse = new moodle_course($conn, $conn_moodle); +$mdlcourse->getAll($lvid, $stsem); + +foreach ($mdlcourse->result as $row) +{ + echo "$row->mdl_fullname
"; +} + +echo '
+
+ +'; +?> \ No newline at end of file diff --git a/include/moodle_course.class.php b/include/moodle_course.class.php index 28adcf664..7856133e6 100644 --- a/include/moodle_course.class.php +++ b/include/moodle_course.class.php @@ -649,4 +649,40 @@ class moodle_course return false; } } + + // **************************************************** + // * Liefert alle Kurse dieser LV in denen der Student + // * zugeteilt ist + // **************************************************** + function getCourse($lehrveranstaltung_id, $studiensemester_kurzbz, $student_uid) + { + //alle betreffenden Kurse holen + $qry = "SELECT 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 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 = pg_query($this->conn, $qry)) + { + while($row = pg_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 = pg_query($this->conn, $qry)) + { + if(pg_num_rows($result_vw)>0) + { + if(!array_key_exists($row->mdl_course_id, $courses)) + $courses[]=$row->mdl_course_id; + } + } + } + } + return $courses; + } } \ No newline at end of file diff --git a/include/tw/cis_menu_lv.inc.php b/include/tw/cis_menu_lv.inc.php index 1493d2c18..676a08125 100644 --- a/include/tw/cis_menu_lv.inc.php +++ b/include/tw/cis_menu_lv.inc.php @@ -478,12 +478,47 @@ if($result = pg_query($sql_conn, $qry)) if(pg_num_rows($result)>0) $showmoodle=false; - + + if(!$conn_moodle = pg_pconnect(CONN_STRING_MOODLE)) + die('Fehler beim Verbinden zur MoodleDB'); + $mdlcourse = new moodle_course($sql_conn, $conn_moodle); + $mdlcourse->getAll($lvid, $angezeigtes_stsem); + if(count($mdlcourse->result)>0) + $showmoodle=true; + if($showmoodle) { - echo ' + $link = "moodle_choice.php?lvid=$lvid&stsem=$angezeigtes_stsem"; + + + if(count($mdlcourse->result)>0) + { + if(!$is_lector) + { + $course = $mdlcourse->getCourse($lvid, $angezeigtes_stsem, $user); + if(count($course)==1) + $link = MOODLE_PATH.'course/view.php?id='.$course[0]; + else + $link = "moodle_choice.php?lvid=$lvid&stsem=$angezeigtes_stsem"; + } + else + { + //$mdlcourse->getAll($lvid, $angezeigtes_stsem); + if(count($mdlcourse->result)==1) + $link = MOODLE_PATH.'course/view.php?id='.$mdlcourse->result[0]->mdl_course_id; + else + $link = "moodle_choice.php?lvid=$lvid&stsem=$angezeigtes_stsem"; + } + + echo '
Moodle

'; + } + else + { + echo '
+ Moodle
'; + } if($is_lector) echo 'Wartung'; }