neue Moodle 2.4 Kurse können auf 2 arten gelöscht werden,

1. nur der eintrag aus der zwischentabelle oder
2. der eintrag aus der zwischentabelle und per webservice der moodle kurs
This commit is contained in:
Karl Burkhart
2013-04-10 12:21:10 +00:00
parent 0d5341ae74
commit 474e03260b
5 changed files with 341 additions and 53 deletions
+127 -3
View File
@@ -15,7 +15,8 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
* Karl Burkhart <burkhart@technikum-wien.at>
*/
require_once(dirname(__FILE__).'/basis_db.class.php');
@@ -41,10 +42,44 @@ class moodle extends basis_db
*/
public function __construct()
{
parent::__construct();
$this->getVersionen();
return true;
}
public function load($moodle_id)
{
$qry = "SELECT * FROM lehre.tbl_moodle WHERE moodle_id =".$this->db_add_param($moodle_id, FHC_INTEGER).';';
if($result=$this->db_query($qry))
{
if($row = $this->db_fetch_object())
{
$this->moodle_id = $row->moodle_id;
$this->mdl_course_id = $row->mdl_course_id;
$this->lehreinheit_id = $row->lehreinheit_id;
$this->lehrveranstaltung_id = $row->lehrveranstaltung_id;
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
$this->insertamum = $row->insertamum;
$this->insertvon = $row->insertvon;
$this->gruppen = $this->db_parse_bool($row->gruppen);
$this->moodle_version = $row->moodle_version;
return true;
}
else
{
$this->errormsg = "Kein Moodleeintrag gefunden";
return false;
}
}
else
{
$this->errormsg="Fehler bei der Abfrage aufgetreten";
return false;
}
}
/**
* Laedt alle Moodlekurse zu einer LV/Stsem
* plus die Moodlekurse die auf dessen LE haengen
@@ -93,9 +128,98 @@ class moodle extends basis_db
{
$this->errormsg = 'Fehler beim Laden der Daten';
return false;
}
}
}
}
/**
* gibt alle Moodlekurseinträge der Zwischentabelle für übergebenen Studiengang und Semester zurück
* @param type $studiengang_kz
* @param type $studiensemester
*/
public function getAllMoodleForStudiengang($studiengang_kz, $studiensemester, $version='2.4')
{
$qry = '
SELECT mdl_course_id, moodle.moodle_id, moodle.lehreinheit_id, moodle.lehrveranstaltung_id, moodle.studiensemester_kurzbz, moodle.insertamum, moodle.insertvon, gruppen, moodle_version FROM lehre.tbl_moodle moodle
JOIN lehre.tbl_lehrveranstaltung lv USING(lehrveranstaltung_id)
WHERE moodle.studiensemester_kurzbz = '.$this->db_add_param($studiensemester).'
AND lv.studiengang_kz ='.$this->db_add_param($studiengang_kz).'
AND moodle_version ='.$this->db_add_param($version).'
AND moodle.lehreinheit_id is null
UNION
SELECT distinct on(mdl_course_id) mdl_course_id, moodle.moodle_id, moodle.lehreinheit_id, moodle.lehrveranstaltung_id, moodle.studiensemester_kurzbz, moodle.insertamum, moodle.insertvon, gruppen, moodle_version FROM lehre.tbl_moodle moodle
JOIN lehre.tbl_lehreinheit le ON(moodle.lehreinheit_id = le.lehreinheit_id)
JOIN lehre.tbl_lehrveranstaltung lv ON(le.lehrveranstaltung_id = lv.lehrveranstaltung_id)
WHERE moodle.studiensemester_kurzbz = '.$this->db_add_param($studiensemester).'
AND lv.studiengang_kz ='.$this->db_add_param($studiengang_kz).'
AND moodle_version ='.$this->db_add_param($version).'
AND moodle.lehrveranstaltung_id is null
';
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;
}
}
/**
* Löscht den Zuordnungseintrag in der Moodletablle
* @param type $moodle_id
*/
public function deleteZuordnung($mdl_course_id)
{
$qry = "DELETE FROM lehre.tbl_moodle WHERE mdl_course_id=".$this->db_add_param($mdl_course_id, FHC_INTEGER).';';
if($result=$this->db_query($qry))
return true;
else
{
$this->errormsg="Fehler beim Löschen der Daten";
return false;
}
}
/**
* gibt alle LE Ids der Übergebenen Moodle_Course_ID zurück
*/
public function getLeFromCourse($moodle_course_id)
{
$qry = "SELECT lehreinheit_id FROM lehre.tbl_moodle WHERE mdl_course_id =".$this->db_add_param($moodle_course_id, FHC_INTEGER).';';
$le = array();
if($result = $this->db_query($qry))
{
while($row = $this->db_fetch_object())
{
$le[] = $row->lehreinheit_id;
}
}
return $le;
}
/**
* Schaut ob fuer diese LV/StSem schon ein
* Moodle Kurs existiert
+11 -49
View File
@@ -629,63 +629,25 @@ class moodle24_course extends basis_db
/**
* Loescht einen Moodle Course im Moodel und in der DB
* Loescht einen Moodle Course im Moodel
* Wenn erfolgreich gelöscht wird kein Wert in response zurückgegeben
* @param mdl_course_id
* @param bServerinfo Detail xmlrpc Debug informationen
*
* @return objekt mit den Noten der Teilnehmer dieses Kurses
*
* TODO anpassung moodle 2.4 eventuell Trennung in moodle.class
*/
public function deleteKurs($mdl_course_id=null,$moodle_id=null,$bServerinfo=false)
public function deleteKurs($mdl_course_id)
{
$this->errormsg='';
$this->result=array();
if (!is_null($mdl_course_id))
$this->mdl_course_id=$mdl_course_id;
$client = new SoapClient($this->serverurl);
$data = array($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))
$response = $client->core_course_delete_courses(array($mdl_course_id));
if(isset($response[0]))
{
$this->errormsg='Moodle Kurs ID fehlt';
$this->errormsg = $response[0];
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&ouml;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&ouml;schen ");
return false;
}
if (empty($this->errormsg))
$this->errormsg.="Moodlekurs ".$this->mdl_course_id." wurde gel&ouml;scht.";
return true;
return true;
}
}
}
+1 -1
View File
@@ -501,7 +501,7 @@ class moodle24_user extends basis_db
$user->email = $username.'@'.DOMAIN;
$user->auth = 'ldap';
$user->idnumber = $username;
$user->lang = 'de';
$user->lang = 'en';
$client = new SoapClient($this->serverurl);
$response = $client->core_user_create_users(array($user));
+1
View File
@@ -74,6 +74,7 @@ $menu=array
'Account'=>array('name'=>'Account', 'link'=>'moodle/account_verwaltung.php', 'target'=>'main'),
'Zuteilung Verwalten'=>array('name'=>'Zuteilung Verwalten', 'link'=>'moodle/zuteilung_verwaltung.php', 'target'=>'main'),
'Account24'=>array('name'=>'Account Moodle 2.4', 'link'=>'moodle/account_verwaltung24.php', 'target'=>'main'),
'Kursverwaltung24'=>array('name'=>'Kurs entfernen 2.4', 'link'=>'moodle/kurs_verwaltung24.php', 'target'=>'main'),
),