mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-04 21:59:27 +00:00
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:
+127
-3
@@ -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
|
||||
|
||||
@@ -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ö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öschen ");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (empty($this->errormsg))
|
||||
$this->errormsg.="Moodlekurs ".$this->mdl_course_id." wurde gelöscht.";
|
||||
return true;
|
||||
return true;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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));
|
||||
|
||||
@@ -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'),
|
||||
),
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,201 @@
|
||||
<?php
|
||||
//@version $Id$
|
||||
/* Copyright (C) 2008 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Karl Burkhart <burkhart@technikum-wien.at>
|
||||
*/
|
||||
|
||||
/*
|
||||
* Dieses Programm listet nach Selektinskreterien alle Moodelkurse zu einem Studiengang auf.
|
||||
* Fuer jede MoodleID werden die Anzahl Benotungen, und erfassten sowie angelegte Zusaetze angezeigt.
|
||||
* Jeder der angezeigten Moodle IDs kann geloescht werden nach bestaetigung eines PopUp Fenster.
|
||||
*/
|
||||
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/globals.inc.php');
|
||||
include_once('../../include/moodle.class.php');
|
||||
|
||||
require_once('../../include/studiensemester.class.php');
|
||||
require_once('../../include/studiengang.class.php');
|
||||
require_once('../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../include/lehreinheit.class.php');
|
||||
require_once('../../include/moodle24_course.class.php');
|
||||
|
||||
$message = '';
|
||||
$stsem = new studiensemester();
|
||||
if (!$stsem_aktuell = $stsem->getakt())
|
||||
$stsem_aktuell = $stsem->getaktorNext();
|
||||
|
||||
$studiensemester_kurzbz=(isset($_REQUEST['moodle_studiensemester'])?trim($_REQUEST['moodle_studiensemester']):$stsem_aktuell);
|
||||
$studiengang_kz=(isset($_REQUEST['moodle_studiengang_kz'])?trim($_REQUEST['moodle_studiengang_kz']):'');
|
||||
$method = (isset($_REQUEST['method'])?trim($_REQUEST['method']):'');
|
||||
|
||||
if($method=='delete')
|
||||
{
|
||||
$moodle_id = isset($_REQUEST['moodle_id'])?$_REQUEST['moodle_id']:'';
|
||||
|
||||
if($moodle_id != '')
|
||||
{
|
||||
// delete
|
||||
$moodle = new moodle();
|
||||
$moodle->load($moodle_id);
|
||||
$error = false;
|
||||
|
||||
if(isset($_GET['all']))
|
||||
{
|
||||
// mittels webservice moodlekurs
|
||||
$moodle24 = new moodle24_course();
|
||||
if($moodle24->deleteKurs($moodle->mdl_course_id))
|
||||
$message = "Erfolgreich gelöscht";
|
||||
else
|
||||
{
|
||||
$message = $moodle24->errormsg;
|
||||
$error = true;
|
||||
}
|
||||
}
|
||||
// wenn webservice aufgerufen wurde und kein fehler beim löschen aufgetreten ist
|
||||
if($error == false)
|
||||
{
|
||||
// Zuordnung löschen
|
||||
if($moodle->deleteZuordnung($moodle->mdl_course_id))
|
||||
$message= "Erfolgreich gelöscht";
|
||||
else
|
||||
$message ="Fehler beim Löschen aufgetreten";
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
$message = 'Ungültige Moodle ID übergeben';
|
||||
}
|
||||
|
||||
echo '<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link rel="stylesheet" href="../../skin/tablesort.css" type="text/css"/>
|
||||
<link rel="stylesheet" href="../../skin/jquery.css" type="text/css"/>
|
||||
<link rel="stylesheet" href="../../skin/fhcomplete.css" type="text/css">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
<script type="text/javascript" src="../../include/js/jquery.js"></script>
|
||||
<title>Moodle - Kursverwaltung</title>
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
<script type="text/javascript">
|
||||
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#myTable").tablesorter(
|
||||
{
|
||||
sortList: [[3,0]],
|
||||
widgets: ["zebra"]
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>';
|
||||
|
||||
echo' <h2>Moodle - Kursverwaltung</h2>
|
||||
<form name="moodle_verwaltung" method="POST">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Studiensemester: </td><td><select name="moodle_studiensemester">';
|
||||
|
||||
$stsem->getAll();
|
||||
foreach ($stsem->studiensemester as $row)
|
||||
{
|
||||
echo '<option value="'.$row->studiensemester_kurzbz.'" '.(("$studiensemester_kurzbz"=="$row->studiensemester_kurzbz")?' selected="selected" ':'').'> '.$row->studiensemester_kurzbz.' </option>';
|
||||
}
|
||||
echo '</select></td>';
|
||||
|
||||
echo ' <td>Studiengang: </td><td><select name="moodle_studiengang_kz"><';
|
||||
$stg = new studiengang();
|
||||
$stg->getAll('typ, kurzbz',true);
|
||||
|
||||
foreach ($stg->result as $row)
|
||||
{
|
||||
if (!$row->moodle)
|
||||
continue;
|
||||
|
||||
echo'<option value="'.$row->studiengang_kz.'" '.(("$studiengang_kz"=="$row->studiengang_kz")?' selected="selected" ':'').'> '.$row->kuerzel.' ('.$row->kurzbzlang.') </option>';
|
||||
}
|
||||
echo '</select></td>
|
||||
<td><input type="submit" value="anzeigen" name="mdl_anzeigen"></td>
|
||||
</tr></table></form>'.$message.'<hr>';
|
||||
|
||||
// Liste anzeigen nachdem der Anzeigenbutton gedrückt wurde oder nach löschen die Liste wieder neu anzeigen
|
||||
if(isset($_REQUEST ['mdl_anzeigen']) || $method!='')
|
||||
{
|
||||
$moodle = new moodle();
|
||||
$moodle->getAllMoodleForStudiengang($studiengang_kz, $studiensemester_kurzbz);
|
||||
|
||||
echo '
|
||||
<table id="myTable" class="tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Lehrveranstaltung</th>
|
||||
<th>Lehreinheit
|
||||
<th>Kurzbz</th>
|
||||
<th>Moodle ID</th>
|
||||
<th>Semester</th>
|
||||
<th>Version</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>';
|
||||
|
||||
foreach($moodle->result as $row)
|
||||
{
|
||||
$lv = new lehrveranstaltung($row->lehrveranstaltung_id);
|
||||
$lehreinheit = '';
|
||||
// wenn LE übergeben lade dazugehörige LV
|
||||
if($row->lehreinheit_id != '')
|
||||
{
|
||||
$le = new lehreinheit();
|
||||
$le->loadLE($row->lehreinheit_id);
|
||||
$lv->load($le->lehrveranstaltung_id);
|
||||
|
||||
// alle LEs von Moodlekurs holen
|
||||
$moodle_help = new moodle();
|
||||
$help = $moodle_help->getLeFromCourse($row->mdl_course_id);
|
||||
$count = 0;
|
||||
foreach($help as $h)
|
||||
{
|
||||
$count++;
|
||||
$lehreinheit .=$h;
|
||||
if($count!=count($help))
|
||||
$lehreinheit .=', ';
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
<tr>
|
||||
<td>'.$lv->bezeichnung.'</td>
|
||||
<td>'.$lehreinheit.'</td>
|
||||
<td>'.$lv->kurzbz.'</td>
|
||||
<td>'.$row->mdl_course_id.'</td>
|
||||
<td>'.$lv->semester.'</td>
|
||||
<td>'.$row->moodle_version.'</td>
|
||||
<td><a href="'.$_SERVER['PHP_SELF'].'?method=delete&moodle_id='.$row->moodle_id.'&moodle_studiensemester='.$studiensemester_kurzbz.'&moodle_studiengang_kz='.$studiengang_kz.'"><img src="../../skin/images/delete.gif"></a><a href="'.$_SERVER['PHP_SELF'].'?method=delete&all&moodle_id='.$row->moodle_id.'&moodle_studiensemester='.$studiensemester_kurzbz.'&moodle_studiengang_kz='.$studiengang_kz.'"><img src="../../skin/images/cross.png"></a></td>
|
||||
</tr>';
|
||||
}
|
||||
echo '</tbody></table>';
|
||||
}
|
||||
|
||||
echo '</body></html>'
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user