Fachbereichsleiter können zu Moodle Kursen zugeordnet werden über eine Custom Role (11)

Fehlerbehandlung für SOAP Zugriffe hinzugefügt
This commit is contained in:
oesi
2015-08-18 08:32:24 +02:00
parent 9177655889
commit b8dc17d8c3
6 changed files with 572 additions and 321 deletions
+3
View File
@@ -101,6 +101,9 @@ define('REIHUNGSTEST_CHECK', true);
*/
define('MOODLE_COURSE_SCHEMA','');
// Legt fst ob Fachbereichsleiter zu Moodle Kursen zugeteilt werden (mit Benutzerdefinierter Rolle 11)
define('MOODLE_SYNC_FACHBEREICHSLEITUNG',false);
// Bei Statuswechsel auf Bewerber -> bei true wird email (INFOMAIL_BEWERBER) an den Bewerber geschickt
define('SEND_BEWERBER_INFOMAIL', false);
+170 -147
View File
@@ -21,7 +21,7 @@
* Moodle 2.4 Connector Klasse
*
* FHComplete Moodle Plugin muss installiert sein fuer
* Webservice Funktion 'fhcomplete_courses_by_shortname'
* Webservice Funktion 'fhcomplete_courses_by_shortname'
* 'fhcomplete_get_course_grades'
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
@@ -44,28 +44,28 @@ class moodle24_course extends basis_db
public $insertamum;
public $insertvon;
public $gruppen;
//Moodle Attribute
public $mdl_fullname;
public $mdl_shortname;
public $lehrveranstaltung_bezeichnung;
public $lehrveranstaltung_semester;
public $lehrveranstaltung_semester;
public $lehrveranstaltung_studiengang_kz;
// Kurs Resourcen - Anzahl
// 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()
{
@@ -74,7 +74,7 @@ class moodle24_course extends basis_db
$this->serverurl=$pfad.'/webservice/soap/server.php?wsdl=1&wstoken='.MOODLE_TOKEN24.'&'.microtime(true);
return true;
}
/**
* Laedt einen MoodleKurs
* @param mdl_course_id ID des Moodle Kurses
@@ -84,21 +84,21 @@ class moodle24_course extends basis_db
{
$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)
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);
}
$client = new SoapClient($this->serverurl);
$response = $client->core_course_get_courses(array('ids'=>array($this->mdl_course_id)));
if($response)
@@ -110,19 +110,19 @@ class moodle24_course extends basis_db
$this->mdl_course_id = $response[0]['id'];
return true;
}
else
else
{
$this->errormsg = 'Kurs wurde nicht gefunden';
return false;
}
}
else
else
{
$this->errormsg = 'Fehler beim Laden des Kurses';
return false;
}
}
/**
* Legt einen Eintrag in der tbl_moodle an
* @return true wenn ok, false im Fehlerfall
@@ -134,8 +134,8 @@ class moodle24_course extends basis_db
$this->errormsg='mdl_course_id muss angegeben sein';
return false;
}
$qry = 'BEGIN; INSERT INTO lehre.tbl_moodle(mdl_course_id, lehreinheit_id, lehrveranstaltung_id,
$qry = 'BEGIN; INSERT INTO lehre.tbl_moodle(mdl_course_id, lehreinheit_id, lehrveranstaltung_id,
studiensemester_kurzbz, insertamum, insertvon, gruppen, moodle_version)
VALUES('.
$this->db_add_param($this->mdl_course_id, FHC_INTEGER).','.
@@ -157,27 +157,27 @@ class moodle24_course extends basis_db
$this->db_query('COMMIT;');
return true;
}
else
else
{
$this->db_query('ROLLBACK');
$this->errormsg = 'Fehler beim Lesen der Sequence';
return false;
}
}
}
else
else
{
$this->db_query('ROLLBACK');
$this->errormsg = 'Fehler beim Lesen der Sequence';
return false;
}
}
else
else
{
$this->errormsg = 'Fehler beim Einfuegen des Datensatzes';
return false;
}
}
/**
* Legt einen Kurs im Moodle an
* @return true wenn ok, false im Fehlerfall
@@ -185,11 +185,11 @@ class moodle24_course extends basis_db
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
$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))
{
@@ -197,27 +197,27 @@ class moodle24_course extends basis_db
{
$lvid = $row->lehrveranstaltung_id;
}
else
else
{
$this->errormsg = 'Fehler beim Ermitteln der LehrveranstaltungID';
return false;
}
}
else
else
{
$this->errormsg = 'Fehler beim Ermitteln der LehrveranstaltungID';
return false;
}
}
else
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,
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);
if($res=$this->db_query($qry))
{
if($row = $this->db_fetch_object($res))
@@ -227,33 +227,33 @@ class moodle24_course extends basis_db
$stg_kz = $row->studiengang_kz;
$oe_kurzbz = $row->oe_kurzbz;
}
else
else
{
$this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester';
return false;
}
}
else
else
{
$this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester';
return false;
}
// Kategoriebau Aufbauen
if(defined('MOODLE_COURSE_SCHEMA') && MOODLE_COURSE_SCHEMA=='DEP-STG-JG-STSEM')
{
// 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
$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))
@@ -272,14 +272,14 @@ class moodle24_course extends basis_db
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)
@@ -295,26 +295,26 @@ class moodle24_course extends basis_db
$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'))
{
@@ -335,41 +335,48 @@ class moodle24_course extends basis_db
}
$categoryid=$id_sem;
}
$client = new SoapClient($this->serverurl);
$data = new stdClass();
$data->fullname=$this->mdl_fullname;
$data->shortname=$this->mdl_shortname;
$data->categoryid=$categoryid;
$data->format='topics';
$stsem = new studiensemester();
$stsem->load($this->studiensemester_kurzbz);
$datum_obj = new datum();
$data->startdate=$datum_obj->mktime_fromdate($stsem->start);
$response = $client->core_course_create_courses(array($data));
if(isset($response[0]))
try
{
$this->mdl_course_id=$response[0]['id'];
return true;
$client = new SoapClient($this->serverurl);
$data = new stdClass();
$data->fullname=$this->mdl_fullname;
$data->shortname=$this->mdl_shortname;
$data->categoryid=$categoryid;
$data->format='topics';
$stsem = new studiensemester();
$stsem->load($this->studiensemester_kurzbz);
$datum_obj = new datum();
$data->startdate=$datum_obj->mktime_fromdate($stsem->start);
$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;
}
}
else
catch (SoapFault $E)
{
$this->errormsg = 'Fehler beim Anlegen des Kurses';
$this->errormsg.="SOAP Fehler beim Anlegen des Kurses: ".$E->faultstring;
return false;
}
return true;
}
/**
* Laedt die ID einer Kurskategorie anhand der Bezeichnung und der ParentID
*
* @param bezeichnung Bezeichnung der Kategorie
* @param parent ID der uebergeordneten Kurskategorie
*
*
* @return id der Kategorie oder false im Fehlerfall
*/
public function getCategorie($bezeichnung, $parent)
@@ -385,20 +392,29 @@ class moodle24_course extends basis_db
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
try
{
$this->errormsg = 'Fehler beim Laden der Kurskategorie';
$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;
}
}
catch (SoapFault $E)
{
$this->errormsg.="SOAP Fehler beim Laden der Kurskategorie: ".$E->faultstring;
return false;
}
}
/**
* Erzeugt eine Kurskategorie anhand der Bezeichnung und der ParentID
* @param bezeichnung Bezeichnung der Kategorie
@@ -417,25 +433,32 @@ class moodle24_course extends basis_db
return false;
}
$client = new SoapClient($this->serverurl);
$response = $client->core_course_create_categories(array(array('name'=>$bezeichnung,'parent'=>$parent)));
if(isset($response[0]))
try
{
return $response[0]['id'];
}
else
{
$this->errormsg = 'Fehler beim Anlegen der Kategorie';
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;
}
}
catch (SoapFault $E)
{
$this->errormsg.="SOAP Fehler beim Anlegen der Kategorie: ".$E->faultstring;
}
}
/**
* Aktualisiert die Spalte gruppen in der tbl_moodle
* @param moodle_id ID der MoodleZuteilung
* gruppen boolean true wenn syncronisiert
* gruppen boolean true wenn syncronisiert
* werden soll, false wenn nicht
* @return true wenn ok, false im Fehlerfall
*
@@ -448,39 +471,39 @@ class moodle24_course extends basis_db
$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)."
$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
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
$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
WHERE
lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER);
if($this->db_query($qry))
{
if($row = $this->db_fetch_object())
@@ -488,18 +511,18 @@ class moodle24_course extends basis_db
$semester = $row->semester;
$stg = $row->stg;
}
else
else
{
$this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester';
return false;
}
}
else
else
{
$this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester';
return false;
}
//Testkurs Categorie holen
if(!$id_testkurs = $this->getCategorie('Testkurse', '0'))
{
@@ -518,8 +541,8 @@ class moodle24_course extends basis_db
return false;
}
}
$client = new SoapClient($this->serverurl);
$client = new SoapClient($this->serverurl);
$data = new stdClass();
$data->fullname=$this->mdl_fullname;
@@ -537,9 +560,9 @@ class moodle24_course extends basis_db
{
$this->errormsg = 'Fehler beim Anlegen des Testkurses';
return false;
}
}
}
/**
* Laedt den Testkurs zu dieser Lehrveranstaltung
* @param lehrveranstaltung_id
@@ -555,32 +578,32 @@ class moodle24_course extends basis_db
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
else
{
$this->errormsg = 'Fehler beim Laden des Testkurses';
return false;
}
}
else
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))
{
@@ -605,19 +628,19 @@ class moodle24_course extends basis_db
}
}
/**
* Laedt die Moodle Noten zu allen Moodlekursen einer Lehrveranstaltung
* @param lehrveranstaltung_id
* @param $studiensemester_kurzbz
*
*
* @return objekt mit den Noten der Teilnehmer dieses Kurses
*/
public function loadNoten($lehrveranstaltung_id, $studiensemester_kurzbz)
{
$this->errormsg='';
$this->result=null;
$this->errormsg='';
$this->result=null;
if($lehrveranstaltung_id=='' || $studiensemester_kurzbz=='')
{
$this->errormsg = 'LehrveranstaltungID und Studiensemester_kurzbz muss uebergeben werden';
@@ -626,40 +649,40 @@ class moodle24_course extends basis_db
// Ermitteln die Lehreinheiten und Moodle ID
$qry = "
SELECT
SELECT
distinct mdl_course_id
FROM
lehre.tbl_moodle
FROM
lehre.tbl_moodle
JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id, studiensemester_kurzbz)
WHERE
tbl_moodle.lehrveranstaltung_id > 0
WHERE
tbl_moodle.lehrveranstaltung_id > 0
AND moodle_version='2.4'
AND tbl_moodle.lehrveranstaltung_id =".$this->db_add_param($lehrveranstaltung_id)."
AND tbl_moodle.studiensemester_kurzbz =".$this->db_add_param($studiensemester_kurzbz)."
UNION
SELECT
UNION
SELECT
distinct mdl_course_id
FROM
FROM
lehre.tbl_moodle
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE
tbl_lehreinheit.lehrveranstaltung_id > 0
AND moodle_version='2.4'
AND tbl_lehreinheit.lehrveranstaltung_id =".$this->db_add_param($lehrveranstaltung_id)."
AND tbl_lehreinheit.lehrveranstaltung_id =".$this->db_add_param($lehrveranstaltung_id)."
AND tbl_moodle.studiensemester_kurzbz =".$this->db_add_param($studiensemester_kurzbz).";";
if(!$result_moodle=$this->db_query($qry))
{
$this->errormsg = 'Fehler beim Lesen der Moodle Kurse , '.$this->errormsg;
return false;
}
}
while($row_moodle = $this->db_fetch_object($result_moodle))
{
try
{
$client = new SoapClient($this->serverurl);
$client = new SoapClient($this->serverurl);
if(CIS_GESAMTNOTE_PUNKTE)
$type=2; // Prozentpunkte
else
@@ -668,7 +691,7 @@ class moodle24_course extends basis_db
$response = $client->fhcomplete_get_course_grades($row_moodle->mdl_course_id, $type);
if (count($response)>0)
if (count($response)>0)
{
foreach($response as $row)
@@ -684,7 +707,7 @@ class moodle24_course extends basis_db
$userobj->note = $row['note'];
$this->result[]=$userobj;
}
}
}
}
}
catch(SoapFault $e)
@@ -696,19 +719,19 @@ class moodle24_course extends basis_db
}
return true;
}
/**
* Loescht einen Moodle Course im Moodel
* Loescht einen Moodle Course im Moodel
* Wenn erfolgreich gelöscht wird kein Wert in response zurückgegeben
* @param mdl_course_id
*
*
*/
public function deleteKurs($mdl_course_id)
{
$client = new SoapClient($this->serverurl);
$client = new SoapClient($this->serverurl);
$data = array($mdl_course_id);
$data = array($mdl_course_id);
$response = $client->core_course_delete_courses(array($mdl_course_id));
if(isset($response[0]))
@@ -718,6 +741,6 @@ class moodle24_course extends basis_db
}
return true;
}
}
+319 -137
View File
@@ -19,9 +19,9 @@
*/
/*
* Connector fuer Moodle 2.4 User
*
*
* FHComplete Moodle Plugin muss installiert sein fuer
* Webservice Funktion 'fhcomplete_user_get_users'
* Webservice Funktion 'fhcomplete_user_get_users'
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
require_once(dirname(__FILE__).'/moodle.class.php');
@@ -33,12 +33,12 @@ class moodle24_user extends basis_db
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
*/
@@ -58,45 +58,53 @@ class moodle24_user extends basis_db
*/
public function loaduser($uid)
{
$client = new SoapClient($this->serverurl);
$response = $client->fhcomplete_user_get_users(array(array('key'=>'username', 'value'=>$uid)));
try
{
$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;
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;
}
}
else
catch (SoapFault $E)
{
$this->errormsg = 'Fehler beim Laden des Users';
$this->errormsg.="SOAP Fehler beim Laden des Users: ".$E->faultstring;
return false;
}
}
/**
* Liefert ein Array mit allen Lektoren die
* zu dem Moodle Kurs zugeteilt sind
* zu dem Moodle Kurs zugeteilt sind
*/
public function getMitarbeiter($mdl_course_id)
{
//Mitarbeiter laden die zu diesem Kurs zugeteilt sind
$qry = "SELECT
$qry = "SELECT
mitarbeiter_uid
FROM
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_moodle USING(lehreinheit_id)
WHERE
FROM
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_moodle USING(lehreinheit_id)
WHERE
moodle_version='2.4'
AND mdl_course_id=".$this->db_add_param($mdl_course_id, FHC_INTEGER)."
UNION
SELECT
mitarbeiter_uid
FROM
SELECT
mitarbeiter_uid
FROM
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN lehre.tbl_moodle USING(lehrveranstaltung_id)
WHERE
JOIN lehre.tbl_moodle USING(lehrveranstaltung_id)
WHERE
moodle_version='2.4'
AND tbl_lehreinheit.studiensemester_kurzbz=tbl_moodle.studiensemester_kurzbz
AND mdl_course_id=".$this->db_add_param($mdl_course_id, FHC_INTEGER);
@@ -109,13 +117,13 @@ class moodle24_user extends basis_db
}
return $mitarbeiter;
}
else
else
{
$this->errormsg='Fehler beim Laden der Mitarbeiter';
return false;
}
}
/**
* Synchronisiert die Lektoren der Lehreinheiten
* mit denen des Moodle Kurses
@@ -132,32 +140,32 @@ class moodle24_user extends basis_db
//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
$qry = "SELECT
mitarbeiter_uid
FROM
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_moodle USING(lehreinheit_id)
FROM
lehre.tbl_lehreinheitmitarbeiter
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE
moodle_version='2.4'
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
moodle_version='2.4'
AND mdl_course_id=".$this->db_add_param($mdl_course_id, FHC_INTEGER)."
AND mitarbeiter_uid not like '_Dummy%'
UNION
SELECT
mitarbeiter_uid
FROM
SELECT
mitarbeiter_uid
FROM
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN lehre.tbl_moodle USING(lehrveranstaltung_id)
WHERE
JOIN lehre.tbl_moodle USING(lehrveranstaltung_id)
WHERE
moodle_version='2.4'
AND tbl_lehreinheit.studiensemester_kurzbz=tbl_moodle.studiensemester_kurzbz
AND mdl_course_id=".$this->db_add_param($mdl_course_id, FHC_INTEGER)."
@@ -165,11 +173,19 @@ class moodle24_user extends basis_db
}
$mitarbeiter='';
$client = new SoapClient($this->serverurl);
$enrolled_users = $client->core_enrol_get_enrolled_users($mdl_course_id,array(array('name'=>'userfields','value'=>'id,username')));
try
{
$client = new SoapClient($this->serverurl);
$enrolled_users = $client->core_enrol_get_enrolled_users($mdl_course_id,array(array('name'=>'userfields','value'=>'id,username')));
}
catch (SoapFault $E)
{
$this->errormsg.="SOAP Fehler beim Laden der Teilnehmer des Kurses: ".$E->faultstring;
return false;
}
if($result_ma = $this->db_query($qry))
{
{
while($row_ma = $this->db_fetch_object($result_ma))
{
@@ -182,7 +198,7 @@ class moodle24_user extends basis_db
break;
}
}
if(!$user_zugeteilt)
{
@@ -195,10 +211,10 @@ class moodle24_user extends basis_db
$this->errormsg = "Fehler beim Anlegen des Users $row_ma->mitarbeiter_uid: $this->errormsg";
return false;
}
else
else
$this->errormsg = '';
}
if($mitarbeiter!='')
$mitarbeiter.=',';
$mitarbeiter.=$this->mdl_user_id;
@@ -209,25 +225,32 @@ class moodle24_user extends basis_db
$data->userid=$this->mdl_user_id;
$data->courseid=$mdl_course_id;
$client = new SoapClient($this->serverurl);
$client->enrol_manual_enrol_users(array($data));
$this->log.="\nLektorIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
$this->log_public.="\nLektorIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
$this->sync_create++;
try
{
$client = new SoapClient($this->serverurl);
$client->enrol_manual_enrol_users(array($data));
$this->log.="\nLektorIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
$this->log_public.="\nLektorIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
$this->sync_create++;
}
catch (SoapFault $E)
{
$this->errormsg.="SOAP Fehler beim zuteilen der Teilnehmer des Kurses: ".$E->faultstring;
return false;
}
}
}
return true;
}
else
else
{
$this->errormsg = 'Fehler beim Ermitteln der Zugeteilten Lektoren';
return false;
}
}
/**
* Synchronisiert die Studenten der Lehreinheiten
* mit denen des Moodle Kurses
@@ -242,37 +265,45 @@ class moodle24_user extends basis_db
$userstoenroll=array();
//Studentengruppen laden die zu diesem Kurs zugeteilt sind
$qry = "SELECT
$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
FROM
lehre.tbl_lehreinheitgruppe JOIN lehre.tbl_moodle USING(lehreinheit_id)
WHERE
moodle_version='2.4'
AND mdl_course_id=".$this->db_add_param($mdl_course_id)."
UNION
SELECT
SELECT
studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, tbl_moodle.studiensemester_kurzbz, tbl_moodle.gruppen
FROM
FROM
lehre.tbl_lehreinheitgruppe JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
JOIN lehre.tbl_moodle USING(lehrveranstaltung_id)
WHERE
JOIN lehre.tbl_moodle USING(lehrveranstaltung_id)
WHERE
moodle_version='2.4'
AND 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(array('name'=>'userfields','value'=>'id,username')));
try
{
$client = new SoapClient($this->serverurl);
$enrolled_users = $client->core_enrol_get_enrolled_users($mdl_course_id, array(array('name'=>'userfields','value'=>'id,username')));
}
catch (SoapFault $E)
{
$this->errormsg.="SOAP Fehler beim Laden der Teilnehmer des Kurses: ".$E->faultstring;
return false;
}
if($result_std = $this->db_query($qry))
{
{
while($row_std = $this->db_fetch_object($result_std))
{
$this->mdl_user_id='';
//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
@@ -340,17 +371,17 @@ class moodle24_user extends basis_db
$this->errormsg = "Fehler beim Anlegen des Users $row_user->student_uid: $this->errormsg";
return false;
}
else
else
$this->errormsg = '';
}
if($studenten!='')
$studenten.=',';
$studenten.=$this->mdl_user_id;
//Student ist noch nicht zugeteilt.
$data = new stdClass();
$data->roleid=5; // 5=Teilnehmer/Student
$data->userid=$this->mdl_user_id;
@@ -398,36 +429,45 @@ class moodle24_user extends basis_db
$this->log.="\nStudentIn $row_user->student_uid wurde der Gruppe $gruppenbezeichnung ($groupid) zugeordnet";
$this->log_public.="\nStudentIn $row_user->student_uid wurde der Gruppe $gruppenbezeichnung zugeordnet";
}
}
}
}
}
}
if(count($userstoenroll)>0)
{
$client = new SoapClient($this->serverurl);
$client->enrol_manual_enrol_users($userstoenroll);
// Wenn User zum Kurs hinzugefuegt werden, muss eine kleine Pause eingelegt werden
// damit sich Moodle wieder beruhigt, sonst werden die Gruppenzuordnungen nicht korrekt gesetzt
sleep(1);
try
{
$client = new SoapClient($this->serverurl);
$client->enrol_manual_enrol_users($userstoenroll);
// Wenn User zum Kurs hinzugefuegt werden, muss eine kleine Pause eingelegt werden
// damit sich Moodle wieder beruhigt, sonst werden die Gruppenzuordnungen nicht korrekt gesetzt
// die Pause ist abgaengig von der Anzahl der User die neu angelegt werden
usleep(count($userstoenroll)*1000);
}
catch (SoapFault $E)
{
$this->errormsg.="SOAP Fehler beim Zuteilen der Teilnehmer des Kurses: ".$E->faultstring;
return false;
}
}
if(count($groupmembertoadd)>0)
{
$client = new SoapClient($this->serverurl);
$client = new SoapClient($this->serverurl);
$groupresult = $client->core_group_add_group_members($groupmembertoadd);
//$this->log.="\n\n".print_r($groupmembertoadd,true)."\n".print_r($groupresult,true);
}
return true;
}
else
else
{
$this->errormsg = 'Fehler beim Ermitteln der Zugeteilten Studenten';
return false;
}
}
/**
* Schaut ob eine Zuteilung von Person zu Gruppe
* existiert
@@ -439,7 +479,7 @@ class moodle24_user extends basis_db
{
if(!isset($this->gruppenzuordnungen[$groupid]))
{
$client = new SoapClient($this->serverurl);
$client = new SoapClient($this->serverurl);
$response = $client->core_group_get_group_members(array($groupid));
if(isset($response[0]['userids']))
@@ -453,12 +493,12 @@ class moodle24_user extends basis_db
if($id==$userid)
return true;
}
return false;
}
/**
* Legt eine Zuteilung eines Users zu
* Legt eine Zuteilung eines Users zu
* einer Gruppe an
* @param groupid ID der Gruppe
* userid ID des Users
@@ -466,14 +506,22 @@ class moodle24_user extends basis_db
*/
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
try
{
$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;
}
catch (SoapFault $E)
{
$this->errormsg.="SOAP Fehler bei zuteilen zu Gruppe: ".$E->faultstring;
return false;
}
}
/**
* Holt die ID einer MoodleGruppe
* @param $mdl_course_id ID des Kurses
@@ -482,9 +530,9 @@ class moodle24_user extends basis_db
*/
public function getGroup($mdl_course_id, $gruppenbezeichnung)
{
$client = @new SoapClient($this->serverurl);
try
{
{
$client = new SoapClient($this->serverurl);
$response = $client->core_group_get_course_groups($mdl_course_id);
foreach($response as $row)
{
@@ -492,8 +540,8 @@ class moodle24_user extends basis_db
return $row['id'];
}
}
catch (SoapFault $E)
{
catch (SoapFault $E)
{
$this->log.="Fehler beim Laden der Gruppe $mdl_course_id, $gruppenbezeichnung: ".$E->faultstring;
return false;
}
@@ -501,7 +549,7 @@ class moodle24_user extends basis_db
$this->errormsg = "Gruppe wurde nicht gefunden $gruppenbezeichnung";
return false;
}
/**
* Legt eine MoodleGruppe zu einem Kurs an
* @param mdl_course_id ID des MoodleKuses
@@ -510,25 +558,32 @@ class moodle24_user extends basis_db
*/
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]))
try
{
return $response[0]['id'];
$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;
}
}
else
catch (SoapFault $E)
{
$this->errormsg = 'Fehler beim Anlegen der Gruppe';
return false;
$this->errormsg.="SOAP Fehler beim Anlegen der Gruppe: ".$E->faultstring;
}
}
/**
* Legt einen User im Moodle an
* @param $uid UID der Person die angelegt werden soll
@@ -550,14 +605,14 @@ class moodle24_user extends basis_db
$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->password = "FHCv!A2".hash('sha512', rand());
$user->firstname = $vorname;
$user->lastname = $nachname;
$user->email = $username.'@'.DOMAIN;
@@ -565,18 +620,26 @@ class moodle24_user extends basis_db
$user->idnumber = $username;
$user->lang = 'en';
$client = new SoapClient($this->serverurl);
$response = $client->core_user_create_users(array($user));
try
{
if(isset($response[0]))
{
$this->mdl_user_id = $response[0]['id'];
return true;
$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
catch (SoapFault $E)
{
$this->errormsg = 'Fehler beim Laden des Users';
return false;
$this->errormsg.="SOAP Fehler beim Anlegen der User: ".$E->faultstring.' '.(isset($E->detail)?$E->detail:'').' data:'.$username;
}
}
else
@@ -590,8 +653,8 @@ class moodle24_user extends basis_db
$this->errormsg='Fehler beim Laden des Users';
return false;
}
}
}
/**
* Teilt die TestStudenten zu einem Testkurs zu
* @param mdl_course_id ID des Moodle Kurses
@@ -600,7 +663,7 @@ class moodle24_user extends basis_db
{
//Context des Kurses holen
$mdlcourse = new moodle24_course();
$users = array('student1', 'student2', 'student3');
foreach ($users as $row_user)
@@ -609,7 +672,7 @@ class moodle24_user extends basis_db
if(!$this->loaduser($row_user))
{
$this->errormsg = "Fehler beim Laden des Users $row_user: $this->errormsg";
return false;
return false;
}
$data = new stdClass();
@@ -617,14 +680,14 @@ class moodle24_user extends basis_db
$data->userid=$this->mdl_user_id;
$data->courseid=$mdl_course_id;
$client = new SoapClient($this->serverurl);
$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;
}
@@ -640,7 +703,7 @@ class moodle24_user extends basis_db
if(!$this->loaduser($uid))
{
$this->errormsg = "Fehler beim Laden des Users $uid: $this->errormsg";
return false;
return false;
}
$param=array();
@@ -654,9 +717,128 @@ class moodle24_user extends basis_db
$param[]=$data;
}
$client = new SoapClient($this->serverurl);
$client = new SoapClient($this->serverurl);
$client->enrol_manual_enrol_users($param);
return true;
}
/**
* Teilt die Fachbereichsleiter zu den Moodle Kursen zu
* @param $mdl_course_id ID des MoodleKurses
* @return true wenn ok, false wenn Fehler
*/
public function sync_fachbereichsleitung($mdl_course_id)
{
//Leitung laden die zu diesem Kurs zugeteilt sind
$qry = "SELECT
distinct uid as mitarbeiter_uid
FROM
public.tbl_organisationseinheit
JOIN public.tbl_benutzerfunktion USING (oe_kurzbz)
JOIN lehre.tbl_lehrveranstaltung USING(oe_kurzbz)
JOIN lehre.tbl_lehreinheit USING (lehrveranstaltung_id)
WHERE
organisationseinheittyp_kurzbz in('Institut','Fachbereich')
AND funktion_kurzbz='Leitung'
AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null)
AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)
AND tbl_lehrveranstaltung.lehrveranstaltung_id IN(
SELECT
lehrveranstaltung_id
FROM
lehre.tbl_moodle
WHERE
moodle_version='2.4'
AND mdl_course_id=".$this->db_add_param($mdl_course_id, FHC_INTEGER)."
AND lehrveranstaltung_id IS NOT NULL
UNION
SELECT
tbl_lehreinheit.lehrveranstaltung_id
FROM
lehre.tbl_moodle
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
WHERE
moodle_version='2.4'
AND mdl_course_id=".$this->db_add_param($mdl_course_id, FHC_INTEGER)."
)";
$mitarbeiter='';
try
{
$client = new SoapClient($this->serverurl);
$enrolled_users = $client->core_enrol_get_enrolled_users($mdl_course_id,array(array('name'=>'userfields','value'=>'id,username')));
}
catch (SoapFault $E)
{
$this->errormsg.="SOAP Fehler beim Ermitteln der Teilnehmer: ".$E->faultstring;
return false;
}
if($result_ma = $this->db_query($qry))
{
while($row_ma = $this->db_fetch_object($result_ma))
{
$user_zugeteilt=false;
foreach($enrolled_users as $user)
{
if($user['username']==$row_ma->mitarbeiter_uid)
{
$user_zugeteilt=true;
break;
}
}
if(!$user_zugeteilt)
{
//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;
//Mitarbeiter ist noch nicht zugeteilt.
$data = new stdClass();
$data->roleid=11; // 11=Fachbereichsleiter (selbst definierte rolle)
$data->userid=$this->mdl_user_id;
$data->courseid=$mdl_course_id;
try
{
$client = new SoapClient($this->serverurl);
$client->enrol_manual_enrol_users(array($data));
$this->log.="\nFachbereitsleiterIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
$this->log_public.="\nFachbereichsleiterIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
$this->sync_create++;
}
catch (SoapFault $E)
{
$this->log.="Fehler beim hinzufügen von FBL: ".$E->faultstring;
}
}
}
return true;
}
else
{
$this->errormsg = 'Fehler beim Ermitteln der Zugeteilten Lektoren';
return false;
}
}
}
+50 -24
View File
@@ -21,13 +21,14 @@
* Synchronisiert die Lektoren und Studenten der aktuellen MoodleKurse
* wenn kein aktuelles Studiensemester vorhanden ist, wird NICHT Synchronisiert
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../include/moodle24_course.class.php');
require_once('../../include/moodle24_user.class.php');
require_once('../../include/studiensemester.class.php');
require_once('../../include/studiengang.class.php');
require_once('../../include/mail.class.php');
require_once(dirname(__FILE__).'/../../config/vilesci.config.inc.php');
require_once(dirname(__FILE__).'/../../config/global.config.inc.php');
require_once(dirname(__FILE__).'/../../include/moodle24_course.class.php');
require_once(dirname(__FILE__).'/../../include/moodle24_user.class.php');
require_once(dirname(__FILE__).'/../../include/studiensemester.class.php');
require_once(dirname(__FILE__).'/../../include/studiengang.class.php');
require_once(dirname(__FILE__).'/../../include/mail.class.php');
$db = new basis_db();
$sync_lektoren_gesamt=0;
$sync_studenten_gesamt=0;
@@ -42,13 +43,13 @@ $lektoren=array();
echo "-- Start ".date('Y-m-d H:i:s')."--";
//nur Synchronisieren wenn ein aktuelles Studiensemester existiert damit keine
//nur Synchronisieren wenn ein aktuelles Studiensemester existiert damit keine
//Probleme durch die Vorrueckung entstehen
$stsem = new studiensemester();
if($stsem_kurzbz=$stsem->getakt())
{
//nur die Eintraege des aktuellen Studiensemesters syncen
$qry = "SELECT distinct mdl_course_id FROM lehre.tbl_moodle
$qry = "SELECT distinct mdl_course_id FROM lehre.tbl_moodle
WHERE studiensemester_kurzbz=".$db->db_add_param($stsem_kurzbz)."
AND moodle_version='2.4'";
if($result = $db->db_query($qry))
@@ -78,12 +79,37 @@ if($stsem_kurzbz=$stsem->getakt())
$message_lkt.="\nKurs: $course->mdl_fullname ($course->mdl_shortname) $course->mdl_course_id:\n".$mdluser->log_public."\n";
}
}
else
else
{
$message.="\nFehler: $mdluser->errormsg";
$fehler++;
}
echo $mdluser->log;
//Lektoren
$mdluser = new moodle24_user();
$mitarbeiter = $mdluser->getMitarbeiter($row->mdl_course_id);
if(defined('MOODLE_SYNC_FACHBEREICHSLEITUNG') && MOODLE_SYNC_FACHBEREICHSLEITUNG)
{
echo "<br>\n-- Fachbereichsleitung --";
flush();
if($mdluser->sync_fachbereichsleitung($row->mdl_course_id))
{
$sync_lektoren_gesamt+=$mdluser->sync_create;
$group_updates+=$mdluser->group_update;
if($mdluser->sync_create>0 || $mdluser->group_update>0)
{
$message.="\nKurs: $course->mdl_fullname ($course->mdl_shortname) $course->mdl_course_id:\n".$mdluser->log."\n";
$message_lkt.="\nKurs: $course->mdl_fullname ($course->mdl_shortname) $course->mdl_course_id:\n".$mdluser->log_public."\n";
}
}
else
{
$message.="\nFehler: $mdluser->errormsg";
$fehler++;
}
echo $mdluser->log;
}
echo "<br>\n-- Studenten --";
flush();
@@ -104,7 +130,7 @@ if($stsem_kurzbz=$stsem->getakt())
$message.="\nFehler: $mdluser->errormsg";
$fehler++;
}
echo $mdluser->log;
flush();
foreach ($mitarbeiter as $uid)
@@ -114,13 +140,13 @@ if($stsem_kurzbz=$stsem->getakt())
$lektoren[$uid].=$message_lkt;
}
}
else
else
{
$message.="\nFehler: in der Tabelle lehre.tbl_moodle wird auf den Kurs $row->mdl_course_id verwiesen, dieser existiert jedoch nicht im Moodle!";
$fehler++;
}
}
if($sync_lektoren_gesamt>0 || $sync_studenten_gesamt>0 || $fehler>0 || $group_updates>0)
{
//Mail an die Lektoren
@@ -130,14 +156,14 @@ if($stsem_kurzbz=$stsem->getakt())
{
$header = "Dies ist eine automatische Mail!\n";
$header.= "Es wurden folgende Aktualisierungen an Ihren Moodle-Kursen durchgeführt:\n\n";
$to = "$uid@".DOMAIN;
//$to = 'oesi@technikum-wien.at';
$mail = new mail($to, 'vilesci@'.DOMAIN,'Moodle - Aktualisierungen',$header.$message_lkt);
if($mail->send())
echo "Mail wurde an $to versandt<br>";
else
else
echo "Fehler beim Senden des Mails an $to<br>";
}
}
@@ -147,27 +173,27 @@ if($stsem_kurzbz=$stsem->getakt())
$header.= "Anzahl der aktualisierten Lektoren: $sync_lektoren_gesamt\n";
$header.= "Anzahl der aktualisierten Studenten: $sync_studenten_gesamt\n";
$header.= "Anzahl der Fehler: $fehler\n";
$to = MAIL_ADMIN;
//$to = 'oesi@technikum-wien.at';
$mail = new mail($to, 'vilesci@'.DOMAIN,'Moodle Syncro',$header.$message);
if($mail->send())
echo "Mail wurde an $to versandt:<br>".nl2br($header.$message);
else
else
echo "Fehler beim Senden des Mails an $to:<br>".nl2br($header.$message);
}
else
else
{
echo 'Alle Zuteilungen sind auf dem neuesten Stand';
echo "\nAlle Zuteilungen sind auf dem neuesten Stand";
}
}
else
else
{
echo 'Fehler bei Select:'.$qry;
}
}
else
else
echo "Kein aktuelles Studiensemester vorhanden->kein Syncro";
echo "-- Ende ".date('d.m.Y H:i:s')." --";
echo "<br>\n-- Ende ".date('Y-m-d H:i:s')." --\n";
?>
+15 -10
View File
@@ -23,13 +23,13 @@
* und teilt Lektoren und Studierende zu dem Kurs zu
* Aber nur wenn die Lehrform der Lehreinheit=Lehrform der LV
*/
require_once('../../config/cis.config.inc.php');
require_once('../../include/studiensemester.class.php');
require_once('../../include/moodle.class.php');
require_once('../../include/moodle24_course.class.php');
require_once('../../include/moodle24_user.class.php');
require_once('../../include/studiengang.class.php');
require_once('../../include/benutzerberechtigung.class.php');
require_once(dirname(__FILE__).'/../../config/cis.config.inc.php');
require_once(dirname(__FILE__).'/../../include/studiensemester.class.php');
require_once(dirname(__FILE__).'/../../include/moodle.class.php');
require_once(dirname(__FILE__).'/../../include/moodle24_course.class.php');
require_once(dirname(__FILE__).'/../../include/moodle24_user.class.php');
require_once(dirname(__FILE__).'/../../include/studiengang.class.php');
require_once(dirname(__FILE__).'/../../include/benutzerberechtigung.class.php');
// Wenn das Script nicht ueber Commandline gestartet wird, muss eine
// Authentifizierung stattfinden
@@ -40,7 +40,7 @@ if(php_sapi_name() != 'cli')
$rechte->getBerechtigungen($uid);
if(!$rechte->isBerechtigt('admin'))
die('Sie haben keine Berechtigung fuer diese Seite');
die('Sie haben keine Berechtigung fuer diese Seite');
}
$db = new basis_db();
@@ -64,7 +64,7 @@ JOIN public.tbl_person USING (person_id)
AND semester is not null
AND semester!=0
AND tbl_lehreinheit.lehrform_kurzbz=tbl_lehrveranstaltung.lehrform_kurzbz
AND uid not like '_Dummy%'
GROUP BY lehrveranstaltung_id, tbl_lehrveranstaltung.bezeichnung, tbl_lehrveranstaltung.kurzbz,
tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.orgform_kurzbz, tbl_lehrveranstaltung.semester,
tbl_lehreinheit.lehreinheit_id;";
@@ -92,7 +92,7 @@ if($result = $db->db_query($qry))
$mdl_course->insertamum = date('Y-m-d H:i:s');
$mdl_course->insertvon = 'auto';
$mdl_course->gruppen = true;
echo "\nCreate Course: $bezeichnung";
//Moodlekurs anlegen
@@ -106,6 +106,11 @@ if($result = $db->db_query($qry))
if(!$mdl_user->sync_lektoren($mdl_course->mdl_course_id))
echo $mdl_user->errormsg;
$mdl_user = new moodle24_user();
//Fachbereichsleitung Synchronisieren
if(!$mdl_user->sync_fachbereichsleitung($mdl_course->mdl_course_id))
echo $mdl_user->errormsg;
$mdl_user = new moodle24_user();
//Studenten Synchronisieren
if(!$mdl_user->sync_studenten($mdl_course->mdl_course_id))
+15 -3
View File
@@ -18,9 +18,10 @@
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
*/
/**
* Script zum manuellen synchronisieren der User in die Moodle Kurse
* Script zum manuellen synchronisieren der User in die Moodle Kurse
*/
require_once('../../config/vilesci.config.inc.php');
require_once('../../config/global.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/moodle.class.php');
require_once('../../include/moodle24_user.class.php');
@@ -68,7 +69,7 @@ if(isset($_POST['sync']))
if(isset($_POST['mdl_course_id']) && $_POST['mdl_course_id']!='' && is_numeric($_POST['mdl_course_id']))
{
$mdl_course_id = $_POST['mdl_course_id'];
$moodle = new moodle24_user();
echo '<br><h2>Übertrage LektorInnen</h2><br>';
if($moodle->sync_lektoren($mdl_course_id))
@@ -77,7 +78,18 @@ if(isset($_POST['sync']))
}
else
echo 'Fehler bei der Zuteilung:'.$moodle->errormsg;
if(defined('MOODLE_SYNC_FACHBEREICHSLEITUNG') && MOODLE_SYNC_FACHBEREICHSLEITUNG)
{
$moodle = new moodle24_user();
echo '<br><h2>Übertrage Fachbereichsleitung</h2><br>';
if($moodle->sync_fachbereichsleitung($mdl_course_id))
{
echo $moodle->log;
}
else
echo 'Fehler bei der Zuteilung:'.$moodle->errormsg;
}
$moodle = new moodle24_user();
echo '<br><h2>Übertrage Studierende</h2><br>';