Alternatives Schema fuer Kurskategorien im Moodle

This commit is contained in:
Andreas Österreicher
2014-08-21 05:26:28 +00:00
parent 7c006b9826
commit b4f1d17b3e
3 changed files with 110 additions and 20 deletions
+6
View File
@@ -48,6 +48,12 @@ define('VORRUECKUNG_STATUS_MAX_SEMESTER',true);
// Bei Statuswechsel auf Bewerber -> soll Reihungstest brücksichtigt werden
define('REIHUNGSTEST_CHECK', true);
/* Schema zur Erstellung der Kurs Kategorien im Moodle
* Leer oder nicht gesetzt: STSEM -> STG -> Ausbsemester (WS2014 -> BEL -> 1)
* DEP-STG-JG-STSEM: Department -> STG -> Jahrgang -> StSem (Informationstechnologie und Informationsmanagement -> BIMK -> Jahrgang 2014 -> WS2014)
*/
define('MOODLE_COURSE_SCHEMA','');
// Bei Statuswechsel auf Bewerber -> bei true wird email (INFOMAIL_BEWERBER) an den Bewerber geschickt
define('SEND_BEWERBER_INFOMAIL', false);
+100 -19
View File
@@ -28,6 +28,7 @@ require_once(dirname(__FILE__).'/basis_db.class.php');
require_once(dirname(__FILE__).'/moodle.class.php');
require_once(dirname(__FILE__).'/datum.class.php');
require_once(dirname(__FILE__).'/studiensemester.class.php');
require_once(dirname(__FILE__).'/../config/global.config.inc.php');
class moodle24_course extends basis_db
{
@@ -212,7 +213,8 @@ class moodle24_course extends basis_db
$lvid = $this->lehrveranstaltung_id;
//Studiengang und Semester holen
$qry = "SELECT tbl_lehrveranstaltung.semester, UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as stg
$qry = "SELECT tbl_lehrveranstaltung.semester, UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as stg,
studiengang_kz, tbl_studiengang.oe_kurzbz
FROM lehre.tbl_lehrveranstaltung JOIN public.tbl_studiengang USING(studiengang_kz)
WHERE lehrveranstaltung_id=".$this->db_add_param($lvid, FHC_INTEGER);
@@ -222,6 +224,8 @@ class moodle24_course extends basis_db
{
$semester = $row->semester;
$stg = $row->stg;
$stg_kz = $row->studiengang_kz;
$oe_kurzbz = $row->oe_kurzbz;
}
else
{
@@ -235,32 +239,109 @@ class moodle24_course extends basis_db
return false;
}
//Studiensemester Categorie holen
if(!$id_stsem = $this->getCategorie($this->studiensemester_kurzbz, '0'))
// Kategoriebau Aufbauen
if(defined('MOODLE_COURSE_SCHEMA') && MOODLE_COURSE_SCHEMA=='DEP-STG-JG-STSEM')
{
if(!$id_stsem = $this->createCategorie($this->studiensemester_kurzbz, '0'))
echo "<br>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 "<br>$this->errormsg";
}
//Semester Categorie holen
if(!$id_sem = $this->getCategorie($semester, $id_stg))
{
if(!$id_sem = $this->createCategorie($semester, $id_stg))
echo "<br>$this->errormsg";
}
// Struktur: Department -> STG -> Jahrgang -> StSem (Informationstechnologie und Informationsmanagement -> BIMK -> Jahrgang 2014 -> WS2014)
// Studiengang der Lehrveranstaltung holen
// Uebergeordnetes Department ermitteln
$qry = 'SELECT
bezeichnung
FROM
public.tbl_organisationseinheit
WHERE
oe_kurzbz=(SELECT oe_parent_kurzbz FROM public.tbl_organisationseinheit WHERE oe_kurzbz='.$this->db_add_param($oe_kurzbz).')';
if($result_department = $this->db_query($qry))
{
if($row_department = $this->db_fetch_object($result_department))
{
$department = $row_department->bezeichnung;
}
else
{
$this->errormsg = 'Fehler beim Ermitteln des Departments';
return false;
}
}
// Department
if(!$id_department = $this->getCategorie($department, '0'))
{
if(!$id_department = $this->createCategorie($department, '0'))
echo "<br>$this->errormsg";
}
// Studiengang
if(!$id_stg = $this->getCategorie($stg, $id_department))
{
if(!$id_stg = $this->createCategorie($stg, $id_department))
echo "<br>$this->errormsg";
}
// Jahrgang - 1. Studiensemester ermitteln (Stsem um Ausbsem -1 zurückspringen) und das Jahr ermitteln
$studiensemester = new studiensemester();
if($semester!=0)
{
$jahrgangstsem = $studiensemester->jump($this->studiensemester_kurzbz, ($semester-1)*-1);
$studiensemester->load($jahrgangstsem);
}
else
{
$jahrgangstsem=$this->studiensemester_kurzbz;
$studiensemester->load($jahrgangstsem);
}
$datum = new Datum();
$jahr = $datum->formatDatum($studiensemester->start, 'Y');
if(!$id_jahrgang = $this->getCategorie('Jahrgang '.$jahr, $id_stg))
{
if(!$id_jahrgang = $this->createCategorie('Jahrgang '.$jahr, $id_stg))
echo "<br>$this->errormsg";
}
// Studiensemester
if(!$id_stsem = $this->getCategorie($this->studiensemester_kurzbz, $id_jahrgang))
{
if(!$id_stsem = $this->createCategorie($this->studiensemester_kurzbz, $id_jahrgang))
echo "<br>Fehler beim Anlegen des Studiensemesters";
}
$categoryid=$id_stsem;
}
else
{
// Struktur: STSEM -> STG -> Ausbsemester (WS2014 -> BEL -> 1)
//Studiensemester Categorie holen
if(!$id_stsem = $this->getCategorie($this->studiensemester_kurzbz, '0'))
{
if(!$id_stsem = $this->createCategorie($this->studiensemester_kurzbz, '0'))
echo "<br>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 "<br>$this->errormsg";
}
//Semester Categorie holen
if(!$id_sem = $this->getCategorie($semester, $id_stg))
{
if(!$id_sem = $this->createCategorie($semester, $id_stg))
echo "<br>$this->errormsg";
}
$categoryid=$id_sem;
}
$client = new SoapClient($this->serverurl);
$data = new stdClass();
$data->fullname=$this->mdl_fullname;
$data->shortname=$this->mdl_shortname;
$data->categoryid=$id_sem;
$data->categoryid=$categoryid;
$data->format='topics';
$stsem = new studiensemester();
+4 -1
View File
@@ -536,16 +536,19 @@ class studiensemester extends basis_db
{
$op='>';
$sort='ASC';
$sort2='DESC';
}
elseif($wert<0)
{
$op='<';
$sort='DESC';
$sort2='ASC';
}
else
{
$op='=';
$sort='';
$sort2='';
}
$qry = "SELECT studiensemester_kurzbz
@@ -558,7 +561,7 @@ class studiensemester extends basis_db
ORDER BY start $sort
LIMIT ".abs($wert)."
) as foo
ORDER BY start DESC LIMIT 1";
ORDER BY start $sort2 LIMIT 1";
if($this->db_query($qry))
{