mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
Moodle-Integration aus FHComplete Core entfernt und in eigenes Addon
ausgelagert. Support für Moodle 1.9 entfernt
This commit is contained in:
+4
-1
@@ -11,12 +11,15 @@
|
||||
- **[FAS]** Verwaltung von Rechnungsadressen
|
||||
- **[CIS]** Mitarbeiter und Studierende können nach dem Login im CIS zur Passwortänderung umgeleitet werden wenn dieses seit über einem Jahr nicht geändert wurde
|
||||
- **[FAS]** Bei Statuswechsel von Studierenden können Gründe für den Statuswechsel angegeben werden
|
||||
- **[ADDONS]** Addons können Menüpunkte im Vilesci anpassen
|
||||
- **[ADDONS]** Addons können Noten für die Gesamtnote vorschlagen
|
||||
|
||||
### CHANGED
|
||||
- **[CORE]** Berechtigungsprüfung wurde angepasst damit deaktiverte Benutzer keine Berechtigungen mehr haben
|
||||
- **[CORE]** Berechtigungsprüfung wurde angepasst damit deaktivierte Benutzer keine Berechtigungen mehr haben
|
||||
|
||||
### Updateinfo
|
||||
- **[CORE]** Infoscreen wurde umbenannt (informationsbildschirm.php)
|
||||
- **[CORE]** Moodle Schnittstelle wurde aus dem Core entfernt und in ein eigenes Addon verschoben. Moodle Versionen < 2.4 werden nicht mehr unterstützt
|
||||
|
||||
## [3.2]
|
||||
|
||||
|
||||
@@ -97,7 +97,6 @@ $config['fhc_acl'] = array
|
||||
'lehre.tbl_lvangebot' => 'basis/lvangebot',
|
||||
'lehre.tbl_lvregel' => 'basis/lvregel',
|
||||
'lehre.tbl_lvregeltyp' => 'basis/lvregeltyp',
|
||||
'lehre.tbl_moodle' => 'basis/moodle',
|
||||
'lehre.tbl_note' => 'basis/note',
|
||||
'lehre.tbl_notenschluessel' => 'basis/notenschluessel',
|
||||
'lehre.tbl_notenschluesselaufteilung' => 'basis/notenschluesselaufteilung',
|
||||
|
||||
@@ -1,76 +0,0 @@
|
||||
<?php
|
||||
/**
|
||||
* FH-Complete
|
||||
*
|
||||
* @package FHC-API
|
||||
* @author FHC-Team
|
||||
* @copyright Copyright (c) 2016, fhcomplete.org
|
||||
* @license GPLv3
|
||||
* @link http://fhcomplete.org
|
||||
* @since Version 1.0
|
||||
* @filesource
|
||||
*/
|
||||
// ------------------------------------------------------------------------
|
||||
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
class Moodle extends APIv1_Controller
|
||||
{
|
||||
/**
|
||||
* Moodle API constructor.
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
// Load model MoodleModel
|
||||
$this->load->model('education/Moodle_model', 'MoodleModel');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function getMoodle()
|
||||
{
|
||||
$moodle_id = $this->get('moodle_id');
|
||||
|
||||
if (isset($moodle_id))
|
||||
{
|
||||
$result = $this->MoodleModel->load($moodle_id);
|
||||
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->response();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function postMoodle()
|
||||
{
|
||||
if ($this->_validate($this->post()))
|
||||
{
|
||||
if (isset($this->post()['moodle_id']))
|
||||
{
|
||||
$result = $this->MoodleModel->update($this->post()['moodle_id'], $this->post());
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = $this->MoodleModel->insert($this->post());
|
||||
}
|
||||
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->response();
|
||||
}
|
||||
}
|
||||
|
||||
private function _validate($moodle = NULL)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
<?php
|
||||
class Moodle_model extends DB_Model
|
||||
{
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->dbTable = 'lehre.tbl_moodle';
|
||||
$this->pk = 'moodle_id';
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -27,7 +27,6 @@ require_once('../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../include/studiensemester.class.php');
|
||||
require_once('../../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../../include/studiengang.class.php');
|
||||
require_once('../../../include/moodle.class.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
require_once('../../../include/lehre_tools.class.php');
|
||||
require_once('../../../include/lvangebot.class.php');
|
||||
|
||||
@@ -1,407 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2013 FH 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: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
|
||||
*/
|
||||
/*
|
||||
* Verwaltung der Moodlekurse zu einer LV
|
||||
* Moodle 2.4
|
||||
*/
|
||||
require_once('../../../config/cis.config.inc.php');
|
||||
require_once('../../../include/basis_db.class.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../include/moodle24_course.class.php');
|
||||
require_once('../../../include/moodle24_user.class.php');
|
||||
require_once('../../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../../include/lehreinheit.class.php');
|
||||
require_once('../../../include/lehreinheitgruppe.class.php');
|
||||
require_once('../../../include/lehreinheitmitarbeiter.class.php');
|
||||
require_once('../../../include/studiengang.class.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
require_once('../../../include/moodle.class.php');
|
||||
require_once('../../../include/moodle19_course.class.php');
|
||||
require_once('../../../include/moodle19_user.class.php');
|
||||
|
||||
$sprache = getSprache();
|
||||
$p = new phrasen($sprache);
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung'));
|
||||
|
||||
if (!$user=get_uid())
|
||||
die($p->t('moodle/sieSindNichtAngemeldet').' !');
|
||||
|
||||
if(isset($_GET['lvid']) && is_numeric($_GET['lvid']))
|
||||
$lvid=$_GET['lvid'];
|
||||
else
|
||||
die($p->t('moodle/lvidMussUebergebenWerden'));
|
||||
|
||||
if(isset($_GET['stsem']) && check_stsem($_GET['stsem']))
|
||||
$stsem = $_GET['stsem'];
|
||||
else
|
||||
die($p->t('moodle/esWurdeKeinStudiensemesterUebergeben'));
|
||||
|
||||
$art = (isset($_POST['art'])?$_POST['art']:'lv');
|
||||
|
||||
$berechtigt = false;
|
||||
|
||||
//Pruefen ob Rechte fuer diese LV vorhanden sind
|
||||
$lem = new lehreinheitmitarbeiter();
|
||||
if($lem->existsLV($lvid, $stsem, $user))
|
||||
$berechtigt=true;
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if($rechte->isBerechtigt('admin'))
|
||||
$berechtigt=true;
|
||||
|
||||
if(!$berechtigt)
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
$lv = new lehrveranstaltung();
|
||||
$lv->load($lvid);
|
||||
|
||||
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<script language="Javascript">
|
||||
<!--
|
||||
function togglediv()
|
||||
{
|
||||
var block = "table-row";
|
||||
if (navigator.appName.indexOf("Microsoft") > -1)
|
||||
block = "block";
|
||||
|
||||
if(document.getElementById("radiole").checked)
|
||||
document.getElementById("lehreinheitencheckboxen").style.display = block;
|
||||
else
|
||||
document.getElementById("lehreinheitencheckboxen").style.display = "none";
|
||||
}
|
||||
-->
|
||||
</script>
|
||||
</head>
|
||||
<body onload="togglediv()">
|
||||
<h1>'.$db->convert_html_chars($lv->bezeichnung).' ('.$db->convert_html_chars($stsem).')</h1>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td valign="top">';
|
||||
|
||||
if(isset($_POST['neu']))
|
||||
{
|
||||
if($_POST['bezeichnung']=='')
|
||||
{
|
||||
echo '<span class="error">'.$p->t('benotungstool/bezeichnungMussEingegebenWerden').'</span><br>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$lehrveranstaltung = new lehrveranstaltung();
|
||||
$lehrveranstaltung->load($lvid);
|
||||
$studiengang = new studiengang();
|
||||
$studiengang->load($lehrveranstaltung->studiengang_kz);
|
||||
|
||||
$orgform = ($lehrveranstaltung->orgform_kurzbz!=''?$lehrveranstaltung->orgform_kurzbz:$studiengang->orgform_kurzbz);
|
||||
|
||||
//Kurzbezeichnung generieren Format: STSEM-STG-SEM-LV/LEID/LEID/LEID...
|
||||
//$shortname = $stsem.'-'.$studiengang->kuerzel.'-'.$lehrveranstaltung->semester.'-'.$lehrveranstaltung->kurzbz;
|
||||
$shortname = $studiengang->kuerzel.'-'.$orgform.'-'.$lehrveranstaltung->semester.'-'.$stsem.'-'.$lehrveranstaltung->kurzbz;
|
||||
|
||||
//Gesamte LV zu einem Moodle Kurs zusammenlegen
|
||||
if($art=='lv')
|
||||
{
|
||||
$mdl_course = new moodle24_course();
|
||||
|
||||
$mdl_course->lehrveranstaltung_id = $lvid;
|
||||
$mdl_course->studiensemester_kurzbz = $stsem;
|
||||
$mdl_course->mdl_fullname = $_POST['bezeichnung'];
|
||||
$mdl_course->mdl_shortname = $shortname;
|
||||
$mdl_course->insertamum = date('Y-m-d H:i:s');
|
||||
$mdl_course->insertvon = $user;
|
||||
$mdl_course->gruppen = isset($_POST['gruppen']);
|
||||
|
||||
//Moodlekurs anlegen
|
||||
if($mdl_course->create_moodle())
|
||||
{
|
||||
//Eintrag in der Vilesci DB
|
||||
$mdl_course->create_vilesci();
|
||||
|
||||
$mdl_user = new moodle24_user();
|
||||
//Lektoren Synchronisieren
|
||||
if(!$mdl_user->sync_lektoren($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))
|
||||
echo $mdl_user->errormsg;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $mdl_course->errormsg;
|
||||
}
|
||||
}
|
||||
elseif($art=='le') //Getrennte Kurse fuer die Lehreinheiten
|
||||
{
|
||||
$lehreinheiten=array();
|
||||
|
||||
foreach ($_POST as $key=>$value)
|
||||
{
|
||||
if(mb_strstr($key, 'lehreinheit_'))
|
||||
{
|
||||
$shortname.='/'.$value;
|
||||
$lehreinheiten[]=$value;
|
||||
}
|
||||
}
|
||||
|
||||
if(count($lehreinheiten)>0)
|
||||
{
|
||||
$mdl_course = new moodle24_course();
|
||||
|
||||
$mdl_course->mdl_fullname = $_POST['bezeichnung'];
|
||||
$mdl_course->mdl_shortname = $shortname;
|
||||
$mdl_course->studiensemester_kurzbz = $stsem;
|
||||
$mdl_course->insertamum = date('Y-m-d H:i:s');
|
||||
$mdl_course->insertvon = $user;
|
||||
$mdl_course->lehreinheit_id=$lehreinheiten[0];
|
||||
$mdl_course->gruppen = isset($_POST['gruppen']);
|
||||
|
||||
//Kurs im Moodle anlegen
|
||||
if($mdl_course->create_moodle())
|
||||
{
|
||||
//fuer jede Lehreinheit einen Eintrag in VilesciDB anlegen
|
||||
foreach ($lehreinheiten as $value)
|
||||
{
|
||||
$mdl_course->lehreinheit_id = $value;
|
||||
if(!$mdl_course->create_vilesci())
|
||||
echo '<br>'.$p->t('moodle/fehlerBeimAnlegenAufgetreten').':'.$mdl_course->errormsg;
|
||||
}
|
||||
|
||||
$mdl_user = new moodle24_user();
|
||||
//Lektoren Synchronisieren
|
||||
if(!$mdl_user->sync_lektoren($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))
|
||||
echo $mdl_user->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">'.$p->t('moodle/esMussMindestensEineLehreinheitMarkiertSein').'</span><br>';
|
||||
}
|
||||
}
|
||||
else
|
||||
die($p->t('moodle/artIstUnbekannt'));
|
||||
}
|
||||
}
|
||||
//Gruppen Syncro ein/aus schalten
|
||||
if(isset($_POST['changegruppe']))
|
||||
{
|
||||
if(isset($_POST['moodle_id']) && is_numeric($_POST['moodle_id']))
|
||||
{
|
||||
$mcourse = new moodle24_course();
|
||||
if($mcourse->updateGruppenSync($_POST['moodle_id'], isset($_POST['gruppen'])))
|
||||
echo '<b>'.$p->t('moodle/datenWurdenAktualisiert').'</b><br>';
|
||||
else
|
||||
echo '<span class="error">'.$p->t('global/fehlerBeimAktualisierenDerDaten').'</span>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">'.$p->t('moodle/esWurdeKeineGueltigeIdUebergeben').'</span>';
|
||||
}
|
||||
}
|
||||
|
||||
//Anlegen eines Testkurses
|
||||
if(isset($_GET['action']) && $_GET['action']=='createtestkurs')
|
||||
{
|
||||
$mdl_course = new moodle24_course();
|
||||
if(!$mdl_course->loadTestkurs($lvid, $stsem))
|
||||
{
|
||||
$lehrveranstaltung = new lehrveranstaltung();
|
||||
$lehrveranstaltung->load($lvid);
|
||||
$studiengang = new studiengang();
|
||||
$studiengang->load($lehrveranstaltung->studiengang_kz);
|
||||
|
||||
//$orgform = ($lehrveranstaltung->orgform_kurzbz!=''?$lehrveranstaltung->orgform_kurzbz:$studiengang->orgform_kurzbz);
|
||||
|
||||
//Kurzbezeichnung generieren Format: STSEM-STG-SEM-LV/LEID/LEID/LEID...
|
||||
$shortname = mb_strtoupper('TK-'.$stsem.'-'.$studiengang->kuerzel.'-'.$lehrveranstaltung->semester.'-'.$lehrveranstaltung->kurzbz);
|
||||
|
||||
$mdl_course->lehrveranstaltung_id = $lvid;
|
||||
$mdl_course->studiensemester_kurzbz = $stsem;
|
||||
$mdl_course->mdl_fullname = 'Testkurs - '.$lehrveranstaltung->bezeichnung;
|
||||
$mdl_course->mdl_shortname = $shortname;
|
||||
|
||||
//TestKurs erstellen
|
||||
if($mdl_course->createTestkurs($lvid, $stsem))
|
||||
{
|
||||
$id=$mdl_course->mdl_course_id;
|
||||
$errormsg='';
|
||||
|
||||
$mdl_user = new moodle24_user();
|
||||
//Lektoren zuweisen
|
||||
if(!$mdl_user->sync_lektoren($id, $lvid, $stsem))
|
||||
$errormsg.=$p->t('moodle/fehlerBeiDerLektorenZuordnung').':'.$mdl_user->errormsg.'<br>';
|
||||
//Teststudenten zuweisen
|
||||
if(!$mdl_user->createTestStudentenZuordnung($id))
|
||||
$errormsg.=$p->t('moodle/fehlerBeiDerStudentenZuordnung').':'.$mdl_user->errormsg.'<br>';
|
||||
|
||||
if($errormsg!='')
|
||||
echo $errormsg;
|
||||
else
|
||||
echo '<b>'.$p->t('moodle/testkursWurdeErfolgreichAngelegt').'</b><br>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">'.$p->t('moodle/esExistiertBereitsEinTestkurs').'</span><br>';
|
||||
}
|
||||
}
|
||||
|
||||
$moodle = new moodle();
|
||||
if($moodle->course_exists_for_lv($lvid, $stsem) || $moodle->course_exists_for_allLE($lvid, $stsem))
|
||||
{
|
||||
echo $p->t('moodle/esIstBereitsEinMoodleKursVorhanden');
|
||||
}
|
||||
else
|
||||
{
|
||||
//wenn bereits ein Moodle Kurs fuer eine Lehreinheit angelegt wurde, dann dass
|
||||
//anlegen fuer die Lehrveranstaltung verhindern
|
||||
$qry = "SELECT 1 FROM lehre.tbl_moodle
|
||||
WHERE lehreinheit_id in(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit
|
||||
WHERE lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)."
|
||||
AND studiensemester_kurzbz=".$db->db_add_param($stsem).")";
|
||||
$disable_lv='';
|
||||
if($result = $db->db_query($qry))
|
||||
if($db->db_num_rows($result)>0)
|
||||
{
|
||||
$disable_lv='disabled="true"';
|
||||
//wenn schon ein Moodle Kurs zu einer Lehreinheit angelegt wurde,
|
||||
//dann ist standardmaessig die Lehreinheit markiert
|
||||
if($art=='lv')
|
||||
$art='le';
|
||||
}
|
||||
|
||||
echo '<b>'.$p->t('moodle/moodleKursAnlegen').': </b><br><br>
|
||||
<form action="'.$_SERVER['PHP_SELF'].'?lvid='.$lvid.'&stsem='.$stsem.'" method="POST">
|
||||
<input type="radio" '.$disable_lv.' name="art" value="lv" onclick="togglediv()" '.($art=='lv'?'checked':'').'>einen Moodle Kurs für die gesamte LV anlegen<br>
|
||||
<input type="radio" id="radiole" name="art" value="le" onclick="togglediv()" '.($art=='le'?'checked':'').'>einen Moodle Kurs für einzelne Lehreinheiten anlegen
|
||||
';
|
||||
|
||||
$le = new lehreinheit();
|
||||
$le->load_lehreinheiten($lv->lehrveranstaltung_id, $stsem);
|
||||
echo '<div id="lehreinheitencheckboxen" style="display:none">';
|
||||
foreach ($le->lehreinheiten as $row)
|
||||
{
|
||||
//Gruppen laden
|
||||
$gruppen = '';
|
||||
|
||||
$lehreinheitgruppe = new lehreinheitgruppe();
|
||||
$lehreinheitgruppe->getLehreinheitgruppe($row->lehreinheit_id);
|
||||
foreach ($lehreinheitgruppe->lehreinheitgruppe as $grp)
|
||||
{
|
||||
if($grp->gruppe_kurzbz=='')
|
||||
$gruppen.=' '.$grp->semester.$grp->verband.$grp->gruppe;
|
||||
else
|
||||
$gruppen.=' '.$grp->gruppe_kurzbz;
|
||||
}
|
||||
|
||||
//Lektoren laden
|
||||
$lektoren = '';
|
||||
$lehreinheitmitarbeiter = new lehreinheitmitarbeiter();
|
||||
$lehreinheitmitarbeiter->getLehreinheitmitarbeiter($row->lehreinheit_id);
|
||||
|
||||
foreach ($lehreinheitmitarbeiter->lehreinheitmitarbeiter as $ma)
|
||||
{
|
||||
$lektoren.= ' '.$ma->mitarbeiter_uid;
|
||||
}
|
||||
|
||||
if($moodle->course_exists_for_le($row->lehreinheit_id))
|
||||
$disabled='disabled';
|
||||
else
|
||||
$disabled='';
|
||||
echo '
|
||||
<input type="checkbox" name="lehreinheit_'.$row->lehreinheit_id.'" value="'.$row->lehreinheit_id.'" '.$disabled.'>'.$row->lehrform_kurzbz.' '.$gruppen.' '.$lektoren;
|
||||
echo '<br>';
|
||||
}
|
||||
echo '</div>';
|
||||
|
||||
$studiengang = new studiengang();
|
||||
$studiengang->load($lv->studiengang_kz);
|
||||
$orgform = ($lv->orgform_kurzbz!=''?$lv->orgform_kurzbz:$studiengang->orgform_kurzbz);
|
||||
$longbezeichnung = $studiengang->kuerzel.'-'.$orgform.'-'.$lv->semester.'-'.$stsem.' - '.$lv->bezeichnung;
|
||||
|
||||
echo '<br>'.$p->t('moodle/kursbezeichnung').': <input type="text" name="bezeichnung" maxlength="254" size="40" value="'.$db->convert_html_chars($longbezeichnung).'">';
|
||||
echo '<br>'.$p->t('moodle/gruppenUebernehmen').': <input type="checkbox" name="gruppen" checked>';
|
||||
echo '<br><br><input type="submit" name="neu" value="'.$p->t('moodle/kursAnlegen').'">
|
||||
</form>';
|
||||
}
|
||||
echo '</td>';
|
||||
|
||||
echo '<td valign="top">';
|
||||
echo '<b>'.$p->t('moodle/vorhandeneMoodleKurse').'</b>';
|
||||
if(!$moodle->getAll($lvid, $stsem))
|
||||
echo $moodle->errormsg;
|
||||
echo '<table>';
|
||||
foreach ($moodle->result as $course)
|
||||
{
|
||||
|
||||
switch($course->moodle_version)
|
||||
{
|
||||
case '2.4':
|
||||
$mdlcourse = new moodle24_course();
|
||||
$mdlcourse->load($course->mdl_course_id);
|
||||
echo '<tr>';
|
||||
echo '<td><a href="'.$moodle->getPfad($course->moodle_version).'course/view.php?id='.$course->mdl_course_id.'" class="Item" target="_blank">'.$mdlcourse->mdl_fullname.'</a></td>';
|
||||
// echo "<td nowrap><form action='".$_SERVER['PHP_SELF']."?lvid=$lvid&stsem=$stsem' method='POST' style='margin:0px'><input type='hidden' name='moodle_id' value='$course->moodle_id'><input type='checkbox' name='gruppen' ".($course->gruppen?'checked':'').">Gruppen übernehmen <input type='submit' value='".$p->t('global/ok')."' name='changegruppe'></form></td>";
|
||||
break;
|
||||
case '1.9':
|
||||
$moodlecourse = new moodle19_course();
|
||||
$moodlecourse->load($course->mdl_course_id);
|
||||
echo '<tr>';
|
||||
echo '<td><a href="'.$moodle->getPfad($course->moodle_version).'course/view.php?id='.$course->mdl_course_id.'" class="Item" target="_blank">'.$moodlecourse->mdl_fullname.'</a> (v1.9)</td>';
|
||||
// echo "<td nowrap><form action='".$_SERVER['PHP_SELF']."?lvid=$lvid&stsem=$stsem' method='POST' style='margin:0px'><input type='hidden' name='moodle_id' value='$course->moodle_id'><input type='checkbox' name='gruppen' ".($course->gruppen?'checked':'').">Gruppen übernehmen <input type='submit' value='".$p->t('global/ok')."' name='changegruppe'></form></td>";
|
||||
echo '</tr>';
|
||||
break;
|
||||
default:
|
||||
echo '<tr><td>Moodle v'.$course->moodle_version.' - '.$course->mdl_course_id.'</td></tr>';
|
||||
break;
|
||||
}
|
||||
}
|
||||
echo '</table>';
|
||||
echo '</td></tr></table>';
|
||||
|
||||
echo '<br><br><br>';
|
||||
echo '<b>'.$p->t('moodle/testkurse').'</b><br><br>';
|
||||
$mdlcourse = new moodle24_course();
|
||||
if($mdlcourse->loadTestkurs($lvid, $stsem))
|
||||
{
|
||||
echo '<a href="'.$moodle->getPfad('2.4').'course/view.php?id='.$mdlcourse->mdl_course_id.'" class="Item" target="_blank">'.$db->convert_html_chars($mdlcourse->mdl_fullname).'</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<a href='".$_SERVER['PHP_SELF']."?lvid=$lvid&stsem=$stsem&action=createtestkurs' class='Item'>".$p->t('moodle/klickenSieHierUmTestkursErstellen')."</a>";
|
||||
}
|
||||
echo '
|
||||
</body>
|
||||
</html>';
|
||||
?>
|
||||
@@ -1,127 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 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: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
*/
|
||||
require_once('../../../config/cis.config.inc.php');
|
||||
require_once('../../../include/basis_db.class.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/moodle.class.php');
|
||||
require_once('../../../include/moodle19_course.class.php');
|
||||
require_once('../../../include/moodle24_course.class.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
require_once('../../../include/lehreinheit.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Herstellen der Datenbankverbindung');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
$p = new phrasen(getSprache());
|
||||
|
||||
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 '<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
</head>
|
||||
<body>
|
||||
<h1>'.$p->t('moodle/kursUebersicht').'</h1>
|
||||
';
|
||||
|
||||
$moodle = new moodle();
|
||||
$moodle->getAll($lvid, $stsem);
|
||||
|
||||
$meinekurse = '';
|
||||
$allgemeinekurse = '';
|
||||
|
||||
foreach ($moodle->result as $row)
|
||||
{
|
||||
$kurs = '';
|
||||
switch($row->moodle_version)
|
||||
{
|
||||
case '1.9':
|
||||
$mdlcourse19=new moodle19_course();
|
||||
$mdlcourse19->load($row->mdl_course_id);
|
||||
$bezeichnung = $mdlcourse19->mdl_fullname;
|
||||
if($bezeichnung=='')
|
||||
$bezeichnung = 'Course '.$row->mdl_course_id;
|
||||
$kurs = "<a href='".$moodle->getPfad($row->moodle_version)."course/view.php?id=".$row->mdl_course_id."' class='Item'>$bezeichnung</a><br>";
|
||||
break;
|
||||
|
||||
case '2.4':
|
||||
$mdlcourse24=new moodle24_course();
|
||||
$mdlcourse24->load($row->mdl_course_id);
|
||||
$bezeichnung = $mdlcourse24->mdl_fullname;
|
||||
if($bezeichnung=='')
|
||||
$bezeichnung = 'Course '.$row->mdl_course_id;
|
||||
$kurs = "<a href='".$moodle->getPfad($row->moodle_version)."course/view.php?id=".$row->mdl_course_id."' class='Item'>$bezeichnung</a><br>";
|
||||
break;
|
||||
|
||||
default:
|
||||
$kurs = $p->t('moodle/ungueltigeVersion',array($row->moodle_version)).'<br>';
|
||||
break;
|
||||
}
|
||||
if($row->lehreinheit_id!='')
|
||||
{
|
||||
$le = new lehreinheit();
|
||||
$stud = $le->getStudenten($row->lehreinheit_id);
|
||||
$zugeordnet = false;
|
||||
|
||||
foreach($stud as $row_stud)
|
||||
{
|
||||
if($row_stud->uid == $user)
|
||||
{
|
||||
$zugeordnet = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if($zugeordnet)
|
||||
{
|
||||
$meinekurse .= $kurs;
|
||||
}
|
||||
}
|
||||
$allgemeinekurse .= $kurs;
|
||||
}
|
||||
|
||||
if($meinekurse!='')
|
||||
{
|
||||
echo '<h2>'.$p->t('moodle/meineKurse').'</h2>';
|
||||
echo $meinekurse;
|
||||
}
|
||||
|
||||
echo '<br><br><h2>'.$p->t('moodle/vorhandeneKurse').'</h2>';
|
||||
|
||||
echo $allgemeinekurse;
|
||||
|
||||
echo '</body>
|
||||
</html>';
|
||||
?>
|
||||
@@ -1,476 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2013 FH 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: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
*/
|
||||
/*
|
||||
* Verwaltungsseite zum Anlegen von Moodle Kursen
|
||||
*/
|
||||
require_once('../../../config/cis.config.inc.php');
|
||||
require_once('../../../include/basis_db.class.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../../include/lehreinheit.class.php');
|
||||
require_once('../../../include/lehreinheitgruppe.class.php');
|
||||
require_once('../../../include/lehreinheitmitarbeiter.class.php');
|
||||
require_once('../../../include/studiengang.class.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
require_once('../../../include/moodle.class.php');
|
||||
require_once('../../../include/moodle19_course.class.php');
|
||||
require_once('../../../include/moodle19_user.class.php');
|
||||
require_once('../../../include/moodle24_course.class.php');
|
||||
require_once('../../../include/moodle24_user.class.php');
|
||||
|
||||
$sprache = getSprache();
|
||||
$p = new phrasen($sprache);
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung'));
|
||||
|
||||
if (!$user=get_uid())
|
||||
die($p->t('moodle/sieSindNichtAngemeldet').' !');
|
||||
|
||||
if(isset($_GET['lvid']) && is_numeric($_GET['lvid']))
|
||||
$lvid=$_GET['lvid'];
|
||||
else
|
||||
die($p->t('moodle/lvidMussUebergebenWerden'));
|
||||
|
||||
if(isset($_GET['stsem']) && check_stsem($_GET['stsem']))
|
||||
$stsem = $_GET['stsem'];
|
||||
else
|
||||
die($p->t('moodle/esWurdeKeinStudiensemesterUebergeben'));
|
||||
|
||||
$art = (isset($_POST['art'])?$_POST['art']:'lv');
|
||||
|
||||
$berechtigt = false;
|
||||
|
||||
//Pruefen ob Rechte fuer diese LV vorhanden sind
|
||||
$qry = "SELECT distinct vorname, nachname, tbl_benutzer.uid as uid FROM lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter, public.tbl_benutzer, public.tbl_person WHERE tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid=tbl_benutzer.uid AND tbl_person.person_id=tbl_benutzer.person_id AND lehrveranstaltung_id='$lvid' AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid NOT like '_Dummy%' AND tbl_person.aktiv=true AND studiensemester_kurzbz='$stsem' ORDER BY nachname, vorname";
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
while($row_lector = $db->db_fetch_object($result))
|
||||
{
|
||||
if($user==$row_lector->uid)
|
||||
$berechtigt=true;
|
||||
}
|
||||
}
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if($rechte->isBerechtigt('admin'))
|
||||
$berechtigt=true;
|
||||
|
||||
if(!$berechtigt)
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
$lv = new lehrveranstaltung();
|
||||
$lv->load($lvid);
|
||||
|
||||
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<script language="Javascript">
|
||||
<!--
|
||||
function togglediv()
|
||||
{
|
||||
var block = "table-row";
|
||||
if (navigator.appName.indexOf("Microsoft") > -1)
|
||||
block = "block";
|
||||
|
||||
if(document.getElementById("radiole").checked)
|
||||
document.getElementById("lehreinheitencheckboxen").style.display = block;
|
||||
else
|
||||
document.getElementById("lehreinheitencheckboxen").style.display = "none";
|
||||
}
|
||||
-->
|
||||
</script>
|
||||
</head>
|
||||
<body onload="togglediv()">
|
||||
<h1>'.$lv->bezeichnung.' ('.$stsem.')</h1>
|
||||
<table width="100%" >
|
||||
<tr>
|
||||
<td valign="top">';
|
||||
|
||||
if(isset($_POST['neu']))
|
||||
{
|
||||
if($_POST['bezeichnung']=='')
|
||||
{
|
||||
echo '<span class="error">'.$p->t('benotungstool/bezeichnungMussEingegebenWerden').'</span><br>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$lehrveranstaltung = new lehrveranstaltung();
|
||||
$lehrveranstaltung->load($lvid);
|
||||
$studiengang = new studiengang();
|
||||
$studiengang->load($lehrveranstaltung->studiengang_kz);
|
||||
|
||||
$orgform = ($lehrveranstaltung->orgform_kurzbz!=''?$lehrveranstaltung->orgform_kurzbz:$studiengang->orgform_kurzbz);
|
||||
|
||||
//Kurzbezeichnung generieren Format: STSEM-STG-SEM-LV/LEID/LEID/LEID...
|
||||
//$shortname = $stsem.'-'.$studiengang->kuerzel.'-'.$lehrveranstaltung->semester.'-'.$lehrveranstaltung->kurzbz;
|
||||
$shortname = $studiengang->kuerzel.'-'.$orgform.'-'.$lehrveranstaltung->semester.'-'.$stsem.'-'.$lehrveranstaltung->kurzbz;
|
||||
|
||||
//Gesamte LV zu einem Moodle Kurs zusammenlegen
|
||||
if($art=='lv')
|
||||
{
|
||||
$mdl_course = new moodle19_course();
|
||||
|
||||
$mdl_course->lehrveranstaltung_id = $lvid;
|
||||
$mdl_course->studiensemester_kurzbz = $stsem;
|
||||
$mdl_course->mdl_fullname = $_POST['bezeichnung'];
|
||||
$mdl_course->mdl_shortname = $shortname;
|
||||
$mdl_course->insertamum = date('Y-m-d H:i:s');
|
||||
$mdl_course->insertvon = $user;
|
||||
$mdl_course->gruppen = isset($_POST['gruppen']);
|
||||
|
||||
//Moodlekurs anlegen
|
||||
if($mdl_course->create_moodle())
|
||||
{
|
||||
//Eintrag in der Vilesci DB
|
||||
$mdl_course->create_vilesci();
|
||||
|
||||
$mdl_user = new moodle19_user();
|
||||
//Lektoren Synchronisieren
|
||||
if(!$mdl_user->sync_lektoren($mdl_course->mdl_course_id))
|
||||
echo $mdl_user->errormsg;
|
||||
|
||||
$mdl_user = new moodle19_user();
|
||||
//Studenten Synchronisieren
|
||||
if(!$mdl_user->sync_studenten($mdl_course->mdl_course_id))
|
||||
echo $mdl_user->errormsg;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $mdl_course->errormsg;
|
||||
}
|
||||
}
|
||||
elseif($art=='le') //Getrennte Kurse fuer die Lehreinheiten
|
||||
{
|
||||
$lehreinheiten=array();
|
||||
|
||||
foreach ($_POST as $key=>$value)
|
||||
{
|
||||
if(mb_strstr($key, 'lehreinheit_'))
|
||||
{
|
||||
$shortname.='/'.$value;
|
||||
$lehreinheiten[]=$value;
|
||||
}
|
||||
}
|
||||
|
||||
if(count($lehreinheiten)>0)
|
||||
{
|
||||
$mdl_course = new moodle19_course();
|
||||
|
||||
$mdl_course->mdl_fullname = $_POST['bezeichnung'];
|
||||
$mdl_course->mdl_shortname = $shortname;
|
||||
$mdl_course->studiensemester_kurzbz = $stsem;
|
||||
$mdl_course->insertamum = date('Y-m-d H:i:s');
|
||||
$mdl_course->insertvon = $user;
|
||||
$mdl_course->lehreinheit_id=$lehreinheiten[0];
|
||||
$mdl_course->gruppen = isset($_POST['gruppen']);
|
||||
|
||||
//Kurs im Moodle anlegen
|
||||
if($mdl_course->create_moodle())
|
||||
{
|
||||
//fuer jede Lehreinheit einen Eintrag in VilesciDB anlegen
|
||||
foreach ($lehreinheiten as $value)
|
||||
{
|
||||
$mdl_course->lehreinheit_id = $value;
|
||||
if(!$mdl_course->create_vilesci())
|
||||
echo '<br>'.$p->t('moodle/fehlerBeimAnlegenAufgetreten').':'.$mdl_course->errormsg;
|
||||
}
|
||||
|
||||
$mdl_user = new moodle19_user();
|
||||
//Lektoren Synchronisieren
|
||||
if(!$mdl_user->sync_lektoren($mdl_course->mdl_course_id))
|
||||
echo $mdl_user->errormsg;
|
||||
|
||||
$mdl_user = new moodle19_user();
|
||||
//Studenten Synchronisieren
|
||||
if(!$mdl_user->sync_studenten($mdl_course->mdl_course_id))
|
||||
echo $mdl_user->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">'.$p->t('moodle/esMussMindestensEineLehreinheitMarkiertSein').'</span><br>';
|
||||
}
|
||||
}
|
||||
else
|
||||
die($p->t('moodle/artIstUnbekannt'));
|
||||
}
|
||||
}
|
||||
//Gruppen Syncro ein/aus schalten
|
||||
if(isset($_POST['changegruppe']))
|
||||
{
|
||||
if(isset($_POST['moodle_id']) && is_numeric($_POST['moodle_id']))
|
||||
{
|
||||
$mcourse = new moodle19_course();
|
||||
if($mcourse->updateGruppenSync($_POST['moodle_id'], isset($_POST['gruppen'])))
|
||||
echo '<b>'.$p->t('moodle/datenWurdenAktualisiert').'</b><br>';
|
||||
else
|
||||
echo '<span class="error">'.$p->t('global/fehlerBeimAktualisierenDerDaten').'</span>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">'.$p->t('moodle/esWurdeKeineGueltigeIdUebergeben').'</span>';
|
||||
}
|
||||
}
|
||||
|
||||
//Anlegen eines Testkurses
|
||||
if(isset($_GET['action']) && $_GET['action']=='createtestkurs')
|
||||
{
|
||||
$mdl_course = new moodle19_course();
|
||||
if(!$mdl_course->loadTestkurs($lvid, $stsem))
|
||||
{
|
||||
$lehrveranstaltung = new lehrveranstaltung();
|
||||
$lehrveranstaltung->load($lvid);
|
||||
$studiengang = new studiengang();
|
||||
$studiengang->load($lehrveranstaltung->studiengang_kz);
|
||||
|
||||
//$orgform = ($lehrveranstaltung->orgform_kurzbz!=''?$lehrveranstaltung->orgform_kurzbz:$studiengang->orgform_kurzbz);
|
||||
|
||||
//Kurzbezeichnung generieren Format: STSEM-STG-SEM-LV/LEID/LEID/LEID...
|
||||
$shortname = 'TK-'.$stsem.'-'.$studiengang->kuerzel.'-'.$lehrveranstaltung->semester.'-'.$lehrveranstaltung->kurzbz;
|
||||
|
||||
$mdl_course->lehrveranstaltung_id = $lvid;
|
||||
$mdl_course->studiensemester_kurzbz = $stsem;
|
||||
$mdl_course->mdl_fullname = 'Testkurs - '.$lehrveranstaltung->bezeichnung;
|
||||
$mdl_course->mdl_shortname = $shortname;
|
||||
|
||||
//TestKurs erstellen
|
||||
if($mdl_course->createTestkurs($lvid, $stsem))
|
||||
{
|
||||
$id=$mdl_course->mdl_course_id;
|
||||
$errormsg='';
|
||||
|
||||
$mdl_user = new moodle19_user();
|
||||
//Lektoren zuweisen
|
||||
if(!$mdl_user->sync_lektoren($id, $lvid, $stsem))
|
||||
$errormsg.=$p->t('moodle/fehlerBeiDerLektorenZuordnung').':'.$mdl_user->errormsg.'<br>';
|
||||
//Teststudenten zuweisen
|
||||
if(!$mdl_user->createTestStudentenZuordnung($id))
|
||||
$errormsg.=$p->t('moodle/fehlerBeiDerStudentenZuordnung').':'.$mdl_user->errormsg.'<br>';
|
||||
|
||||
if($errormsg!='')
|
||||
echo $errormsg;
|
||||
else
|
||||
echo '<b>'.$p->t('moodle/testkursWurdeErfolgreichAngelegt').'</b><br>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">'.$p->t('moodle/esExistiertBereitsEinTestkurs').'</span><br>';
|
||||
}
|
||||
}
|
||||
|
||||
//Anlegen eines Testkurses fuer Moodle 24
|
||||
if(isset($_GET['action']) && $_GET['action']=='createtestkurs24')
|
||||
{
|
||||
$mdl_course24 = new moodle24_course();
|
||||
if(!$mdl_course24->loadTestkurs($lvid, $stsem))
|
||||
{
|
||||
$lehrveranstaltung = new lehrveranstaltung();
|
||||
$lehrveranstaltung->load($lvid);
|
||||
$studiengang = new studiengang();
|
||||
$studiengang->load($lehrveranstaltung->studiengang_kz);
|
||||
|
||||
//$orgform = ($lehrveranstaltung->orgform_kurzbz!=''?$lehrveranstaltung->orgform_kurzbz:$studiengang->orgform_kurzbz);
|
||||
|
||||
//Kurzbezeichnung generieren Format: STSEM-STG-SEM-LV/LEID/LEID/LEID...
|
||||
$shortname = 'TK-'.$stsem.'-'.$studiengang->kuerzel.'-'.$lehrveranstaltung->semester.'-'.$lehrveranstaltung->kurzbz;
|
||||
|
||||
$mdl_course24->lehrveranstaltung_id = $lvid;
|
||||
$mdl_course24->studiensemester_kurzbz = $stsem;
|
||||
$mdl_course24->mdl_fullname = 'Testkurs - '.$lehrveranstaltung->bezeichnung;
|
||||
$mdl_course24->mdl_shortname = $shortname;
|
||||
|
||||
//TestKurs erstellen
|
||||
if($mdl_course24->createTestkurs($lvid, $stsem))
|
||||
{
|
||||
$id=$mdl_course24->mdl_course_id;
|
||||
$errormsg='';
|
||||
|
||||
$mdl_user24 = new moodle24_user();
|
||||
//Lektoren zuweisen
|
||||
if(!$mdl_user24->sync_lektoren($id, $lvid, $stsem))
|
||||
$errormsg.=$p->t('moodle/fehlerBeiDerLektorenZuordnung').':'.$mdl_user24->errormsg.'<br>';
|
||||
//Teststudenten zuweisen
|
||||
if(!$mdl_user24->createTestStudentenZuordnung($id))
|
||||
$errormsg.=$p->t('moodle/fehlerBeiDerStudentenZuordnung').':'.$mdl_user24->errormsg.'<br>';
|
||||
|
||||
if($errormsg!='')
|
||||
echo $errormsg;
|
||||
else
|
||||
echo '<b>'.$p->t('moodle/testkursWurdeErfolgreichAngelegt').'</b><br>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">'.$p->t('moodle/esExistiertBereitsEinTestkurs').'</span><br>';
|
||||
}
|
||||
}
|
||||
|
||||
$moodle = new moodle();
|
||||
|
||||
// Pruefen ob bereits fuer alle Lehreinheiten oder fuer die gesamte LV ein Moodle Kurs angelegt ist
|
||||
if($moodle->course_exists_for_lv($lvid, $stsem) || $moodle->course_exists_for_allLE($lvid, $stsem))
|
||||
{
|
||||
echo $p->t('moodle/esIstBereitsEinMoodleKursVorhanden');
|
||||
}
|
||||
else
|
||||
{
|
||||
//wenn bereits ein Moodle Kurs fuer eine Lehreinheit angelegt wurde, dann dass
|
||||
//anlegen fuer die Lehrveranstaltung verhindern
|
||||
$qry = "SELECT 1 FROM lehre.tbl_moodle
|
||||
WHERE lehreinheit_id in(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit
|
||||
WHERE lehrveranstaltung_id=".$db->db_add_param($lvid)."
|
||||
AND studiensemester_kurzbz=".$db->db_add_param($stsem).")";
|
||||
$disable_lv='';
|
||||
if($result = $db->db_query($qry))
|
||||
if($db->db_num_rows($result)>0)
|
||||
{
|
||||
$disable_lv='disabled="true"';
|
||||
//wenn schon ein Moodle Kurs zu einer Lehreinheit angelegt wurde,
|
||||
//dann ist standardmaessig die Lehreinheit markiert
|
||||
if($art=='lv')
|
||||
$art='le';
|
||||
}
|
||||
|
||||
echo '<b>'.$p->t('moodle/moodleKursAnlegen').': </b><br><br>
|
||||
<form action="'.$_SERVER['PHP_SELF'].'?lvid='.$lvid.'&stsem='.$stsem.'" method="POST">
|
||||
<input type="radio" '.$disable_lv.' name="art" value="lv" onclick="togglediv()" '.($art=='lv'?'checked':'').'>einen Moodle Kurs für die gesamte LV anlegen<br>
|
||||
<input type="radio" id="radiole" name="art" value="le" onclick="togglediv()" '.($art=='le'?'checked':'').'>einen Moodle Kurs für einzelne Lehreinheiten anlegen
|
||||
';
|
||||
|
||||
$le = new lehreinheit();
|
||||
$le->load_lehreinheiten($lv->lehrveranstaltung_id, $stsem);
|
||||
echo '<div id="lehreinheitencheckboxen" style="display:none">';
|
||||
foreach ($le->lehreinheiten as $row)
|
||||
{
|
||||
//Gruppen laden
|
||||
$gruppen = '';
|
||||
|
||||
$lehreinheitgruppe = new lehreinheitgruppe();
|
||||
$lehreinheitgruppe->getLehreinheitgruppe($row->lehreinheit_id);
|
||||
foreach ($lehreinheitgruppe->lehreinheitgruppe as $grp)
|
||||
{
|
||||
if($grp->gruppe_kurzbz=='')
|
||||
$gruppen.=' '.$grp->semester.$grp->verband.$grp->gruppe;
|
||||
else
|
||||
$gruppen.=' '.$grp->gruppe_kurzbz;
|
||||
}
|
||||
|
||||
//Lektoren laden
|
||||
$lektoren = '';
|
||||
$lehreinheitmitarbeiter = new lehreinheitmitarbeiter();
|
||||
$lehreinheitmitarbeiter->getLehreinheitmitarbeiter($row->lehreinheit_id);
|
||||
|
||||
foreach ($lehreinheitmitarbeiter->lehreinheitmitarbeiter as $ma)
|
||||
{
|
||||
$lektoren.= ' '.$ma->mitarbeiter_uid;
|
||||
}
|
||||
|
||||
if($moodle->course_exists_for_le($row->lehreinheit_id))
|
||||
$disabled='disabled';
|
||||
else
|
||||
$disabled='';
|
||||
echo '
|
||||
<input type="checkbox" name="lehreinheit_'.$row->lehreinheit_id.'" value="'.$row->lehreinheit_id.'" '.$disabled.'>'.$row->lehrform_kurzbz.' '.$gruppen.' '.$lektoren;
|
||||
echo '<br>';
|
||||
}
|
||||
echo '</div>';
|
||||
|
||||
$studiengang = new studiengang();
|
||||
$studiengang->load($lv->studiengang_kz);
|
||||
$orgform = ($lv->orgform_kurzbz!=''?$lv->orgform_kurzbz:$studiengang->orgform_kurzbz);
|
||||
$longbezeichnung = $studiengang->kuerzel.'-'.$orgform.'-'.$lv->semester.'-'.$stsem.' - '.$lv->bezeichnung;
|
||||
|
||||
echo '<br>'.$p->t('moodle/kursbezeichnung').': <input type="text" name="bezeichnung" maxlength="254" size="40" value="'.$longbezeichnung.'">';
|
||||
echo '<br>'.$p->t('moodle/gruppenUebernehmen').': <input type="checkbox" name="gruppen" checked>';
|
||||
echo '<br><br><input type="submit" name="neu" value="'.$p->t('moodle/kursAnlegen').'">
|
||||
</form>';
|
||||
}
|
||||
echo '</td>';
|
||||
|
||||
echo '<td valign="top">';
|
||||
echo '<b>'.$p->t('moodle/vorhandeneMoodleKurse').'</b>';
|
||||
if(!$moodle->getAll($lvid, $stsem))
|
||||
echo $moodle->errormsg;
|
||||
echo '<table>';
|
||||
foreach ($moodle->result as $course)
|
||||
{
|
||||
switch($course->moodle_version)
|
||||
{
|
||||
case '1.9':
|
||||
$moodlecourse = new moodle19_course();
|
||||
$moodlecourse->load($course->mdl_course_id);
|
||||
echo '<tr>';
|
||||
echo '<td><a href="'.$moodle->getPfad($course->moodle_version).'course/view.php?id='.$course->mdl_course_id.'" class="Item" target="_blank">'.$moodlecourse->mdl_fullname.'</a></td>';
|
||||
// echo "<td nowrap><form action='".$_SERVER['PHP_SELF']."?lvid=$lvid&stsem=$stsem' method='POST' style='margin:0px'><input type='hidden' name='moodle_id' value='$course->moodle_id'><input type='checkbox' name='gruppen' ".($course->gruppen?'checked':'').">Gruppen übernehmen <input type='submit' value='".$p->t('global/ok')."' name='changegruppe'></form></td>";
|
||||
echo '</tr>';
|
||||
break;
|
||||
|
||||
case '2.4':
|
||||
$moodlecourse = new moodle24_course();
|
||||
$moodlecourse->load($course->mdl_course_id);
|
||||
echo '<tr>';
|
||||
echo '<td><a href="'.$moodle->getPfad($course->moodle_version).'course/view.php?id='.$course->mdl_course_id.'" class="Item" target="_blank">'.$moodlecourse->mdl_fullname.'</a> (v2.4)</td>';
|
||||
echo '</tr>';
|
||||
break;
|
||||
|
||||
default:
|
||||
// andere Moodle Version
|
||||
echo '<tr><td>Unknown Moodle Version - ID '.$course->mdl_course_id.'</td></tr>';
|
||||
}
|
||||
}
|
||||
echo '</table>';
|
||||
echo '</td></tr></table>';
|
||||
|
||||
echo '<br><br><br>';
|
||||
echo '<b>'.$p->t('moodle/testkurse').'</b><br><br>';
|
||||
$mdlcourse = new moodle19_course();
|
||||
if($mdlcourse->loadTestkurs($lvid, $stsem))
|
||||
{
|
||||
echo '<a href="'.$moodle->getPfad('1.9').'course/view.php?id='.$mdlcourse->mdl_course_id.'" class="Item" target="_blank">'.$mdlcourse->mdl_fullname.'</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<a href='".$_SERVER['PHP_SELF']."?lvid=$lvid&stsem=$stsem&action=createtestkurs' class='Item'>".$p->t('moodle/klickenSieHierUmTestkursErstellen')."</a>";
|
||||
}
|
||||
|
||||
echo '<br><br><hr><b>'.$p->t('moodle/testkurse24').'</b><br><br>';
|
||||
$mdlcourse24 = new moodle24_course();
|
||||
if($mdlcourse24->loadTestkurs($lvid, $stsem))
|
||||
{
|
||||
echo '<a href="'.$moodle->getPfad('2.4').'course/view.php?id='.$mdlcourse24->mdl_course_id.'" class="Item" target="_blank">'.$mdlcourse24->mdl_fullname.'</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<a href='".$_SERVER['PHP_SELF']."?lvid=$lvid&stsem=$stsem&action=createtestkurs24' class='Item'>".$p->t('moodle/klickenSieHierUmTestkursErstellen24')."</a>";
|
||||
}
|
||||
echo '
|
||||
</body>
|
||||
</html>';
|
||||
?>
|
||||
@@ -1,109 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2013 FH 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: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
*/
|
||||
/*
|
||||
* Verlinkt zur Wartungsseite der verwendeten Moodle Version
|
||||
*/
|
||||
require_once('../../../config/cis.config.inc.php');
|
||||
require_once('../../../include/basis_db.class.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../include/moodle.class.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
|
||||
$sprache = getSprache();
|
||||
$p = new phrasen($sprache);
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung'));
|
||||
|
||||
if (!$user=get_uid())
|
||||
die($p->t('moodle/sieSindNichtAngemeldet').' !');
|
||||
|
||||
if(isset($_GET['lvid']) && is_numeric($_GET['lvid']))
|
||||
$lvid=$_GET['lvid'];
|
||||
else
|
||||
die($p->t('moodle/lvidMussUebergebenWerden'));
|
||||
|
||||
if(isset($_GET['stsem']) && check_stsem($_GET['stsem']))
|
||||
$stsem = $_GET['stsem'];
|
||||
else
|
||||
die($p->t('moodle/esWurdeKeinStudiensemesterUebergeben'));
|
||||
|
||||
$art = (isset($_POST['art'])?$_POST['art']:'lv');
|
||||
|
||||
$berechtigt = false;
|
||||
|
||||
//Pruefen ob Rechte fuer diese LV vorhanden sind
|
||||
$qry = "SELECT distinct vorname, nachname, tbl_benutzer.uid as uid FROM lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter, public.tbl_benutzer, public.tbl_person WHERE tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid=tbl_benutzer.uid AND tbl_person.person_id=tbl_benutzer.person_id AND lehrveranstaltung_id='$lvid' AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid NOT like '_Dummy%' AND tbl_person.aktiv=true AND studiensemester_kurzbz='$stsem' ORDER BY nachname, vorname";
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
while($row_lector = $db->db_fetch_object($result))
|
||||
{
|
||||
if($user==$row_lector->uid)
|
||||
$berechtigt=true;
|
||||
}
|
||||
}
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if($rechte->isBerechtigt('admin'))
|
||||
$berechtigt=true;
|
||||
|
||||
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
</head>
|
||||
<body>
|
||||
<h1>Moodle Versionswahl</h1>';
|
||||
$moodle = new moodle();
|
||||
if(!$moodle->getAll($lvid, $stsem))
|
||||
echo $moodle->errormsg;
|
||||
|
||||
|
||||
if(isset($moodle->result[0]))
|
||||
{
|
||||
// Wenn bereits ein Moodle Kurs vorhanden ist, wird auf die
|
||||
// Wartungsseite der entsprechenden Version verlinkt.
|
||||
$moodle_version = $moodle->result[0]->moodle_version;
|
||||
|
||||
if($moodle_version=='1.9')
|
||||
$link = 'moodle_wartung.php?lvid='.$db->convert_html_chars($lvid).'&stsem='.$db->convert_html_chars($stsem);
|
||||
elseif($moodle_version=='2.4')
|
||||
$link = 'moodle2_4_wartung.php?lvid='.$db->convert_html_chars($lvid).'&stsem='.$db->convert_html_chars($stsem);
|
||||
else
|
||||
die('Unbekannte Moodle Version gefunden');
|
||||
|
||||
echo '<script language="javascript">window.location.href=\''.$link.'\';</script>';
|
||||
echo $p->t('moodle/weiterleitung', array($link));
|
||||
}
|
||||
else
|
||||
{
|
||||
$link19 = 'moodle_wartung.php?lvid='.$db->convert_html_chars($lvid).'&stsem='.$db->convert_html_chars($stsem);
|
||||
$link24 = 'moodle2_4_wartung.php?lvid='.$db->convert_html_chars($lvid).'&stsem='.$db->convert_html_chars($stsem);
|
||||
echo $p->t('moodle/wartungschoice', array($link19, $link24));
|
||||
}
|
||||
echo '</body></html>';
|
||||
?>
|
||||
@@ -174,12 +174,6 @@ define('ANZAHL_PREINTERESSENT','5');
|
||||
//Name der aktiven Addons getrennt mit ;
|
||||
define('ACTIVE_ADDONS','');
|
||||
|
||||
// ***** MOODLE *****
|
||||
// Moodle verwenden Ja/Nein
|
||||
define('MOODLE',true);
|
||||
// Webservice TOKEN fuer Moodle 2.4
|
||||
define('MOODLE_TOKEN24','');
|
||||
|
||||
// ***** OPUS *****
|
||||
// Angaben fuer OPUS Schnittstelle
|
||||
define('OPUS_SERVER','www.technikum-wien.at');
|
||||
|
||||
@@ -147,15 +147,6 @@ define('REIHUNGSTEST_CHECK', true);
|
||||
// Bei Statuswechsel auf Bewerber bzw. Student -> soll ZGV brücksichtigt werden
|
||||
define('ZGV_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','');
|
||||
|
||||
// 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);
|
||||
|
||||
|
||||
@@ -155,11 +155,6 @@ define('MANTIS_PFAD','http://www.example.com/mantis/api/soap/mantisconnect.php?w
|
||||
define('MANTIS_USERNAME',(isset($_SERVER['PHP_AUTH_USER'])?$_SERVER['PHP_AUTH_USER']:''));
|
||||
define('MANTIS_PASSWORT',(isset($_SERVER['PHP_AUTH_PW'])?$_SERVER['PHP_AUTH_PW']:''));
|
||||
|
||||
// ***** Moodle *****
|
||||
define('MOODLE_PATH','http://www.technikum-wien.at/moodle/'); // DEPRECATED
|
||||
define("CONN_STRING_MOODLE","host=localhost dbname=bla user=bla password=bla"); // nur für Moodle 1.9
|
||||
define('MOODLE_TOKEN24','');
|
||||
|
||||
//Name der aktiven Addons getrennt mit ;
|
||||
define('ACTIVE_ADDONS','');
|
||||
|
||||
|
||||
@@ -1346,27 +1346,14 @@ if(!$error)
|
||||
}
|
||||
else
|
||||
{
|
||||
//Loeschen verhindern wenn ein MoodleKurs existiert
|
||||
$qry = "SELECT 1 FROM lehre.tbl_moodle WHERE lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER);
|
||||
if($db->db_query($qry))
|
||||
if ($leDAO->delete($_POST['lehreinheit_id']))
|
||||
{
|
||||
if($db->db_num_rows()>0)
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Lehreinheit kann nicht geloescht werden, da dazu bereits ein Moodle-Kurs angelegt wurde';
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($leDAO->delete($_POST['lehreinheit_id']))
|
||||
{
|
||||
$return = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Fehler beim Loeschen der Lehreinheit '.$leDAO->errormsg;
|
||||
}
|
||||
}
|
||||
$return = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Fehler beim Loeschen der Lehreinheit '.$leDAO->errormsg;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1056,42 +1056,6 @@ class lehrveranstaltung extends basis_db
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert alle Moodlekurs Ids
|
||||
* @param $lehrveranstaltung_id Id der Lehrveranstaltung
|
||||
* @param $semester Semester
|
||||
* @return array mit Moodlekurs Ids oder false=fehler
|
||||
*/
|
||||
public function getMoodleKurse($lehrveranstaltung_id, $semester)
|
||||
{
|
||||
if ($lehrveranstaltung_id == '' || $semester == '')
|
||||
{
|
||||
$this->errormsg = 'Id und Semester muss übergeben werden.';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT mdl_course_id FROM lehre.tbl_moodle
|
||||
WHERE studiensemester_kurzbz = " . $this->db_add_param($semester) . "
|
||||
AND (lehrveranstaltung_id = " . $this->db_add_param($lehrveranstaltung_id) . "
|
||||
OR lehreinheit_id IN(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id = " . $this->db_add_param($lehrveranstaltung_id) . "));";
|
||||
|
||||
$moodleArray = array();
|
||||
|
||||
if ($result = $this->db_query($qry))
|
||||
{
|
||||
while ($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$moodleArray[] = $row->mdl_course_id;
|
||||
}
|
||||
return $moodleArray;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Moodlekurs konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die LVs die als Array uebergeben werden
|
||||
* @param $ids Array mit den LV ids
|
||||
|
||||
@@ -1,402 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2013 FH 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: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
|
||||
* Karl Burkhart <burkhart@technikum-wien.at>
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
class moodle extends basis_db
|
||||
{
|
||||
public $result = array();
|
||||
|
||||
public $moodle_id;
|
||||
public $mdl_course_id;
|
||||
public $lehreinheit_id;
|
||||
public $lehrveranstaltung_id;
|
||||
public $studiensemester_kurzbz;
|
||||
public $insertamum;
|
||||
public $insertvon;
|
||||
public $gruppen;
|
||||
public $moodle_version;
|
||||
|
||||
public $version;
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
*
|
||||
*/
|
||||
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
|
||||
*
|
||||
* @param lehrveranstaltung_id
|
||||
* @param studiensemester_kurzbz
|
||||
*
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function getAll($lehrveranstaltung_id, $studiensemester_kurzbz)
|
||||
{
|
||||
$qry = "SELECT
|
||||
distinct on(mdl_course_id) *
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_moodle
|
||||
WHERE
|
||||
tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id
|
||||
AND tbl_lehrveranstaltung.lehrveranstaltung_id = ".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
AND ((tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_moodle.lehrveranstaltung_id
|
||||
AND tbl_moodle.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz)
|
||||
OR
|
||||
(tbl_lehreinheit.lehreinheit_id=tbl_moodle.lehreinheit_id))";
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 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
|
||||
*
|
||||
* @param lehrveranstaltung_id
|
||||
* @param studiensemester_kurzbz
|
||||
* @return true wenn vorhanden, false wenn nicht
|
||||
*/
|
||||
public function course_exists_for_lv($lehrveranstaltung_id, $studiensemester_kurzbz)
|
||||
{
|
||||
$qry = "SELECT
|
||||
1
|
||||
FROM
|
||||
lehre.tbl_moodle
|
||||
WHERE
|
||||
lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
|
||||
AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($this->db_num_rows()>0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Schaut ob fuer diese LE schon ein Moodle
|
||||
* Kurs existiert
|
||||
* @param lehreinheit_id
|
||||
* @return true wenn vorhanden, false wenn nicht
|
||||
*/
|
||||
public function course_exists_for_le($lehreinheit_id)
|
||||
{
|
||||
$qry = "SELECT 1 FROM lehre.tbl_moodle WHERE lehreinheit_id=".$this->db_add_param($lehreinheit_id, FHC_INTEGER);
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($this->db_num_rows()>0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft ob fuer alle Lehreinheiten dieser LV bereits ein Moodlekurs existiert
|
||||
*
|
||||
* @param lehrveranstaltung_id
|
||||
* @param studiensemester_kurzbz
|
||||
* @return true wenn vorhanden, false wenn nicht
|
||||
*/
|
||||
public function course_exists_for_allLE($lehrveranstaltung_id, $studiensemester_kurzbz)
|
||||
{
|
||||
$qry = "SELECT 1 FROM lehre.tbl_lehreinheit
|
||||
WHERE
|
||||
lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
|
||||
AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
AND lehreinheit_id NOT IN (
|
||||
SELECT lehreinheit_id FROM lehre.tbl_moodle
|
||||
WHERE lehreinheit_id=tbl_lehreinheit.lehreinheit_id)";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($this->db_num_rows()>0)
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Moodle Versionsinformationen
|
||||
*/
|
||||
public function getVersionen()
|
||||
{
|
||||
$qry = "SELECT * FROM lehre.tbl_moodle_version";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$this->version[$row->moodle_version]['bezeichnung']=$row->bezeichnung;
|
||||
$this->version[$row->moodle_version]['pfad']=$row->pfad;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Versionsdaten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert den Pfad zur Moodle Installation
|
||||
* @param version Versionsnummer
|
||||
* @return pfad (URL) zur Moodle Installation
|
||||
*/
|
||||
public function getPfad($version)
|
||||
{
|
||||
if(isset($this->version[$version]['pfad']))
|
||||
return $this->version[$version]['pfad'];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Liefert alle Kurse dieser LV zu denen der Student
|
||||
* zugeteilt ist
|
||||
*
|
||||
* @param lehrveranstaltung_id
|
||||
* @param studiensemester_kurzbz
|
||||
* @param student_uid
|
||||
* @return array mit Moodle Kurs IDs
|
||||
*/
|
||||
public function getCourse($lehrveranstaltung_id, $studiensemester_kurzbz, $student_uid)
|
||||
{
|
||||
//alle betreffenden Kurse holen
|
||||
$qry = "SELECT
|
||||
tbl_lehreinheit.lehreinheit_id, mdl_course_id, tbl_moodle.moodle_version
|
||||
FROM
|
||||
lehre.tbl_moodle
|
||||
JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id, studiensemester_kurzbz)
|
||||
WHERE
|
||||
tbl_moodle.lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
|
||||
AND tbl_moodle.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
UNION
|
||||
SELECT
|
||||
tbl_lehreinheit.lehreinheit_id, mdl_course_id, tbl_moodle.moodle_version
|
||||
FROM
|
||||
lehre.tbl_moodle
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
WHERE
|
||||
tbl_lehreinheit.lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
|
||||
|
||||
$courses = array();
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
//schauen in welchen Kursen der Student ist
|
||||
$qry = "SELECT 1 FROM campus.vw_student_lehrveranstaltung
|
||||
WHERE
|
||||
uid=".$this->db_add_param($student_uid)."
|
||||
AND lehreinheit_id=".$this->db_add_param($row->lehreinheit_id, FHC_INTEGER);
|
||||
|
||||
if($result_vw = $this->db_query($qry))
|
||||
{
|
||||
if($this->db_num_rows($result_vw)>0)
|
||||
{
|
||||
if(!array_key_exists($row->mdl_course_id, $courses))
|
||||
{
|
||||
$obj = new stdClass();
|
||||
$obj->mdl_course_id = $row->mdl_course_id;
|
||||
$obj->moodle_version = $row->moodle_version;
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,788 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 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: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
/*
|
||||
* requires moodle_course.class.php
|
||||
* studiengang.class.php
|
||||
*
|
||||
* Klasse zur Kommunikation mit Moodle 1.9
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
class moodle19_user extends basis_db
|
||||
{
|
||||
private $conn_moodle;
|
||||
public $log=''; //log message fuer Syncro
|
||||
public $log_public=''; //log message fuer Syncro
|
||||
public $sync_create=0; //anzahl der durchgefuehrten zuteilungen beim syncro
|
||||
public $group_update=0; //anzahl der updates an gruppen
|
||||
|
||||
public $mdl_user_id;
|
||||
public $mdl_user_username;
|
||||
public $mdl_user_firstname;
|
||||
public $mdl_user_lastname;
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
if(!$this->conn_moodle=pg_pconnect(CONN_STRING_MOODLE))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Herstellen der Moodle Verbindung';
|
||||
return false;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt einen Moodle User
|
||||
*
|
||||
* @param $uid
|
||||
* @return boolean
|
||||
*/
|
||||
public function loaduser($uid)
|
||||
{
|
||||
$qry = "SELECT * FROM public.mdl_user WHERE username='".addslashes($uid)."'";
|
||||
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->mdl_user_id = $row->id;
|
||||
$this->mdl_user_username = $row->username;
|
||||
$this->mdl_user_firstname = $row->firstname;
|
||||
$this->mdl_user_lastname = $row->lastname;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'User wurde nicht gefunden: '.$uid;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Users';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert ein Array mit allen Lektoren die
|
||||
* zu dem Moodle Kurs zugeteilt sind
|
||||
*/
|
||||
public function getMitarbeiter($mdl_course_id)
|
||||
{
|
||||
//Mitarbeiter laden die zu diesem Kurs zugeteilt sind
|
||||
$qry = "SELECT
|
||||
mitarbeiter_uid
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_moodle USING(lehreinheit_id)
|
||||
WHERE
|
||||
moodle_version='1.9'
|
||||
AND mdl_course_id='".addslashes($mdl_course_id)."'
|
||||
UNION
|
||||
SELECT
|
||||
mitarbeiter_uid
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN lehre.tbl_moodle USING(lehrveranstaltung_id)
|
||||
WHERE
|
||||
moodle_version='1.9'
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz=tbl_moodle.studiensemester_kurzbz
|
||||
AND mdl_course_id='".addslashes($mdl_course_id)."'";
|
||||
$mitarbeiter=array();
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row_ma = $this->db_fetch_object())
|
||||
{
|
||||
$mitarbeiter[] = $row_ma->mitarbeiter_uid;
|
||||
}
|
||||
return $mitarbeiter;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler beim Laden der Mitarbeiter';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Synchronisiert die Lektoren der Lehreinheiten
|
||||
* mit denen des Moodle Kurses
|
||||
* @param $mdl_course_id ID des MoodleKurses
|
||||
* lehrveranstaltung_id wird nur angegeben beim Syncro von Testkursen
|
||||
* studiensemester_kurzbz wird nur angegeben beim Syncro von Testkursen
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function sync_lektoren($mdl_course_id, $lehrveranstaltung_id=null, $studiensemester_kurzbz=null)
|
||||
{
|
||||
//Mitarbeiter laden die zu diesem Kurs zugeteilt sind
|
||||
if(!is_null($lehrveranstaltung_id) && !is_null($studiensemester_kurzbz))
|
||||
{
|
||||
//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='".addslashes($lehrveranstaltung_id)."'
|
||||
AND studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'";
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = "SELECT
|
||||
mitarbeiter_uid
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_moodle USING(lehreinheit_id)
|
||||
WHERE
|
||||
moodle_version='1.9'
|
||||
AND mdl_course_id='".addslashes($mdl_course_id)."'
|
||||
UNION
|
||||
SELECT
|
||||
mitarbeiter_uid
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN lehre.tbl_moodle USING(lehrveranstaltung_id)
|
||||
WHERE
|
||||
moodle_version='1.9'
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz=tbl_moodle.studiensemester_kurzbz
|
||||
AND mdl_course_id='".addslashes($mdl_course_id)."'";
|
||||
}
|
||||
$mitarbeiter='';
|
||||
if($result_ma = $this->db_query($qry))
|
||||
{
|
||||
//Context des Kurses holen
|
||||
$mdlcourse = new moodle19_course();
|
||||
if(!$mdlcourse->getContext(50, $mdl_course_id))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Contexts';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row_ma = $this->db_fetch_object($result_ma))
|
||||
{
|
||||
//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;
|
||||
|
||||
//Nachschauen ob dieser Lektor bereits zugeteilt ist
|
||||
$qry = "SELECT 1 FROM public.mdl_role_assignments
|
||||
WHERE
|
||||
userid='".addslashes($this->mdl_user_id)."' AND
|
||||
contextid='".addslashes($mdlcourse->mdl_context_id)."'";
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if(pg_num_rows($result)==0)
|
||||
{
|
||||
//Mitarbeiter ist noch nicht zugeteilt.
|
||||
|
||||
if($this->createZuteilung($this->mdl_user_id, $mdlcourse->mdl_context_id, 3))
|
||||
{
|
||||
$this->log.="\nder Lektor $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
|
||||
$this->log_public.="\nder Lektor $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
|
||||
$this->sync_create++;
|
||||
}
|
||||
else
|
||||
$this->log.="\nFehler beim Anlegen der Lektoren-Zuteilung: $this->errormsg";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Rollen';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
//Lektoren loeschen die nicht mehr zugeordnet sind
|
||||
/* Derzeit werden zugeteilte Personen nicht geloescht
|
||||
$qry = "SELECT * FROM mdl_role_assignments
|
||||
WHERE
|
||||
contextid='".addslashes($mdlcourse->mdl_context_id)."' AND
|
||||
userid NOT in ($mitarbeiter)";
|
||||
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->deleteZuteilung($row->userid, $mdlcourse->mdl_context_id);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln der Lektoren die nicht mehr zugeteilt sind';
|
||||
return false;
|
||||
}
|
||||
*/
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln der Zugeteilten Lektoren';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Synchronisiert die Studenten der Lehreinheiten
|
||||
* mit denen des Moodle Kurses
|
||||
* @param $mdl_course_id ID des MoodleKurses
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function sync_studenten($mdl_course_id)
|
||||
{
|
||||
//Studentengruppen laden die zu diesem Kurs zugeteilt sind
|
||||
$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
|
||||
moodle_version='1.9'
|
||||
AND mdl_course_id='".addslashes($mdl_course_id)."'
|
||||
UNION
|
||||
SELECT
|
||||
studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, tbl_moodle.studiensemester_kurzbz, tbl_moodle.gruppen
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN lehre.tbl_moodle USING(lehrveranstaltung_id)
|
||||
WHERE
|
||||
moodle_version='1.9'
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz=tbl_moodle.studiensemester_kurzbz
|
||||
AND mdl_course_id='".addslashes($mdl_course_id)."'";
|
||||
$studenten='';
|
||||
if($result_std = $this->db_query($qry))
|
||||
{
|
||||
//Context des Kurses holen
|
||||
$mdlcourse = new moodle19_course();
|
||||
if(!$mdlcourse->getContext(50, $mdl_course_id))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Contexts';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row_std = $this->db_fetch_object($result_std))
|
||||
{
|
||||
//Schauen ob fuer diesen Kurs die Gruppen mitgesynct werden sollen
|
||||
$gruppensync = $row_std->gruppen=='t'?true:false;
|
||||
|
||||
//Studenten dieser Gruppe holen
|
||||
|
||||
if($row_std->gruppe_kurzbz=='') //LVB Gruppe
|
||||
{
|
||||
$qry = "SELECT
|
||||
distinct student_uid
|
||||
FROM
|
||||
public.tbl_studentlehrverband
|
||||
WHERE
|
||||
studiensemester_kurzbz='".addslashes($row_std->studiensemester_kurzbz)."' AND
|
||||
studiengang_kz = '".addslashes($row_std->studiengang_kz)."' AND
|
||||
semester = '".addslashes($row_std->semester)."'";
|
||||
if(trim($row_std->verband)!='')
|
||||
{
|
||||
$qry.=" AND verband = '$row_std->verband'";
|
||||
if(trim($row_std->gruppe)!='')
|
||||
{
|
||||
$qry.=" AND gruppe = '$row_std->gruppe'";
|
||||
}
|
||||
}
|
||||
$studiengang_obj = new studiengang();
|
||||
$studiengang_obj->load($row_std->studiengang_kz);
|
||||
$gruppenbezeichnung = $studiengang_obj->kuerzel.'-'.trim($row_std->semester).trim($row_std->verband).trim($row_std->gruppe);
|
||||
}
|
||||
else //Spezialgruppe
|
||||
{
|
||||
$qry = "SELECT
|
||||
distinct uid as student_uid
|
||||
FROM
|
||||
public.tbl_benutzergruppe
|
||||
WHERE
|
||||
gruppe_kurzbz='".addslashes($row_std->gruppe_kurzbz)."' AND
|
||||
studiensemester_kurzbz='".addslashes($row_std->studiensemester_kurzbz)."'";
|
||||
$gruppenbezeichnung = $row_std->gruppe_kurzbz;
|
||||
}
|
||||
|
||||
if($result_user = $this->db_query($qry))
|
||||
{
|
||||
while($row_user = $this->db_fetch_object($result_user))
|
||||
{
|
||||
//MoodleID des Users holen bzw ggf neu anlegen
|
||||
if(!$this->loaduser($row_user->student_uid))
|
||||
{
|
||||
//User anlegen
|
||||
if(!$this->createUser($row_user->student_uid))
|
||||
{
|
||||
$this->errormsg = "Fehler beim Anlegen des Users $row_user->student_uid: $this->errormsg";
|
||||
return false;
|
||||
}
|
||||
else
|
||||
$this->errormsg = '';
|
||||
}
|
||||
|
||||
if($studenten!='')
|
||||
$studenten.=',';
|
||||
$studenten.=$this->mdl_user_id;
|
||||
|
||||
//Nachschauen ob dieser Student bereits zugeteilt ist
|
||||
$qry = "SELECT 1 FROM public.mdl_role_assignments
|
||||
WHERE
|
||||
userid='".addslashes($this->mdl_user_id)."' AND
|
||||
contextid='".addslashes($mdlcourse->mdl_context_id)."'";
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if(pg_num_rows($result)==0)
|
||||
{
|
||||
//Student ist noch nicht zugeteilt.
|
||||
|
||||
if($this->createZuteilung($this->mdl_user_id, $mdlcourse->mdl_context_id, 5))
|
||||
{
|
||||
$this->log.="\nder Student $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
|
||||
$this->log_public.="\nder Student $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
|
||||
$this->sync_create++;
|
||||
}
|
||||
else
|
||||
$this->log.="\nFehler beim Anlegen der Studenten-Zuteilung: $this->errormsg";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Rollen';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Gruppenzuteilung
|
||||
if($gruppensync)
|
||||
{
|
||||
//Schauen ob die Gruppe vorhanden ist
|
||||
if(!$groupid = $this->getGroup($mdl_course_id, $gruppenbezeichnung))
|
||||
{
|
||||
//wenn nicht dann anlegen
|
||||
if(!$groupid = $this->createGroup($mdl_course_id, $gruppenbezeichnung))
|
||||
continue;
|
||||
$this->group_update++;
|
||||
$this->log.="\nes wurde eine neue Gruppe angelgt: $gruppenbezeichnung";
|
||||
$this->log_public.="\nes wurde eine neue Gruppe angelgt: $gruppenbezeichnung";
|
||||
}
|
||||
|
||||
//Schauen ob eine Zuteilung zu dieser Gruppe vorhanden ist
|
||||
if(!$this->getGroupMember($groupid, $this->mdl_user_id))
|
||||
{
|
||||
//wenn nicht dann zuteilen
|
||||
$this->createGroupMember($groupid, $this->mdl_user_id);
|
||||
$this->group_update++;
|
||||
$this->log.="\nder Student $this->mdl_user_firstname $this->mdl_user_lastname wurde der Gruppe $gruppenbezeichnung zugeordnet";
|
||||
$this->log_public.="\nder Student $this->mdl_user_firstname $this->mdl_user_lastname wurde der Gruppe $gruppenbezeichnung zugeordnet";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Studenten loeschen die nicht mehr zugeordnet sind
|
||||
/* Derzeit werden zugeteilte Personen nicht geloescht
|
||||
$qry = "SELECT * FROM mdl_role_assignments
|
||||
WHERE
|
||||
contextid='".addslashes($mdlcourse->mdl_context_id)."' AND
|
||||
userid NOT in ($studenten)";
|
||||
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->deleteZuteilung($row->userid, $mdlcourse->mdl_context_id);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln der Studenten die nicht mehr zugeteilt sind';
|
||||
return false;
|
||||
}
|
||||
*/
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln der Zugeteilten Studenten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Schaut ob eine Zuteilung von Person zu Gruppe
|
||||
* existiert
|
||||
* @param grouid ID der Gruppe
|
||||
* userid ID des Users
|
||||
* @return ID der Zuteilung
|
||||
*/
|
||||
public function getGroupMember($groupid, $userid)
|
||||
{
|
||||
$qry = "SELECT id FROM public.mdl_groups_members WHERE groupid='".addslashes($groupid)."' AND userid='".addslashes($userid)."'";
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
return $row->id;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln der Gruppe';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt eine Zuteilung eines Users zu
|
||||
* einer Gruppe an
|
||||
* @param groupid ID der Gruppe
|
||||
* userid ID des Users
|
||||
* @return ID der Zuteilung oder false im Fehlerfall
|
||||
*/
|
||||
public function createGroupMember($groupid, $userid)
|
||||
{
|
||||
$qry = 'BEGIN; INSERT INTO public.mdl_groups_members(groupid, userid) VALUES('.
|
||||
$this->addslashes($groupid).','.$this->addslashes($userid).');';
|
||||
if(pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
$qry = "SELECT currval('mdl_groups_members_id_seq') as id";
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
pg_query($this->conn_moodle, 'COMMIT;');
|
||||
return $row->id;
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK;');
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK;');
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Anlegen der Zuteilung';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Holt die ID einer MoodleGruppe
|
||||
* @param $mdl_course_id ID des Kurses
|
||||
* $gruppenbezeichnung Name der Gruppe
|
||||
* @return GruppenID wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function getGroup($mdl_course_id, $gruppenbezeichnung)
|
||||
{
|
||||
$qry = "SELECT id FROM public.mdl_groups WHERE courseid='".addslashes($mdl_course_id)."' AND name='".addslashes($gruppenbezeichnung)."'";
|
||||
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
return $row->id;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Gruppe wurde nicht gefunden $gruppenbezeichnung";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden einer Gruppe';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt eine MoodleGruppe zu einem Kurs an
|
||||
* @param mdl_course_id ID des MoodleKuses
|
||||
* gruppenbezeichnung Bezeichnung der Gruppe
|
||||
* @return ID der Gruppe wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function createGroup($mdl_course_id, $gruppenbezeichnung)
|
||||
{
|
||||
$qry = 'BEGIN;INSERT INTO public.mdl_groups(courseid, name, description) VALUES('.
|
||||
$this->addslashes($mdl_course_id).','.
|
||||
$this->addslashes($gruppenbezeichnung).','.
|
||||
$this->addslashes($gruppenbezeichnung).');';
|
||||
if(pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
$qry = "SELECT currval('mdl_groups_id_seq') as id";
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
pg_query($this->conn_moodle, 'COMMIT;');
|
||||
return $row->id;
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK;');
|
||||
$this->errormsg = 'Fehler beim Auslesen der GruppenSequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK;');
|
||||
$this->errormsg = 'Fehler beim Auslesen der GruppenSequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsgr ='Fehler beim Anlegen der Gruppe';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt einen User im Moodle an
|
||||
* @param $uid UID der Person die angelegt werden soll
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function createUser($uid)
|
||||
{
|
||||
$qry = "SELECT uid, vorname, nachname FROM campus.vw_benutzer WHERE uid='".addslashes($uid)."'";
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$username = $row->uid;
|
||||
$vorname = $row->vorname;
|
||||
$nachname = $row->nachname;
|
||||
|
||||
$qry = "BEGIN; INSERT INTO public.mdl_user(auth, username, idnumber, firstname, lastname, email, mnethostid, confirmed, lang)
|
||||
VALUES('ldap', ".
|
||||
$this->addslashes($username).", ".
|
||||
$this->addslashes($username).",".
|
||||
$this->addslashes($vorname).",".
|
||||
$this->addslashes($nachname).",".
|
||||
$this->addslashes($username.'@'.DOMAIN).", 3, 1, 'de_utf8');";
|
||||
|
||||
if(pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
$qry ="SELECT currval('mdl_user_id_seq') as id;";
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
pg_query($this->conn_moodle, 'COMMIT;');
|
||||
$this->mdl_user_id = $row->id;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle,'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Lesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle,'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Lesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle,'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Anlegen des Users';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'User wurde nicht gefunden: '.$uid;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Users';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Teilt den User mit der ID $mdl_user_id zum
|
||||
* Kurs mit der ContextID $mdl_context_id zu.
|
||||
* @param $mdl_user_id Moodle ID des Users
|
||||
* $mdl_context_id ContextID des Kurses
|
||||
* $role Rolle der Zuteilung (1=Admin/3=Lektor/5=Student)
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function createZuteilung($mdl_user_id, $mdl_context_id, $role)
|
||||
{
|
||||
$qry = "INSERT INTO public.mdl_role_assignments(roleid, contextid, userid)
|
||||
VALUES(".
|
||||
$this->addslashes($role).",".
|
||||
$this->addslashes($mdl_context_id).",".
|
||||
$this->addslashes($mdl_user_id).");";
|
||||
|
||||
if(pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern der Zuteilung';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fuegt dem User die globale Gastrolle hinzu
|
||||
* @param $mdl_user_id Moodle ID des Users der
|
||||
* die GastRolle bekommt
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function createGlobaleGastrolle($mdl_user_id)
|
||||
{
|
||||
|
||||
//Nachschauen ob diese Person bereits eine globale Gastrolle hat
|
||||
$qry = "SELECT 1 FROM public.mdl_role_assignments
|
||||
WHERE
|
||||
userid='".addslashes($mdl_user_id)."' AND
|
||||
contextid='1' AND
|
||||
roleid='6'";
|
||||
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if(pg_num_rows($result)==0)
|
||||
{
|
||||
//noch nicht zugeteilt
|
||||
if($this->createZuteilung($mdl_user_id, 1, 6))
|
||||
{
|
||||
$this->log.="\n$this->mdl_user_firstname $this->mdl_user_lastname wurde die globale Gastrolle zugeteilt";
|
||||
$this->log_public.="\n$this->mdl_user_firstname $this->mdl_user_lastname wurde die globale Gastrolle zugeteilt";
|
||||
}
|
||||
else
|
||||
$this->log.="\nFehler beim Anlegen der Gast-Zuteilung: $this->errormsg";
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Rollen';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht die Zuteilung eines Users zu einem Kurs
|
||||
* @param $mdl_user_id MoodleID des Users
|
||||
* $mdl_context_id ContextID des Users
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function deleteZuteilung($mdl_user_id, $mdl_context_id)
|
||||
{
|
||||
$qry = "DELETE FROM public.mdl_role_assignments
|
||||
WHERE userid='".addslashes($mdl_user_id)."' AND contextid='".addslashes($mdl_context_id)."'";
|
||||
if(pg_query($this->conn_moodle, $qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Loeschen der Zuteilung';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Teilt die TestStudenten zu einem Testkurs zu
|
||||
* @param mdl_course_id ID des Moodle Kurses
|
||||
*/
|
||||
public function createTestStudentenZuordnung($mdl_course_id)
|
||||
{
|
||||
//Context des Kurses holen
|
||||
$mdlcourse = new moodle19_course();
|
||||
if(!$mdlcourse->getContext(50, $mdl_course_id))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Contexts';
|
||||
return false;
|
||||
}
|
||||
|
||||
$users = array('student1', 'student2', 'student3');
|
||||
foreach ($users as $row_user)
|
||||
{
|
||||
//MoodleID des Users holen
|
||||
if(!$this->loaduser($row_user))
|
||||
{
|
||||
$this->errormsg = "Fehler beim Laden des Users $row_user: $this->errormsg";
|
||||
return false;
|
||||
}
|
||||
|
||||
//Nachschauen ob dieser Student bereits zugeteilt ist
|
||||
$qry = "SELECT 1 FROM public.mdl_role_assignments
|
||||
WHERE
|
||||
userid='".addslashes($this->mdl_user_id)."' AND
|
||||
contextid='".addslashes($mdlcourse->mdl_context_id)."'";
|
||||
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if(pg_num_rows($result)==0)
|
||||
{
|
||||
//Student ist noch nicht zugeteilt.
|
||||
if($this->createZuteilung($this->mdl_user_id, $mdlcourse->mdl_context_id, 5))
|
||||
{
|
||||
$this->log.="\nder Student $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
|
||||
$this->log_public.="\nder Student $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
|
||||
$this->sync_create++;
|
||||
}
|
||||
else
|
||||
$this->log.="\nFehler beim Anlegen der Studenten-Zuteilung: $this->errormsg";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Rollen';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,837 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2013 FH 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: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
*/
|
||||
/*
|
||||
* Moodle 2.4 Connector Klasse
|
||||
*
|
||||
* FHComplete Moodle Plugin muss installiert sein fuer
|
||||
* Webservice Funktion 'fhcomplete_courses_by_shortname'
|
||||
* 'fhcomplete_get_course_grades'
|
||||
*/
|
||||
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
|
||||
{
|
||||
public $result = array();
|
||||
public $serverurl;
|
||||
|
||||
//Vilesci Attribute
|
||||
public $moodle_id;
|
||||
public $mdl_course_id;
|
||||
public $lehreinheit_id;
|
||||
public $lehrveranstaltung_id;
|
||||
public $studiensemester_kurzbz;
|
||||
public $insertamum;
|
||||
public $insertvon;
|
||||
public $gruppen;
|
||||
|
||||
//Moodle Attribute
|
||||
public $mdl_fullname;
|
||||
public $mdl_shortname;
|
||||
|
||||
public $lehrveranstaltung_bezeichnung;
|
||||
public $lehrveranstaltung_semester;
|
||||
public $lehrveranstaltung_studiengang_kz;
|
||||
|
||||
// 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()
|
||||
{
|
||||
$moodle = new moodle();
|
||||
$pfad = $moodle->getPfad('2.4');
|
||||
$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
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function load($mdl_course_id)
|
||||
{
|
||||
$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)
|
||||
|| !is_numeric($this->mdl_course_id))
|
||||
{
|
||||
$this->errormsg='Moodle Kurs ID fehlt';
|
||||
return false;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$response = $client->core_course_get_courses(array('ids'=>array($this->mdl_course_id)));
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->errormsg.="SOAP Fehler beim Anlegen des Kurses: ".$E->faultstring;
|
||||
return false;
|
||||
}
|
||||
|
||||
if($response)
|
||||
{
|
||||
if(isset($response[0]))
|
||||
{
|
||||
$this->mdl_fullname = $response[0]['fullname'];
|
||||
$this->mdl_shortname = $response[0]['shortname'];
|
||||
$this->mdl_course_id = $response[0]['id'];
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Kurs wurde nicht gefunden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
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
|
||||
*/
|
||||
public function create_vilesci()
|
||||
{
|
||||
if($this->mdl_course_id=='')
|
||||
{
|
||||
$this->errormsg='mdl_course_id muss angegeben sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$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).','.
|
||||
$this->db_add_param($this->lehreinheit_id, FHC_INTEGER).','.
|
||||
$this->db_add_param($this->lehrveranstaltung_id, FHC_INTEGER).','.
|
||||
$this->db_add_param($this->studiensemester_kurzbz).','.
|
||||
$this->db_add_param($this->insertamum).','.
|
||||
$this->db_add_param($this->insertvon).','.
|
||||
$this->db_add_param($this->gruppen, FHC_BOOLEAN).", '2.4');";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
$qry = "SELECT currval('lehre.tbl_moodle_moodle_id_seq') as id;";
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->moodle_id = $row->id;
|
||||
$this->db_query('COMMIT;');
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db_query('ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Lesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->db_query('ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Lesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Einfuegen des Datensatzes';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt einen Kurs im Moodle an
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function create_moodle()
|
||||
{
|
||||
//CourseCategorie ermitteln
|
||||
|
||||
//lehrveranstalung ID holen falls nur die lehreinheit_id angegeben wurde
|
||||
if($this->lehrveranstaltung_id=='')
|
||||
{
|
||||
$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))
|
||||
{
|
||||
if($row = $this->db_fetch_object($res))
|
||||
{
|
||||
$lvid = $row->lehrveranstaltung_id;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln der LehrveranstaltungID';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln der LehrveranstaltungID';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
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))
|
||||
{
|
||||
$semester = $row->semester;
|
||||
$stg = $row->stg;
|
||||
$stg_kz = $row->studiengang_kz;
|
||||
$oe_kurzbz = $row->oe_kurzbz;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester';
|
||||
return false;
|
||||
}
|
||||
|
||||
// Kategoriebaum 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
|
||||
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
|
||||
$id_department = $this->getCategorie($department, '0');
|
||||
if ($id_department === false)
|
||||
return false;
|
||||
if ($id_department === -1)
|
||||
{
|
||||
if(!$id_department = $this->createCategorie($department, '0'))
|
||||
{
|
||||
echo "<br>$this->errormsg";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Studiengang
|
||||
$id_stg = $this->getCategorie($stg, $id_department);
|
||||
if ($id_stg === false)
|
||||
return false;
|
||||
if ($id_stg === -1)
|
||||
{
|
||||
if(!$id_stg = $this->createCategorie($stg, $id_department))
|
||||
{
|
||||
echo "<br>$this->errormsg";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// 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');
|
||||
|
||||
$id_jahrgang = $this->getCategorie('Jahrgang '.$jahr, $id_stg);
|
||||
if ($id_jahrgang === false)
|
||||
return false;
|
||||
if ($id_jahrgang === -1)
|
||||
{
|
||||
if(!$id_jahrgang = $this->createCategorie('Jahrgang '.$jahr, $id_stg))
|
||||
{
|
||||
echo "<br>$this->errormsg";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Studiensemester
|
||||
$id_stsem = $this->getCategorie($this->studiensemester_kurzbz, $id_jahrgang);
|
||||
if ($id_stsem === false)
|
||||
return false;
|
||||
if ($id_stsem === -1)
|
||||
{
|
||||
if(!$id_stsem = $this->createCategorie($this->studiensemester_kurzbz, $id_jahrgang))
|
||||
{
|
||||
echo "<br>Fehler beim Anlegen des Studiensemesters";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$categoryid=$id_stsem;
|
||||
}
|
||||
else
|
||||
{
|
||||
// Struktur: STSEM -> STG -> Ausbsemester (WS2014 -> BEL -> 1)
|
||||
|
||||
//Studiensemester Categorie holen
|
||||
$id_stsem = $this->getCategorie($this->studiensemester_kurzbz, '0');
|
||||
if ($id_stsem === false)
|
||||
return false;
|
||||
if ($id_stsem === -1)
|
||||
{
|
||||
if(!$id_stsem = $this->createCategorie($this->studiensemester_kurzbz, '0'))
|
||||
{
|
||||
echo "<br>Fehler beim Anlegen des Studiensemesters";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
//Studiengang Categorie holen
|
||||
$id_stg = $this->getCategorie($stg, $id_stsem);
|
||||
if ($id_stg === false)
|
||||
return false;
|
||||
if ($id_stg === -1)
|
||||
{
|
||||
if(!$id_stg = $this->createCategorie($stg, $id_stsem))
|
||||
{
|
||||
echo "<br>$this->errormsg";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
//Semester Categorie holen
|
||||
$id_sem = $this->getCategorie($semester, $id_stg);
|
||||
if ($id_sem === false)
|
||||
return false;
|
||||
if ($id_sem === -1)
|
||||
{
|
||||
if (!$id_sem = $this->createCategorie($semester, $id_stg))
|
||||
{
|
||||
echo "<br>$this->errormsg";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
$categoryid=$id_sem;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$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);
|
||||
$data->enddate=$datum_obj->mktime_fromdate($stsem->ende);
|
||||
|
||||
$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;
|
||||
}
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$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, -1 wenn Kategorie nicht existiert, false im Fehlerfall
|
||||
*/
|
||||
public function getCategorie($bezeichnung, $parent)
|
||||
{
|
||||
if($bezeichnung=='')
|
||||
{
|
||||
$this->errormsg = 'Bezeichnung muss angegeben werden';
|
||||
return false;
|
||||
}
|
||||
if($parent=='')
|
||||
{
|
||||
$this->errormsg = 'getCategorie: parent wurde nicht uebergeben';
|
||||
return false;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$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 -1;
|
||||
}
|
||||
}
|
||||
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
|
||||
* @param parent ID der uebergeordneten Kategorie, false im Fehlerfall
|
||||
*/
|
||||
public function createCategorie($bezeichnung, $parent)
|
||||
{
|
||||
if($bezeichnung=='')
|
||||
{
|
||||
$this->errormsg = 'Bezeichnung muss angegeben werden';
|
||||
return false;
|
||||
}
|
||||
if($parent=='')
|
||||
{
|
||||
$this->errormsg = 'createCategorie: parent wurde nicht uebergeben';
|
||||
return false;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$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;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Aktualisiert die Spalte gruppen in der tbl_moodle
|
||||
* @param moodle_id ID der MoodleZuteilung
|
||||
* gruppen boolean true wenn syncronisiert
|
||||
* werden soll, false wenn nicht
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*
|
||||
* TODO eventuell auslagern in moodle.class oder ganz loeschen
|
||||
*/
|
||||
public function updateGruppenSync($moodle_id, $gruppen)
|
||||
{
|
||||
if(!is_numeric($moodle_id))
|
||||
{
|
||||
$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)."
|
||||
WHERE moodle_id=".$this->db_add_param($moodle_id, FHC_INTEGER);
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
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
|
||||
JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
WHERE
|
||||
lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER);
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$semester = $row->semester;
|
||||
$stg = $row->stg;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Testkurs Categorie holen
|
||||
$id_testkurs = $this->getCategorie('Testkurse', '0');
|
||||
if ($id_testkurs === false)
|
||||
return false;
|
||||
if ($id_testkurs === -1)
|
||||
{
|
||||
if(!$id_testkurs = $this->createCategorie('Testkurse', '0'))
|
||||
{
|
||||
$this->errormsg= "Fehler beim Anlegen der Testkurskategorie";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
//StSem Categorie holen
|
||||
$id_stsem = $this->getCategorie($studiensemester_kurzbz, $id_testkurs);
|
||||
if ($id_stsem === false)
|
||||
return false;
|
||||
if ($id_stsem === -1)
|
||||
{
|
||||
if(!$id_stsem = $this->createCategorie($studiensemester_kurzbz, $id_testkurs))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Anlegen der Studiensemester Kategorie';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$client = new SoapClient($this->serverurl);
|
||||
|
||||
$data = new stdClass();
|
||||
$data->fullname=$this->mdl_fullname;
|
||||
$data->shortname=$this->mdl_shortname;
|
||||
$data->categoryid=$id_stsem;
|
||||
$data->format='topics';
|
||||
|
||||
$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 Testkurses';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt den Testkurs zu dieser Lehrveranstaltung
|
||||
* @param lehrveranstaltung_id
|
||||
* studiensemester_kurzbz
|
||||
* @return ID wenn gefunden, false wenn nicht vorhanden
|
||||
*/
|
||||
public function loadTestkurs($lehrveranstaltung_id, $studiensemester_kurzbz)
|
||||
{
|
||||
$qry = "SELECT
|
||||
UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as kuerzel,
|
||||
tbl_lehrveranstaltung.semester, tbl_lehrveranstaltung.kurzbz
|
||||
FROM
|
||||
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
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Testkurses';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Testkurses';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Testkurs Categorie holen
|
||||
$id_testkurs = $this->getCategorie('Testkurse', '0');
|
||||
if ($id_testkurs === false)
|
||||
return false;
|
||||
if ($id_testkurs === -1)
|
||||
{
|
||||
$this->errormsg = 'Categorie nicht gefunden';
|
||||
return false;
|
||||
}
|
||||
|
||||
//StSem Categorie holen
|
||||
$id_stsem = $this->getCategorie($studiensemester_kurzbz, $id_testkurs);
|
||||
if($id_stsem === false)
|
||||
return false;
|
||||
if ($id_stsem === -1)
|
||||
{
|
||||
$this->errormsg = 'Categorie nicht gefunden';
|
||||
return false;
|
||||
}
|
||||
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$response = $client->fhcomplete_courses_by_shortname(array('shortnames'=>array($shortname)));
|
||||
|
||||
if(isset($response[0]))
|
||||
{
|
||||
$this->mdl_fullname = $response[0]['fullname'];
|
||||
$this->mdl_shortname = $response[0]['shortname'];
|
||||
$this->mdl_course_id = $response[0]['id'];
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Es wurde kein Testkurs gefunden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 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;
|
||||
|
||||
if($lehrveranstaltung_id=='' || $studiensemester_kurzbz=='')
|
||||
{
|
||||
$this->errormsg = 'LehrveranstaltungID und Studiensemester_kurzbz muss uebergeben werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
// Ermitteln die Lehreinheiten und Moodle ID
|
||||
$qry = "
|
||||
SELECT
|
||||
distinct mdl_course_id
|
||||
FROM
|
||||
lehre.tbl_moodle
|
||||
JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id, studiensemester_kurzbz)
|
||||
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
|
||||
distinct mdl_course_id
|
||||
FROM
|
||||
lehre.tbl_moodle
|
||||
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_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);
|
||||
if(CIS_GESAMTNOTE_PUNKTE)
|
||||
$type=2; // Prozentpunkte
|
||||
else
|
||||
$type=3; // Noten aufgrund Skala
|
||||
// 1 = Punkte, 2 = Prozentpunkte, 3 = Note laut Skala
|
||||
|
||||
$response = $client->fhcomplete_get_course_grades($row_moodle->mdl_course_id, $type);
|
||||
|
||||
if (count($response)>0)
|
||||
{
|
||||
|
||||
foreach($response as $row)
|
||||
{
|
||||
if($row['note']!='-')
|
||||
{
|
||||
$userobj = new stdClass();
|
||||
$userobj->mdl_course_id = $row_moodle->mdl_course_id;
|
||||
$userobj->vorname = $row['vorname'];
|
||||
$userobj->nachname = $row['nachname'];
|
||||
$userobj->idnummer = $row['idnummer'];
|
||||
$userobj->uid = $row['username'];
|
||||
$userobj->note = $row['note'];
|
||||
$this->result[]=$userobj;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(SoapFault $e)
|
||||
{
|
||||
//echo print_r($e, true);
|
||||
//return false;
|
||||
}
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 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);
|
||||
|
||||
$data = array($mdl_course_id);
|
||||
|
||||
$response = $client->core_course_delete_courses(array($mdl_course_id));
|
||||
|
||||
if(is_object($response))
|
||||
{
|
||||
$response_obj = $response;
|
||||
unset($response);
|
||||
if(isset($response_obj->warnings) && isset($response_obj->warnings->message))
|
||||
$response[0] = $response_obj->warnings->message;
|
||||
}
|
||||
|
||||
if(isset($response[0]))
|
||||
{
|
||||
$this->errormsg = $response[0];
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 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 moodle_version='2.4' AND 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;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,922 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2013 FH 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: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
*/
|
||||
/*
|
||||
* Connector fuer Moodle 2.4 User
|
||||
*
|
||||
* FHComplete Moodle Plugin muss installiert sein fuer
|
||||
* Webservice Funktion 'fhcomplete_user_get_users'
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
require_once(dirname(__FILE__).'/moodle.class.php');
|
||||
|
||||
class moodle24_user extends basis_db
|
||||
{
|
||||
public $log=''; //log message fuer Syncro
|
||||
public $log_public=''; //log message fuer Syncro
|
||||
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
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$moodle = new moodle();
|
||||
$pfad = $moodle->getPfad('2.4');
|
||||
$this->serverurl=$pfad.'/webservice/soap/server.php?wsdl=1&wstoken='.MOODLE_TOKEN24.'&'.microtime(true);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt einen Moodle User
|
||||
*
|
||||
* @param $uid
|
||||
* @return boolean oder -1 bei SOAP Fehler
|
||||
*/
|
||||
public function loaduser($uid)
|
||||
{
|
||||
try
|
||||
{
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$response = $client->fhcomplete_user_get_users(array(array('key'=>'username', 'value'=>$uid)));
|
||||
|
||||
if(is_object($response))
|
||||
{
|
||||
$response_obj = $response;
|
||||
unset($response);
|
||||
$response['users']=$response_obj->users;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->errormsg.="SOAP Fehler beim Laden des Users: ".$E->faultstring;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert ein Array mit allen Lektoren die
|
||||
* zu dem Moodle Kurs zugeteilt sind
|
||||
*/
|
||||
public function getMitarbeiter($mdl_course_id)
|
||||
{
|
||||
//Mitarbeiter laden die zu diesem Kurs zugeteilt sind
|
||||
$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)."
|
||||
UNION
|
||||
SELECT
|
||||
mitarbeiter_uid
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
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);
|
||||
$mitarbeiter=array();
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row_ma = $this->db_fetch_object())
|
||||
{
|
||||
$mitarbeiter[] = $row_ma->mitarbeiter_uid;
|
||||
}
|
||||
return $mitarbeiter;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler beim Laden der Mitarbeiter';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Synchronisiert die Lektoren der Lehreinheiten
|
||||
* mit denen des Moodle Kurses
|
||||
* @param $mdl_course_id ID des MoodleKurses
|
||||
* lehrveranstaltung_id wird nur angegeben beim Syncro von Testkursen
|
||||
* studiensemester_kurzbz wird nur angegeben beim Syncro von Testkursen
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function sync_lektoren($mdl_course_id, $lehrveranstaltung_id=null, $studiensemester_kurzbz=null)
|
||||
{
|
||||
//Mitarbeiter laden die zu diesem Kurs zugeteilt sind
|
||||
if(!is_null($lehrveranstaltung_id) && !is_null($studiensemester_kurzbz))
|
||||
{
|
||||
//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
|
||||
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
|
||||
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
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)."
|
||||
AND mitarbeiter_uid not like '_Dummy%'";
|
||||
}
|
||||
$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 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))
|
||||
{
|
||||
$user_zugeteilt=false;
|
||||
foreach($enrolled_users as $user)
|
||||
{
|
||||
if($user['username']==$row_ma->mitarbeiter_uid)
|
||||
{
|
||||
$user_zugeteilt=true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(!$user_zugeteilt)
|
||||
{
|
||||
$retval = $this->loaduser($row_ma->mitarbeiter_uid);
|
||||
//MoodleID des Users holen bzw ggf neu anlegen
|
||||
if($retval===false)
|
||||
{
|
||||
//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($retval!==-1)
|
||||
{
|
||||
if($mitarbeiter!='')
|
||||
$mitarbeiter.=',';
|
||||
$mitarbeiter.=$this->mdl_user_id;
|
||||
|
||||
//Mitarbeiter ist noch nicht zugeteilt.
|
||||
$data = new stdClass();
|
||||
$data->roleid=3; // 3=Lektor
|
||||
$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.="\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
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln der Zugeteilten Lektoren';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Synchronisiert die Studenten der Lehreinheiten
|
||||
* mit denen des Moodle Kurses
|
||||
* @param $mdl_course_id ID des MoodleKurses
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function sync_studenten($mdl_course_id)
|
||||
{
|
||||
$vorhandenegruppen=array();
|
||||
$this->gruppenzuordnungen=array();
|
||||
$groupmembertoadd = array();
|
||||
$userstoenroll=array();
|
||||
|
||||
//Studentengruppen laden die zu diesem Kurs zugeteilt sind
|
||||
$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
|
||||
moodle_version='2.4'
|
||||
AND mdl_course_id=".$this->db_add_param($mdl_course_id)."
|
||||
UNION
|
||||
SELECT
|
||||
studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, tbl_moodle.studiensemester_kurzbz, tbl_moodle.gruppen
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
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='';
|
||||
|
||||
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
|
||||
{
|
||||
$qry = "SELECT
|
||||
distinct student_uid, tbl_person.vorname, tbl_person.nachname
|
||||
FROM
|
||||
public.tbl_studentlehrverband
|
||||
JOIN public.tbl_benutzer ON(student_uid=uid)
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
WHERE
|
||||
tbl_benutzer.aktiv AND
|
||||
studiensemester_kurzbz=".$this->db_add_param($row_std->studiensemester_kurzbz)." AND
|
||||
studiengang_kz = ".$this->db_add_param($row_std->studiengang_kz)." AND
|
||||
semester = ".$this->db_add_param($row_std->semester);
|
||||
|
||||
if(trim($row_std->verband)!='')
|
||||
{
|
||||
$qry.=" AND verband = ".$this->db_add_param($row_std->verband);
|
||||
if(trim($row_std->gruppe)!='')
|
||||
{
|
||||
$qry.=" AND gruppe = ".$this->db_add_param($row_std->gruppe);
|
||||
}
|
||||
}
|
||||
$studiengang_obj = new studiengang();
|
||||
$studiengang_obj->load($row_std->studiengang_kz);
|
||||
$gruppenbezeichnung = $studiengang_obj->kuerzel.'-'.trim($row_std->semester).trim($row_std->verband).trim($row_std->gruppe);
|
||||
}
|
||||
else //Spezialgruppe
|
||||
{
|
||||
$qry = "SELECT
|
||||
distinct uid as student_uid, tbl_person.vorname, tbl_person.nachname
|
||||
FROM
|
||||
public.tbl_benutzergruppe
|
||||
JOIN public.tbl_benutzer USING(uid)
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
WHERE
|
||||
tbl_benutzer.aktiv AND
|
||||
gruppe_kurzbz=".$this->db_add_param($row_std->gruppe_kurzbz)." AND
|
||||
studiensemester_kurzbz=".$this->db_add_param($row_std->studiensemester_kurzbz);
|
||||
$gruppenbezeichnung = $row_std->gruppe_kurzbz;
|
||||
}
|
||||
|
||||
if($result_user = $this->db_query($qry))
|
||||
{
|
||||
while($row_user = $this->db_fetch_object($result_user))
|
||||
{
|
||||
//Nachschauen ob dieser Student bereits zugeteilt ist
|
||||
$user_zugeteilt=false;
|
||||
foreach($enrolled_users as $user)
|
||||
{
|
||||
if($user['username']==$row_user->student_uid)
|
||||
{
|
||||
$user_zugeteilt=true;
|
||||
$this->mdl_user_id=$user['id'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(!$user_zugeteilt)
|
||||
{
|
||||
$retval = $this->loaduser($row_user->student_uid);
|
||||
//MoodleID des Users holen bzw ggf neu anlegen
|
||||
if($retval===false)
|
||||
{
|
||||
//User anlegen
|
||||
if(!$this->createUser($row_user->student_uid))
|
||||
{
|
||||
$this->errormsg = "Fehler beim Anlegen des Users $row_user->student_uid: $this->errormsg";
|
||||
return false;
|
||||
}
|
||||
else
|
||||
$this->errormsg = '';
|
||||
}
|
||||
|
||||
if($retval!==-1)
|
||||
{
|
||||
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;
|
||||
$data->courseid=$mdl_course_id;
|
||||
|
||||
$userstoenroll[]=$data;
|
||||
|
||||
$this->log.="\nStudentIn ".$this->mdl_user_firstname." ".$this->mdl_user_lastname." ($row_user->student_uid) wurde zum Kurs hinzugefügt";
|
||||
$this->log_public.="\nStudentIn ".$this->mdl_user_firstname." ".$this->mdl_user_lastname." ($row_user->student_uid) wurde zum Kurs hinzugefügt";
|
||||
$this->sync_create++;
|
||||
}
|
||||
}
|
||||
|
||||
//Gruppenzuteilung
|
||||
if($gruppensync)
|
||||
{
|
||||
if(!isset($vorhandenegruppen[$gruppenbezeichnung]))
|
||||
{
|
||||
//Schauen ob die Gruppe vorhanden ist
|
||||
$groupid = $this->getGroup($mdl_course_id, $gruppenbezeichnung);
|
||||
if ($groupid === false)
|
||||
return false;
|
||||
|
||||
if($groupid === -1)
|
||||
{
|
||||
//wenn nicht dann anlegen
|
||||
if(!$groupid = $this->createGroup($mdl_course_id, $gruppenbezeichnung))
|
||||
{
|
||||
$this->log.="\nGruppen Anlegen Failed $gruppenbezeichnung $mdl_course_id $groupid";
|
||||
continue;
|
||||
}
|
||||
$this->group_update++;
|
||||
$this->log.="\nes wurde eine neue Gruppe angelgt: $gruppenbezeichnung ID $groupid";
|
||||
$this->log_public.="\nes wurde eine neue Gruppe angelgt: $gruppenbezeichnung";
|
||||
}
|
||||
$vorhandenegruppen[$gruppenbezeichnung]=$groupid;
|
||||
}
|
||||
else
|
||||
$groupid=$vorhandenegruppen[$gruppenbezeichnung];
|
||||
|
||||
//if($this->mdl_user_id=='')
|
||||
// $this->loaduser($row_user->student_uid);
|
||||
//Schauen ob eine Zuteilung zu dieser Gruppe vorhanden ist
|
||||
$groupmember = $this->getGroupMember($groupid, $this->mdl_user_id);
|
||||
if($groupmember === false)
|
||||
continue;
|
||||
|
||||
if($groupmember === -1)
|
||||
{
|
||||
//wenn nicht dann zuteilen
|
||||
$groupmembertoadd[] = array('groupid'=>$groupid,'userid'=>$this->mdl_user_id);
|
||||
//$this->createGroupMember($groupid, $this->mdl_user_id);
|
||||
$this->group_update++;
|
||||
$this->log.="\nStudentIn $row_user->vorname $row_user->nachname ($row_user->student_uid) wurde der Gruppe $gruppenbezeichnung ($groupid) zugeordnet";
|
||||
$this->log_public.="\nStudentIn $row_user->vorname $row_user->nachname ($row_user->student_uid) wurde der Gruppe $gruppenbezeichnung zugeordnet";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(count($userstoenroll)>0)
|
||||
{
|
||||
try
|
||||
{
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$client->enrol_manual_enrol_users($userstoenroll);
|
||||
// Wenn User zum Kurs hinzugefuegt werden, muss eine kleine Pause eingelegt werden
|
||||
// Die User werden nicht gleich zugeordnet, diese werden nach
|
||||
// abschluss des SOAP Requests von Moodle noch weiterverarbeitet und
|
||||
// erst zeitversetzt zugeordnet.
|
||||
// Die Pause ist abgaengig von der Anzahl der User die hinzugefuegt werden
|
||||
usleep(count($userstoenroll)*150000);
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->errormsg.="SOAP Fehler beim Zuteilen der Teilnehmer des Kurses: ".$E->faultstring;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if(count($groupmembertoadd)>0)
|
||||
{
|
||||
try
|
||||
{
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$groupresult = $client->core_group_add_group_members($groupmembertoadd);
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->errormsg.="SOAP Fehler beim Zuteilen der Teilnehmer zu Gruppen";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln der Zugeteilten Studenten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Schaut ob eine Zuteilung von Person zu Gruppe
|
||||
* existiert
|
||||
* @param grouid ID der Gruppe
|
||||
* userid MoodleID des Users
|
||||
* @return true wenn zugeteilt, -1 wenn nicht, false im Fehlerfall
|
||||
*/
|
||||
public function getGroupMember($groupid, $userid)
|
||||
{
|
||||
if(!isset($this->gruppenzuordnungen[$groupid]))
|
||||
{
|
||||
try
|
||||
{
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$response = $client->core_group_get_group_members(array($groupid));
|
||||
|
||||
if(isset($response[0]['userids']))
|
||||
{
|
||||
$this->gruppenzuordnungen[$groupid]=$response[0]['userids'];
|
||||
}
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->errormsg.="SOAP Fehler beim Laden der Gruppenzuordnung: ".$E->faultstring;
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
foreach($this->gruppenzuordnungen[$groupid] as $id)
|
||||
{
|
||||
if ($id == $userid)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt eine Zuteilung eines Users zu
|
||||
* einer Gruppe an
|
||||
* @param groupid ID der Gruppe
|
||||
* userid ID des Users
|
||||
* @return boolean
|
||||
*/
|
||||
public function createGroupMember($groupid, $userid)
|
||||
{
|
||||
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
|
||||
* $gruppenbezeichnung Name der Gruppe
|
||||
* @return GruppenID wenn ok, -1 wenn nicht gefunden, false im Fehlerfall
|
||||
*/
|
||||
public function getGroup($mdl_course_id, $gruppenbezeichnung)
|
||||
{
|
||||
try
|
||||
{
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$response = $client->core_group_get_course_groups($mdl_course_id);
|
||||
foreach($response as $row)
|
||||
{
|
||||
if($row['name']==$gruppenbezeichnung)
|
||||
return $row['id'];
|
||||
}
|
||||
|
||||
$this->errormsg = "Gruppe wurde nicht gefunden $gruppenbezeichnung";
|
||||
return -1;
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->log.="Fehler beim Laden der Gruppe $mdl_course_id, $gruppenbezeichnung: ".$E->faultstring;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt eine MoodleGruppe zu einem Kurs an
|
||||
* @param mdl_course_id ID des MoodleKuses
|
||||
* gruppenbezeichnung Bezeichnung der Gruppe
|
||||
* @return ID der Gruppe wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function createGroup($mdl_course_id, $gruppenbezeichnung)
|
||||
{
|
||||
try
|
||||
{
|
||||
$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;
|
||||
}
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->errormsg.="SOAP Fehler beim Anlegen der Gruppe: ".$E->faultstring;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt einen User im Moodle an
|
||||
* @param $uid UID der Person die angelegt werden soll
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function createUser($uid)
|
||||
{
|
||||
if($uid=='_DummyLektor')
|
||||
return true;
|
||||
|
||||
$qry = "SELECT uid, vorname, nachname FROM campus.vw_benutzer WHERE uid=".$this->db_add_param($uid);
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$username = $row->uid;
|
||||
$vorname = $row->vorname;
|
||||
$nachname = $row->nachname;
|
||||
|
||||
$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
|
||||
|
||||
Wenn das Passwort uebergeben wird, dann versucht Moodle das auch
|
||||
im LDAP zu setzen. Das fuehrt dazu dass der Account nicht mehr funktioniert.
|
||||
Anlegen eines Users ohne Passwortuebergabe ist jedoch nicht moeglich-
|
||||
Deshalb wird die Authentifizierungsmethode beim Anlegen auf manual
|
||||
gesetzt und nach dem anlegen auf ldap geändert
|
||||
*/
|
||||
$user->password = "FHCv!A2".hash('sha512', rand());
|
||||
$user->firstname = $vorname;
|
||||
$user->lastname = $nachname;
|
||||
$user->email = $username.'@'.DOMAIN;
|
||||
//$user->auth = 'ldap';
|
||||
$user->auth = 'manual';
|
||||
$user->idnumber = $username;
|
||||
$user->lang = 'en';
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$response = $client->core_user_create_users(array($user));
|
||||
|
||||
if(isset($response[0]))
|
||||
{
|
||||
$this->mdl_user_id = $response[0]['id'];
|
||||
|
||||
// User nach dem anlegen auf LDAP Auth umstellen
|
||||
$user = new stdClass();
|
||||
$user->id = $this->mdl_user_id;
|
||||
$user->auth = 'ldap';
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$response = $client->core_user_update_users(array($user));
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Users';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->errormsg.="SOAP Fehler beim Anlegen der User: ".$E->faultstring.' '.(isset($E->detail)?$E->detail:'').' data:'.$username;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Users';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler beim Laden des Users';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Teilt die TestStudenten zu einem Testkurs zu
|
||||
* @param mdl_course_id ID des Moodle Kurses
|
||||
*/
|
||||
public function createTestStudentenZuordnung($mdl_course_id)
|
||||
{
|
||||
//Context des Kurses holen
|
||||
$mdlcourse = new moodle24_course();
|
||||
|
||||
$users = array('student1', 'student2', 'student3');
|
||||
|
||||
foreach ($users as $row_user)
|
||||
{
|
||||
$retval = $this->loaduser($row_user);
|
||||
//MoodleID des Users holen
|
||||
if($retval!==true)
|
||||
{
|
||||
$this->errormsg = "Fehler beim Laden des Users $row_user: $this->errormsg";
|
||||
return false;
|
||||
}
|
||||
|
||||
$data = new stdClass();
|
||||
$data->roleid=5;
|
||||
$data->userid=$this->mdl_user_id;
|
||||
$data->courseid=$mdl_course_id;
|
||||
|
||||
try
|
||||
{
|
||||
$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.
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->errormsg.="SOAP Fehler beim Zuordnen der User: ".$E->faultstring.' '.(isset($E->detail)?$E->detail:'');
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Teilt einen User zu mehreren Moodle Kursen gleichzeitig zu
|
||||
* @param $uid UID des Users
|
||||
* @param $mdl_course_id_array Array mit MoodleKursIDs
|
||||
* @param $role_id Moodle Rolle
|
||||
*/
|
||||
public function MassEnroll($uid, $mdl_course_id_array, $role_id)
|
||||
{
|
||||
//MoodleID des Users holen
|
||||
if(!$this->loaduser($uid))
|
||||
{
|
||||
$this->errormsg = "Fehler beim Laden des Users $uid: $this->errormsg";
|
||||
return false;
|
||||
}
|
||||
|
||||
$param=array();
|
||||
|
||||
foreach($mdl_course_id_array as $mdl_course_id)
|
||||
{
|
||||
$data = new stdClass();
|
||||
$data->roleid=$role_id;
|
||||
$data->userid=$this->mdl_user_id;
|
||||
$data->courseid=$mdl_course_id;
|
||||
|
||||
$param[]=$data;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$client->enrol_manual_enrol_users($param);
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->errormsg.="SOAP Fehler beim Zuordnen der User: ".$E->faultstring.' '.(isset($E->detail)?$E->detail:'');
|
||||
return false;
|
||||
}
|
||||
|
||||
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 tbl_benutzer.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)
|
||||
JOIN public.tbl_benutzer ON(tbl_benutzerfunktion.uid=tbl_benutzer.uid)
|
||||
WHERE
|
||||
tbl_benutzer.aktiv
|
||||
AND 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)
|
||||
{
|
||||
$retval = $this->loaduser($row_ma->mitarbeiter_uid);
|
||||
//MoodleID des Users holen bzw ggf neu anlegen
|
||||
if($retval===false)
|
||||
{
|
||||
//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($retval!==-1)
|
||||
{
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -282,58 +282,24 @@ function checkZeilenUmbruch()
|
||||
// Uebungstool
|
||||
if((!defined('CIS_LEHRVERANSTALTUNG_UEBUNGSTOOL_ANZEIGEN') || CIS_LEHRVERANSTALTUNG_UEBUNGSTOOL_ANZEIGEN) && $angemeldet)
|
||||
{
|
||||
$show=false;
|
||||
$link='';
|
||||
$link_onclick='';
|
||||
$text='';
|
||||
|
||||
//wenn kein Moodle Kurs existiert dann KT anzeigen
|
||||
$qry = "SELECT 1 FROM lehre.tbl_moodle WHERE
|
||||
(lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND studiensemester_kurzbz=".$db->db_add_param($angezeigtes_stsem).")
|
||||
OR
|
||||
(lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit
|
||||
WHERE lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND
|
||||
studiensemester_kurzbz=".$db->db_add_param($angezeigtes_stsem)."))";
|
||||
if(isset($angezeigtes_stsem))
|
||||
$studiensem = '&stsem='.urlencode($angezeigtes_stsem);
|
||||
else
|
||||
$studiensem = '';
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
if($db->db_num_rows($result)==0)
|
||||
$show=true;
|
||||
|
||||
//wenn eine Kreuzerlliste existiert dann den Link immer anzeigen
|
||||
$qry = "SELECT 1 FROM campus.tbl_uebung
|
||||
WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit
|
||||
WHERE lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND
|
||||
studiensemester_kurzbz=".$db->db_add_param($angezeigtes_stsem).")";
|
||||
if($result = $db->db_query($qry))
|
||||
if($db->db_num_rows($result)>0)
|
||||
$show=true;
|
||||
|
||||
if($show)
|
||||
//Kreuzerltool
|
||||
if($is_lector)
|
||||
{
|
||||
if(isset($angezeigtes_stsem))
|
||||
$studiensem = '&stsem='.urlencode($angezeigtes_stsem);
|
||||
else
|
||||
$studiensem = '';
|
||||
|
||||
//Kreuzerltool
|
||||
if($is_lector)
|
||||
{
|
||||
$link='benotungstool/verwaltung.php?lvid='.urlencode($lvid).$studiensem;
|
||||
$text.='<a href="'.APP_ROOT.'cms/dms.php?id='.$p->t('dms_link/benotungstoolHandbuch').'" class="Item" target="_blank">'.$p->t('lehre/benotungstoolHandbuch').' [PDF]</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$link='benotungstool/studentenansicht.php?lvid='.urlencode($lvid).$studiensem;
|
||||
}
|
||||
$link='benotungstool/verwaltung.php?lvid='.urlencode($lvid).$studiensem;
|
||||
$text.='<a href="'.APP_ROOT.'cms/dms.php?id='.$p->t('dms_link/benotungstoolHandbuch').'" class="Item" target="_blank">'.$p->t('lehre/benotungstoolHandbuch').' [PDF]</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
if($is_lector)
|
||||
{
|
||||
$link='';
|
||||
$text='<a href="'.APP_ROOT.'cms/dms.php?id='.$p->t('dms_link/benotungstoolHandbuch').'" class="Item" target="_blank">'.$p->t('lehre/benotungstoolHandbuch').' [PDF]</a>';
|
||||
$link_onclick='alert(\''.$p->t('lehre/kreuzerltoolMitMoodleInfo').'\');';
|
||||
}
|
||||
$link='benotungstool/studentenansicht.php?lvid='.urlencode($lvid).$studiensem;
|
||||
}
|
||||
|
||||
$menu[]=array
|
||||
@@ -348,112 +314,6 @@ function checkZeilenUmbruch()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
//Moodle
|
||||
$showmoodle=false;
|
||||
$link_target='';
|
||||
$link_onclick='';
|
||||
$text='';
|
||||
$link='';
|
||||
|
||||
//Schauen ob Moodle fuer diesen Studiengang freigeschaltet ist
|
||||
$qry = "SELECT moodle FROM public.tbl_studiengang JOIN lehre.tbl_lehrveranstaltung USING(studiengang_kz) WHERE lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER);
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
if($row = $db->db_fetch_object($result))
|
||||
{
|
||||
if($db->db_parse_bool($row->moodle))
|
||||
{
|
||||
$showmoodle=true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(MOODLE)
|
||||
{
|
||||
//wenn bereits eine Kreuzerlliste existiert, dann den Moodle link nicht anzeigen
|
||||
$qry = "SELECT * FROM campus.tbl_uebung WHERE
|
||||
lehreinheit_id IN(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit
|
||||
WHERE lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)."
|
||||
AND studiensemester_kurzbz=".$db->db_add_param($angezeigtes_stsem).")";
|
||||
if($result = $db->db_query($qry))
|
||||
if($db->db_num_rows($result)>0)
|
||||
$showmoodle=false;
|
||||
|
||||
$moodle = new moodle();
|
||||
$moodle->getAll($lvid, $angezeigtes_stsem);
|
||||
if(count($moodle->result)>0)
|
||||
$showmoodle=true;
|
||||
}
|
||||
else
|
||||
$showmoodle=false;
|
||||
|
||||
if($angemeldet)
|
||||
{
|
||||
if($showmoodle )
|
||||
{
|
||||
$link = "moodle_choice.php?lvid=$lvid&stsem=$angezeigtes_stsem";
|
||||
if(count($moodle->result)>0)
|
||||
{
|
||||
if(!$is_lector)
|
||||
{
|
||||
$moodle->result=array();
|
||||
$moodle->getCourse($lvid, $angezeigtes_stsem, $user);
|
||||
|
||||
if(count($moodle->result)==1)
|
||||
$link = $moodle->getPfad($moodle->result[0]->moodle_version).'course/view.php?id='.$moodle->result[0]->mdl_course_id;
|
||||
else
|
||||
$link = "moodle_choice.php?lvid=$lvid&stsem=$angezeigtes_stsem";
|
||||
}
|
||||
else
|
||||
{
|
||||
if(count($moodle->result)==1)
|
||||
{
|
||||
$link = $moodle->getPfad($moodle->result[0]->moodle_version).'course/view.php?id='.$moodle->result[0]->mdl_course_id;
|
||||
}
|
||||
else
|
||||
$link = "moodle_choice.php?lvid=$lvid&stsem=$angezeigtes_stsem";
|
||||
}
|
||||
$link_target='_blank';
|
||||
}
|
||||
else
|
||||
{
|
||||
$link='';
|
||||
}
|
||||
|
||||
if($is_lector &&
|
||||
(!defined('CIS_LEHRVERANSTALTUNG_MOODLE_LEKTOR_EDIT')
|
||||
|| (defined('CIS_LEHRVERANSTALTUNG_MOODLE_LEKTOR_EDIT') && CIS_LEHRVERANSTALTUNG_MOODLE_LEKTOR_EDIT)
|
||||
))
|
||||
{
|
||||
$text.= '<a href="moodle2_4_wartung.php?lvid='.$lvid.'&stsem='.$angezeigtes_stsem.'" class="Item">'.$p->t('lehre/moodleWartung').'</a>
|
||||
<br /><a href="'.APP_ROOT.'cms/dms.php?id='.$p->t('dms_link/moodleHandbuch24').'" class="Item" target="_blank">'.$p->t('lehre/moodleHandbuch').'</a>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if($is_lector)
|
||||
{
|
||||
$link='';
|
||||
$link_onclick='alert(\''.$p->t('lehre/moodleMitKreuzerltoolInfo').'\'); return false';
|
||||
}
|
||||
}
|
||||
}
|
||||
if (MOODLE)
|
||||
{
|
||||
$menu[]=array
|
||||
(
|
||||
'id'=>'core_menu_moodle',
|
||||
'position'=>'70',
|
||||
'name'=>$p->t('lehre/moodle'),
|
||||
'icon'=>'../../../skin/images/button_moodle.png',
|
||||
'link'=>$link,
|
||||
'link_target'=>$link_target,
|
||||
'link_onclick'=>$link_onclick,
|
||||
'text'=>$text
|
||||
);
|
||||
}
|
||||
|
||||
//Gesamtnote
|
||||
if($is_lector && ((!defined('CIS_LEHRVERANSTALTUNG_GESAMTNOTE_ANZEIGEN') || CIS_LEHRVERANSTALTUNG_GESAMTNOTE_ANZEIGEN) && $angemeldet))
|
||||
{
|
||||
|
||||
@@ -73,15 +73,6 @@ $menu=array
|
||||
'Studienordnung'=>array('name'=>'Studienordnung', 'link'=>'lehre/studienordnung.php', 'target'=>'_blank','permissions'=>array('lehre/studienordnung')),
|
||||
'StudienplanGueltigkeit'=>array('name'=>'Studienplan Gültigkeit', 'link'=>'lehre/studienplan_gueltigkeit.php', 'target'=>'main','permissions'=>array('lehre/studienordnung')),
|
||||
|
||||
'Moodle'=>array
|
||||
(
|
||||
'name'=>'Moodle', 'permissions'=>array('basis/moodle'),
|
||||
'Account'=>array('name'=>'Accountverwaltung', 'link'=>'moodle/account_verwaltung24.php', 'target'=>'main'),
|
||||
'Kursverwaltung'=>array('name'=>'Kurs entfernen', 'link'=>'moodle/kurs_verwaltung24.php', 'target'=>'main'),
|
||||
'Rollenzuteilung'=>array('name'=>'Rollenzuteilung', 'link'=>'moodle/rollenzuteilung24.php', 'target'=>'main'),
|
||||
'UserSync'=>array('name'=>'User Sync', 'link'=>'moodle/user_sync24.php', 'target'=>'main'),
|
||||
'UserMassCreate'=>array('name'=>'User Massenanlage', 'link'=>'moodle/account_masscreate24.php', 'target'=>'main'),
|
||||
),
|
||||
'Freifach'=>array
|
||||
(
|
||||
'name'=>'Freifach', 'permissions'=>array('lehre/freifach'),
|
||||
|
||||
@@ -173,4 +173,6 @@ $this->phrasen['benotungstool/importAnweisung']='Kopieren Sie die Spalten Person
|
||||
$this->phrasen['benotungstool/pruefung']='Prüfung';
|
||||
$this->phrasen['benotungstool/notenlisteImport']='Notenliste für den LV-Noten-Import (Excel)';
|
||||
$this->phrasen['benotungstool/bearbeitetvon']='Bearbeitet von';
|
||||
$this->phrasen['benotungstool/teilnoten']='Teilnoten';
|
||||
$this->phrasen['benotungstool/hilfeImport']='Zum Importieren der Noten markieren sie die Spalten Kennzeichen und Note im Excel-File und kopieren sie diese in die Zwischenablage. Drücken sie danach diesen Knopf erneut, um die Noten zu importieren';
|
||||
?>
|
||||
@@ -21,12 +21,6 @@ $this->phrasen['lehre/feedback']='Feedback';
|
||||
|
||||
$this->phrasen['lehre/benotungstoolHandbuch']='Handbuch';
|
||||
$this->phrasen['lehre/kreuzerltool']='Übungstool<br>("Kreuzerl"-Tool)';
|
||||
$this->phrasen['lehre/kreuzerltoolMitMoodleInfo']='Das Übungstool kann nicht gleichzeitig mit Moodle verwendet werden.\nWenn Sie das Übungstool verwenden wollen, müssen Sie den Moodle Kurs entfernen. Wenden Sie sich hierzu bitte an den Lektorensupport';
|
||||
|
||||
$this->phrasen['lehre/moodle']='Moodle';
|
||||
$this->phrasen['lehre/moodleWartung']='Wartung';
|
||||
$this->phrasen['lehre/moodleHandbuch']='Handbuch';
|
||||
$this->phrasen['lehre/moodleMitKreuzerltoolInfo']='Moodle kann nicht gleichzeitig mit dem Übungstool verwendet werden.\nWenn Sie Moodle verwenden wollen, müssen Sie die Übungen im Übungstool entfernen';
|
||||
|
||||
$this->phrasen['lehre/gesamtnote']='Gesamtnote';
|
||||
$this->phrasen['lehre/studentenAbgabe']='Studierenden Abgabe';
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
<?php
|
||||
$this->phrasen['moodle/sieSindNichtAngemeldet']='Sie sind nicht angemeldet. Es wurde keine Benutzer UID gefunden';
|
||||
$this->phrasen['moodle/lvidMussUebergebenWerden']='lvid muss uebergeben werden';
|
||||
$this->phrasen['moodle/esWurdeKeinStudiensemesterUebergeben']='Es wurde kein Studiensemester uebergeben';
|
||||
$this->phrasen['moodle/esMussMindestensEineLehreinheitMarkiertSein']='Es muss mindestens eine Lehreinheit markiert sein';
|
||||
$this->phrasen['moodle/esWurdeKeineGueltigeIdUebergeben']='Es wurde keine oder eine ungueltige ID übergeben';
|
||||
$this->phrasen['moodle/testkursWurdeErfolgreichAngelegt']='Der Testkurs wurde erfolgreich angelegt';
|
||||
$this->phrasen['moodle/esExistiertBereitsEinTestkurs']='Es existiert bereits ein Testkurs';
|
||||
$this->phrasen['moodle/esIstBereitsEinMoodleKursVorhanden']='Es ist bereits ein Moodle Kurs für die gesamte LV vorhanden';
|
||||
$this->phrasen['moodle/moodleKursAnlegen']='Moodle Kurs anlegen';
|
||||
$this->phrasen['moodle/moodleKursAnlegen24']='Moodle 2.4 Kurs anlegen';
|
||||
$this->phrasen['moodle/kursbezeichnung']='Kursbezeichnung';
|
||||
$this->phrasen['moodle/gruppenUebernehmen']='Gruppen übernehmen';
|
||||
$this->phrasen['moodle/kursAnlegen']='Kurs anlegen';
|
||||
$this->phrasen['moodle/vorhandeneMoodleKurse']='Vorhandene Moodle Kurse für diese LV';
|
||||
$this->phrasen['moodle/testkurse']='Testkurse';
|
||||
$this->phrasen['moodle/klickenSieHierUmTestkursErstellen']='klicken Sie hier um einen Testkurs zu erstellen';
|
||||
$this->phrasen['moodle/fehlerBeimAnlegenAufgetreten']='Es ist ein Fehler beim Anlegen aufgetreten';
|
||||
$this->phrasen['moodle/artIstUnbekannt']='art ist unbekannt';
|
||||
$this->phrasen['moodle/datenWurdenAktualisiert']='Daten wurden aktualisiert';
|
||||
$this->phrasen['moodle/fehlerBeiDerLektorenZuordnung']='Fehler bei der Lektorenzuordnung';
|
||||
$this->phrasen['moodle/fehlerBeiDerStudentenZuordnung']='Fehler bei der Studentenzuordnung';
|
||||
$this->phrasen['moodle/testkurse24']='Testkurse für Moodle 2.4';
|
||||
$this->phrasen['moodle/klickenSieHierUmTestkursErstellen24']='klicken Sie hier um einen Testkurs für Moodle 2.4 zu erstellen';
|
||||
$this->phrasen['moodle/kursUebersicht']='Moodle - Kursübersicht';
|
||||
$this->phrasen['moodle/ungueltigeVersion']='Moodlekurs mit ungültiger Versionsnummer: %s';
|
||||
$this->phrasen['moodle/weiterleitung']='Sie werden automatisch weitergeleitet. Sollte die Weiterleitung nicht automatisch funktionieren klicken Sie <a href="%s">hier</a>';
|
||||
$this->phrasen['moodle/wartungschoice']='<center><br><br><b>Moodle Versionsauswahl</b>
|
||||
<br><br><br>
|
||||
Bitte wählen Sie die Moodle Version die Sie für Ihre Lehrveranstaltung verwenden möchten:
|
||||
<br><br>
|
||||
<a href="%1s">Moodle Version 1.9</a><br><br>
|
||||
<a href="%2s">Moodle Version 2.4</a><br>
|
||||
<br><br>
|
||||
Moodle befindet sich derzeit im Dualbetrieb.<br>
|
||||
Ab dem <b>Wintersemester 2014</b> wird Moodle nur noch in der <b>Version 2.4</b> angeboten.
|
||||
</center>';
|
||||
$this->phrasen['moodle/meineKurse']='Meine Kurse';
|
||||
$this->phrasen['moodle/vorhandeneKurse']='Vorhandene Kurse';
|
||||
?>
|
||||
@@ -21,12 +21,6 @@ $this->phrasen['lehre/feedback']='Feedback';
|
||||
|
||||
$this->phrasen['lehre/benotungstoolHandbuch']='Manual';
|
||||
$this->phrasen['lehre/kreuzerltool']='Assignment tool<br>("Checkbox"-Tool)';
|
||||
$this->phrasen['lehre/kreuzerltoolMitMoodleInfo']='You can\'t use the assignment tool together with Moodle.\nIf you wish to use the assignment tool, you have to delete your Moodle Course. Please contact the Support';
|
||||
|
||||
$this->phrasen['lehre/moodle']='Moodle';
|
||||
$this->phrasen['lehre/moodleWartung']='Maintenance';
|
||||
$this->phrasen['lehre/moodleHandbuch']='Manual';
|
||||
$this->phrasen['lehre/moodleMitKreuzerltoolInfo']='You can\'t use Moodle together with assignment tool.\nIf you wish to use Moodle, you have to delte the exercises from the assignment tool.';
|
||||
|
||||
$this->phrasen['lehre/gesamtnote']='Final Grade';
|
||||
$this->phrasen['lehre/studentenAbgabe']='Student Uploads';
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
<?php
|
||||
$this->phrasen['moodle/sieSindNichtAngemeldet']='You are not logged in. No matching UID was found';
|
||||
$this->phrasen['moodle/lvidMussUebergebenWerden']='lvid must be provided';
|
||||
$this->phrasen['moodle/esWurdeKeinStudiensemesterUebergeben']='The study semester was not provided';
|
||||
$this->phrasen['moodle/esMussMindestensEineLehreinheitMarkiertSein']='At least one teaching unit must be selected';
|
||||
$this->phrasen['moodle/esWurdeKeineGueltigeIdUebergeben']='The ID was not provided or was invalid';
|
||||
$this->phrasen['moodle/testkursWurdeErfolgreichAngelegt']='The test course was successfully created';
|
||||
$this->phrasen['moodle/esExistiertBereitsEinTestkurs']='A test course already exists';
|
||||
$this->phrasen['moodle/esIstBereitsEinMoodleKursVorhanden']='A Moodle course already exists for the total course';
|
||||
$this->phrasen['moodle/moodleKursAnlegen']='Create Moodle course';
|
||||
$this->phrasen['moodle/moodleKursAnlegen24']='Create Moodle 2.4 course';
|
||||
$this->phrasen['moodle/kursbezeichnung']='Course Name';
|
||||
$this->phrasen['moodle/gruppenUebernehmen']='Accept groups';
|
||||
$this->phrasen['moodle/kursAnlegen']='Create course';
|
||||
$this->phrasen['moodle/vorhandeneMoodleKurse']='Existing Moodle courses for this course';
|
||||
$this->phrasen['moodle/testkurse']='Test course';
|
||||
$this->phrasen['moodle/klickenSieHierUmTestkursErstellen']='click here to create a test course';
|
||||
$this->phrasen['moodle/fehlerBeimAnlegen']='An error occurred when creating the course';
|
||||
$this->phrasen['moodle/artIstUnbekannt']='unknown "art"';
|
||||
$this->phrasen['moodle/datenWurdenAktualisiert']='The data has been updated';
|
||||
$this->phrasen['moodle/fehlerBeiDerLektorenZuordnung']='Error assigning the lecturer';
|
||||
$this->phrasen['moodle/fehlerBeiDerStudentenZuordnung']='Error assigning the student';
|
||||
$this->phrasen['moodle/testkurse24']='Test courses for Moodle 2.4';
|
||||
$this->phrasen['moodle/klickenSieHierUmTestkursErstellen24']='click here to create a test course for Moodle 2.4.';
|
||||
$this->phrasen['moodle/kursUebersicht']='Moodle - Course Overview';
|
||||
$this->phrasen['moodle/ungueltigeVersion']='Moodle course with invalid version number: %s';
|
||||
$this->phrasen['moodle/weiterleitung']='You will be forwarded automatically. If you are not forwarded automatically, click <a href="%s">here</a>';
|
||||
$this->phrasen['moodle/wartungschoice']='<center><br><br><b>Moodle version selection</b>
|
||||
<br><br><br>
|
||||
Please select the Moodle version you want to use for your course:
|
||||
<br><br>
|
||||
<a href="%1s">Moodle Version 1.9</a><br><br>
|
||||
<a href="%2s">Moodle Version 2.4</a><br>
|
||||
<br><br>
|
||||
Two versions of Moodle are currently offered.<br>
|
||||
Starting <b>Winter Semester 2014</b>, Moodle will only be available in <b>version 2.4</b>.
|
||||
</center>';
|
||||
$this->phrasen['moodle/meineKurse']='My Courses';
|
||||
$this->phrasen['moodle/vorhandeneKurse']='Available Courses';
|
||||
?>
|
||||
@@ -12,15 +12,11 @@ $this->phrasen['lehre/gesamtnote']='Voto finale';
|
||||
$this->phrasen['lehre/keineLektorenZugeordnet']='Al momento non è assegnato alcun docente per questo insegnamento';
|
||||
$this->phrasen['lehre/keinMailverteiler']='Per il/i gruppo/i %s non esiste alcuna lista di destinatari! Gli studenti in questo/i gruppo/i non riceveranno alcuna mail.';
|
||||
$this->phrasen['lehre/kreuzerltool']='strumenti per esercitazioni<br>(tool con caselle da barrare)';
|
||||
$this->phrasen['lehre/moodleMitKreuzerltoolInfo']='Moodle non può essere utilizzato in contemporanea con lo strumento per esercitazioni. Se si vuole utilizzare Moodle bisogna annullare l’uso dello strumento per esercitazioni';
|
||||
$this->phrasen['lehre/lehrbeauftragter']='Docente incaricato';
|
||||
$this->phrasen['lehre/lehrveranstaltungsinformation']='Informazioni corso';
|
||||
$this->phrasen['lehre/leistungsuebersicht']='Panoramica per docenti';
|
||||
$this->phrasen['lehre/lvInfoBearbeiten']='Modificare';
|
||||
$this->phrasen['lehre/mail']='E-Mail agli studenti';
|
||||
$this->phrasen['lehre/moodle']='Moodle';
|
||||
$this->phrasen['lehre/moodleHandbuch']='Handbook';
|
||||
$this->phrasen['lehre/moodleWartung']='Attesa';
|
||||
$this->phrasen['lehre/newsgroups']='Newsgroups';
|
||||
$this->phrasen['lehre/nichtzugeteilt']='Lei non è stato/a associato/a a questo insegnamento';
|
||||
$this->phrasen['lehre/pinboard']='Bacheca';
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
<?php
|
||||
$this->phrasen['moodle/artIstUnbekannt']='';
|
||||
$this->phrasen['moodle/datenWurdenAktualisiert']='';
|
||||
$this->phrasen['moodle/esExistiertBereitsEinTestkurs']='';
|
||||
$this->phrasen['moodle/esIstBereitsEinMoodleKursVorhanden']='';
|
||||
$this->phrasen['moodle/esMussMindestensEineLehreinheitMarkiertSein']='';
|
||||
$this->phrasen['moodle/esWurdeKeineGueltigeIdUebergeben']='';
|
||||
$this->phrasen['moodle/esWurdeKeinStudiensemesterUebergeben']='';
|
||||
$this->phrasen['moodle/fehlerBeiDerLektorenZuordnung']='errore attribuzione lettore';
|
||||
$this->phrasen['moodle/fehlerBeiDerStudentenZuordnung']='errore attribuzione studenti';
|
||||
$this->phrasen['moodle/fehlerBeimAnlegenAufgetreten']='';
|
||||
$this->phrasen['moodle/gruppenUebernehmen']='';
|
||||
$this->phrasen['moodle/klickenSieHierUmTestkursErstellen']='';
|
||||
$this->phrasen['moodle/klickenSieHierUmTestkursErstellen24']='';
|
||||
$this->phrasen['moodle/kursAnlegen']='';
|
||||
$this->phrasen['moodle/kursbezeichnung']='';
|
||||
$this->phrasen['moodle/kursUebersicht']='';
|
||||
$this->phrasen['moodle/lvidMussUebergebenWerden']='';
|
||||
$this->phrasen['moodle/moodleKursAnlegen']='';
|
||||
$this->phrasen['moodle/moodleKursAnlegen24']='';
|
||||
$this->phrasen['moodle/sieSindNichtAngemeldet']='';
|
||||
$this->phrasen['moodle/testkurse']='corsi test';
|
||||
$this->phrasen['moodle/testkurse24']='corsi test per Moodle 2.4';
|
||||
$this->phrasen['moodle/testkursWurdeErfolgreichAngelegt']='';
|
||||
$this->phrasen['moodle/ungueltigeVersion']='';
|
||||
$this->phrasen['moodle/vorhandeneMoodleKurse']='';
|
||||
$this->phrasen['moodle/wartungschoice']='';
|
||||
$this->phrasen['moodle/weiterleitung']='';
|
||||
|
||||
?>
|
||||
@@ -70,7 +70,6 @@ function getLehrveranstaltungFromId($lehrveranstaltung_id, $semester, $authentif
|
||||
class foo{};
|
||||
$mitarbeiterlehreinheit = array(); // uids aller mitarbeiter
|
||||
$gruppelehreinheit = array(); // objekte aller gruppen
|
||||
$moodleArray = array(); // ids aller moodle kurse
|
||||
|
||||
// wenn semester nicht übergeben wurde, gib nur bezeichnung und lehreverzeichnis aus
|
||||
if($semester != '')
|
||||
@@ -102,16 +101,11 @@ function getLehrveranstaltungFromId($lehrveranstaltung_id, $semester, $authentif
|
||||
$gruppelehreinheit[] = $grp;
|
||||
}
|
||||
}
|
||||
|
||||
// alle moodle kurse einer lv
|
||||
$moodleArray = $lv->getMoodleKurse($lehrveranstaltung_id, $semester);
|
||||
|
||||
}
|
||||
|
||||
$LvObject = new foo();
|
||||
$LvObject->bezeichnung = $lv->bezeichnung;
|
||||
$LvObject->lehreverzeichnis = $lv->lehreverzeichnis;
|
||||
$LvObject->moodle_id = $moodleArray;
|
||||
$LvObject->lektoren = $mitarbeiterlehreinheit;
|
||||
$LvObject->gruppen= $gruppelehreinheit;
|
||||
|
||||
@@ -164,7 +158,6 @@ function getLehrveranstaltungFromStudiengang($studiengang, $semester, $ausbildun
|
||||
{
|
||||
$mitarbeiterlehreinheit = array(); // uids aller mitarbeiter der lehreinheit
|
||||
$gruppelehreinheit = array(); // ids aller grupper der lehreinheit
|
||||
$moodleArray = array();
|
||||
|
||||
// hole alle Lehreinheiten von Lehrveranstaltung
|
||||
$lehreinheit = new lehreinheit();
|
||||
@@ -196,14 +189,11 @@ function getLehrveranstaltungFromStudiengang($studiengang, $semester, $ausbildun
|
||||
$gruppelehreinheit[] = $grp;
|
||||
}
|
||||
}
|
||||
// alle moodlekurse der lehrveranstaltung
|
||||
$moodleArray = $lv->getMoodleKurse($lv->lehrveranstaltung_id, $semester);
|
||||
|
||||
// LV Object für Rückgabe
|
||||
$lehrveranstaltungen = new bar();
|
||||
$lehrveranstaltungen->bezeichnung = $lv->bezeichnung;
|
||||
$lehrveranstaltungen->lehreverzeichnis = $lv->lehreverzeichnis;
|
||||
$lehrveranstaltungen->moodle_id = $moodleArray;
|
||||
$lehrveranstaltungen->lektoren = $mitarbeiterlehreinheit;
|
||||
$lehrveranstaltungen->gruppen = $gruppelehreinheit;
|
||||
|
||||
|
||||
@@ -24,7 +24,6 @@ echo "<?xml version='1.0' encoding='utf-8' ?>";
|
||||
<s:complexType name="GetLehrveranstaltungFromId">
|
||||
<s:element minOccurs="0" maxOccurs="1" name="bezeichnung" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="lehreverzeichnis" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="moodle_id" type="tns:ArrayOfMoodleItem"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="lektoren" type="tns:ArrayOfLektorenItem"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="gruppen" type="tns:ArrayOfGruppenItem"/>
|
||||
</s:complexType>
|
||||
@@ -43,7 +42,6 @@ echo "<?xml version='1.0' encoding='utf-8' ?>";
|
||||
<s:complexType name="GetLehrveranstaltungFromStudiengang">
|
||||
<s:element minOccurs="0" maxOccurs="1" name="bezeichnung" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="lehreverzeichnis" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="moodle_id" type="tns:ArrayOfMoodleItem"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="lektoren" type="tns:ArrayOfLektorenItem"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="gruppen" type="tns:ArrayOfGruppenItem"/>
|
||||
</s:complexType>
|
||||
@@ -80,16 +78,6 @@ echo "<?xml version='1.0' encoding='utf-8' ?>";
|
||||
<s:element minOccurs="0" maxOccurs="1" name="gruppe_kurzbz" type="s:string"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:complexType name="ArrayOfMoodleItem">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="unbounded" name="MoodleItem" nillable="true" type="tns:MoodleItem"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:complexType name="MoodleItem">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="moodle_id" type="s:string"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
|
||||
<wsdl:portType name="ConfigPortType">
|
||||
<wsdl:operation name="getLehrveranstaltungFromId">
|
||||
|
||||
@@ -411,8 +411,6 @@ $tabellen=array(
|
||||
"lehre.tbl_lvangebot" => array("lvangebot_id","lehrveranstaltung_id","studiensemester_kurzbz","gruppe_kurzbz","incomingplaetze","gesamtplaetze","anmeldefenster_start","anmeldefenster_ende","insertamum","insertvon","updateamum","updatevon"),
|
||||
"lehre.tbl_lvregel" => array("lvregel_id","lvregeltyp_kurzbz","operator","parameter","lvregel_id_parent","lehrveranstaltung_id","studienplan_lehrveranstaltung_id","insertamum","insertvon","updateamum","updatevon"),
|
||||
"lehre.tbl_lvregeltyp" => array("lvregeltyp_kurzbz","bezeichnung"),
|
||||
"lehre.tbl_moodle" => array("lehrveranstaltung_id","lehreinheit_id","moodle_id","mdl_course_id","studiensemester_kurzbz","gruppen","insertamum","insertvon","moodle_version"),
|
||||
"lehre.tbl_moodle_version" => array("moodle_version","bezeichnung","pfad"),
|
||||
"lehre.tbl_notenschluessel" => array("notenschluessel_kurzbz","bezeichnung"),
|
||||
"lehre.tbl_notenschluesselaufteilung" => array("notenschluesselaufteilung_id","notenschluessel_kurzbz","note","punkte"),
|
||||
"lehre.tbl_notenschluesselzuordnung" => array("notenschluesselzuordnung_id","notenschluessel_kurzbz","lehrveranstaltung_id","studienplan_id","oe_kurzbz","studiensemester_kurzbz"),
|
||||
|
||||
@@ -1103,7 +1103,7 @@ $error_msg='';
|
||||
ob_flush();
|
||||
|
||||
$sql_query = "SELECT distinct mitarbeiter_uid uid
|
||||
from lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_moodle ,campus.vw_lehreinheit
|
||||
from lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, addon.tbl_moodle ,campus.vw_lehreinheit
|
||||
where tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id
|
||||
and vw_lehreinheit.studiengang_kz=tbl_lehrveranstaltung.studiengang_kz
|
||||
and vw_lehreinheit.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
FHComplete Moodle 2.4 Webservice Plugin
|
||||
=======================================
|
||||
|
||||
Mit diesem Plugin wird Moodle 2.4 um zusätzliche Webservices erweitert
|
||||
die für die Syncronisation mit FHComplete benötigt werden.
|
||||
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
- ) Zur Installation des Plugins muss der gesamte Ordner fhcompletews in den
|
||||
Ordner local der Moodleinstallation kopiert werden.
|
||||
|
||||
zB: cp /var/www/fhcomplete/system/moodlePlugin/fhcompletews /var/www/moodle/local/
|
||||
|
||||
- ) Danach muss die Moodle Startseite aufgerufen werden.
|
||||
Das neue Plugin wird automatisch erkannt uns installiert.
|
||||
|
||||
Sonstiges
|
||||
=========
|
||||
|
||||
Falls Änderungen am Plugin durchgeführt werden, muss in version.php die Versionsnummer erhöht werden
|
||||
damit Moodle die Änderung an dem Plugin erkennt und ein Update durchführt.
|
||||
@@ -1,53 +0,0 @@
|
||||
<?php
|
||||
|
||||
// Moodle 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 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* Web service local plugin template external functions and service definitions.
|
||||
*
|
||||
* @package localwstemplate
|
||||
* @copyright 2011 Jerome Mouneyrac
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
// We defined the web service functions to install.
|
||||
$functions = array(
|
||||
'fhcomplete_get_course_grades' => array(
|
||||
'classname' => 'local_fhcompletews_external',
|
||||
'methodname' => 'get_course_grades',
|
||||
'classpath' => 'local/fhcompletews/externallib.php',
|
||||
'description' => 'Get Grades of a course',
|
||||
'type' => 'read',
|
||||
'capabilities'=> 'moodle/course:update,moodle/course:viewhiddencourses',
|
||||
),
|
||||
|
||||
'fhcomplete_courses_by_shortname' => array(
|
||||
'classname' => 'local_fhcompletews_external',
|
||||
'methodname' => 'get_courses_by_shortname',
|
||||
'classpath' => 'local/fhcompletews/externallib.php',
|
||||
'description' => 'Get course contents by Shortname',
|
||||
'type' => 'read',
|
||||
'capabilities'=> 'moodle/course:update,moodle/course:viewhiddencourses',
|
||||
),
|
||||
|
||||
'fhcomplete_user_get_users' => array(
|
||||
'classname' => 'local_fhcompletews_external',
|
||||
'methodname' => 'get_users',
|
||||
'classpath' => 'local/fhcompletews/externallib.php',
|
||||
'description' => 'get Users by Criteria',
|
||||
'type' => 'read',
|
||||
'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update',
|
||||
),
|
||||
|
||||
);
|
||||
@@ -1,642 +0,0 @@
|
||||
<?php
|
||||
// Moodle 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 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* External Web Service Template
|
||||
*
|
||||
* @package localwstemplate
|
||||
* @copyright 2011 Moodle Pty Ltd (http://moodle.com)
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
require_once($CFG->libdir . "/externallib.php");
|
||||
|
||||
class local_fhcompletews_external extends external_api
|
||||
{
|
||||
|
||||
/**************************************************
|
||||
* Webservice get_course_grades
|
||||
*
|
||||
* Laedt die Noten eines Kurses
|
||||
**************************************************/
|
||||
public static function get_course_grades_parameters()
|
||||
{
|
||||
return new external_function_parameters(
|
||||
array(
|
||||
'courseid' => new external_value(PARAM_INT, 'Moodle CourseID'),
|
||||
'type' => new external_value(PARAM_INT,'Type 1=Punkte, 2=Prozent, 3=Endnote lt Skala')
|
||||
), 'Get Course Grades'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get course Grades
|
||||
* @param int courseid
|
||||
* @return array
|
||||
*/
|
||||
public static function get_course_grades($courseid, $type)
|
||||
{
|
||||
global $CFG, $DB;
|
||||
require_once($CFG->dirroot . "/course/lib.php");
|
||||
require_once($CFG->dirroot.'/grade/export/lib.php');
|
||||
|
||||
//validate parameter
|
||||
$params = self::validate_parameters(self::get_course_grades_parameters(),
|
||||
array('courseid' => $courseid, 'type'=>$type));
|
||||
|
||||
$notenart = $type;
|
||||
//$notenart=3; // 1=Punkte, 2=Prozent; 3=Endnote nach Skala
|
||||
$gui=array();
|
||||
$final_id='';
|
||||
$data = array();
|
||||
|
||||
// Kursdaten Laden
|
||||
if (!$course = $DB->get_record('course', array('id'=>$courseid)))
|
||||
{
|
||||
throw new moodle_exception('Course not found', '', '', null, 'The course ' . $courseid . ' is not found');
|
||||
return false;
|
||||
}
|
||||
|
||||
$id=$course->id;
|
||||
$kursname=$course->fullname;
|
||||
$shortname=$course->shortname;
|
||||
|
||||
//ODS Notenexport starten
|
||||
require_login($course);
|
||||
$context = get_context_instance(CONTEXT_COURSE, $courseid);
|
||||
require_once($CFG->dirroot.'/grade/export/ods/grade_export_ods.php');
|
||||
|
||||
if (!$export = new grade_export_ods($course, 0, 0, false, false, $notenart, 2))
|
||||
{
|
||||
throw new moodle_exception('Fehler', '', '', null, "Moodle-Kurs ".$id." ".$shortname." - keine Export Information gefunden");
|
||||
return false;
|
||||
}
|
||||
|
||||
$grad =$export->columns;
|
||||
|
||||
// Im Export sind die Noten fuer alle Abgaben, Quiz, etc enthalten
|
||||
// Wir brauchen hier nur die Gesamtnote fuer die ganzen Kurs
|
||||
foreach ($export->columns as $key=>$grade_item)
|
||||
{
|
||||
// Gesamtnote hat den itemtype "course"
|
||||
if($grade_item->itemtype=='course')
|
||||
{
|
||||
$final_id=$key;
|
||||
$finalitem = $grade_item;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if($final_id=='')
|
||||
{
|
||||
throw new moodle_exception('Fehler', '', '', null,"Moodle-Kurs ".$id." ".$shortname." - keine Endnote gefunden");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Liste mit allen Studierenden des Kurses durchlaufen
|
||||
$geub = new grade_export_update_buffer();
|
||||
$gui = new graded_users_iterator($export->course, array($final_id=>$finalitem), $export->groupid); //$export->columns
|
||||
|
||||
$gui->init();
|
||||
$kursgrad =array();
|
||||
|
||||
while ($userdata = $gui->next_user())
|
||||
{
|
||||
$user_item=array();
|
||||
$user = $userdata->user;
|
||||
$user_item['vorname']=$user->firstname;
|
||||
$user_item['nachname']=$user->lastname;
|
||||
$user_item['idnummer']=$user->idnumber;
|
||||
$user_item['username']=$user->username;
|
||||
|
||||
// Aus den vorhanden Noten wird die Endnote fuer den Kurs herausgesucht
|
||||
if(isset($userdata->grades[$final_id]))
|
||||
{
|
||||
$gradestr = $export->format_grade($userdata->grades[$final_id]);
|
||||
$user_item['note']=$gradestr;
|
||||
|
||||
// Wenn Prozent dann Prozentzeichen entfernen
|
||||
if(strpos($user_item['note'],'%')!==false)
|
||||
$user_item['note']=trim(str_replace('%','',$user_item['note']));
|
||||
|
||||
// nur zurueckliefern wenn eine Note gefunden wurde und diese nicht '-' ist
|
||||
if($user_item['note']!='-')
|
||||
$data[]=$user_item;
|
||||
}
|
||||
}
|
||||
|
||||
$gui->close();
|
||||
$geub->close();
|
||||
|
||||
if (count($data)==0)
|
||||
{
|
||||
throw new moodle_exception('Fehler', '', '', null,"Moodle-Kurs ".$id." ".$shortname." - keine Kurs-Noten Informationen gefunden ");
|
||||
return false;
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns description of method result value
|
||||
* @return external_description
|
||||
*/
|
||||
public static function get_course_grades_returns()
|
||||
{
|
||||
return new external_multiple_structure(
|
||||
new external_single_structure(
|
||||
array(
|
||||
'vorname' => new external_value(PARAM_TEXT, 'vorname'),
|
||||
'nachname' => new external_value(PARAM_TEXT, 'nachname'),
|
||||
'idnummer' => new external_value(PARAM_TEXT, 'idnummer'),
|
||||
'username' => new external_value(PARAM_TEXT, 'username'),
|
||||
'note' => new external_value(PARAM_TEXT, 'note'),
|
||||
), 'course'
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**************************************************
|
||||
* Webservice get_courses_by_shortname
|
||||
*
|
||||
* Laedt Kurse anhand der Kurzbezeichnung
|
||||
**************************************************/
|
||||
public static function get_courses_by_shortname_parameters()
|
||||
{
|
||||
return new external_function_parameters(
|
||||
array('options' => new external_single_structure(
|
||||
array('shortnames' => new external_multiple_structure(
|
||||
new external_value(PARAM_RAW, 'Short Name')
|
||||
, 'List of short names. If empty return all courses
|
||||
except front page course.',
|
||||
VALUE_OPTIONAL)
|
||||
), 'options - operator OR is used', VALUE_DEFAULT, array())
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get courses
|
||||
* @param array $options
|
||||
* @return array
|
||||
*/
|
||||
public static function get_courses_by_shortname($options)
|
||||
{
|
||||
global $CFG, $DB;
|
||||
require_once($CFG->dirroot . "/course/lib.php");
|
||||
|
||||
//validate parameter
|
||||
$params = self::validate_parameters(self::get_courses_by_shortname_parameters(),
|
||||
array('options' => $options));
|
||||
|
||||
//retrieve courses
|
||||
if (!key_exists('shortnames', $params['options'])
|
||||
or empty($params['options']['shortnames'])) {
|
||||
$courses = $DB->get_records('course');
|
||||
} else {
|
||||
$courses = $DB->get_records_list('course', 'shortname', $params['options']['shortnames']);
|
||||
}
|
||||
|
||||
//create return value
|
||||
$coursesinfo = array();
|
||||
foreach ($courses as $course)
|
||||
{
|
||||
|
||||
// now security checks
|
||||
$context = get_context_instance(CONTEXT_COURSE, $course->id);
|
||||
try
|
||||
{
|
||||
self::validate_context($context);
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$exceptionparam = new stdClass();
|
||||
$exceptionparam->message = $e->getMessage();
|
||||
$exceptionparam->shortname = $course->shortname;
|
||||
throw new moodle_exception(
|
||||
get_string('errorcoursecontextnotvalid', 'webservice', $exceptionparam));
|
||||
}
|
||||
require_capability('moodle/course:view', $context);
|
||||
|
||||
$courseinfo = array();
|
||||
$courseinfo['id'] = $course->id;
|
||||
$courseinfo['fullname'] = $course->fullname;
|
||||
$courseinfo['shortname'] = $course->shortname;
|
||||
$courseinfo['categoryid'] = $course->category;
|
||||
$courseinfo['summary'] = $course->summary;
|
||||
$courseinfo['summaryformat'] = $course->summaryformat;
|
||||
$courseinfo['format'] = $course->format;
|
||||
$courseinfo['startdate'] = $course->startdate;
|
||||
$courseinfo['numsections'] = $course->numsections;
|
||||
|
||||
//some field should be returned only if the user has update permission
|
||||
$courseadmin = has_capability('moodle/course:update', $context);
|
||||
if ($courseadmin)
|
||||
{
|
||||
$courseinfo['categorysortorder'] = $course->sortorder;
|
||||
$courseinfo['idnumber'] = $course->idnumber;
|
||||
$courseinfo['showgrades'] = $course->showgrades;
|
||||
$courseinfo['showreports'] = $course->showreports;
|
||||
$courseinfo['newsitems'] = $course->newsitems;
|
||||
$courseinfo['visible'] = $course->visible;
|
||||
$courseinfo['maxbytes'] = $course->maxbytes;
|
||||
$courseinfo['hiddensections'] = $course->hiddensections;
|
||||
$courseinfo['groupmode'] = $course->groupmode;
|
||||
$courseinfo['groupmodeforce'] = $course->groupmodeforce;
|
||||
$courseinfo['defaultgroupingid'] = $course->defaultgroupingid;
|
||||
$courseinfo['lang'] = $course->lang;
|
||||
$courseinfo['timecreated'] = $course->timecreated;
|
||||
$courseinfo['timemodified'] = $course->timemodified;
|
||||
$courseinfo['forcetheme'] = $course->theme;
|
||||
$courseinfo['enablecompletion'] = $course->enablecompletion;
|
||||
$courseinfo['completionstartonenrol'] = $course->completionstartonenrol;
|
||||
$courseinfo['completionnotify'] = $course->completionnotify;
|
||||
}
|
||||
|
||||
if ($courseadmin or $course->visible
|
||||
or has_capability('moodle/course:viewhiddencourses', $context))
|
||||
{
|
||||
$coursesinfo[] = $courseinfo;
|
||||
}
|
||||
}
|
||||
|
||||
return $coursesinfo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns description of method result value
|
||||
* @return external_description
|
||||
*/
|
||||
public static function get_courses_by_shortname_returns()
|
||||
{
|
||||
return new external_multiple_structure(
|
||||
new external_single_structure(
|
||||
array(
|
||||
'id' => new external_value(PARAM_INT, 'course id'),
|
||||
'shortname' => new external_value(PARAM_TEXT, 'course short name'),
|
||||
'categoryid' => new external_value(PARAM_INT, 'category id'),
|
||||
'categorysortorder' => new external_value(PARAM_INT,
|
||||
'sort order into the category', VALUE_OPTIONAL),
|
||||
'fullname' => new external_value(PARAM_TEXT, 'full name'),
|
||||
'idnumber' => new external_value(PARAM_RAW, 'id number', VALUE_OPTIONAL),
|
||||
'summary' => new external_value(PARAM_RAW, 'summary'),
|
||||
'summaryformat' => new external_value(PARAM_INT,
|
||||
'the summary text Moodle format'),
|
||||
'format' => new external_value(PARAM_ALPHANUMEXT,
|
||||
'course format: weeks, topics, social, site,..'),
|
||||
'showgrades' => new external_value(PARAM_INT,
|
||||
'1 if grades are shown, otherwise 0', VALUE_OPTIONAL),
|
||||
'newsitems' => new external_value(PARAM_INT,
|
||||
'number of recent items appearing on the course page', VALUE_OPTIONAL),
|
||||
'startdate' => new external_value(PARAM_INT,
|
||||
'timestamp when the course start'),
|
||||
'numsections' => new external_value(PARAM_INT, 'number of weeks/topics'),
|
||||
'maxbytes' => new external_value(PARAM_INT,
|
||||
'largest size of file that can be uploaded into the course',
|
||||
VALUE_OPTIONAL),
|
||||
'showreports' => new external_value(PARAM_INT,
|
||||
'are activity report shown (yes = 1, no =0)', VALUE_OPTIONAL),
|
||||
'visible' => new external_value(PARAM_INT,
|
||||
'1: available to student, 0:not available', VALUE_OPTIONAL),
|
||||
'hiddensections' => new external_value(PARAM_INT,
|
||||
'How the hidden sections in the course are displayed to students',
|
||||
VALUE_OPTIONAL),
|
||||
'groupmode' => new external_value(PARAM_INT, 'no group, separate, visible',
|
||||
VALUE_OPTIONAL),
|
||||
'groupmodeforce' => new external_value(PARAM_INT, '1: yes, 0: no',
|
||||
VALUE_OPTIONAL),
|
||||
'defaultgroupingid' => new external_value(PARAM_INT, 'default grouping id',
|
||||
VALUE_OPTIONAL),
|
||||
'timecreated' => new external_value(PARAM_INT,
|
||||
'timestamp when the course have been created', VALUE_OPTIONAL),
|
||||
'timemodified' => new external_value(PARAM_INT,
|
||||
'timestamp when the course have been modified', VALUE_OPTIONAL),
|
||||
'enablecompletion' => new external_value(PARAM_INT,
|
||||
'Enabled, control via completion and activity settings. Disbaled,
|
||||
not shown in activity settings.',
|
||||
VALUE_OPTIONAL),
|
||||
'completionstartonenrol' => new external_value(PARAM_INT,
|
||||
'1: begin tracking a student\'s progress in course completion
|
||||
after course enrolment. 0: does not',
|
||||
VALUE_OPTIONAL),
|
||||
'completionnotify' => new external_value(PARAM_INT,
|
||||
'1: yes 0: no', VALUE_OPTIONAL),
|
||||
'lang' => new external_value(PARAM_ALPHANUMEXT,
|
||||
'forced course language', VALUE_OPTIONAL),
|
||||
'forcetheme' => new external_value(PARAM_ALPHANUMEXT,
|
||||
'name of the force theme', VALUE_OPTIONAL),
|
||||
), 'course'
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* get_users - Laedt User Anhand des Usernamens
|
||||
* Backport von Moodle 2.5
|
||||
* Ab Moodle 2.5 sollte dieses Webservice bereits integriert sein
|
||||
***********************************************************************/
|
||||
|
||||
|
||||
/**
|
||||
* Returns description of get_users() parameters.
|
||||
*
|
||||
* @return external_function_parameters
|
||||
* @since Moodle 2.5
|
||||
*/
|
||||
public static function get_users_parameters() {
|
||||
return new external_function_parameters(
|
||||
array(
|
||||
'criteria' => new external_multiple_structure(
|
||||
new external_single_structure(
|
||||
array(
|
||||
'key' => new external_value(PARAM_ALPHA, 'the user column to search, expected keys (value format) are:
|
||||
"id" (int) matching user id,
|
||||
"lastname" (string) user last name (Note: you can use % for searching but it may be considerably slower!),
|
||||
"firstname" (string) user first name (Note: you can use % for searching but it may be considerably slower!),
|
||||
"idnumber" (string) matching user idnumber,
|
||||
"username" (string) matching user username,
|
||||
"email" (string) user email (Note: you can use % for searching but it may be considerably slower!),
|
||||
"auth" (string) matching user auth plugin'),
|
||||
'value' => new external_value(PARAM_RAW, 'the value to search')
|
||||
)
|
||||
), 'the key/value pairs to be considered in user search. Values can not be empty.
|
||||
Specify different keys only once (fullname => \'user1\', auth => \'manual\', ...) -
|
||||
key occurences are forbidden.
|
||||
The search is executed with AND operator on the criterias. Invalid criterias (keys) are ignored,
|
||||
the search is still executed on the valid criterias.
|
||||
You can search without criteria, but the function is not designed for it.
|
||||
It could very slow or timeout. The function is designed to search some specific users.'
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve matching user.
|
||||
*
|
||||
* @param array $criteria the allowed array keys are id/lastname/firstname/idnumber/username/email/auth.
|
||||
* @return array An array of arrays containing user profiles.
|
||||
* @since Moodle 2.5
|
||||
*/
|
||||
public static function get_users($criteria = array()) {
|
||||
global $CFG, $USER, $DB;
|
||||
|
||||
require_once($CFG->dirroot . "/user/lib.php");
|
||||
|
||||
$params = self::validate_parameters(self::get_users_parameters(),
|
||||
array('criteria' => $criteria));
|
||||
|
||||
// Validate the criteria and retrieve the users.
|
||||
$users = array();
|
||||
$warnings = array();
|
||||
$sqlparams = array();
|
||||
$usedkeys = array();
|
||||
|
||||
// Do not retrieve deleted users.
|
||||
$sql = ' deleted = 0';
|
||||
|
||||
foreach ($params['criteria'] as $criteriaindex => $criteria) {
|
||||
|
||||
// Check that the criteria has never been used.
|
||||
if (array_key_exists($criteria['key'], $usedkeys)) {
|
||||
throw new moodle_exception('keyalreadyset', '', '', null, 'The key ' . $criteria['key'] . ' can only be sent once');
|
||||
} else {
|
||||
$usedkeys[$criteria['key']] = true;
|
||||
}
|
||||
|
||||
$invalidcriteria = false;
|
||||
// Clean the parameters.
|
||||
$paramtype = PARAM_RAW;
|
||||
switch ($criteria['key']) {
|
||||
case 'id':
|
||||
$paramtype = PARAM_INT;
|
||||
break;
|
||||
case 'idnumber':
|
||||
$paramtype = PARAM_RAW;
|
||||
break;
|
||||
case 'username':
|
||||
$paramtype = PARAM_RAW;
|
||||
break;
|
||||
case 'email':
|
||||
// We use PARAM_RAW to allow searches with %.
|
||||
$paramtype = PARAM_RAW;
|
||||
break;
|
||||
case 'auth':
|
||||
$paramtype = PARAM_AUTH;
|
||||
break;
|
||||
case 'lastname':
|
||||
case 'firstname':
|
||||
$paramtype = PARAM_TEXT;
|
||||
break;
|
||||
default:
|
||||
// Send back a warning that this search key is not supported in this version.
|
||||
// This warning will make the function extandable without breaking clients.
|
||||
$warnings[] = array(
|
||||
'item' => $criteria['key'],
|
||||
'warningcode' => 'invalidfieldparameter',
|
||||
'message' => 'The search key \'' . $criteria['key'] . '\' is not supported, look at the web service documentation'
|
||||
);
|
||||
// Do not add this invalid criteria to the created SQL request.
|
||||
$invalidcriteria = true;
|
||||
unset($params['criteria'][$criteriaindex]);
|
||||
break;
|
||||
}
|
||||
|
||||
if (!$invalidcriteria) {
|
||||
$cleanedvalue = clean_param($criteria['value'], $paramtype);
|
||||
|
||||
$sql .= ' AND ';
|
||||
|
||||
// Create the SQL.
|
||||
switch ($criteria['key']) {
|
||||
case 'id':
|
||||
case 'idnumber':
|
||||
case 'username':
|
||||
case 'auth':
|
||||
$sql .= $criteria['key'] . ' = :' . $criteria['key'];
|
||||
$sqlparams[$criteria['key']] = $cleanedvalue;
|
||||
break;
|
||||
case 'email':
|
||||
case 'lastname':
|
||||
case 'firstname':
|
||||
$sql .= $DB->sql_like($criteria['key'], ':' . $criteria['key'], false);
|
||||
$sqlparams[$criteria['key']] = $cleanedvalue;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$users = $DB->get_records_select('user', $sql, $sqlparams, 'id ASC');
|
||||
|
||||
// Finally retrieve each users information.
|
||||
$returnedusers = array();
|
||||
foreach ($users as $user) {
|
||||
$userdetails = user_get_user_details_courses($user);
|
||||
|
||||
// Return the user only if all the searched fields are returned.
|
||||
// Otherwise it means that the $USER was not allowed to search the returned user.
|
||||
if (!empty($userdetails)) {
|
||||
$validuser = true;
|
||||
|
||||
foreach($params['criteria'] as $criteria) {
|
||||
if (empty($userdetails[$criteria['key']])) {
|
||||
$validuser = false;
|
||||
}
|
||||
}
|
||||
|
||||
if ($validuser) {
|
||||
$returnedusers[] = $userdetails;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return array('users' => $returnedusers, 'warnings' => $warnings);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns description of get_users result value.
|
||||
*
|
||||
* @return external_description
|
||||
* @since Moodle 2.5
|
||||
*/
|
||||
public static function get_users_returns() {
|
||||
return new external_single_structure(
|
||||
array('users' => new external_multiple_structure(
|
||||
self::user_description()
|
||||
),
|
||||
'warnings' => new external_warnings('always set to \'key\'', 'faulty key name')
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create user return value description.
|
||||
*
|
||||
* @param array $additionalfields some additional field
|
||||
* @return single_structure_description
|
||||
*/
|
||||
public static function user_description($additionalfields = array()) {
|
||||
$userfields = array(
|
||||
'id' => new external_value(PARAM_INT, 'ID of the user'),
|
||||
'username' => new external_value(PARAM_RAW, 'The username', VALUE_OPTIONAL),
|
||||
'firstname' => new external_value(PARAM_NOTAGS, 'The first name(s) of the user', VALUE_OPTIONAL),
|
||||
'lastname' => new external_value(PARAM_NOTAGS, 'The family name of the user', VALUE_OPTIONAL),
|
||||
'fullname' => new external_value(PARAM_NOTAGS, 'The fullname of the user'),
|
||||
'email' => new external_value(PARAM_TEXT, 'An email address - allow email as root@localhost', VALUE_OPTIONAL),
|
||||
'address' => new external_value(PARAM_TEXT, 'Postal address', VALUE_OPTIONAL),
|
||||
'phone1' => new external_value(PARAM_NOTAGS, 'Phone 1', VALUE_OPTIONAL),
|
||||
'phone2' => new external_value(PARAM_NOTAGS, 'Phone 2', VALUE_OPTIONAL),
|
||||
'icq' => new external_value(PARAM_NOTAGS, 'icq number', VALUE_OPTIONAL),
|
||||
'skype' => new external_value(PARAM_NOTAGS, 'skype id', VALUE_OPTIONAL),
|
||||
'yahoo' => new external_value(PARAM_NOTAGS, 'yahoo id', VALUE_OPTIONAL),
|
||||
'aim' => new external_value(PARAM_NOTAGS, 'aim id', VALUE_OPTIONAL),
|
||||
'msn' => new external_value(PARAM_NOTAGS, 'msn number', VALUE_OPTIONAL),
|
||||
'department' => new external_value(PARAM_TEXT, 'department', VALUE_OPTIONAL),
|
||||
'institution' => new external_value(PARAM_TEXT, 'institution', VALUE_OPTIONAL),
|
||||
'idnumber' => new external_value(PARAM_RAW, 'An arbitrary ID code number perhaps from the institution', VALUE_OPTIONAL),
|
||||
'interests' => new external_value(PARAM_TEXT, 'user interests (separated by commas)', VALUE_OPTIONAL),
|
||||
'firstaccess' => new external_value(PARAM_INT, 'first access to the site (0 if never)', VALUE_OPTIONAL),
|
||||
'lastaccess' => new external_value(PARAM_INT, 'last access to the site (0 if never)', VALUE_OPTIONAL),
|
||||
'auth' => new external_value(PARAM_PLUGIN, 'Auth plugins include manual, ldap, imap, etc', VALUE_OPTIONAL),
|
||||
'confirmed' => new external_value(PARAM_INT, 'Active user: 1 if confirmed, 0 otherwise', VALUE_OPTIONAL),
|
||||
'lang' => new external_value(PARAM_SAFEDIR, 'Language code such as "en", must exist on server', VALUE_OPTIONAL),
|
||||
'theme' => new external_value(PARAM_PLUGIN, 'Theme name such as "standard", must exist on server', VALUE_OPTIONAL),
|
||||
'timezone' => new external_value(PARAM_TIMEZONE, 'Timezone code such as Australia/Perth, or 99 for default', VALUE_OPTIONAL),
|
||||
'mailformat' => new external_value(PARAM_INT, 'Mail format code is 0 for plain text, 1 for HTML etc', VALUE_OPTIONAL),
|
||||
'description' => new external_value(PARAM_RAW, 'User profile description', VALUE_OPTIONAL),
|
||||
'descriptionformat' => new external_format_value('description', VALUE_OPTIONAL),
|
||||
'city' => new external_value(PARAM_NOTAGS, 'Home city of the user', VALUE_OPTIONAL),
|
||||
'url' => new external_value(PARAM_URL, 'URL of the user', VALUE_OPTIONAL),
|
||||
'country' => new external_value(PARAM_ALPHA, 'Home country code of the user, such as AU or CZ', VALUE_OPTIONAL),
|
||||
'profileimageurlsmall' => new external_value(PARAM_URL, 'User image profile URL - small version'),
|
||||
'profileimageurl' => new external_value(PARAM_URL, 'User image profile URL - big version'),
|
||||
'customfields' => new external_multiple_structure(
|
||||
new external_single_structure(
|
||||
array(
|
||||
'type' => new external_value(PARAM_ALPHANUMEXT, 'The type of the custom field - text field, checkbox...'),
|
||||
'value' => new external_value(PARAM_RAW, 'The value of the custom field'),
|
||||
'name' => new external_value(PARAM_RAW, 'The name of the custom field'),
|
||||
'shortname' => new external_value(PARAM_RAW, 'The shortname of the custom field - to be able to build the field class in the code'),
|
||||
)
|
||||
), 'User custom fields (also known as user profile fields)', VALUE_OPTIONAL),
|
||||
'preferences' => new external_multiple_structure(
|
||||
new external_single_structure(
|
||||
array(
|
||||
'name' => new external_value(PARAM_ALPHANUMEXT, 'The name of the preferences'),
|
||||
'value' => new external_value(PARAM_RAW, 'The value of the custom field'),
|
||||
)
|
||||
), 'Users preferences', VALUE_OPTIONAL)
|
||||
);
|
||||
if (!empty($additionalfields)) {
|
||||
$userfields = array_merge($userfields, $additionalfields);
|
||||
}
|
||||
return new external_single_structure($userfields);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Tries to obtain user details, either recurring directly to the user's system profile
|
||||
* or through one of the user's course enrollments (course profile).
|
||||
*
|
||||
* @param object $user The user.
|
||||
* @return array if unsuccessful or the allowed user details.
|
||||
*/
|
||||
function user_get_user_details_courses($user) {
|
||||
global $USER;
|
||||
$userdetails = null;
|
||||
|
||||
// Get the courses that the user is enrolled in (only active).
|
||||
$courses = enrol_get_users_courses($user->id, true);
|
||||
|
||||
$systemprofile = false;
|
||||
if (can_view_user_details_cap($user) || ($user->id == $USER->id) || has_coursecontact_role($user->id)) {
|
||||
$systemprofile = true;
|
||||
}
|
||||
|
||||
// Try using system profile.
|
||||
if ($systemprofile) {
|
||||
$userdetails = user_get_user_details($user, null);
|
||||
} else {
|
||||
// Try through course profile.
|
||||
foreach ($courses as $course) {
|
||||
if ($can_view_user_details_cap($user, $course) || ($user->id == $USER->id) || has_coursecontact_role($user->id)) {
|
||||
$userdetails = user_get_user_details($user, $course);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $userdetails;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check if $USER have the necessary capabilities to obtain user details.
|
||||
*
|
||||
* @param object $user
|
||||
* @param object $course if null then only consider system profile otherwise also consider the course's profile.
|
||||
* @return bool true if $USER can view user details.
|
||||
*/
|
||||
function can_view_user_details_cap($user, $course = null) {
|
||||
// Check $USER has the capability to view the user details at user context.
|
||||
$usercontext = get_context_instance(CONTEXT_USER, $user->id);
|
||||
$result = has_capability('moodle/user:viewdetails', $usercontext);
|
||||
// Otherwise can $USER see them at course context.
|
||||
if (!$result && !empty($course)) {
|
||||
$context = get_context_instance(CONTEXT_COURSE, $course->id);
|
||||
$result = has_capability('moodle/user:viewdetails', $context);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
<?php
|
||||
// This file is part of Moodle - http://moodle.org/
|
||||
//
|
||||
// Moodle 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 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* Web service template plugin related strings
|
||||
* @package localwstemplate
|
||||
* @copyright 2011 Moodle Pty Ltd (http://moodle.com)
|
||||
* @author Jerome Mouneyrac
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
$string['pluginname'] = 'FH Complete Web service Plugin';
|
||||
@@ -1,24 +0,0 @@
|
||||
<?php
|
||||
// Moodle 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 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
$plugin->version = 2015020401; // The (date) version of this module + 2 extra digital for daily versions
|
||||
// This version number is displayed into /admin/forms.php
|
||||
// TODO: if ever this plugin get branched, the old branch number
|
||||
// will not be updated to the current date but just incremented. We will
|
||||
// need then a $plugin->release human friendly date. For the moment, we use
|
||||
// display this version number with userdate (dev friendly)
|
||||
$plugin->requires = 2010112400; // Requires this Moodle version - at least 2.0
|
||||
$plugin->cron = 0;
|
||||
$plugin->release = '1.2 (Build: 2015020401)';
|
||||
$plugin->maturity = MATURITY_STABLE;
|
||||
@@ -1,23 +0,0 @@
|
||||
FHComplete Moodle 2.4 Webservice Plugin
|
||||
=======================================
|
||||
|
||||
Mit diesem Plugin wird Moodle 2.4 um zusätzliche Webservices erweitert
|
||||
die für die Syncronisation mit FHComplete benötigt werden.
|
||||
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
- ) Zur Installation des Plugins muss der gesamte Ordner fhcompletews in den
|
||||
Ordner local der Moodleinstallation kopiert werden.
|
||||
|
||||
zB: cp /var/www/fhcomplete/system/moodlePlugin/fhcompletews /var/www/moodle/local/
|
||||
|
||||
- ) Danach muss die Moodle Startseite aufgerufen werden.
|
||||
Das neue Plugin wird automatisch erkannt uns installiert.
|
||||
|
||||
Sonstiges
|
||||
=========
|
||||
|
||||
Falls Änderungen am Plugin durchgeführt werden, muss in version.php die Versionsnummer erhöht werden
|
||||
damit Moodle die Änderung an dem Plugin erkennt und ein Update durchführt.
|
||||
@@ -1,53 +0,0 @@
|
||||
<?php
|
||||
|
||||
// Moodle 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 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* Web service local plugin template external functions and service definitions.
|
||||
*
|
||||
* @package localwstemplate
|
||||
* @copyright 2011 Jerome Mouneyrac
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
// We defined the web service functions to install.
|
||||
$functions = array(
|
||||
'fhcomplete_get_course_grades' => array(
|
||||
'classname' => 'local_fhcompletews_external',
|
||||
'methodname' => 'get_course_grades',
|
||||
'classpath' => 'local/fhcompletews/externallib.php',
|
||||
'description' => 'Get Grades of a course',
|
||||
'type' => 'read',
|
||||
'capabilities'=> 'moodle/course:update,moodle/course:viewhiddencourses',
|
||||
),
|
||||
|
||||
'fhcomplete_courses_by_shortname' => array(
|
||||
'classname' => 'local_fhcompletews_external',
|
||||
'methodname' => 'get_courses_by_shortname',
|
||||
'classpath' => 'local/fhcompletews/externallib.php',
|
||||
'description' => 'Get course contents by Shortname',
|
||||
'type' => 'read',
|
||||
'capabilities'=> 'moodle/course:update,moodle/course:viewhiddencourses',
|
||||
),
|
||||
|
||||
'fhcomplete_user_get_users' => array(
|
||||
'classname' => 'core_user_external',
|
||||
'methodname' => 'get_users',
|
||||
'classpath' => 'user/externallib.php',
|
||||
'description' => 'get Users by Criteria',
|
||||
'type' => 'read',
|
||||
'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update',
|
||||
),
|
||||
|
||||
);
|
||||
@@ -1,371 +0,0 @@
|
||||
<?php
|
||||
// Moodle 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 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* External Web Service Template
|
||||
*
|
||||
* @package localwstemplate
|
||||
* @copyright 2011 Moodle Pty Ltd (http://moodle.com)
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
require_once($CFG->libdir . "/externallib.php");
|
||||
|
||||
class local_fhcompletews_external extends external_api
|
||||
{
|
||||
|
||||
/**************************************************
|
||||
* Webservice get_course_grades
|
||||
*
|
||||
* Laedt die Noten eines Kurses
|
||||
**************************************************/
|
||||
public static function get_course_grades_parameters()
|
||||
{
|
||||
return new external_function_parameters(
|
||||
array(
|
||||
'courseid' => new external_value(PARAM_INT, 'Moodle CourseID'),
|
||||
'type' => new external_value(PARAM_INT,'Type 1=Punkte, 2=Prozent, 3=Endnote lt Skala')
|
||||
), 'Get Course Grades'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get course Grades
|
||||
* @param int courseid
|
||||
* @return array
|
||||
*/
|
||||
public static function get_course_grades($courseid, $type)
|
||||
{
|
||||
global $CFG, $DB;
|
||||
require_once($CFG->dirroot . "/course/lib.php");
|
||||
require_once($CFG->dirroot.'/grade/export/lib.php');
|
||||
|
||||
//validate parameter
|
||||
$params = self::validate_parameters(self::get_course_grades_parameters(),
|
||||
array('courseid' => $courseid, 'type'=>$type));
|
||||
|
||||
$notenart = $type;
|
||||
//$notenart=2; // 1=Punkte; 2=Prozent; 3=Endnote nach Skala
|
||||
$gui=array();
|
||||
$final_id='';
|
||||
$data = array();
|
||||
|
||||
// Kursdaten Laden
|
||||
if (!$course = $DB->get_record('course', array('id'=>$courseid)))
|
||||
{
|
||||
throw new moodle_exception('Course not found', '', '', null, 'The course ' . $courseid . ' is not found');
|
||||
return false;
|
||||
}
|
||||
|
||||
$id=$course->id;
|
||||
$kursname=$course->fullname;
|
||||
$shortname=$course->shortname;
|
||||
|
||||
//ODS Notenexport starten
|
||||
require_login($course);
|
||||
$context = get_context_instance(CONTEXT_COURSE, $courseid);
|
||||
require_once($CFG->dirroot.'/grade/export/ods/grade_export_ods.php');
|
||||
|
||||
$moodle28=false;
|
||||
|
||||
try
|
||||
{
|
||||
$method = new ReflectionMethod('grade_export_ods','__construct');
|
||||
|
||||
if(count($method->getParameters())==3)
|
||||
$moodle28=true;
|
||||
}
|
||||
catch(ReflectionException $e)
|
||||
{
|
||||
}
|
||||
|
||||
if($moodle28)
|
||||
{
|
||||
//ab Moodle 2.8 hat grade_export_ods nur noch 3 Parameter
|
||||
$formdata = new stdClass();
|
||||
$formdata->display=$notenart;
|
||||
$formdata->itemids=0;
|
||||
$formdata->decimals=2;
|
||||
$formdata->export_feedback=false;
|
||||
if (!$export = new grade_export_ods($course, 0, $formdata))
|
||||
{
|
||||
throw new moodle_exception('Fehler', '', '', null, "Moodle-Kurs ".$id." ".$shortname." - keine Export Information gefunden");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!$export = new grade_export_ods($course, 0, 0, false, false, $notenart, 2))
|
||||
{
|
||||
throw new moodle_exception('Fehler', '', '', null, "Moodle-Kurs ".$id." ".$shortname." - keine Export Information gefunden");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
$grad =$export->columns;
|
||||
|
||||
// Im Export sind die Noten fuer alle Abgaben, Quiz, etc enthalten
|
||||
// Wir brauchen hier nur die Gesamtnote fuer die ganzen Kurs
|
||||
foreach ($export->columns as $key=>$grade_item)
|
||||
{
|
||||
// Gesamtnote hat den itemtype "course"
|
||||
if($grade_item->itemtype=='course')
|
||||
{
|
||||
$final_id=$key;
|
||||
$finalitem = $grade_item;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if($final_id=='')
|
||||
{
|
||||
throw new moodle_exception('Fehler', '', '', null,"Moodle-Kurs ".$id." ".$shortname." - keine Endnote gefunden");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Liste mit allen Studierenden des Kurses durchlaufen
|
||||
$geub = new grade_export_update_buffer();
|
||||
$gui = new graded_users_iterator($export->course, array($final_id=>$finalitem), $export->groupid); //$export->columns
|
||||
|
||||
$gui->init();
|
||||
$kursgrad =array();
|
||||
|
||||
while ($userdata = $gui->next_user())
|
||||
{
|
||||
$user_item=array();
|
||||
$user = $userdata->user;
|
||||
$user_item['vorname']=$user->firstname;
|
||||
$user_item['nachname']=$user->lastname;
|
||||
$user_item['idnummer']=$user->idnumber;
|
||||
$user_item['username']=$user->username;
|
||||
|
||||
// Aus den vorhanden Noten wird die Endnote fuer den Kurs herausgesucht
|
||||
if(isset($userdata->grades[$final_id]))
|
||||
{
|
||||
$gradestr = $export->format_grade($userdata->grades[$final_id]);
|
||||
$user_item['note']=$gradestr;
|
||||
|
||||
// Wenn Prozent dann Prozentzeichen entfernen
|
||||
if(strpos($user_item['note'],'%')!==false)
|
||||
$user_item['note']=trim(str_replace('%','',$user_item['note']));
|
||||
|
||||
// nur zurueckliefern wenn eine Note gefunden wurde und diese nicht '-' ist
|
||||
if($user_item['note']!='-')
|
||||
$data[]=$user_item;
|
||||
}
|
||||
}
|
||||
|
||||
$gui->close();
|
||||
$geub->close();
|
||||
|
||||
if (count($data)==0)
|
||||
{
|
||||
throw new moodle_exception('Fehler', '', '', null,"Moodle-Kurs ".$id." ".$shortname." - keine Kurs-Noten Informationen gefunden ");
|
||||
return false;
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns description of method result value
|
||||
* @return external_description
|
||||
*/
|
||||
public static function get_course_grades_returns()
|
||||
{
|
||||
return new external_multiple_structure(
|
||||
new external_single_structure(
|
||||
array(
|
||||
'vorname' => new external_value(PARAM_TEXT, 'vorname'),
|
||||
'nachname' => new external_value(PARAM_TEXT, 'nachname'),
|
||||
'idnummer' => new external_value(PARAM_TEXT, 'idnummer'),
|
||||
'username' => new external_value(PARAM_TEXT, 'username'),
|
||||
'note' => new external_value(PARAM_TEXT, 'note'),
|
||||
), 'course'
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**************************************************
|
||||
* Webservice get_courses_by_shortname
|
||||
*
|
||||
* Laedt Kurse anhand der Kurzbezeichnung
|
||||
**************************************************/
|
||||
public static function get_courses_by_shortname_parameters()
|
||||
{
|
||||
return new external_function_parameters(
|
||||
array('options' => new external_single_structure(
|
||||
array('shortnames' => new external_multiple_structure(
|
||||
new external_value(PARAM_RAW, 'Short Name')
|
||||
, 'List of short names. If empty return all courses
|
||||
except front page course.',
|
||||
VALUE_OPTIONAL)
|
||||
), 'options - operator OR is used', VALUE_DEFAULT, array())
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get courses
|
||||
* @param array $options
|
||||
* @return array
|
||||
*/
|
||||
public static function get_courses_by_shortname($options)
|
||||
{
|
||||
global $CFG, $DB;
|
||||
require_once($CFG->dirroot . "/course/lib.php");
|
||||
|
||||
//validate parameter
|
||||
$params = self::validate_parameters(self::get_courses_by_shortname_parameters(),
|
||||
array('options' => $options));
|
||||
|
||||
//retrieve courses
|
||||
if (!key_exists('shortnames', $params['options'])
|
||||
or empty($params['options']['shortnames'])) {
|
||||
$courses = $DB->get_records('course');
|
||||
} else {
|
||||
$courses = $DB->get_records_list('course', 'shortname', $params['options']['shortnames']);
|
||||
}
|
||||
|
||||
//create return value
|
||||
$coursesinfo = array();
|
||||
foreach ($courses as $course)
|
||||
{
|
||||
|
||||
// now security checks
|
||||
$context = get_context_instance(CONTEXT_COURSE, $course->id);
|
||||
try
|
||||
{
|
||||
self::validate_context($context);
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$exceptionparam = new stdClass();
|
||||
$exceptionparam->message = $e->getMessage();
|
||||
$exceptionparam->shortname = $course->shortname;
|
||||
throw new moodle_exception(
|
||||
get_string('errorcoursecontextnotvalid', 'webservice', $exceptionparam));
|
||||
}
|
||||
require_capability('moodle/course:view', $context);
|
||||
|
||||
$courseinfo = array();
|
||||
$courseinfo['id'] = $course->id;
|
||||
$courseinfo['fullname'] = $course->fullname;
|
||||
$courseinfo['shortname'] = $course->shortname;
|
||||
$courseinfo['categoryid'] = $course->category;
|
||||
$courseinfo['summary'] = $course->summary;
|
||||
$courseinfo['summaryformat'] = $course->summaryformat;
|
||||
$courseinfo['format'] = $course->format;
|
||||
$courseinfo['startdate'] = $course->startdate;
|
||||
$courseinfo['numsections'] = $course->numsections;
|
||||
|
||||
//some field should be returned only if the user has update permission
|
||||
$courseadmin = has_capability('moodle/course:update', $context);
|
||||
if ($courseadmin)
|
||||
{
|
||||
$courseinfo['categorysortorder'] = $course->sortorder;
|
||||
$courseinfo['idnumber'] = $course->idnumber;
|
||||
$courseinfo['showgrades'] = $course->showgrades;
|
||||
$courseinfo['showreports'] = $course->showreports;
|
||||
$courseinfo['newsitems'] = $course->newsitems;
|
||||
$courseinfo['visible'] = $course->visible;
|
||||
$courseinfo['maxbytes'] = $course->maxbytes;
|
||||
$courseinfo['hiddensections'] = $course->hiddensections;
|
||||
$courseinfo['groupmode'] = $course->groupmode;
|
||||
$courseinfo['groupmodeforce'] = $course->groupmodeforce;
|
||||
$courseinfo['defaultgroupingid'] = $course->defaultgroupingid;
|
||||
$courseinfo['lang'] = $course->lang;
|
||||
$courseinfo['timecreated'] = $course->timecreated;
|
||||
$courseinfo['timemodified'] = $course->timemodified;
|
||||
$courseinfo['forcetheme'] = $course->theme;
|
||||
$courseinfo['enablecompletion'] = $course->enablecompletion;
|
||||
$courseinfo['completionstartonenrol'] = $course->completionstartonenrol;
|
||||
$courseinfo['completionnotify'] = $course->completionnotify;
|
||||
}
|
||||
|
||||
if ($courseadmin or $course->visible
|
||||
or has_capability('moodle/course:viewhiddencourses', $context))
|
||||
{
|
||||
$coursesinfo[] = $courseinfo;
|
||||
}
|
||||
}
|
||||
|
||||
return $coursesinfo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns description of method result value
|
||||
* @return external_description
|
||||
*/
|
||||
public static function get_courses_by_shortname_returns()
|
||||
{
|
||||
return new external_multiple_structure(
|
||||
new external_single_structure(
|
||||
array(
|
||||
'id' => new external_value(PARAM_INT, 'course id'),
|
||||
'shortname' => new external_value(PARAM_TEXT, 'course short name'),
|
||||
'categoryid' => new external_value(PARAM_INT, 'category id'),
|
||||
'categorysortorder' => new external_value(PARAM_INT,
|
||||
'sort order into the category', VALUE_OPTIONAL),
|
||||
'fullname' => new external_value(PARAM_TEXT, 'full name'),
|
||||
'idnumber' => new external_value(PARAM_RAW, 'id number', VALUE_OPTIONAL),
|
||||
'summary' => new external_value(PARAM_RAW, 'summary'),
|
||||
'summaryformat' => new external_value(PARAM_INT,
|
||||
'the summary text Moodle format'),
|
||||
'format' => new external_value(PARAM_ALPHANUMEXT,
|
||||
'course format: weeks, topics, social, site,..'),
|
||||
'showgrades' => new external_value(PARAM_INT,
|
||||
'1 if grades are shown, otherwise 0', VALUE_OPTIONAL),
|
||||
'newsitems' => new external_value(PARAM_INT,
|
||||
'number of recent items appearing on the course page', VALUE_OPTIONAL),
|
||||
'startdate' => new external_value(PARAM_INT,
|
||||
'timestamp when the course start'),
|
||||
'numsections' => new external_value(PARAM_INT, 'number of weeks/topics'),
|
||||
'maxbytes' => new external_value(PARAM_INT,
|
||||
'largest size of file that can be uploaded into the course',
|
||||
VALUE_OPTIONAL),
|
||||
'showreports' => new external_value(PARAM_INT,
|
||||
'are activity report shown (yes = 1, no =0)', VALUE_OPTIONAL),
|
||||
'visible' => new external_value(PARAM_INT,
|
||||
'1: available to student, 0:not available', VALUE_OPTIONAL),
|
||||
'hiddensections' => new external_value(PARAM_INT,
|
||||
'How the hidden sections in the course are displayed to students',
|
||||
VALUE_OPTIONAL),
|
||||
'groupmode' => new external_value(PARAM_INT, 'no group, separate, visible',
|
||||
VALUE_OPTIONAL),
|
||||
'groupmodeforce' => new external_value(PARAM_INT, '1: yes, 0: no',
|
||||
VALUE_OPTIONAL),
|
||||
'defaultgroupingid' => new external_value(PARAM_INT, 'default grouping id',
|
||||
VALUE_OPTIONAL),
|
||||
'timecreated' => new external_value(PARAM_INT,
|
||||
'timestamp when the course have been created', VALUE_OPTIONAL),
|
||||
'timemodified' => new external_value(PARAM_INT,
|
||||
'timestamp when the course have been modified', VALUE_OPTIONAL),
|
||||
'enablecompletion' => new external_value(PARAM_INT,
|
||||
'Enabled, control via completion and activity settings. Disbaled,
|
||||
not shown in activity settings.',
|
||||
VALUE_OPTIONAL),
|
||||
'completionstartonenrol' => new external_value(PARAM_INT,
|
||||
'1: begin tracking a student\'s progress in course completion
|
||||
after course enrolment. 0: does not',
|
||||
VALUE_OPTIONAL),
|
||||
'completionnotify' => new external_value(PARAM_INT,
|
||||
'1: yes 0: no', VALUE_OPTIONAL),
|
||||
'lang' => new external_value(PARAM_ALPHANUMEXT,
|
||||
'forced course language', VALUE_OPTIONAL),
|
||||
'forcetheme' => new external_value(PARAM_ALPHANUMEXT,
|
||||
'name of the force theme', VALUE_OPTIONAL),
|
||||
), 'course'
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
<?php
|
||||
// This file is part of Moodle - http://moodle.org/
|
||||
//
|
||||
// Moodle 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 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* plugin related strings
|
||||
* @package localfhcompletws
|
||||
* @copyright 2011 Moodle Pty Ltd (http://moodle.com)
|
||||
* @author Jerome Mouneyrac
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
$string['pluginname'] = 'FH-Complete Webservice Plugin';
|
||||
@@ -1,24 +0,0 @@
|
||||
<?php
|
||||
// Moodle 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 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
$plugin->version = 2015020404; // The (date) version of this module + 2 extra digital for daily versions
|
||||
// This version number is displayed into /admin/forms.php
|
||||
// TODO: if ever this plugin get branched, the old branch number
|
||||
// will not be updated to the current date but just incremented. We will
|
||||
// need then a $plugin->release human friendly date. For the moment, we use
|
||||
// display this version number with userdate (dev friendly)
|
||||
$plugin->requires = 2013051400; // Requires this Moodle version - at least 2.5
|
||||
$plugin->cron = 0;
|
||||
$plugin->release = '1.2 (Build: 2015020404)';
|
||||
$plugin->maturity = MATURITY_STABLE;
|
||||
@@ -1,23 +0,0 @@
|
||||
FHComplete Moodle 3.0 Webservice Plugin
|
||||
=======================================
|
||||
|
||||
Mit diesem Plugin wird Moodle 3.0 um zusätzliche Webservices erweitert
|
||||
die für die Syncronisation mit FHComplete benötigt werden.
|
||||
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
- ) Zur Installation des Plugins muss der gesamte Ordner fhcompletews in den
|
||||
Ordner local der Moodleinstallation kopiert werden.
|
||||
|
||||
zB: cp /var/www/fhcomplete/system/moodlePlugin/fhcompletews /var/www/moodle/local/
|
||||
|
||||
- ) Danach muss die Moodle Startseite aufgerufen werden.
|
||||
Das neue Plugin wird automatisch erkannt uns installiert.
|
||||
|
||||
Sonstiges
|
||||
=========
|
||||
|
||||
Falls Änderungen am Plugin durchgeführt werden, muss in version.php die Versionsnummer erhöht werden
|
||||
damit Moodle die Änderung an dem Plugin erkennt und ein Update durchführt.
|
||||
@@ -1,53 +0,0 @@
|
||||
<?php
|
||||
|
||||
// Moodle 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 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* Web service local plugin template external functions and service definitions.
|
||||
*
|
||||
* @package localwstemplate
|
||||
* @copyright 2011 Jerome Mouneyrac
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
// We defined the web service functions to install.
|
||||
$functions = array(
|
||||
'fhcomplete_get_course_grades' => array(
|
||||
'classname' => 'local_fhcompletews_external',
|
||||
'methodname' => 'get_course_grades',
|
||||
'classpath' => 'local/fhcompletews/externallib.php',
|
||||
'description' => 'Get Grades of a course',
|
||||
'type' => 'read',
|
||||
'capabilities'=> 'moodle/course:update,moodle/course:viewhiddencourses',
|
||||
),
|
||||
|
||||
'fhcomplete_courses_by_shortname' => array(
|
||||
'classname' => 'local_fhcompletews_external',
|
||||
'methodname' => 'get_courses_by_shortname',
|
||||
'classpath' => 'local/fhcompletews/externallib.php',
|
||||
'description' => 'Get course contents by Shortname',
|
||||
'type' => 'read',
|
||||
'capabilities'=> 'moodle/course:update,moodle/course:viewhiddencourses',
|
||||
),
|
||||
|
||||
'fhcomplete_user_get_users' => array(
|
||||
'classname' => 'core_user_external',
|
||||
'methodname' => 'get_users',
|
||||
'classpath' => 'user/externallib.php',
|
||||
'description' => 'get Users by Criteria',
|
||||
'type' => 'read',
|
||||
'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update',
|
||||
),
|
||||
|
||||
);
|
||||
@@ -1,371 +0,0 @@
|
||||
<?php
|
||||
// Moodle 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 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* External Web Service Template
|
||||
*
|
||||
* @package localwstemplate
|
||||
* @copyright 2011 Moodle Pty Ltd (http://moodle.com)
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
require_once($CFG->libdir . "/externallib.php");
|
||||
|
||||
class local_fhcompletews_external extends external_api
|
||||
{
|
||||
|
||||
/**************************************************
|
||||
* Webservice get_course_grades
|
||||
*
|
||||
* Laedt die Noten eines Kurses
|
||||
**************************************************/
|
||||
public static function get_course_grades_parameters()
|
||||
{
|
||||
return new external_function_parameters(
|
||||
array(
|
||||
'courseid' => new external_value(PARAM_INT, 'Moodle CourseID'),
|
||||
'type' => new external_value(PARAM_INT,'Type 1=Punkte, 2=Prozent, 3=Endnote lt Skala')
|
||||
), 'Get Course Grades'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get course Grades
|
||||
* @param int courseid
|
||||
* @return array
|
||||
*/
|
||||
public static function get_course_grades($courseid, $type)
|
||||
{
|
||||
global $CFG, $DB;
|
||||
require_once($CFG->dirroot . "/course/lib.php");
|
||||
require_once($CFG->dirroot.'/grade/export/lib.php');
|
||||
|
||||
//validate parameter
|
||||
$params = self::validate_parameters(self::get_course_grades_parameters(),
|
||||
array('courseid' => $courseid, 'type'=>$type));
|
||||
|
||||
$notenart = $type;
|
||||
//$notenart=2; // 1=Punkte; 2=Prozent; 3=Endnote nach Skala
|
||||
$gui=array();
|
||||
$final_id='';
|
||||
$data = array();
|
||||
|
||||
// Kursdaten Laden
|
||||
if (!$course = $DB->get_record('course', array('id'=>$courseid)))
|
||||
{
|
||||
throw new moodle_exception('Course not found', '', '', null, 'The course ' . $courseid . ' is not found');
|
||||
return false;
|
||||
}
|
||||
|
||||
$id=$course->id;
|
||||
$kursname=$course->fullname;
|
||||
$shortname=$course->shortname;
|
||||
|
||||
//ODS Notenexport starten
|
||||
require_login($course);
|
||||
$context = get_context_instance(CONTEXT_COURSE, $courseid);
|
||||
require_once($CFG->dirroot.'/grade/export/ods/grade_export_ods.php');
|
||||
|
||||
$moodle28=false;
|
||||
|
||||
try
|
||||
{
|
||||
$method = new ReflectionMethod('grade_export_ods','__construct');
|
||||
|
||||
if(count($method->getParameters())==3)
|
||||
$moodle28=true;
|
||||
}
|
||||
catch(ReflectionException $e)
|
||||
{
|
||||
}
|
||||
|
||||
if($moodle28)
|
||||
{
|
||||
//ab Moodle 2.8 hat grade_export_ods nur noch 3 Parameter
|
||||
$formdata = new stdClass();
|
||||
$formdata->display=$notenart;
|
||||
$formdata->itemids=0;
|
||||
$formdata->decimals=2;
|
||||
$formdata->export_feedback=false;
|
||||
if (!$export = new grade_export_ods($course, 0, $formdata))
|
||||
{
|
||||
throw new moodle_exception('Fehler', '', '', null, "Moodle-Kurs ".$id." ".$shortname." - keine Export Information gefunden");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!$export = new grade_export_ods($course, 0, 0, false, false, $notenart, 2))
|
||||
{
|
||||
throw new moodle_exception('Fehler', '', '', null, "Moodle-Kurs ".$id." ".$shortname." - keine Export Information gefunden");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
$grad =$export->columns;
|
||||
|
||||
// Im Export sind die Noten fuer alle Abgaben, Quiz, etc enthalten
|
||||
// Wir brauchen hier nur die Gesamtnote fuer die ganzen Kurs
|
||||
foreach ($export->columns as $key=>$grade_item)
|
||||
{
|
||||
// Gesamtnote hat den itemtype "course"
|
||||
if($grade_item->itemtype=='course')
|
||||
{
|
||||
$final_id=$key;
|
||||
$finalitem = $grade_item;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if($final_id=='')
|
||||
{
|
||||
throw new moodle_exception('Fehler', '', '', null,"Moodle-Kurs ".$id." ".$shortname." - keine Endnote gefunden");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Liste mit allen Studierenden des Kurses durchlaufen
|
||||
$geub = new grade_export_update_buffer();
|
||||
$gui = new graded_users_iterator($export->course, array($final_id=>$finalitem), $export->groupid); //$export->columns
|
||||
|
||||
$gui->init();
|
||||
$kursgrad =array();
|
||||
|
||||
while ($userdata = $gui->next_user())
|
||||
{
|
||||
$user_item=array();
|
||||
$user = $userdata->user;
|
||||
$user_item['vorname']=$user->firstname;
|
||||
$user_item['nachname']=$user->lastname;
|
||||
$user_item['idnummer']=$user->idnumber;
|
||||
$user_item['username']=$user->username;
|
||||
|
||||
// Aus den vorhanden Noten wird die Endnote fuer den Kurs herausgesucht
|
||||
if(isset($userdata->grades[$final_id]))
|
||||
{
|
||||
$gradestr = $export->format_grade($userdata->grades[$final_id]);
|
||||
$user_item['note']=$gradestr;
|
||||
|
||||
// Wenn Prozent dann Prozentzeichen entfernen
|
||||
if(strpos($user_item['note'],'%')!==false)
|
||||
$user_item['note']=trim(str_replace('%','',$user_item['note']));
|
||||
|
||||
// nur zurueckliefern wenn eine Note gefunden wurde und diese nicht '-' ist
|
||||
if($user_item['note']!='-')
|
||||
$data[]=$user_item;
|
||||
}
|
||||
}
|
||||
|
||||
$gui->close();
|
||||
$geub->close();
|
||||
|
||||
if (count($data)==0)
|
||||
{
|
||||
throw new moodle_exception('Fehler', '', '', null,"Moodle-Kurs ".$id." ".$shortname." - keine Kurs-Noten Informationen gefunden ");
|
||||
return false;
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns description of method result value
|
||||
* @return external_description
|
||||
*/
|
||||
public static function get_course_grades_returns()
|
||||
{
|
||||
return new external_multiple_structure(
|
||||
new external_single_structure(
|
||||
array(
|
||||
'vorname' => new external_value(PARAM_TEXT, 'vorname'),
|
||||
'nachname' => new external_value(PARAM_TEXT, 'nachname'),
|
||||
'idnummer' => new external_value(PARAM_TEXT, 'idnummer'),
|
||||
'username' => new external_value(PARAM_TEXT, 'username'),
|
||||
'note' => new external_value(PARAM_TEXT, 'note'),
|
||||
), 'course'
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**************************************************
|
||||
* Webservice get_courses_by_shortname
|
||||
*
|
||||
* Laedt Kurse anhand der Kurzbezeichnung
|
||||
**************************************************/
|
||||
public static function get_courses_by_shortname_parameters()
|
||||
{
|
||||
return new external_function_parameters(
|
||||
array('options' => new external_single_structure(
|
||||
array('shortnames' => new external_multiple_structure(
|
||||
new external_value(PARAM_RAW, 'Short Name')
|
||||
, 'List of short names. If empty return all courses
|
||||
except front page course.',
|
||||
VALUE_OPTIONAL)
|
||||
), 'options - operator OR is used', VALUE_DEFAULT, array())
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get courses
|
||||
* @param array $options
|
||||
* @return array
|
||||
*/
|
||||
public static function get_courses_by_shortname($options)
|
||||
{
|
||||
global $CFG, $DB;
|
||||
require_once($CFG->dirroot . "/course/lib.php");
|
||||
|
||||
//validate parameter
|
||||
$params = self::validate_parameters(self::get_courses_by_shortname_parameters(),
|
||||
array('options' => $options));
|
||||
|
||||
//retrieve courses
|
||||
if (!key_exists('shortnames', $params['options'])
|
||||
or empty($params['options']['shortnames'])) {
|
||||
$courses = $DB->get_records('course');
|
||||
} else {
|
||||
$courses = $DB->get_records_list('course', 'shortname', $params['options']['shortnames']);
|
||||
}
|
||||
|
||||
//create return value
|
||||
$coursesinfo = array();
|
||||
foreach ($courses as $course)
|
||||
{
|
||||
|
||||
// now security checks
|
||||
$context = get_context_instance(CONTEXT_COURSE, $course->id);
|
||||
try
|
||||
{
|
||||
self::validate_context($context);
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$exceptionparam = new stdClass();
|
||||
$exceptionparam->message = $e->getMessage();
|
||||
$exceptionparam->shortname = $course->shortname;
|
||||
throw new moodle_exception(
|
||||
get_string('errorcoursecontextnotvalid', 'webservice', $exceptionparam));
|
||||
}
|
||||
require_capability('moodle/course:view', $context);
|
||||
|
||||
$courseinfo = array();
|
||||
$courseinfo['id'] = $course->id;
|
||||
$courseinfo['fullname'] = $course->fullname;
|
||||
$courseinfo['shortname'] = $course->shortname;
|
||||
$courseinfo['categoryid'] = $course->category;
|
||||
$courseinfo['summary'] = $course->summary;
|
||||
$courseinfo['summaryformat'] = $course->summaryformat;
|
||||
$courseinfo['format'] = $course->format;
|
||||
$courseinfo['startdate'] = $course->startdate;
|
||||
$courseinfo['numsections'] = $course->numsections;
|
||||
|
||||
//some field should be returned only if the user has update permission
|
||||
$courseadmin = has_capability('moodle/course:update', $context);
|
||||
if ($courseadmin)
|
||||
{
|
||||
$courseinfo['categorysortorder'] = $course->sortorder;
|
||||
$courseinfo['idnumber'] = $course->idnumber;
|
||||
$courseinfo['showgrades'] = $course->showgrades;
|
||||
$courseinfo['showreports'] = $course->showreports;
|
||||
$courseinfo['newsitems'] = $course->newsitems;
|
||||
$courseinfo['visible'] = $course->visible;
|
||||
$courseinfo['maxbytes'] = $course->maxbytes;
|
||||
$courseinfo['hiddensections'] = $course->hiddensections;
|
||||
$courseinfo['groupmode'] = $course->groupmode;
|
||||
$courseinfo['groupmodeforce'] = $course->groupmodeforce;
|
||||
$courseinfo['defaultgroupingid'] = $course->defaultgroupingid;
|
||||
$courseinfo['lang'] = $course->lang;
|
||||
$courseinfo['timecreated'] = $course->timecreated;
|
||||
$courseinfo['timemodified'] = $course->timemodified;
|
||||
$courseinfo['forcetheme'] = $course->theme;
|
||||
$courseinfo['enablecompletion'] = $course->enablecompletion;
|
||||
$courseinfo['completionstartonenrol'] = $course->completionstartonenrol;
|
||||
$courseinfo['completionnotify'] = $course->completionnotify;
|
||||
}
|
||||
|
||||
if ($courseadmin or $course->visible
|
||||
or has_capability('moodle/course:viewhiddencourses', $context))
|
||||
{
|
||||
$coursesinfo[] = $courseinfo;
|
||||
}
|
||||
}
|
||||
|
||||
return $coursesinfo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns description of method result value
|
||||
* @return external_description
|
||||
*/
|
||||
public static function get_courses_by_shortname_returns()
|
||||
{
|
||||
return new external_multiple_structure(
|
||||
new external_single_structure(
|
||||
array(
|
||||
'id' => new external_value(PARAM_INT, 'course id'),
|
||||
'shortname' => new external_value(PARAM_TEXT, 'course short name'),
|
||||
'categoryid' => new external_value(PARAM_INT, 'category id'),
|
||||
'categorysortorder' => new external_value(PARAM_INT,
|
||||
'sort order into the category', VALUE_OPTIONAL),
|
||||
'fullname' => new external_value(PARAM_TEXT, 'full name'),
|
||||
'idnumber' => new external_value(PARAM_RAW, 'id number', VALUE_OPTIONAL),
|
||||
'summary' => new external_value(PARAM_RAW, 'summary'),
|
||||
'summaryformat' => new external_value(PARAM_INT,
|
||||
'the summary text Moodle format'),
|
||||
'format' => new external_value(PARAM_ALPHANUMEXT,
|
||||
'course format: weeks, topics, social, site,..'),
|
||||
'showgrades' => new external_value(PARAM_INT,
|
||||
'1 if grades are shown, otherwise 0', VALUE_OPTIONAL),
|
||||
'newsitems' => new external_value(PARAM_INT,
|
||||
'number of recent items appearing on the course page', VALUE_OPTIONAL),
|
||||
'startdate' => new external_value(PARAM_INT,
|
||||
'timestamp when the course start'),
|
||||
'numsections' => new external_value(PARAM_INT, 'number of weeks/topics'),
|
||||
'maxbytes' => new external_value(PARAM_INT,
|
||||
'largest size of file that can be uploaded into the course',
|
||||
VALUE_OPTIONAL),
|
||||
'showreports' => new external_value(PARAM_INT,
|
||||
'are activity report shown (yes = 1, no =0)', VALUE_OPTIONAL),
|
||||
'visible' => new external_value(PARAM_INT,
|
||||
'1: available to student, 0:not available', VALUE_OPTIONAL),
|
||||
'hiddensections' => new external_value(PARAM_INT,
|
||||
'How the hidden sections in the course are displayed to students',
|
||||
VALUE_OPTIONAL),
|
||||
'groupmode' => new external_value(PARAM_INT, 'no group, separate, visible',
|
||||
VALUE_OPTIONAL),
|
||||
'groupmodeforce' => new external_value(PARAM_INT, '1: yes, 0: no',
|
||||
VALUE_OPTIONAL),
|
||||
'defaultgroupingid' => new external_value(PARAM_INT, 'default grouping id',
|
||||
VALUE_OPTIONAL),
|
||||
'timecreated' => new external_value(PARAM_INT,
|
||||
'timestamp when the course have been created', VALUE_OPTIONAL),
|
||||
'timemodified' => new external_value(PARAM_INT,
|
||||
'timestamp when the course have been modified', VALUE_OPTIONAL),
|
||||
'enablecompletion' => new external_value(PARAM_INT,
|
||||
'Enabled, control via completion and activity settings. Disbaled,
|
||||
not shown in activity settings.',
|
||||
VALUE_OPTIONAL),
|
||||
'completionstartonenrol' => new external_value(PARAM_INT,
|
||||
'1: begin tracking a student\'s progress in course completion
|
||||
after course enrolment. 0: does not',
|
||||
VALUE_OPTIONAL),
|
||||
'completionnotify' => new external_value(PARAM_INT,
|
||||
'1: yes 0: no', VALUE_OPTIONAL),
|
||||
'lang' => new external_value(PARAM_ALPHANUMEXT,
|
||||
'forced course language', VALUE_OPTIONAL),
|
||||
'forcetheme' => new external_value(PARAM_ALPHANUMEXT,
|
||||
'name of the force theme', VALUE_OPTIONAL),
|
||||
), 'course'
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
<?php
|
||||
// This file is part of Moodle - http://moodle.org/
|
||||
//
|
||||
// Moodle 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 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* plugin related strings
|
||||
* @package localfhcompletws
|
||||
* @copyright 2011 Moodle Pty Ltd (http://moodle.com)
|
||||
* @author Jerome Mouneyrac
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
$string['pluginname'] = 'FH-Complete Webservice Plugin';
|
||||
@@ -1,25 +0,0 @@
|
||||
<?php
|
||||
// Moodle 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 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle 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 Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
$plugin->version = 2015020404; // The (date) version of this module + 2 extra digital for daily versions
|
||||
// This version number is displayed into /admin/forms.php
|
||||
// TODO: if ever this plugin get branched, the old branch number
|
||||
// will not be updated to the current date but just incremented. We will
|
||||
// need then a $plugin->release human friendly date. For the moment, we use
|
||||
// display this version number with userdate (dev friendly)
|
||||
$plugin->requires = 2013051400; // Requires this Moodle version - at least 2.5
|
||||
$plugin->cron = 0;
|
||||
$plugin->release = '1.2 (Build: 2015020404)';
|
||||
$plugin->maturity = MATURITY_STABLE;
|
||||
$plugin->component = 'local_fhcompletews';
|
||||
@@ -1,199 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2013 FH 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: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
*/
|
||||
/*
|
||||
* Synchronisiert die Lektoren und Studenten der aktuellen MoodleKurse
|
||||
* wenn kein aktuelles Studiensemester vorhanden ist, wird NICHT Synchronisiert
|
||||
*/
|
||||
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;
|
||||
$group_updates=0;
|
||||
$fehler=0;
|
||||
$message='';
|
||||
$message_lkt='';
|
||||
$lektoren=array();
|
||||
|
||||
//ini_set('soap.wsdl_cache_enabled',0);
|
||||
//ini_set('soap.wsdl_cache_ttl',0);
|
||||
set_time_limit(1000);
|
||||
echo "-- Start ".date('Y-m-d H:i:s')."--";
|
||||
|
||||
//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
|
||||
WHERE studiensemester_kurzbz=".$db->db_add_param($stsem_kurzbz)."
|
||||
AND moodle_version='2.4'";
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
echo "<br>\nSync fuer Kurs $row->mdl_course_id";
|
||||
flush();
|
||||
|
||||
$course = new moodle24_course();
|
||||
if($course->load($row->mdl_course_id))
|
||||
{
|
||||
$message_lkt='';
|
||||
//Lektoren
|
||||
$mdluser = new moodle24_user();
|
||||
$mitarbeiter = $mdluser->getMitarbeiter($row->mdl_course_id);
|
||||
|
||||
echo "<br>\n-- Mitarbeiter --";
|
||||
flush();
|
||||
if($mdluser->sync_lektoren($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;
|
||||
//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();
|
||||
|
||||
//Studenten
|
||||
$mdluser = new moodle24_user();
|
||||
if($mdluser->sync_studenten($row->mdl_course_id))
|
||||
{
|
||||
$sync_studenten_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):\n".$mdluser->log."\n";
|
||||
$message_lkt.="\nKurs: $course->mdl_fullname ($course->mdl_shortname):\n".$mdluser->log_public."\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$message.="\nFehler: $mdluser->errormsg";
|
||||
$fehler++;
|
||||
}
|
||||
|
||||
echo $mdluser->log;
|
||||
flush();
|
||||
foreach ($mitarbeiter as $uid)
|
||||
{
|
||||
if(!isset($lektoren[$uid]))
|
||||
$lektoren[$uid]='';
|
||||
$lektoren[$uid].=$message_lkt;
|
||||
}
|
||||
}
|
||||
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
|
||||
foreach ($lektoren as $uid=>$message_lkt)
|
||||
{
|
||||
if($message_lkt!='' && $uid!='_DummyLektor')
|
||||
{
|
||||
$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
|
||||
echo "Fehler beim Senden des Mails an $to<br>";
|
||||
}
|
||||
}
|
||||
//Mail an Admin
|
||||
$header = "Dies ist eine automatische Mail!\n";
|
||||
$header.= "Folgende Syncros mit den MoodleKursen wurde durchgeführt:\n\n";
|
||||
$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
|
||||
echo "Fehler beim Senden des Mails an $to:<br>".nl2br($header.$message);
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "\nAlle Zuteilungen sind auf dem neuesten Stand";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Fehler bei Select:'.$qry;
|
||||
}
|
||||
}
|
||||
else
|
||||
echo "Kein aktuelles Studiensemester vorhanden->kein Syncro";
|
||||
echo "<br>\n-- Ende ".date('Y-m-d H:i:s')." --\n";
|
||||
?>
|
||||
@@ -1,158 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2015 fhcomplete.org
|
||||
*
|
||||
* 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: Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
*/
|
||||
/**
|
||||
* Legt fuer jede Lehreinheit im aktuellen Semester einen Moodle Kurs an
|
||||
* falls noch keiner vorhanden ist
|
||||
* und teilt Lektoren und Studierende zu dem Kurs zu
|
||||
* Aber nur wenn die Lehrform der Lehreinheit=Lehrform der LV
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/../../config/cis.config.inc.php');
|
||||
require_once(dirname(__FILE__).'/../../config/global.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
|
||||
if(php_sapi_name() != 'cli')
|
||||
{
|
||||
$uid = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
|
||||
if(!$rechte->isBerechtigt('admin'))
|
||||
die('Sie haben keine Berechtigung fuer diese Seite');
|
||||
}
|
||||
|
||||
set_time_limit(10000);
|
||||
|
||||
$db = new basis_db();
|
||||
|
||||
$stsem_obj = new studiensemester();
|
||||
$stsem = $stsem_obj->getAktOrNext();
|
||||
$neue_kurse = 0;
|
||||
$vorhandene_kurse = 0;
|
||||
$anzahl_fehler = 0;
|
||||
|
||||
$qry = "SELECT
|
||||
distinct lehrveranstaltung_id, tbl_lehrveranstaltung.bezeichnung, tbl_lehrveranstaltung.kurzbz,
|
||||
tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.orgform_kurzbz, tbl_lehrveranstaltung.semester,
|
||||
tbl_lehreinheit.lehreinheit_id, trim(string_agg(vorname||nachname,'_')) AS lektoren
|
||||
FROM
|
||||
lehre.tbl_lehreinheit
|
||||
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
JOIN lehre.tbl_lehreinheitmitarbeiter USING (lehreinheit_id)
|
||||
JOIN public.tbl_mitarbeiter USING (mitarbeiter_uid)
|
||||
JOIN public.tbl_benutzer ON (uid=mitarbeiter_uid)
|
||||
JOIN public.tbl_person USING (person_id)
|
||||
WHERE
|
||||
studiensemester_kurzbz=".$db->db_add_param($stsem)."
|
||||
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
|
||||
";
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
$mdl_course = new moodle24_course();
|
||||
$mdl = new moodle();
|
||||
|
||||
if(!$mdl->course_exists_for_le($row->lehreinheit_id))
|
||||
{
|
||||
$studiengang = new studiengang();
|
||||
$studiengang->load($row->studiengang_kz);
|
||||
|
||||
$shortname = $studiengang->kuerzel.($row->orgform_kurzbz!=''?'-'.$row->orgform_kurzbz:'').($row->semester!=''?'-'.$row->semester:'').'-'.$stsem.'-'.$row->kurzbz.'-'.$row->lehreinheit_id.'-'.$row->lektoren;
|
||||
$bezeichnung = $studiengang->kuerzel.($row->orgform_kurzbz!=''?'-'.$row->orgform_kurzbz:'').($row->semester!=''?'-'.$row->semester:'').'-'.$stsem.'-'.$row->bezeichnung.'-'.$row->lehreinheit_id.'-'.$row->lektoren;
|
||||
|
||||
// Bezeichnung kuerzen wenn zu lange
|
||||
$shortname = mb_substr($shortname,0,254);
|
||||
$bezeichnung = mb_substr($bezeichnung,0,254);
|
||||
|
||||
//$mdl_course->lehrveranstaltung_id = $row->lehrveranstaltung_id;
|
||||
$mdl_course->studiensemester_kurzbz = $stsem;
|
||||
$mdl_course->lehreinheit_id = $row->lehreinheit_id;
|
||||
$mdl_course->mdl_fullname = $bezeichnung;
|
||||
$mdl_course->mdl_shortname = $shortname;
|
||||
$mdl_course->insertamum = date('Y-m-d H:i:s');
|
||||
$mdl_course->insertvon = 'auto';
|
||||
$mdl_course->gruppen = true;
|
||||
|
||||
echo "\n<br>Create Course: $bezeichnung";
|
||||
|
||||
//Moodlekurs anlegen
|
||||
if($mdl_course->create_moodle())
|
||||
{
|
||||
$neue_kurse++;
|
||||
//Eintrag in der Vilesci DB
|
||||
$mdl_course->create_vilesci();
|
||||
|
||||
$mdl_user = new moodle24_user();
|
||||
//Lektoren Synchronisieren
|
||||
if(!$mdl_user->sync_lektoren($mdl_course->mdl_course_id))
|
||||
{
|
||||
$anzahl_fehler++;
|
||||
echo "\n<br>Lektor Sync Failed:".$mdl_user->errormsg;
|
||||
}
|
||||
|
||||
if(MOODLE_SYNC_FACHBEREICHSLEITUNG)
|
||||
{
|
||||
$mdl_user = new moodle24_user();
|
||||
//Fachbereichsleitung Synchronisieren
|
||||
if(!$mdl_user->sync_fachbereichsleitung($mdl_course->mdl_course_id))
|
||||
{
|
||||
$anzahl_fehler++;
|
||||
echo "\n<br>FBL Sync Failed:".$mdl_user->errormsg;
|
||||
}
|
||||
}
|
||||
|
||||
$mdl_user = new moodle24_user();
|
||||
//Studenten Synchronisieren
|
||||
if(!$mdl_user->sync_studenten($mdl_course->mdl_course_id))
|
||||
{
|
||||
$anzahl_fehler++;
|
||||
echo "\n<br>Student Sync Failed:".$mdl_user->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$anzahl_fehler++;
|
||||
echo "\nFailed:".$mdl_course->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$vorhandene_kurse++;
|
||||
}
|
||||
}
|
||||
}
|
||||
echo "\n<hr>Fertig";
|
||||
echo "\n<br>Neue Kurse:".$neue_kurse;
|
||||
echo "\n<br>Vorhandene Kurse:".$vorhandene_kurse;
|
||||
echo "\n<br>Anzahl Fehler:".$anzahl_fehler;
|
||||
@@ -1,159 +0,0 @@
|
||||
<?php
|
||||
/* 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: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
/*
|
||||
* 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/moodle19_course.class.php');
|
||||
require_once('../../include/moodle19_user.class.php');
|
||||
require_once('../../include/studiensemester.class.php');
|
||||
require_once('../../include/studiengang.class.php');
|
||||
require_once('../../include/mail.class.php');
|
||||
|
||||
$db = new basis_db();
|
||||
$sync_lektoren_gesamt=0;
|
||||
$sync_studenten_gesamt=0;
|
||||
$group_updates=0;
|
||||
$fehler=0;
|
||||
$message='';
|
||||
$message_lkt='';
|
||||
$lektoren=array();
|
||||
|
||||
//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
|
||||
WHERE studiensemester_kurzbz=".$db->db_add_param($stsem_kurzbz)."
|
||||
AND moodle_version='1.9';";
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
$course = new moodle19_course();
|
||||
if($course->load($row->mdl_course_id))
|
||||
{
|
||||
$message_lkt='';
|
||||
//Lektoren
|
||||
$mdluser = new moodle19_user();
|
||||
$mitarbeiter = $mdluser->getMitarbeiter($row->mdl_course_id);
|
||||
|
||||
if($mdluser->sync_lektoren($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):\n".$mdluser->log."\n";
|
||||
$message_lkt.="\nKurs: $course->mdl_fullname ($course->mdl_shortname):\n".$mdluser->log_public."\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$message.="\nFehler: $mdluser->errormsg";
|
||||
$fehler++;
|
||||
}
|
||||
|
||||
//Studenten
|
||||
$mdluser = new moodle19_user();
|
||||
if($mdluser->sync_studenten($row->mdl_course_id))
|
||||
{
|
||||
$sync_studenten_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):\n".$mdluser->log."\n";
|
||||
$message_lkt.="\nKurs: $course->mdl_fullname ($course->mdl_shortname):\n".$mdluser->log_public."\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$message.="\nFehler: $mdluser->errormsg";
|
||||
$fehler++;
|
||||
}
|
||||
|
||||
foreach ($mitarbeiter as $uid)
|
||||
{
|
||||
if(!isset($lektoren[$uid]))
|
||||
$lektoren[$uid]='';
|
||||
$lektoren[$uid].=$message_lkt;
|
||||
}
|
||||
}
|
||||
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
|
||||
foreach ($lektoren as $uid=>$message_lkt)
|
||||
{
|
||||
if($message_lkt!='')
|
||||
{
|
||||
$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
|
||||
echo "Fehler beim Senden des Mails an $to<br>";
|
||||
}
|
||||
}
|
||||
//Mail an Admin
|
||||
$header = "Dies ist eine automatische Mail!\n";
|
||||
$header.= "Folgende Syncros mit den MoodleKursen wurde durchgeführt:\n\n";
|
||||
$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
|
||||
echo "Fehler beim Senden des Mails an $to:<br>".nl2br($header.$message);
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Alle Zuteilungen sind auf dem neuesten Stand';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Fehler bei Select:'.$qry;
|
||||
}
|
||||
}
|
||||
else
|
||||
echo "Kein aktuelles Studiensemester vorhanden->kein Syncro";
|
||||
?>
|
||||
@@ -1,11 +0,0 @@
|
||||
<?php
|
||||
|
||||
$I = new ApiTester($scenario);
|
||||
$I->wantTo("Test API call v1/education/Moodle/: Moodle");
|
||||
$I->amHttpAuthenticated("admin", "1q2w3");
|
||||
$I->haveHttpHeader("FHC-API-KEY", "testapikey@fhcomplete.org");
|
||||
$I->sendGET("v1/education/Moodle/Moodle", array("moodle_id" => "1"));
|
||||
$I->seeResponseCodeIs(200);
|
||||
$I->seeResponseIsJson();
|
||||
$I->seeResponseContainsJson(["error" => 0]);
|
||||
$I->wait();
|
||||
@@ -182,7 +182,6 @@ if((isset($_REQUEST['transfer']) || isset($_REQUEST['mergeDelete'])) && isset($c
|
||||
// If lerhfach_id was the same as the old lehrveranstaltung_id, it will be changed to
|
||||
$update_qry.="UPDATE lehre.tbl_lehreinheit SET lehrfach_id=".$db->db_add_param($courseRight, FHC_INTEGER)." WHERE lehrfach_id=".$db->db_add_param($courseLeft, FHC_INTEGER)." AND lehrveranstaltung_id=".$db->db_add_param($courseRight, FHC_INTEGER)." AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz).";";
|
||||
$update_qry.="UPDATE lehre.tbl_zeugnisnote SET lehrveranstaltung_id=".$db->db_add_param($courseRight, FHC_INTEGER)." WHERE lehrveranstaltung_id=".$db->db_add_param($courseLeft, FHC_INTEGER)." AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz).";";
|
||||
$update_qry.="UPDATE lehre.tbl_moodle SET lehrveranstaltung_id=".$db->db_add_param($courseRight, FHC_INTEGER)." WHERE lehrveranstaltung_id=".$db->db_add_param($courseLeft, FHC_INTEGER)." AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz).";";
|
||||
$update_qry.="UPDATE lehre.tbl_lvangebot SET lehrveranstaltung_id=".$db->db_add_param($courseRight, FHC_INTEGER)." WHERE lehrveranstaltung_id=".$db->db_add_param($courseLeft, FHC_INTEGER)." AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz).";";
|
||||
// Notenschluesselzuordnung will be copied if $courseRight has none and $courseLeft has some
|
||||
$notenschluessel_qry_right = "SELECT * FROM lehre.tbl_notenschluesselzuordnung WHERE lehrveranstaltung_id=".$db->db_add_param($courseRight, FHC_INTEGER).";";
|
||||
@@ -212,7 +211,14 @@ if((isset($_REQUEST['transfer']) || isset($_REQUEST['mergeDelete'])) && isset($c
|
||||
{
|
||||
$update_qry.="UPDATE addon.tbl_lvevaluierung SET lehrveranstaltung_id=".$db->db_add_param($courseRight, FHC_INTEGER)." WHERE lehrveranstaltung_id=".$db->db_add_param($courseLeft, FHC_INTEGER)." AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz).";";
|
||||
}
|
||||
//addon lvevaluierung
|
||||
|
||||
//addon moodle
|
||||
if (in_array('moodle', $activeAddons))
|
||||
{
|
||||
$update_qry.="UPDATE addon.tbl_moodle SET lehrveranstaltung_id=".$db->db_add_param($courseRight, FHC_INTEGER)." WHERE lehrveranstaltung_id=".$db->db_add_param($courseLeft, FHC_INTEGER)." AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz).";";
|
||||
}
|
||||
|
||||
//addon lvinfo
|
||||
if (in_array('lvinfo', $activeAddons))
|
||||
{
|
||||
$update_qry.="UPDATE addon.tbl_lvinfo SET lehrveranstaltung_id=".$db->db_add_param($courseRight, FHC_INTEGER)." WHERE lehrveranstaltung_id=".$db->db_add_param($courseLeft, FHC_INTEGER)." AND studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz).";";
|
||||
@@ -240,7 +246,6 @@ if((isset($_REQUEST['transfer']) || isset($_REQUEST['mergeDelete'])) && isset($c
|
||||
$update_qry.="UPDATE lehre.tbl_lvangebot SET lehrveranstaltung_id=".$db->db_add_param($courseRight, FHC_INTEGER)." WHERE lehrveranstaltung_id=".$db->db_add_param($courseLeft, FHC_INTEGER).";";
|
||||
$update_qry.="UPDATE lehre.tbl_lvregel SET lehrveranstaltung_id=".$db->db_add_param($courseRight, FHC_INTEGER)." WHERE lehrveranstaltung_id=".$db->db_add_param($courseLeft, FHC_INTEGER).";";
|
||||
$update_qry.="UPDATE lehre.tbl_lvregel SET studienplan_lehrveranstaltung_id=".$db->db_add_param($courseRight, FHC_INTEGER)." WHERE studienplan_lehrveranstaltung_id=".$db->db_add_param($courseLeft, FHC_INTEGER).";";
|
||||
$update_qry.="UPDATE lehre.tbl_moodle SET lehrveranstaltung_id=".$db->db_add_param($courseRight, FHC_INTEGER)." WHERE lehrveranstaltung_id=".$db->db_add_param($courseLeft, FHC_INTEGER).";";
|
||||
$update_qry.="UPDATE lehre.tbl_notenschluesselzuordnung SET lehrveranstaltung_id=".$db->db_add_param($courseRight, FHC_INTEGER)." WHERE lehrveranstaltung_id=".$db->db_add_param($courseLeft, FHC_INTEGER).";";
|
||||
$update_qry.="UPDATE lehre.tbl_studienplan_lehrveranstaltung SET lehrveranstaltung_id=".$db->db_add_param($courseRight, FHC_INTEGER)." WHERE lehrveranstaltung_id=".$db->db_add_param($courseLeft, FHC_INTEGER).";";
|
||||
$update_qry.="UPDATE lehre.tbl_studienplan_lehrveranstaltung SET studienplan_lehrveranstaltung_id=".$db->db_add_param($courseRight, FHC_INTEGER)." WHERE studienplan_lehrveranstaltung_id=".$db->db_add_param($courseLeft, FHC_INTEGER).";";
|
||||
@@ -255,7 +260,14 @@ if((isset($_REQUEST['transfer']) || isset($_REQUEST['mergeDelete'])) && isset($c
|
||||
{
|
||||
$update_qry.="UPDATE addon.tbl_lvevaluierung SET lehrveranstaltung_id=".$db->db_add_param($courseRight, FHC_INTEGER)." WHERE lehrveranstaltung_id=".$db->db_add_param($courseLeft, FHC_INTEGER).";";
|
||||
}
|
||||
//addon lvevaluierung
|
||||
|
||||
//addon moodle
|
||||
if (in_array('moodle', $activeAddons))
|
||||
{
|
||||
$update_qry.="UPDATE addon.tbl_moodle SET lehrveranstaltung_id=".$db->db_add_param($courseRight, FHC_INTEGER)." WHERE lehrveranstaltung_id=".$db->db_add_param($courseLeft, FHC_INTEGER).";";
|
||||
}
|
||||
|
||||
//addon lvinfo
|
||||
if (in_array('lvinfo', $activeAddons))
|
||||
{
|
||||
$update_qry.="UPDATE addon.tbl_lvinfo SET lehrveranstaltung_id=".$db->db_add_param($courseRight, FHC_INTEGER)." WHERE lehrveranstaltung_id=".$db->db_add_param($courseLeft, FHC_INTEGER).";";
|
||||
|
||||
@@ -1,84 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2014 fhcomplete.org
|
||||
*
|
||||
* 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: Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
*/
|
||||
/**
|
||||
* Script um mehrere User auf einmal im Moodle anzulegen
|
||||
* Die UID der User die angelegt werden sollen, werden in einem Textfeld uebergeben
|
||||
*/
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/basis_db.class.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/moodle24_user.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/moodle'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler bei der Datenbankverbindung');
|
||||
|
||||
$userliste = (isset($_POST['userliste'])?trim($_POST['userliste']):'');
|
||||
$messages='';
|
||||
|
||||
if($userliste!='')
|
||||
{
|
||||
$moodle = new moodle24_user();
|
||||
|
||||
$uids = explode("\n",$userliste);
|
||||
foreach($uids as $uid)
|
||||
{
|
||||
$uid=trim($uid);
|
||||
// Check ob User nicht bereits angelegt ist
|
||||
if (!$moodle->loaduser($uid))
|
||||
{
|
||||
// User ist noch nicht in Moodle angelegt => Neuanlage
|
||||
if (!$moodle->createUser($uid))
|
||||
$messages.=$moodle->errormsg.'X'.$uid.'X';
|
||||
else
|
||||
$messages.='<br>User '.$uid.' angelegt';
|
||||
}
|
||||
else
|
||||
$messages.='<br>User '.$uid.' bereits vorhanden';
|
||||
}
|
||||
}
|
||||
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Moodle 2.4 - Accountverwaltung</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
</head>
|
||||
<body>
|
||||
<h2>Moodle - User anlegen</h2>
|
||||
<form name="createuser" method="POST" action="'.$_SERVER["PHP_SELF"].'" target="_self">
|
||||
Bitte geben sie die UIDs der Personen die im Moodle angelegt werden sollen ein (ein User pro Zeile):<br>
|
||||
<textarea name="userliste" cols="32" rows="20"></textarea>
|
||||
<input type="submit" value="Anlegen">
|
||||
</form> ';
|
||||
echo $messages;
|
||||
echo '
|
||||
</body>
|
||||
</html>';
|
||||
?>
|
||||
@@ -1,204 +0,0 @@
|
||||
<?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: Christian Paminger < christian.paminger@technikum-wien.at >
|
||||
* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
*/
|
||||
|
||||
/*
|
||||
Dieses Programm listet nach einem Suchbegriff bestehender Benutzer auf.
|
||||
Fuer jede UserID wird geprueft ob dieser bereits einen Moodle ID besitzt.
|
||||
Bestehende Moodle IDs werden angezeigt, fuer alle anderen wird die moeglichkeit
|
||||
der neuanlage geboten.
|
||||
*/
|
||||
|
||||
// ---------------- Standart Include Dateien einbinden
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/basis_db.class.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/globals.inc.php');
|
||||
require_once('../../include/moodle19_user.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/moodle'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('<div style="text-align:center;"><br />MOODLE Datenbank zurzeit NICHT Online.<br />Bitte etwas Geduld.<br />Danke</div>');
|
||||
// ***********************************************************************************************
|
||||
// Variable Initialisieren
|
||||
// ***********************************************************************************************
|
||||
// AusgabeStream
|
||||
$content='';
|
||||
|
||||
// ***********************************************************************************************
|
||||
// POST oder GET Parameter einlesen
|
||||
// ***********************************************************************************************
|
||||
|
||||
// $cUID UserID fuer Moodelaccount anlage
|
||||
$cUID = (isset($_REQUEST['uid'])?trim($_REQUEST['uid']):'');
|
||||
// @$cMdl_user_id Moodleaccount zum loeschen
|
||||
$cMdl_user_id = (isset($_REQUEST['mdl_user_id'])?trim($_REQUEST['mdl_user_id']):'');
|
||||
// @cSearchstr Suchtext in Tabelle Benutzer
|
||||
$cSearchstr = (isset($_REQUEST['searchstr'])?trim($_REQUEST['searchstr']):'');
|
||||
// ***********************************************************************************************
|
||||
// Datenbankverbindungen zu Moodle und Vilesci und Classen
|
||||
// ***********************************************************************************************
|
||||
// Classen Instanzen
|
||||
$objMoodle = new moodle19_user();
|
||||
// ***********************************************************************************************
|
||||
// Verarbeitung einer Moodle-Account Anlageaktion
|
||||
// ***********************************************************************************************
|
||||
if ($cUID!='') // Bearbeiten User UID Anfrage
|
||||
{
|
||||
// Check ob User nicht bereits angelegt ist
|
||||
if (!$bStatus=$objMoodle->loaduser($cUID))
|
||||
{
|
||||
$objMoodle->errormsg='';
|
||||
// User ist noch nicht in Moodle angelegt => Neuanlage
|
||||
if (!$bStatus=$objMoodle->createUser($cUID))
|
||||
$content.=$objMoodle->errormsg;
|
||||
}
|
||||
}
|
||||
// ***********************************************************************************************
|
||||
// HTML Suchfeld (Teil 1)
|
||||
// ***********************************************************************************************
|
||||
$content.='
|
||||
<form accept-charset="UTF-8" name="search" method="GET" action="'.$_SERVER["PHP_SELF"].'" target="_self">
|
||||
Bitte Suchbegriff eingeben:
|
||||
<input type="text" name="searchstr" size="30" value="'.$cSearchstr.'">
|
||||
<input type="submit" value=" suchen ">
|
||||
</form>
|
||||
<hr>';
|
||||
// ***********************************************************************************************
|
||||
// HTML Listenanzeige (Teil 2)
|
||||
// ***********************************************************************************************
|
||||
if($cSearchstr!='' && $cSearchstr!='?' && $cSearchstr!='*')
|
||||
{
|
||||
// SQL Select-String
|
||||
$qry = "SELECT distinct tbl_person.person_id,tbl_person.nachname,tbl_person.vorname,tbl_person.aktiv,tbl_benutzer.uid
|
||||
FROM public.tbl_person ,public.tbl_benutzer
|
||||
|
||||
WHERE tbl_benutzer.person_id=tbl_person.person_id
|
||||
and (
|
||||
tbl_person.nachname ~* '".addslashes($cSearchstr)."' OR
|
||||
tbl_person.vorname ~* '".addslashes($cSearchstr)."' OR
|
||||
tbl_benutzer.alias ~* '".addslashes($cSearchstr)."' OR
|
||||
tbl_person.nachname || ' ' || tbl_person.vorname = '".addslashes($cSearchstr)."' OR
|
||||
tbl_person.vorname || ' ' || tbl_person.nachname = '".addslashes($cSearchstr)."' OR
|
||||
tbl_benutzer.uid ~* '".addslashes($cSearchstr)."'
|
||||
)
|
||||
ORDER BY nachname, vorname;";
|
||||
# and tbl_benutzer.uid >''
|
||||
# and tbl_benutzer.uid IS NOT NULL
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
// Header Top mit Anzahl der gelisteten Kurse
|
||||
$content.= '<a name="top">'. $db->db_num_rows($result).' Person(en) gefunden</a>';
|
||||
|
||||
$content.='<table style="border: 1px outset #F7F7F7;">';
|
||||
|
||||
// Header Teil Information der Funktion
|
||||
$content.='<tr class="liste" align="center">';
|
||||
$content.='<td colspan="6"><b>Benutzer</b></td>';
|
||||
$content.='</tr>';
|
||||
|
||||
// Headerinformation der Tabellenfelder
|
||||
$content.='<tr class="liste" align="center">';
|
||||
$content.='<th> Nachname </th>';
|
||||
$content.='<th> Vorname </th>';
|
||||
$content.='<th> UserID </th>';
|
||||
$content.='<th> Status </th>';
|
||||
$content.='<th> MoodleAccount </th>';
|
||||
# $content.='<th> Bearbeitung </th>';
|
||||
$content.='</tr>';
|
||||
|
||||
// Alle gefundenen User in einer Schleife anzeigen.
|
||||
$iTmpCounter=0;
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
// ZeilenCSS (gerade/ungerade) zur besseren Ansicht
|
||||
$iTmpCounter++;
|
||||
if ($iTmpCounter%2)
|
||||
$showCSS=' style="text-align: left;border: 1px outset #F7F7F7;padding: 1px 5px 1px 5px; background:#FEFFEC" ';
|
||||
else
|
||||
$showCSS=' style="text-align: left;border: 1px outset #F7F7F7;padding: 1px 5px 1px 5px; background:#FCFCFC" ';
|
||||
|
||||
// Listenzeile
|
||||
$content.= '<tr '.$showCSS.'>';
|
||||
$content.= '<td '.$showCSS.'><a href="../personen/personen_details.php?person_id='.$row->person_id.'">'.$row->nachname.'</a></td>';
|
||||
$content.= '<td '.$showCSS.'>'.$row->vorname.'</td>';
|
||||
$content.= '<td '.$showCSS.'>'.$row->uid.'</td>';
|
||||
$content.= '<td '.$showCSS.'>'.(!empty($row->aktiv) && mb_strtoupper($row->aktiv)!='F' && mb_strtoupper($row->aktiv)!='FALSE' ?'aktiv':'deaktiviert').'</td>';
|
||||
$arrMoodleUser=array();
|
||||
$objMoodle->errormsg='';
|
||||
$objMoodle->mdl_user_id='';
|
||||
if (!empty($row->uid))
|
||||
{
|
||||
if (!$boolReadMoodle=$objMoodle->loaduser($row->uid))
|
||||
$objMoodle->mdl_user_id='';
|
||||
}
|
||||
// Es gibt noch keinen Moodle User - Anlage ermoeglichen
|
||||
if (!isset($objMoodle->mdl_user_id) || empty($objMoodle->mdl_user_id))
|
||||
{
|
||||
$content.= '<td style="vertical-align:bottom;cursor: pointer;" onclick="document.work'.$iTmpCounter.'.submit();">';
|
||||
$content.='<form style="display: inline;border:0px;" name="work'.$iTmpCounter.'" method="GET" target="_self" action="'.$_SERVER["PHP_SELF"].'">';
|
||||
$content.= '<input style="display:none" type="text" name="uid" value="'.$row->uid.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="searchstr" value="'.$cSearchstr.'" />';
|
||||
$content.= '<img height="12" src="../../skin/images/table_row_insert.png" border="0" title="MoodleUser anlegen" alt="table_row_insert.png" />';
|
||||
$content.= '<input onclick="this.checked=false;" onblur="this.checked=false;" type="checkbox" value="" style="'.(!stristr($_SERVER['HTTP_USER_AGENT'],'OPERA') && !stristr($_SERVER['HTTP_USER_AGENT'],'Safari')?'display:none;':'').'font-size: 4px;border:0px solid transparent;text-decoration:none; background-color: transparent;" name="check_va_detail_kal'.$iTmpCounter.'" />';
|
||||
$content.= 'anlegen';
|
||||
$content.='</form>';
|
||||
$content.= '</td>';
|
||||
}
|
||||
else // Anzeige bestehende Moodle User ID
|
||||
{
|
||||
$content.= '<td '.$showCSS.'>'.((isset($objMoodle->mdl_user_id) && !empty($objMoodle->mdl_user_id))?$objMoodle->mdl_user_id:'').'</td>';
|
||||
}
|
||||
// Tastatureingabe ermoeglichen
|
||||
$content.= '</tr>';
|
||||
} // Ende Schleife der gefundenen User
|
||||
$content.= '</table>';
|
||||
$content.= '<a href="#top">zum Anfang</a>';
|
||||
} // Ende SQL Result abfrage
|
||||
} // Ende ob Suchanfrage gestellt (Submit) wurde
|
||||
$content='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Moodle - Accountverwaltung</title>
|
||||
<base target="main">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
</head>
|
||||
<body class="background_main">
|
||||
<h2>Moodle - Accountverwaltung</h2>
|
||||
<!-- MoodleAccount Content Start -->
|
||||
'.$content.'
|
||||
<!-- MoodleAccount Content Ende -->
|
||||
</body>
|
||||
</html>';
|
||||
exit($content);
|
||||
?>
|
||||
@@ -1,162 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2013 FH 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: Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
*/
|
||||
/**
|
||||
* Dieses Programm listet nach einem Suchbegriff bestehender Benutzer auf.
|
||||
* Fuer jede UserID wird geprueft ob dieser bereits einen Moodle ID besitzt.
|
||||
* Bestehende Moodle IDs werden angezeigt, fuer alle anderen wird die Moeglichkeit
|
||||
* der Neuanlage geboten.
|
||||
*/
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/basis_db.class.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/moodle24_user.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/moodle'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler bei der Datenbankverbindung');
|
||||
|
||||
$uid = (isset($_REQUEST['uid'])?trim($_REQUEST['uid']):'');
|
||||
$mdl_user_id = (isset($_REQUEST['mdl_user_id'])?trim($_REQUEST['mdl_user_id']):'');
|
||||
$searchstr = (isset($_REQUEST['searchstr'])?trim($_REQUEST['searchstr']):'');
|
||||
$content='';
|
||||
$moodle = new moodle24_user();
|
||||
|
||||
if($uid!='')
|
||||
{
|
||||
// Check ob User nicht bereits angelegt ist
|
||||
if (!$moodle->loaduser($uid))
|
||||
{
|
||||
// User ist noch nicht in Moodle angelegt => Neuanlage
|
||||
if (!$moodle->createUser($uid))
|
||||
$content.=$moodle->errormsg;
|
||||
}
|
||||
}
|
||||
|
||||
$content.='
|
||||
<form name="search" method="GET" action="'.$_SERVER["PHP_SELF"].'" target="_self">
|
||||
Bitte Suchbegriff eingeben:
|
||||
<input type="text" name="searchstr" size="30" value="'.$db->convert_html_chars($searchstr).'">
|
||||
<input type="submit" value="Suchen">
|
||||
</form>
|
||||
<hr>';
|
||||
|
||||
if($searchstr!='' && $searchstr!='?' && $searchstr!='*')
|
||||
{
|
||||
// SQL Select-String
|
||||
$qry = "SELECT
|
||||
distinct tbl_person.person_id,tbl_person.nachname,tbl_person.vorname,
|
||||
tbl_person.aktiv,tbl_benutzer.uid
|
||||
FROM
|
||||
public.tbl_person
|
||||
JOIN public.tbl_benutzer USING(person_id)
|
||||
WHERE
|
||||
tbl_person.nachname ~* ".$db->db_add_param($searchstr)." OR
|
||||
tbl_person.vorname ~* ".$db->db_add_param($searchstr)." OR
|
||||
tbl_benutzer.alias ~* ".$db->db_add_param($searchstr)." OR
|
||||
tbl_person.nachname || ' ' || tbl_person.vorname = ".$db->db_add_param($searchstr)." OR
|
||||
tbl_person.vorname || ' ' || tbl_person.nachname = ".$db->db_add_param($searchstr)." OR
|
||||
tbl_benutzer.uid ~* ".$db->db_add_param($searchstr)."
|
||||
ORDER BY nachname, vorname;";
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
// Header Top mit Anzahl der gelisteten Kurse
|
||||
$content.= $db->db_num_rows($result).' Person(en) gefunden';
|
||||
|
||||
$content.='<table style="border: 1px outset #F7F7F7;">';
|
||||
|
||||
// Header Teil Information der Funktion
|
||||
$content.='<tr class="liste" align="center">';
|
||||
$content.='<td colspan="6"><b>Benutzer</b></td>';
|
||||
$content.='</tr>';
|
||||
|
||||
// Headerinformation der Tabellenfelder
|
||||
$content.='<tr class="liste" align="center">';
|
||||
$content.='<th> Nachname </th>';
|
||||
$content.='<th> Vorname </th>';
|
||||
$content.='<th> UserID </th>';
|
||||
$content.='<th> Status </th>';
|
||||
$content.='<th> MoodleAccount </th>';
|
||||
$content.='</tr>';
|
||||
|
||||
// Alle gefundenen User in einer Schleife anzeigen.
|
||||
$iTmpCounter=0;
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
// ZeilenCSS (gerade/ungerade) zur besseren Ansicht
|
||||
$iTmpCounter++;
|
||||
if ($iTmpCounter%2)
|
||||
$showCSS=' style="text-align: left;border: 1px outset #F7F7F7;padding: 1px 5px 1px 5px; background:#FEFFEC" ';
|
||||
else
|
||||
$showCSS=' style="text-align: left;border: 1px outset #F7F7F7;padding: 1px 5px 1px 5px; background:#FCFCFC" ';
|
||||
|
||||
// Listenzeile
|
||||
$content.= '<tr '.$showCSS.'>';
|
||||
$content.= '<td '.$showCSS.'><a href="../personen/personen_details.php?person_id='.$db->convert_html_chars($row->person_id).'">'.$db->convert_html_chars($row->nachname).'</a></td>';
|
||||
$content.= '<td '.$showCSS.'>'.$db->convert_html_chars($row->vorname).'</td>';
|
||||
$content.= '<td '.$showCSS.'>'.$db->convert_html_chars($row->uid).'</td>';
|
||||
$content.= '<td '.$showCSS.'>'.(!empty($row->aktiv) && mb_strtoupper($row->aktiv)!='F' && mb_strtoupper($row->aktiv)!='FALSE' ?'aktiv':'deaktiviert').'</td>';
|
||||
|
||||
if (!$moodle->loaduser($row->uid))
|
||||
$moodle->mdl_user_id='';
|
||||
|
||||
// Es gibt noch keinen Moodle User - Anlage ermoeglichen
|
||||
if (!isset($moodle->mdl_user_id) || empty($moodle->mdl_user_id))
|
||||
{
|
||||
$content.= '<td style="vertical-align:bottom;cursor: pointer;" onclick="document.work'.$iTmpCounter.'.submit();">';
|
||||
$content.='<form style="display: inline;border:0px;" name="work'.$iTmpCounter.'" method="GET" target="_self" action="'.$_SERVER["PHP_SELF"].'">';
|
||||
$content.= '<input style="display:none" type="text" name="uid" value="'.$db->convert_html_chars($row->uid).'" />';
|
||||
$content.= '<input style="display:none" type="text" name="searchstr" value="'.$db->convert_html_chars($searchstr).'" />';
|
||||
$content.= '<img height="12" src="../../skin/images/table_row_insert.png" border="0" title="MoodleUser anlegen" alt="table_row_insert.png" />';
|
||||
$content.= 'anlegen';
|
||||
$content.='</form>';
|
||||
$content.= '</td>';
|
||||
}
|
||||
else // Anzeige bestehende Moodle User ID
|
||||
{
|
||||
$content.= '<td '.$showCSS.'>'.((isset($moodle->mdl_user_id) && !empty($moodle->mdl_user_id))?$moodle->mdl_user_id:'').'</td>';
|
||||
}
|
||||
$content.= '</tr>';
|
||||
}
|
||||
$content.= '</table>';
|
||||
}
|
||||
}
|
||||
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Moodle 2.4 - Accountverwaltung</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
</head>
|
||||
<body>
|
||||
<h2>Moodle 2.4 - Accountverwaltung</h2>
|
||||
'.$content.'
|
||||
</body>
|
||||
</html>';
|
||||
?>
|
||||
@@ -1,352 +0,0 @@
|
||||
<?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: Christian Paminger < christian.paminger@technikum-wien.at >
|
||||
* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@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.
|
||||
*/
|
||||
|
||||
|
||||
// ***********************************************************************************************
|
||||
// Include Dateien
|
||||
// ***********************************************************************************************
|
||||
# require_once('../config.inc.php');
|
||||
// ---------------- Vilesci Include Dateien einbinden
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/globals.inc.php');
|
||||
include_once('../../include/moodle19_course.class.php');
|
||||
require_once('../../include/studiensemester.class.php');
|
||||
require_once('../../include/studiengang.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/moodle'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
|
||||
// ***********************************************************************************************
|
||||
// Variable Initialisieren
|
||||
// ***********************************************************************************************
|
||||
// AusgabeStream
|
||||
$content='';
|
||||
$errormsg=array();
|
||||
|
||||
$objMoodle = new moodle19_course();
|
||||
|
||||
// ***********************************************************************************************
|
||||
// POST oder GET Parameter einlesen
|
||||
// ***********************************************************************************************
|
||||
|
||||
#$studiensemester_kurzbz='';
|
||||
#var_dump($_REQUEST);
|
||||
|
||||
// @$bAnzeige Listenanzeige wenn Submitbottom Anzeige gedrueckt wurde
|
||||
$bAnzeige= (isset($_REQUEST['anzeige'])?True:False);
|
||||
// @cCharset Zeichensatz - Ajax mit UTF-8
|
||||
$cCharset= (isset($_REQUEST['client_encode'])?trim($_REQUEST['client_encode']):'UTF-8');
|
||||
// @debug_switch Anzeige der xml-rfc Daten moegliche Stufen sind 0,1,2,3
|
||||
$debug_switch= (isset($_REQUEST['debug'])?$_REQUEST['debug']:0);
|
||||
|
||||
|
||||
// @$studiensemester_kurzbz Studiensemester xxJJJJ - xx fuer SS Sommer oder WW Winter
|
||||
$stsem = new studiensemester();
|
||||
if (!$stsem_aktuell = $stsem->getakt())
|
||||
$stsem_aktuell = $stsem->getaktorNext();
|
||||
|
||||
$studiensemester_kurzbz=(isset($_REQUEST['studiensemester_kurzbz'])?trim($_REQUEST['studiensemester_kurzbz']):$stsem_aktuell);
|
||||
// @$studiengang_kz Studiengang
|
||||
$studiengang_kz=(isset($_REQUEST['studiengang_kz'])?trim($_REQUEST['studiengang_kz']):'');
|
||||
// @$semester Semester des Studienganges
|
||||
$semester=(isset($_REQUEST['semester'])?trim($_REQUEST['semester']):'');
|
||||
|
||||
$lehrveranstaltung_id=null;
|
||||
$lehreinheit_id=null;
|
||||
|
||||
|
||||
// @$semester Semester des Studienganges
|
||||
$kursid=(isset($_REQUEST['kursid'])?trim($_REQUEST['kursid']):'');
|
||||
if (!empty($kursid))
|
||||
{
|
||||
$bAnzeige=false;
|
||||
if(!$objMoodle->getAllMoodleVariant($kursid,'','','','','',false))
|
||||
{
|
||||
$errormsg[]='Problem beim Lehre Moodle-Kurs '.addslashes($kursid).' lesen '.$objMoodle->errormsg;
|
||||
}
|
||||
// Lehre Moodle-Kurs gefunden
|
||||
if(isset($objMoodle->result) && isset($objMoodle->result[0]))
|
||||
{
|
||||
$bAnzeige=true;
|
||||
$moodle_id=$objMoodle->result[0]->moodle_id;
|
||||
$lehrveranstaltung_id=$objMoodle->result[0]->moodle_lehrveranstaltung_id;
|
||||
$lehreinheit_id=$objMoodle->result[0]->moodle_lehreinheit_id;
|
||||
$studiensemester_kurzbz=$objMoodle->result[0]->studiensemester_kurzbz;
|
||||
}
|
||||
else if ($objMoodle->load($kursid))
|
||||
{
|
||||
$bAnzeige=true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg[]='Moodle-Kurs wurde nicht gefunden '.addslashes($kursid).' '.$objMoodle->errormsg;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// @$mdl_course_id Moodle Kurs ID
|
||||
$mdl_course_id= (isset($_REQUEST['mdl_course_id'])?$_REQUEST['mdl_course_id']:'');
|
||||
// @$moodle_id Moodle SubKurs (Unterkat.) ID zu Moodle Kurs ID (mdl_course_id)
|
||||
$moodle_id= (isset($_REQUEST['moodle_id'])?$_REQUEST['moodle_id']:'');
|
||||
|
||||
|
||||
// ***********************************************************************************************
|
||||
// Datenbankverbindungen zu Moodle und Vilesci und Classen
|
||||
// ***********************************************************************************************
|
||||
|
||||
|
||||
// ***********************************************************************************************
|
||||
// Verarbeitung einer Moodle-Kurs Loeschaktion
|
||||
// ***********************************************************************************************
|
||||
if (!empty($mdl_course_id) && isset($_REQUEST['delete'])) // Kurs wird zum bearbeiten (loeschen) freigegeben
|
||||
{
|
||||
if ($objMoodle->deleteKurs($mdl_course_id,$moodle_id,$debug_switch))
|
||||
$errormsg[]=$objMoodle->errormsg;
|
||||
else
|
||||
$errormsg[]=$objMoodle->errormsg;
|
||||
}
|
||||
|
||||
|
||||
// ***********************************************************************************************
|
||||
// HTML Auswahlfelder (Teil 1)
|
||||
// ***********************************************************************************************
|
||||
// FormName erzeugen
|
||||
$cFormName='searchMoodleCurse'.$studiensemester_kurzbz.$studiengang_kz.$semester;
|
||||
$content.='
|
||||
<form accept-charset="UTF-8" name="'.$cFormName.'" method="GET">
|
||||
<table><tr>';
|
||||
// Studiensemester public.tbl_studiensemester_kurzbz
|
||||
$content.='<td>Studiensemester</td><td><select onchange="document.'.$cFormName.'.submit();" name="studiensemester_kurzbz">';
|
||||
$stsem->getAll();
|
||||
foreach ($stsem->studiensemester as $row)
|
||||
{
|
||||
$content.='<option value="'.$row->studiensemester_kurzbz.'" '.(("$studiensemester_kurzbz"=="$row->studiensemester_kurzbz")?' selected="selected" ':'').'> '.$row->studiensemester_kurzbz.' </option>';
|
||||
}
|
||||
$content.='</select></td>';
|
||||
|
||||
// Studiengang public.tbl_studiengang_kz
|
||||
$content.='<td>Studiengang</td><td><select onchange="document.'.$cFormName.'.submit();" name="studiengang_kz"><option value=""> Alle </option>';
|
||||
$stg = new studiengang();
|
||||
$stg->getAll('typ, kurzbz',true);
|
||||
|
||||
|
||||
#var_dump($stg->result);
|
||||
|
||||
$max_semester=0;
|
||||
foreach ($stg->result as $row)
|
||||
{
|
||||
if (!$row->moodle)
|
||||
continue;
|
||||
if (empty($studiengang_kz) && !isset($_REQUEST['studiengang_kz']) )
|
||||
$studiengang_kz=$row->studiengang_kz;
|
||||
|
||||
if ($studiengang_kz==$row->studiengang_kz)
|
||||
$max_semester=$row->max_semester;
|
||||
|
||||
$content.='<option value="'.$row->studiengang_kz.'" '.(("$studiengang_kz"=="$row->studiengang_kz")?' selected="selected" ':'').'> '.$row->kuerzel.' ('.$row->kurzbzlang.') </option>';
|
||||
}
|
||||
$content.='</select></td>';
|
||||
|
||||
// Semster public.tbl_studiengang_kz - max Semester des Selektierten Studiengangs
|
||||
$content.='<td>Semster</td><td><select onchange="document.'.$cFormName.'.submit();" name="semester"><option value=""> Alle </option>';
|
||||
if ($studiengang_kz!='')
|
||||
{
|
||||
for($i=0;$i<=$max_semester;$i++)
|
||||
{
|
||||
$content.='<option value="'.($i).'" '.(("$semester"=="$i")?' selected="selected" ':'').'> '.($i).' </option>';
|
||||
}
|
||||
}
|
||||
$content.='</select></td>';
|
||||
|
||||
$content.='<td>Kurs ID</td><td><input size="4" maxlength="8" name="kursid" value="'.$kursid.'">';
|
||||
|
||||
$content.='
|
||||
<td><input name="anzeige" type="submit" value=" anzeigen "><input style="display:none" type="text" name="debug" value="'.$debug_switch.'" /></td>
|
||||
</tr></table>
|
||||
</form>
|
||||
<hr>';
|
||||
|
||||
// ***********************************************************************************************
|
||||
// HTML Listenanzeige (Teil 2)
|
||||
// ***********************************************************************************************
|
||||
// Bedingung zur Listenanzeige : Anzeige und Datengefunden
|
||||
|
||||
$detail=true;
|
||||
$lehre=null;
|
||||
$aktiv=null;
|
||||
|
||||
// $kursid = Selektion der mdl_course_id
|
||||
if ($bAnzeige && $objMoodle && $objMoodle->getAllMoodleVariant($kursid,$lehrveranstaltung_id,$studiensemester_kurzbz,$lehreinheit_id,$studiengang_kz,$semester,$detail,$lehre,$aktiv))
|
||||
{
|
||||
// Header Top mit Anzahl der gelisteten Kurse
|
||||
$content.= '<a name="top">'. count($objMoodle->result).' Kurs(e) gefunden</a>';
|
||||
$content.='<table style="font-size:medium;border: 1px outset #F7F7F7;">';
|
||||
// Header Teil Information der Funktion
|
||||
$content.='<tr class="liste" align="center">';
|
||||
$content.='<th colspan="8">Moodlekurs</th>';
|
||||
$content.='<td colspan="2">Anzahl</td>';
|
||||
$content.='<td>Kurs</td>';
|
||||
$content.='</tr>';
|
||||
|
||||
// Headerinformation der Tabellenfelder
|
||||
$content.='<tr class="liste" align="center">';
|
||||
$content.='<th> Lehrveranstaltung </th>';
|
||||
$content.='<th> Kurzbz. </th>';
|
||||
$content.='<th> StgKz </th>';
|
||||
$content.='<th> LV </th>';
|
||||
$content.='<th> Sem </th>';
|
||||
$content.='<th> LE </th>';
|
||||
$content.='<th> Kursbezeichnung </th>';
|
||||
$content.='<th> ID </th>';
|
||||
$content.='<td> Benotungen </td>';
|
||||
$content.='<td title="Aktivitäten und Lehrmaterial"> Aktivitäten </td>';
|
||||
$content.='<td> Bearbeiten </td>';
|
||||
$content.='</tr>';
|
||||
|
||||
|
||||
|
||||
if ( (!is_array($objMoodle->result) || count($objMoodle->result)<1 || !isset($objMoodle->result[0])) && $objMoodle->load($kursid))
|
||||
{
|
||||
// ZeilenCSS (gerade/ungerade) zur besseren Ansicht
|
||||
$showCSS=' style="text-align: left;border: 1px outset #F7F7F7;padding: 1px 5px 1px 5px; background:#FEFFEC" ';
|
||||
|
||||
// Listenzeile
|
||||
$content.='<tr '.$showCSS.' align="center">';
|
||||
$content.='<td colspan="6" '.$showCSS.'><font class="error">es gibt keine Referenz zum Kurs! Moodlekurs entfernt ist möglich.</font> </td>';
|
||||
$content.='<td '.$showCSS.'>'.$objMoodle->mdl_shortname.'</td>';
|
||||
$content.='<td '.$showCSS.' title="mdl_course_id:'.$kursid.'">'.$kursid.'</td>';
|
||||
|
||||
// Anzahl Benotungen - Aktivitaeten und Lehrmaterial
|
||||
$content.='<td title="Benotungen" '.$showCSS.' colspan="2"> </td>';
|
||||
|
||||
// Bearbeitung Submit
|
||||
$content.= '<td style="cursor: pointer;" onclick="if (!window.confirm(\'Löschen Moodlekurs '.$kursid.' ? \')) {return false;}; document.'.$cFormName.'0.submit();">';
|
||||
$content.='<form style="display: inline;border:0px;" name="'.$cFormName.'0" method="GET" target="_self" action="'.$_SERVER["PHP_SELF"].'">';
|
||||
$content.= '<input style="display:none" type="text" name="mdl_course_id" value="'.$kursid.'" />';
|
||||
|
||||
$content.= '<input style="display:none" type="text" name="studiensemester_kurzbz" value="'.$studiensemester_kurzbz.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="studiengang_kz" value="'.$studiengang_kz.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="semester" value="'.$semester.'" />';
|
||||
|
||||
$content.= '<input style="display:none" type="text" name="debug" value="'.$debug_switch.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="delete" value="delete" />';
|
||||
$content.= '<img height="15" src="../../skin/images/table_row_delete.png" border="0" title="MoodleKurs entfernen" alt="table_row_delete.png" />';
|
||||
$content.= '<input onclick="this.checked=false;" onblur="this.checked=false;" type="checkbox" value="" style="'.(!stristr($_SERVER['HTTP_USER_AGENT'],'OPERA') && !stristr($_SERVER['HTTP_USER_AGENT'],'Safari')?'display:none;':'').'font-size: 4px;border:0px solid transparent;text-decoration:none; background-color: transparent;" name="check_va_detail_kal0" />';
|
||||
$content.= 'entfernen';
|
||||
$content.='</form>';
|
||||
$content.= '</td>';
|
||||
$content.='</tr>';
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// Alle Moodlekurse in einer Schleife anzeigen.
|
||||
for($i=0;$i<count($objMoodle->result);$i++)
|
||||
{
|
||||
// ZeilenCSS (gerade/ungerade) zur besseren Ansicht
|
||||
if ($i%2)
|
||||
$showCSS=' style="text-align: left;border: 1px outset #F7F7F7;padding: 1px 5px 1px 5px; background:#FEFFEC" ';
|
||||
else
|
||||
$showCSS=' style="text-align: left;border: 1px outset #F7F7F7;padding: 1px 5px 1px 5px; background:#FCFCFC" ';
|
||||
|
||||
if (!empty($kursid) && $kursid!=$objMoodle->result[$i]->mdl_course_id)
|
||||
continue;
|
||||
|
||||
# var_dump($objMoodle->result);
|
||||
|
||||
// Listenzeile
|
||||
$content.='<tr '.$showCSS.' align="center">';
|
||||
$content.='<td '.$showCSS.'>'.$objMoodle->result[$i]->lehrveranstaltung_bezeichnung.'</td>';
|
||||
$content.='<td '.$showCSS.'>'.$objMoodle->result[$i]->lehrveranstaltung_kurzbz.'</td>';
|
||||
$content.='<td "'.$showCSS.'>'.$objMoodle->result[$i]->lehrveranstaltung_studiengang_kz.'</td>';
|
||||
$content.='<td '.$showCSS.'>'.$objMoodle->result[$i]->lehrveranstaltung_id.'</td>';
|
||||
$content.='<td '.$showCSS.'>'.$objMoodle->result[$i]->lehrveranstaltung_semester.'</td>';
|
||||
$content.='<td '.$showCSS.'>'.$objMoodle->result[$i]->lehreinheit_id.'</td>';
|
||||
$content.='<td '.$showCSS.'>'.$objMoodle->result[$i]->mdl_shortname.'</td>';
|
||||
$content.='<td '.$showCSS.' title="mdl_course_id:'.$objMoodle->result[$i]->mdl_course_id.'">'.$objMoodle->result[$i]->mdl_course_id.'</td>';
|
||||
|
||||
// Anzahl Benotungen
|
||||
$content.='<td title="Benotungen" '.$showCSS.'>'.$objMoodle->result[$i]->mdl_benotungen.'</td>';
|
||||
// Anzahl Aktivitaeten und Lehrmaterial
|
||||
$content.='<td title="Resourcen:'.$objMoodle->result[$i]->mdl_resource.', Quiz:'.$objMoodle->result[$i]->mdl_quiz.', Chat:'.$objMoodle->result[$i]->mdl_chat.', Forum:'.$objMoodle->result[$i]->mdl_forum.', Choice:'.$objMoodle->result[$i]->mdl_choice.'" '.$showCSS.'>'.($objMoodle->result[$i]->mdl_resource+$objMoodle->result[$i]->mdl_quiz+$objMoodle->result[$i]->mdl_chat + $objMoodle->result[$i]->mdl_forum + $objMoodle->result[$i]->mdl_choice ).'</td>';
|
||||
|
||||
// Bearbeitung Submit
|
||||
$content.= '<td style="cursor: pointer;" onclick="if (!window.confirm(\'Löschen Moodlekurs '.$objMoodle->result[$i]->mdl_course_id.', '.$objMoodle->result[$i]->lehrveranstaltung_bezeichnung.' ? \')) {return false;}; document.'.$cFormName.'_'.$i.'.submit();">';
|
||||
$content.='<form style="display: inline;border:0px;" name="'.$cFormName.'_'.$i.'" method="GET" target="_self" action="'.$_SERVER["PHP_SELF"].'">';
|
||||
$content.= '<input style="display:none" type="text" name="mdl_course_id" value="'.$objMoodle->result[$i]->mdl_course_id.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="studiensemester_kurzbz" value="'.$studiensemester_kurzbz.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="studiengang_kz" value="'.$studiengang_kz.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="semester" value="'.$semester.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="debug" value="'.$debug_switch.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="delete" value="delete" />';
|
||||
$content.= '<input style="display:none" type="text" name="delete" value="delete" />';
|
||||
$content.= '<img height="15" src="../../skin/images/table_row_delete.png" border="0" title="MoodleKurs entfernen" alt="table_row_delete.png" />';
|
||||
$content.= '<input onclick="this.checked=false;" onblur="this.checked=false;" type="checkbox" value="" style="'.(!stristr($_SERVER['HTTP_USER_AGENT'],'OPERA') && !stristr($_SERVER['HTTP_USER_AGENT'],'Safari')?'display:none;':'').'font-size: 4px;border:0px solid transparent;text-decoration:none; background-color: transparent;" name="check_va_detail_kal'.$i.'" />';
|
||||
$content.= 'entfernen';
|
||||
$content.='</form>';
|
||||
$content.= '</td>';
|
||||
$content.='</tr>';
|
||||
} // Ende Moodlekurse in einer Schleife anzeigen.
|
||||
$content.= '</table>';
|
||||
$content.= '<a href="#top">zum Anfang</a>';
|
||||
|
||||
} // Ende IF Bedingung Anzeige + Datengefunden
|
||||
|
||||
// ***********************************************************************************************
|
||||
// HTML Header und Foot zum Content (Ausgabestring) hinzufuegen, und Anzeigen
|
||||
// ***********************************************************************************************
|
||||
$content='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Moodle - Kursverwaltung</title>
|
||||
<base target="main">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset='.$cCharset.'">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
</head>
|
||||
<body class="background_main">
|
||||
<h2>Moodle - Kursverwaltung</h2>
|
||||
<!-- MoodleKurs Content Start -->
|
||||
'.$content.'<p class="error">'.implode('<br>',$errormsg).'</p>
|
||||
<!-- MoodleKurs Content Ende -->
|
||||
</body>
|
||||
</html>';
|
||||
exit($content);
|
||||
?>
|
||||
@@ -1,213 +0,0 @@
|
||||
<?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');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/moodle'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
$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>1)</th>
|
||||
<th>2)</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" title="Löscht aus Zwischentabelle"></a></td>
|
||||
<td><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" title="Löscht aus Zwischentabelle und den Moodlekurs"></a></td>
|
||||
</tr>';
|
||||
}
|
||||
echo '</tbody></table>';
|
||||
}
|
||||
|
||||
echo "<span style='font-size:12px;'>1: Löscht Eintrag nur aus Zwischentabelle <br>
|
||||
2: Löscht Eintrag in Zwischentabelle und den Moodlekurs </span>";
|
||||
|
||||
echo "</body></html>"
|
||||
|
||||
?>
|
||||
@@ -1,105 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2013 fhcomplete.org
|
||||
*
|
||||
* 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: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
*/
|
||||
/**
|
||||
* Script um eine Person gleichzeitig zu mehreren Moodle Kursen zuzuteilen
|
||||
*/
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/moodle.class.php');
|
||||
require_once('../../include/moodle24_user.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/moodle'))
|
||||
die('Sie haben keine Berechtigung fuer diese Seite');
|
||||
|
||||
|
||||
echo '<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Moodle 2.4 Rollenzuteilung</title>
|
||||
<link rel="stylesheet" href="../../skin/fhcomplete.css" />
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" />
|
||||
</head>
|
||||
<body>
|
||||
<h1>Moodle Rollenzuteilung</h1>
|
||||
<form method="POST" action="'.$_SERVER['PHP_SELF'].'">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Moodle Kurs IDs getrennt mit \',\':</td>
|
||||
<td><input type="text" name="mdl_course_ids" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Rolle</td>
|
||||
<td>
|
||||
<SELECT name="role">
|
||||
<OPTION value="3">Lektor/in</OPTION>
|
||||
<OPTION value="5">Student/in</OPTION>
|
||||
<OPTION value="4">Tutor/in</OPTION>
|
||||
<OPTION value="">----</OPTION>
|
||||
<OPTION value="1">Manager</OPTION>
|
||||
<OPTION value="2">Course Creator</OPTION>
|
||||
<OPTION value="6">Guest</OPTION>
|
||||
<OPTION value="7">User</OPTION>
|
||||
<OPTION value="8">frontpage</OPTION>
|
||||
</SELECT>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>UID</td>
|
||||
<td><input type="text" name="uid" id="uid"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td><input type="submit" value="Zuteilen" name="add" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
';
|
||||
if(isset($_POST['add']))
|
||||
{
|
||||
if(isset($_POST['uid']) && $_POST['uid']!='' &&
|
||||
isset($_POST['role']) && $_POST['role']!='' &&
|
||||
isset($_POST['mdl_course_ids']) && $_POST['mdl_course_ids']!='')
|
||||
{
|
||||
$mdl_course_id_array = explode(',',$_POST['mdl_course_ids']);
|
||||
$uid = $_POST['uid'];
|
||||
$role_id=$_POST['role'];
|
||||
|
||||
$moodle = new moodle24_user();
|
||||
if($moodle->MassEnroll($uid, $mdl_course_id_array, $role_id))
|
||||
{
|
||||
echo 'Zuteilung erfolgreich';
|
||||
}
|
||||
else
|
||||
echo 'Fehler bei der Zuteilung:'.$moodle->errormsg;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Fehler: Bitte füllen Sie alle Felder aus';
|
||||
}
|
||||
}
|
||||
echo '</body>
|
||||
</html>';
|
||||
?>
|
||||
@@ -1,99 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2014 fhcomplete.org
|
||||
*
|
||||
* 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: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
*/
|
||||
/**
|
||||
* Script zum manuellen synchronisieren der User in die Moodle Kurse
|
||||
*/
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/moodle.class.php');
|
||||
require_once('../../include/moodle19_course.class.php');
|
||||
require_once('../../include/moodle19_user.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/moodle'))
|
||||
die('Sie haben keine Berechtigung fuer diese Seite');
|
||||
|
||||
|
||||
echo '<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Moodle 1.9 User Sync</title>
|
||||
<link rel="stylesheet" href="../../skin/fhcomplete.css" />
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" />
|
||||
</head>
|
||||
<body>
|
||||
<h1>Moodle 1.9 User Sync</h1>
|
||||
Auf dieser Seite können die Teilnehmer eines Moodle 1.9 Kurses aktualisiert werden.
|
||||
Geben Sie dazu die ID des Moodle Kurses ein.<br><br>
|
||||
|
||||
<form method="POST" action="'.$_SERVER['PHP_SELF'].'">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Moodle Kurs ID:</td>
|
||||
<td><input type="text" size="5" name="mdl_course_id" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td><input type="submit" value="User Zuteilung aktualisieren" name="sync" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
';
|
||||
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 moodle19_user();
|
||||
echo '<br><h2>Übertrage LektorInnen</h2><br>';
|
||||
if($moodle->sync_lektoren($mdl_course_id))
|
||||
{
|
||||
echo $moodle->log;
|
||||
}
|
||||
else
|
||||
echo 'Fehler bei der Zuteilung:'.$moodle->errormsg;
|
||||
|
||||
$moodle = new moodle19_user();
|
||||
echo '<br><h2>Übertrage Studierende</h2><br>';
|
||||
if($moodle->sync_studenten($mdl_course_id))
|
||||
{
|
||||
echo $moodle->log;
|
||||
}
|
||||
else
|
||||
echo 'Fehler bei der Zuteilung:'.$moodle->errormsg;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Fehler: Bitte füllen Sie alle Felder aus';
|
||||
}
|
||||
}
|
||||
echo '</body>
|
||||
</html>';
|
||||
?>
|
||||
@@ -1,112 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2014 fhcomplete.org
|
||||
*
|
||||
* 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: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
*/
|
||||
/**
|
||||
* 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');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/moodle'))
|
||||
die('Sie haben keine Berechtigung fuer diese Seite');
|
||||
|
||||
|
||||
echo '<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Moodle 2.4 User Sync</title>
|
||||
<link rel="stylesheet" href="../../skin/fhcomplete.css" />
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" />
|
||||
</head>
|
||||
<body>
|
||||
<h1>Moodle 2.4 User Sync</h1>
|
||||
Auf dieser Seite können die Teilnehmer eines Moodle 2.4 Kurses aktualisiert werden.
|
||||
Geben Sie dazu die ID des Moodle Kurses ein.<br><br>
|
||||
<form method="POST" action="'.$_SERVER['PHP_SELF'].'">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Moodle Kurs ID:</td>
|
||||
<td><input type="text" name="mdl_course_id" size="5" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td><input type="submit" value="User Zuteilung aktualisieren" name="sync" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
';
|
||||
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))
|
||||
{
|
||||
echo $moodle->log;
|
||||
}
|
||||
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>';
|
||||
if($moodle->sync_studenten($mdl_course_id))
|
||||
{
|
||||
echo $moodle->log;
|
||||
echo '<hr>';
|
||||
echo $moodle->errormsg;
|
||||
}
|
||||
else
|
||||
echo 'Fehler bei der Zuteilung:'.$moodle->errormsg;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Fehler: Bitte füllen Sie alle Felder aus';
|
||||
}
|
||||
}
|
||||
echo '</body>
|
||||
</html>';
|
||||
?>
|
||||
@@ -1,711 +0,0 @@
|
||||
<?php
|
||||
//@version $Id: kurs_verwaltung.php 2799 2009-07-16 11:56:39Z simane $
|
||||
/* 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: Christian Paminger < christian.paminger@technikum-wien.at >
|
||||
* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
*/
|
||||
/*
|
||||
* Dieses Programm listet nach Selektinskreterien alle Moodelkurse zu einem Studiengang oder Lehreinheit auf.
|
||||
* Jede MoodleID kann invididuell zu einem Studiengang oder Lehreinheit zugeteilt werden.
|
||||
*/
|
||||
header('Content-Type: text/html;charset=UTF-8');
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/globals.inc.php');
|
||||
require_once('../../include/studiengang.class.php');
|
||||
require_once('../../include/studiensemester.class.php');
|
||||
require_once('../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../include/lehreinheit.class.php');
|
||||
require_once('../../include/lehreinheitgruppe.class.php');
|
||||
require_once('../../include/lehreinheitmitarbeiter.class.php');
|
||||
require_once('../../include/moodle19_course.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/moodle'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
// ***********************************************************************************************
|
||||
// Datenbankverbindungen zu Moodle und Vilesci und Classen
|
||||
// ***********************************************************************************************
|
||||
|
||||
if (!$objMoodle = new moodle19_course())
|
||||
die('Fehler beim Oeffnen der Moodleverbindung');
|
||||
|
||||
if (!$le_obj = new lehreinheit())
|
||||
die('Fehler beim Oeffnen der Lehreinheit');
|
||||
|
||||
if (!$legrp_obj = new lehreinheitgruppe())
|
||||
die('Fehler beim Oeffnen der Lehreinheitgruppe');
|
||||
|
||||
if (!$lv_obj = new lehrveranstaltung())
|
||||
die('Fehler beim Oeffnen der Lehrveranstaltung');
|
||||
|
||||
if (!$stg_obj = new studiengang())
|
||||
die('Fehler beim Oeffnen der Studiengänge');
|
||||
|
||||
if (!$stsem = new studiensemester())
|
||||
die('Fehler beim Oeffnen der Studiensemester');
|
||||
// @$studiensemester_kurzbz Studiensemester xxJJJJ - xx fuer SS Sommer oder WW Winter
|
||||
if (!$stsem_aktuell = $stsem->getakt())
|
||||
$stsem_aktuell = $stsem->getaktorNext();
|
||||
|
||||
// ***********************************************************************************************
|
||||
|
||||
// Variable Initialisieren
|
||||
|
||||
// ***********************************************************************************************
|
||||
|
||||
// AusgabeStream
|
||||
|
||||
$content='';
|
||||
$errormsg=array();
|
||||
|
||||
// @bDebug Anzeige der xml-rfc Daten moegliche Stufen sind 0,1,2,3
|
||||
$bDebug= (isset($_REQUEST['debug']) && !empty($_REQUEST['debug'])?1:0);
|
||||
// @$lehrveranstaltung_id Lehrveranstaltung
|
||||
$studiensemester_kurzbz=(isset($_REQUEST['studiensemester_kurzbz'])?trim($_REQUEST['studiensemester_kurzbz']):$stsem_aktuell);
|
||||
// @$lehreinheit_id Lehreinheit
|
||||
$lehreinheit_id=(isset($_REQUEST['leid'])?trim($_REQUEST['leid']):(isset($_REQUEST['lehreinheit_id'])?trim($_REQUEST['lehreinheit_id']):''));
|
||||
$lehrveranstaltung_id=(isset($_REQUEST['lvid'])?trim($_REQUEST['lvid']):(isset($_REQUEST['lehrveranstaltung_id'])?trim($_REQUEST['lehrveranstaltung_id']):''));
|
||||
// @$studiengang_kz Studiengang
|
||||
$studiengang_kz=(isset($_REQUEST['studiengang_kz'])?trim($_REQUEST['studiengang_kz']):227);
|
||||
// @$semester Semester des Studienganges
|
||||
$semester=(isset($_REQUEST['semester'])?trim($_REQUEST['semester']):1);
|
||||
// @$moodle_id Moodle SubKurs (Unterkat.) ID zu Moodle Kurs ID (mdl_course_id)
|
||||
$moodle_id=(isset($_REQUEST['moodle_id'])?$_REQUEST['moodle_id']:'');
|
||||
// @$mdl_course_id Moodle - ID suche
|
||||
$mdl_course_id=(isset($_REQUEST['mdl_course_id'])?trim($_REQUEST['mdl_course_id']):'');
|
||||
// @bAnzeige der xml-rfc Daten moegliche Stufen sind 0,1,2,3
|
||||
$bAnzeige=(isset($_REQUEST['anzeige'])?trim($_REQUEST['anzeige']):false);
|
||||
|
||||
// @bAnzeige der xml-rfc Daten moegliche Stufen sind 0,1,2,3
|
||||
$lehre=(isset($_REQUEST['lehre'])?true:(!$bAnzeige?true:false));
|
||||
$aktiv=(isset($_REQUEST['aktiv'])?true:(!$bAnzeige?true:false));
|
||||
|
||||
// ***********************************************************************************************
|
||||
// Datenbankabfragen
|
||||
// ***********************************************************************************************
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Check Moodle
|
||||
$mdl_course_stat='';
|
||||
if (!empty($mdl_course_id))
|
||||
{
|
||||
$bAnzeige=true;
|
||||
if(!$objMoodle->getAllMoodleVariant($mdl_course_id,'','','','','',false))
|
||||
{
|
||||
$bAnzeige=false;
|
||||
$errormsg[]='Problem beim Lehre Moodle-Kurs '.addslashes($mdl_course_id).' lesen '.$objMoodle->errormsg;
|
||||
}
|
||||
// Lehre Moodle-Kurs gefunden
|
||||
if(isset($objMoodle->result) && isset($objMoodle->result[0]))
|
||||
{
|
||||
$mdl_course_stat='*';
|
||||
$moodle_id=$objMoodle->result[0]->moodle_id;
|
||||
$lehrveranstaltung_id=$objMoodle->result[0]->moodle_lehrveranstaltung_id;
|
||||
$lehreinheit_id=$objMoodle->result[0]->moodle_lehreinheit_id;
|
||||
$studiensemester_kurzbz=$objMoodle->result[0]->studiensemester_kurzbz;
|
||||
}
|
||||
// suchen Kurs in Moodle direkt - neue Vilesci - Lehre anlage notwendig
|
||||
else
|
||||
{
|
||||
$bAnzeige=false;
|
||||
// Wenn kein Eintrag in der Lehre vorhanden ist pruefen ob ein Moodlekurs vorhanden ist
|
||||
if ($objMoodle->load($mdl_course_id))
|
||||
{
|
||||
$mdl_course_stat='+';
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg[]='Moodle-Kurs wurde nicht gefunden '.addslashes($mdl_course_id).' '.$objMoodle->errormsg;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// @$lehreinheit_id Lehreinheit
|
||||
if ($lehreinheit_id)
|
||||
{
|
||||
if ($le_obj->load($lehreinheit_id))
|
||||
{
|
||||
$lehrveranstaltung_id = $le_obj->lehrveranstaltung_id;
|
||||
$studiensemester_kurzbz = $le_obj->studiensemester_kurzbz;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
$bAnzeige=false;
|
||||
$errormsg[]='Lehreinheit wurde nicht gefunden '.addslashes($lehreinheit_id).' '.$le_obj->errormsg;
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// @$lehrveranstaltung_id Lehrveranstaltung
|
||||
if ($lehrveranstaltung_id)
|
||||
{
|
||||
if ($lv_obj->load($lehrveranstaltung_id))
|
||||
{
|
||||
$studiengang_kz = $lv_obj->studiengang_kz;
|
||||
$semester = $lv_obj->semester;
|
||||
}
|
||||
else
|
||||
{
|
||||
$bAnzeige=false;
|
||||
$errormsg[]='Lehrveranstaltung wurde nicht gefunden '.addslashes($lehreinheit_id).' '.$lv_obj->errormsg;
|
||||
}
|
||||
}
|
||||
|
||||
// ***********************************************************************************************
|
||||
|
||||
// HTML Auswahlfelder (Teil 1)
|
||||
|
||||
// ***********************************************************************************************
|
||||
#echo "<p> $studiensemester_kurzbz.$studiengang_kz.$lehrveranstaltung_id.$lehreinheit_id.$semester </p>";
|
||||
|
||||
// FormName erzeugen
|
||||
$cFormName='searchMoodleCurse'.$studiensemester_kurzbz.$studiengang_kz.$lehrveranstaltung_id.$lehreinheit_id.$semester;
|
||||
$content.='<h2>Moodle - Kursverwaltung</h2>
|
||||
<form accept-charset="UTF-8" name="'.$cFormName.'" method="POST" target="_self" action="'.$_SERVER['PHP_SELF'].'" >
|
||||
<table class="liste">
|
||||
<tr>
|
||||
<th>Studiensem</th>
|
||||
<th>StgKz</th>
|
||||
<th>Sem</th>
|
||||
<th>Lehrveranstaltung</th>
|
||||
<th>Lehreinheiten</th>
|
||||
<th>Moodlekurs</th>
|
||||
<td> </td>
|
||||
</tr>';
|
||||
//---------------------------------------------------------------------------
|
||||
// Auswahlfelder
|
||||
$content.='<tr>';
|
||||
|
||||
// Studiensemester public.tbl_studiensemester_kurzbz
|
||||
$content.='<td valign="top"><select onchange="document.'.$cFormName.'.lehrveranstaltung_id.value=\'\';document.'.$cFormName.'.lehreinheit_id.value=\'\';document.'.$cFormName.'.mdl_course_id.value=\'\';document.'.$cFormName.'.submit();" name="studiensemester_kurzbz">';
|
||||
$content.='<option value=""> Alle </option>';
|
||||
$stsem->studiensemester=array();
|
||||
if ($stsem->getAll())
|
||||
{
|
||||
foreach ($stsem->studiensemester as $row)
|
||||
{
|
||||
$content.='<option value="'.$row->studiensemester_kurzbz.'" '.(("$studiensemester_kurzbz"=="$row->studiensemester_kurzbz")?' selected="selected" ':'').'> '.$row->studiensemester_kurzbz.' </option>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg[]='Studiensemester wurden nicht gefunden! '.$stsem->errormsg;
|
||||
}
|
||||
$content.='</select></td>';
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Studiengang public.tbl_studiengang_kz
|
||||
$content.='<td valign="top"><select onchange="document.'.$cFormName.'.lehrveranstaltung_id.value=\'\';document.'.$cFormName.'.lehreinheit_id.value=\'\';document.'.$cFormName.'.mdl_course_id.value=\'\';document.'.$cFormName.'.submit();" name="studiengang_kz">';
|
||||
if ($studiengang_kz=='*')
|
||||
{
|
||||
$studiengang_kz='';
|
||||
}
|
||||
$content.='<option value="" '.(empty($studiengang_kz)?' selected="selected" ':'').'> Alle </option>';
|
||||
|
||||
$stsem->result=array();
|
||||
if ($stg_obj->getAll('typ, kurzbz',true))
|
||||
{
|
||||
$max_semester=0;
|
||||
$arrStudiengang='';
|
||||
foreach ($stg_obj->result as $row)
|
||||
{
|
||||
if (empty($studiengang_kz) && !isset($_REQUEST['studiengang_kz']) )
|
||||
{
|
||||
$studiengang_kz=$row->studiengang_kz;
|
||||
$semester=1;
|
||||
}
|
||||
if ($studiengang_kz==$row->studiengang_kz)
|
||||
{
|
||||
$arrStudiengang=$row;
|
||||
$max_semester=$row->max_semester;
|
||||
}
|
||||
$content.='<option value="'.$row->studiengang_kz.'" '.(("$studiengang_kz"=="$row->studiengang_kz")?' selected="selected" ':'').'> '.$row->kuerzel.' ('.$row->kurzbzlang.') </option>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$content.='<option value="" '.(empty($studiengang_kz)?' selected="selected" ':'').'> '.$stg_obj->errormsg.' </option>';
|
||||
$errormsg[]='Studiengänge wurden nicht gefunden! '.$stg_obj->errormsg;
|
||||
}
|
||||
$content.='</select></td>';
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Semster public.tbl_studiengang_kz - max Semester des Selektierten Studiengangs
|
||||
$content.='<td valign="top"><select onchange="document.'.$cFormName.'.lehrveranstaltung_id.value=\'\';document.'.$cFormName.'.lehreinheit_id.value=\'\';document.'.$cFormName.'.mdl_course_id.value=\'\';document.'.$cFormName.'.submit();" name="semester">';
|
||||
$content.='<option value="" '.(empty($semester)?' selected="selected" ':'').'> Alle </option>';
|
||||
if ($studiengang_kz!='')
|
||||
{
|
||||
for($i=0;$i<=$max_semester;$i++)
|
||||
{
|
||||
$content.='<option value="'.($i).'" '.(("$semester"=="$i")?' selected="selected" ':'').'> '.($i).' </option>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for($i=0;$i<=9;$i++)
|
||||
{
|
||||
$content.='<option value="'.($i).'" '.(("$semester"=="$i")?' selected="selected" ':'').'> '.($i).' </option>';
|
||||
}
|
||||
}
|
||||
$content.='</select></td>';
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Lehrveranstaltungen
|
||||
$content.='<td valign="top"><select onchange="document.'.$cFormName.'.lehreinheit_id.value=\'\';document.'.$cFormName.'.mdl_course_id.value=\'\';document.'.$cFormName.'.submit();" name="lehrveranstaltung_id">';
|
||||
$content.='<option value="" '.(empty($lehrveranstaltung_id)?' selected="selected" ':'').'> Alle </option>';
|
||||
$lv_obj->lehrveranstaltungen=array();
|
||||
if (!empty($studiengang_kz))
|
||||
{
|
||||
if ($lv_obj->load_lva_le($studiengang_kz, $studiensemester_kurzbz, $semester,null,null,null,'bezeichnung'))
|
||||
{
|
||||
foreach ($lv_obj->lehrveranstaltungen as $row)
|
||||
{
|
||||
$content.='<option value="'.$row->lehrveranstaltung_id.'" '.(("$lehrveranstaltung_id"=="$row->lehrveranstaltung_id")?' selected="selected" ':'').'> '.CutString($row->bezeichnung, 21).' '.$row->lehrform_kurzbz.' '.$row->lehrveranstaltung_id.'</option>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$content.='<option value="" '.(empty($studiengang_kz)?' selected="selected" ':'').'> '.$stg_obj->errormsg.' </option>';
|
||||
$errormsg[]='Lehrveranstaltungen wurden nicht gefunden! '.$lv_obj->errormsg;
|
||||
}
|
||||
}
|
||||
$content.='</select><br />
|
||||
nur in Lehre <input title="nur mit Verplanter Lehreinheiten" type="Checkbox" value="1" name="lehre" '.($lehre?' checked="checked" ':'').' />
|
||||
nur aktive <input type="Checkbox" value="1" name="aktiv" '.($aktiv?' checked="checked" ':'').' />
|
||||
</td>';
|
||||
//---------------------------------------------------------------------------
|
||||
// Lehreinheit
|
||||
$content.='<td valign="top"><select onchange="document.'.$cFormName.'.mdl_course_id.value=\'\';document.'.$cFormName.'.submit();" name="lehreinheit_id">';
|
||||
$content.='<option value="" '.(empty($lehreinheit_id)?' selected="selected" ':'').'> Alle </option>';
|
||||
$le_obj->lehreinheiten=array();
|
||||
if (!empty($lehrveranstaltung_id))
|
||||
{
|
||||
$le_obj->load_lehreinheiten($lehrveranstaltung_id, $studiensemester_kurzbz);
|
||||
foreach ($le_obj->lehreinheiten as $row)
|
||||
{
|
||||
//Gruppen laden
|
||||
$gruppen = '';
|
||||
if (!$legrp_obj = new lehreinheitgruppe())
|
||||
die('Fehler beim Oeffnen der Lehreinheitgruppe');
|
||||
if ($legrp_obj->getLehreinheitgruppe($row->lehreinheit_id))
|
||||
{
|
||||
foreach ($legrp_obj->lehreinheitgruppe as $grp)
|
||||
{
|
||||
if($grp->gruppe_kurzbz=='')
|
||||
$gruppen.=' '.$grp->semester.$grp->verband.$grp->gruppe;
|
||||
else
|
||||
$gruppen.=' '.$grp->gruppe_kurzbz;
|
||||
}
|
||||
}
|
||||
$content.='<option value="'.$row->lehreinheit_id.'" '.($lehreinheit_id==$row->lehreinheit_id?' selected="selected" ':'').'> '.$row->lehrform_kurzbz.' '.$gruppen.($bDebug?' (Le ID '.$row->lehreinheit_id.')':'').'</option>';
|
||||
}
|
||||
}
|
||||
$content.='</select></td>';
|
||||
//---------------------------------------------------------------------------
|
||||
// ---- Moodle mdl_course_id
|
||||
$content.='<td valign="top"><b>oder</b> KursID <input size="4" maxlength="8" name="mdl_course_id" value="'.$mdl_course_id.'">'.$mdl_course_stat;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// ---- Submitknopf
|
||||
$content.='
|
||||
<td valign="top">
|
||||
<input style="padding: 2px 20px 2px 20px;" name="anzeigen" type="submit" value="anzeigen">
|
||||
<input style="display:none" type="text" name="anzeige" value="anzeige" />
|
||||
<input style="display:none" type="text" name="debug" value="'.$bDebug.'" />
|
||||
</td>
|
||||
</tr></table>
|
||||
</form>';
|
||||
|
||||
$content.='<hr>';
|
||||
|
||||
// ***********************************************************************************************
|
||||
// HTML Listenanzeige (Teil 2) Detailkursdaten
|
||||
// ***********************************************************************************************
|
||||
if ($bAnzeige)
|
||||
{
|
||||
// Moodle ID eingabe wurde bereits am Anfang gelesen
|
||||
if (!$mdl_course_id)
|
||||
{
|
||||
if ($lehreinheit_id)
|
||||
$lehrveranstaltung_id='';
|
||||
#echo "<hr> $mdl_course_id,$studiengang_kz,$lehreinheit_id,$lehrveranstaltung_id,$studiensemester_kurzbz,$semester <hr>";
|
||||
if(!$objMoodle->getAllMoodleVariant($mdl_course_id,$lehrveranstaltung_id,$studiensemester_kurzbz,$lehreinheit_id,$studiengang_kz,$semester,false,$lehre,$aktiv))
|
||||
$errormsg[]=$objMoodle->errormsg;
|
||||
}
|
||||
// Aufbau der Moodlekurs - Tabelle
|
||||
|
||||
if (is_array($objMoodle->result) && count($objMoodle->result)>0)
|
||||
$content.=writeMoodlekursHTML($objMoodle->result,$bDebug,$errormsg);
|
||||
}
|
||||
|
||||
// ***********************************************************************************************
|
||||
// HTML Header und Foot zum Content (Ausgabestring) hinzufuegen, und Anzeigen
|
||||
// ***********************************************************************************************
|
||||
|
||||
$content='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Moodle - Kurszuteilungverwalten</title>
|
||||
<base target="main">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
</head>
|
||||
<body>
|
||||
<!-- MoodleKurs Content Start -->
|
||||
'.$content.'
|
||||
<!-- MoodleKurs Content Ende -->
|
||||
<iframe style="height:300px;width: 100%;padding: 0px 0px 0px 0px;margin: 0px 0px 0px 0px;border: 0px;" id="zuteilung_warten" src="zuteilung_warten.php'.($mdl_course_stat=='+'?'?mdl_course_id='.$mdl_course_id:'').'" name="zuteilung_warten" frameborder="0">
|
||||
No iFrames
|
||||
</iframe>
|
||||
<p class="error">'.implode('<br>',$errormsg).'</p>
|
||||
</body>
|
||||
</html>';
|
||||
exit($content);
|
||||
|
||||
// ***********************************************************************************************
|
||||
// erzeugen HTML Output der Moodlekursdaten
|
||||
// ***********************************************************************************************
|
||||
function writeMoodlekursHTML($arrMoodlekurs,$bDebug,&$errormsg)
|
||||
{
|
||||
|
||||
$content='';
|
||||
if (!is_array($arrMoodlekurs) || count($arrMoodlekurs)<1)
|
||||
return $content;
|
||||
|
||||
if (!$objMoodle = new moodle19_course())
|
||||
die('Fehler beim Oeffnen der Moodleverbindung');
|
||||
|
||||
if (!$le_obj = new lehreinheit())
|
||||
die('Fehler beim Oeffnen der Lehreinheit');
|
||||
|
||||
if (!$legrp_obj = new lehreinheitgruppe())
|
||||
die('Fehler beim Oeffnen der Lehreinheitgruppe');
|
||||
|
||||
if (!$lv_obj = new lehrveranstaltung())
|
||||
die('Fehler beim Oeffnen der Lehrveranstaltung');
|
||||
|
||||
if (!$stg_obj = new studiengang())
|
||||
die('Fehler beim Oeffnen der Studiengänge');
|
||||
|
||||
if (!$stsem = new studiensemester())
|
||||
die('Fehler beim Oeffnen der Studiensemester');
|
||||
|
||||
#$content.=count($objMoodle->result).'<hr>';
|
||||
// Header Top mit Anzahl der gelisteten Kurse
|
||||
$content.='<div style="height:300px;overflow:auto;">';
|
||||
$content.='<table class="liste">';
|
||||
|
||||
// Header Teil Information der Funktion
|
||||
// Headerinformation der Tabellenfelder
|
||||
$content.='<tr class="liste" align="center">';
|
||||
|
||||
$content.='<th colspan="2"> StSem </th>';
|
||||
$content.='<th colspan="2"> Studiengang </th>';
|
||||
$content.='<th> Sem </th>';
|
||||
$content.='<th colspan="2"> Lehrveranstaltung </th>';
|
||||
$content.='<th colspan="2"> Lehreinheit </th>';
|
||||
$content.='<th colspan="2"> Moodle Kurs </th>';
|
||||
$content.='<td colspan="2"> bearbeiten </td>';
|
||||
$content.='</tr>';
|
||||
|
||||
// Alle Moodlekurse in einer Schleife anzeigen.
|
||||
for($i=0;$i<count($arrMoodlekurs);$i++)
|
||||
{
|
||||
|
||||
$cFormName='workMoodleCurseDetail'.$i;
|
||||
|
||||
|
||||
|
||||
// ZeilenCSS (gerade/ungerade) zur besseren Ansicht
|
||||
if ($i%2)
|
||||
$showCSS=' class="liste0" style="text-align: left;border: 1px outset #F7F7F7;padding: 1px 2px 1px 2px; background:#FEFFEC" ';
|
||||
else
|
||||
$showCSS=' class="liste1" style="text-align: left;border: 1px outset #F7F7F7;padding: 1px 2px 1px 2px; background:#FCFCFC" ';
|
||||
|
||||
// Listenzeile
|
||||
$content.='<tr '.$showCSS.' align="center">';
|
||||
$content.='<td align="left">';
|
||||
$content.='<table><tr>';
|
||||
$content.= '<td align="left" id="detail'.$i.'_on" onclick="this.className=\'ausblenden\';document.getElementById(\'detail'.$i.'_off\').className=\'einblenden\';document.getElementById(\'detail'.$i.'\').className=\'einblenden\';"><img height="15" src="../../skin/images/bullet_arrow_right.png" border="0" title="Detailansicht" alt="bullet_arrow_down.png" /> </td>';
|
||||
$content.= '<td align="left" id="detail'.$i.'_off" onclick="this.className=\'ausblenden\';document.getElementById(\'detail'.$i.'_on\').className=\'einblenden\';document.getElementById(\'detail'.$i.'\').className=\'ausblenden\';" class="ausblenden"><img height="15" src="../../skin/images/bullet_arrow_down.png" border="0" title="Detailansicht" alt="bullet_arrow_down.png" /> </td>';
|
||||
$content.='</tr></table>';
|
||||
$content.='</td>';
|
||||
|
||||
$content.='<td '.$showCSS.'>'.$arrMoodlekurs[$i]->studiensemester_kurzbz.'</td>';
|
||||
if (!$stg_obj->load($arrMoodlekurs[$i]->lehrveranstaltung_studiengang_kz))
|
||||
{
|
||||
$stg_obj->kuerzel='';
|
||||
$stg_obj->bezeichnung='Fehler Studiengang ';
|
||||
$stg_obj->kurzbzlang=$stg_obj->errormsg;
|
||||
$stg_obj->studiengang_kz=$arrMoodlekurs[$i]->lehrveranstaltung_studiengang_kz;
|
||||
}
|
||||
|
||||
$content.='<td '.$showCSS.'>'.$stg_obj->kurzbzlang.' </td>';
|
||||
$content.='<td '.$showCSS.'>'.$stg_obj->bezeichnung.($bDebug?' '.$stg_obj->studiengang_kz:'').' </td>';
|
||||
$content.='<td '.$showCSS.'>'.$arrMoodlekurs[$i]->lehrveranstaltung_semester.' </td>';
|
||||
|
||||
// Lehrveranstaltung
|
||||
if ($arrMoodlekurs[$i]->moodle_lehrveranstaltung_id)
|
||||
{
|
||||
$lvID=$arrMoodlekurs[$i]->moodle_lehrveranstaltung_id;
|
||||
$kurzbz='<b>'.$arrMoodlekurs[$i]->lehrveranstaltung_kurzbz.'</b>, '.$arrMoodlekurs[$i]->lehrveranstaltung_bezeichnung.($arrMoodlekurs[$i]->lehrveranstaltung_lehrform_kurzbz?', '.$arrMoodlekurs[$i]->lehrveranstaltung_lehrform_kurzbz:'');
|
||||
}
|
||||
else
|
||||
{
|
||||
$lvID='*'.$arrMoodlekurs[$i]->lehrveranstaltung_id;
|
||||
$kurzbz='<b>zur Lehreinheit - '.$arrMoodlekurs[$i]->lehrveranstaltung_kurzbz.'</b>, '.$arrMoodlekurs[$i]->lehrveranstaltung_bezeichnung.($arrMoodlekurs[$i]->lehrveranstaltung_lehrform_kurzbz?', '.$arrMoodlekurs[$i]->lehrveranstaltung_lehrform_kurzbz:'');;
|
||||
}
|
||||
$content.='<td colspan="2" title="'.(isset($arrMoodlekurs[$i]->lehrveranstaltung_bezeichnung)?$arrMoodlekurs[$i]->lehrveranstaltung_bezeichnung.' Kurzbz:'.$arrMoodlekurs[$i]->lehrveranstaltung_kurzbz.' LV Kurzbz:'.$arrMoodlekurs[$i]->lehrveranstaltung_lehrform_kurzbz.' ID:'.$arrMoodlekurs[$i]->lehrveranstaltung_id:'').'" '.$showCSS.'>';
|
||||
$content.=$kurzbz. ($bDebug?' '.$lvID:'').' </td>';
|
||||
|
||||
// Lehreinheit
|
||||
$leID=$arrMoodlekurs[$i]->lehreinheit_id;
|
||||
if ($arrMoodlekurs[$i]->moodle_lehreinheit_id)
|
||||
{
|
||||
if ( $le_obj->loadLE($arrMoodlekurs[$i]->moodle_lehreinheit_id))
|
||||
{
|
||||
//Gruppen laden
|
||||
$gruppen = $le_obj->lehrform_kurzbz.' ';
|
||||
if (!$legrp_obj = new lehreinheitgruppe())
|
||||
die('Fehler beim Oeffnen der Lehreinheitgruppe');
|
||||
#var_dump($le_obj);
|
||||
$legrp_obj->getLehreinheitgruppe($arrMoodlekurs[$i]->lehreinheit_id);
|
||||
foreach ($legrp_obj->lehreinheitgruppe as $grp)
|
||||
{
|
||||
if($grp->gruppe_kurzbz=='')
|
||||
$gruppen.=' '.$grp->semester.$grp->verband.$grp->gruppe;
|
||||
else
|
||||
$gruppen.=' '.$grp->gruppe_kurzbz;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$gruppen='Fehler Lehreinheit '.$legrp_obj->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$leID='-';
|
||||
$gruppen='zur kpl.LV';
|
||||
}
|
||||
$content.='<td '.$showCSS.'>'.$gruppen.' </td>';
|
||||
$content.='<td '.$showCSS.'>'.($bDebug?$leID:'').' </td>';
|
||||
|
||||
// Moodle
|
||||
if (empty($arrMoodlekurs[$i]->mdl_shortname))
|
||||
$arrMoodlekurs[$i]->mdl_shortname=$arrMoodlekurs[$i]->mdl_fullname;
|
||||
$content.='<td onclick="document.'.$cFormName.'.submit();" '.$showCSS.'>'.$arrMoodlekurs[$i]->mdl_shortname.' </td>';
|
||||
$content.='<td onclick="document.'.$cFormName.'.submit();" '.$showCSS.'>'.$arrMoodlekurs[$i]->mdl_course_id.' </td>';
|
||||
// Bearbeitung Submit
|
||||
|
||||
$cFormNameDel=$cFormName.'del';
|
||||
|
||||
if ($arrMoodlekurs[$i]->mdl_course_id)
|
||||
{
|
||||
$content.= '<td valign="top" title="Ändert den Kurs in der Lehre und auch den Moodle Kurs. Entfernt den Kurs aus der Lehre." style="cursor: pointer;" onclick="document.'.$cFormName.'.submit();">';
|
||||
$content.='<form style="display: inline;border:0px;" name="'.$cFormName.'" method="POST" target="zuteilung_warten" action="zuteilung_warten.php">';
|
||||
$content.= '<input style="display:none" type="text" name="lehrveranstaltung_id" value="'.$arrMoodlekurs[$i]->moodle_lehrveranstaltung_id.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="lehreinheit_id" value="'.$arrMoodlekurs[$i]->moodle_lehreinheit_id.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="mdl_course_id" value="'.$arrMoodlekurs[$i]->mdl_course_id.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="studiensemester_kurzbz" value="'.$arrMoodlekurs[$i]->studiensemester_kurzbz.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="wartung" value="wartung" />';
|
||||
$content.= '<input style="display:none" type="text" name="debug" value="'.$bDebug.'" />';
|
||||
$content.= '<img height="15" src="../../skin/images/edit.png" border="0" title="MoodleKurs aendern" alt="edit.png" />';
|
||||
$content.= '<input onclick="this.checked=false;" onblur="this.checked=false;" type="checkbox" value="" style="'.(!stristr($_SERVER['HTTP_USER_AGENT'],'OPERA') && !stristr($_SERVER['HTTP_USER_AGENT'],'Safari')?'display:none;':'').'font-size: 4px;border:0px solid transparent;text-decoration:none; background-color: transparent;" name="check_va_detail_kal'.$i.'" />';
|
||||
$content.= 'ändern';
|
||||
$content.='</form>';
|
||||
$content.= '</td>';
|
||||
|
||||
$content.= '<td valign="top" title="Entfernt den Kurs aus der Lehre. Der Moodle Kurs bleibt bestehen." style="cursor: pointer;" onclick="if (!window.confirm(\'Löschen Moodlekurs '.$arrMoodlekurs[$i]->mdl_course_id.', '.$arrMoodlekurs[$i]->lehrveranstaltung_bezeichnung.' ? \')) {return false;}; document.'.$cFormNameDel.'.submit();">';
|
||||
$content.='<form style="display: inline;border:0px;" name="'.$cFormNameDel.'" method="POST" target="zuteilung_warten" action="zuteilung_warten.php">';
|
||||
$content.= '<input style="display:none" type="text" name="mdl_course_id" value="'.$arrMoodlekurs[$i]->moodle_mdl_course_id.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="lehrveranstaltung_id" value="'.$arrMoodlekurs[$i]->moodle_lehrveranstaltung_id.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="lehreinheit_id" value="'.$arrMoodlekurs[$i]->moodle_lehreinheit_id.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="studiensemester_kurzbz" value="'.$arrMoodlekurs[$i]->studiensemester_kurzbz.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="entfernen" value="entfernen" />';
|
||||
$content.= '<input style="display:none" type="text" name="debug" value="'.$bDebug.'" />';
|
||||
$content.= '<img height="15" src="../../skin/images/table_row_delete.png" border="0" title="MoodleKurs entfernen" alt="table_row_delete.png" />';
|
||||
$content.= '<input onclick="this.checked=false;" onblur="this.checked=false;" type="checkbox" value="" style="'.(!stristr($_SERVER['HTTP_USER_AGENT'],'OPERA') && !stristr($_SERVER['HTTP_USER_AGENT'],'Safari')?'display:none;':'').'font-size: 4px;border:0px solid transparent;text-decoration:none; background-color: transparent;" name="check_va_detail_kal'.$i.'" />';
|
||||
$content.= 'entfernen<br /> aus Lehre';
|
||||
$content.='</form>';
|
||||
$content.= '</td>';
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
$content.= '<td valign="top" title="Entfernt den Kurs aus der Lehre." style="cursor: pointer;" onclick="if (!window.confirm(\'Löschen Moodlekurs '.$arrMoodlekurs[$i]->mdl_course_id.', '.$arrMoodlekurs[$i]->lehrveranstaltung_bezeichnung.' ? \')) {return false;}; document.'.$cFormNameDel.'.submit();">';
|
||||
$content.='<form style="display: inline;border:0px;" name="'.$cFormNameDel.'" method="POST" target="zuteilung_warten" action="zuteilung_warten.php">';
|
||||
$content.= '<input style="display:none" type="text" name="mdl_course_id" value="'.$arrMoodlekurs[$i]->moodle_mdl_course_id.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="lehrveranstaltung_id" value="'.$arrMoodlekurs[$i]->moodle_lehrveranstaltung_id.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="lehreinheit_id" value="'.$arrMoodlekurs[$i]->moodle_lehreinheit_id.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="studiensemester_kurzbz" value="'.$arrMoodlekurs[$i]->studiensemester_kurzbz.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="entfernen" value="entfernen" />';
|
||||
$content.= '<input style="display:none" type="text" name="debug" value="'.$bDebug.'" />';
|
||||
$content.= '<img height="15" src="../../skin/images/table_row_delete.png" border="0" title="MoodleKurs entfernen" alt="table_row_delete.png" />';
|
||||
$content.= '<input onclick="this.checked=false;" onblur="this.checked=false;" type="checkbox" value="" style="'.(!stristr($_SERVER['HTTP_USER_AGENT'],'OPERA') && !stristr($_SERVER['HTTP_USER_AGENT'],'Safari')?'display:none;':'').'font-size: 4px;border:0px solid transparent;text-decoration:none; background-color: transparent;" name="check_va_detail_kal'.$i.'" />';
|
||||
$content.= 'entfernen';
|
||||
$content.='</form>';
|
||||
$content.= '</td>';
|
||||
}
|
||||
$content.='</tr>';
|
||||
|
||||
$content.='<tr>
|
||||
<td '.$showCSS.' colspan="19">
|
||||
<table id="detail'.$i.'" class="ausblenden" >
|
||||
<tr><td> </td></tr>';
|
||||
|
||||
$content.='<tr>
|
||||
<th colspan="3" class="topbar" colspan="2">Detailanzeige Moodelkurs '.$arrMoodlekurs[$i]->mdl_course_id.($arrMoodlekurs[$i]->moodle_lehrveranstaltung_id?' - zur Lehrveranstaltung':' - zur Lehreinheit'). '</th>
|
||||
</tr>';
|
||||
// Moodle
|
||||
$content.='<tr>';
|
||||
$content.='<td></td><th> Moodle Kurs </th><td>'.$arrMoodlekurs[$i]->mdl_fullname.'<br /> '. $arrMoodlekurs[$i]->mdl_shortname.', </td>';
|
||||
$content.='</tr>';
|
||||
|
||||
$content.='<tr>
|
||||
<td colspan="3"><hr /></td>
|
||||
</tr>';
|
||||
|
||||
$content.='<tr>';
|
||||
$content.='<td> </td><th> Studiensemester </th>';
|
||||
$content.='<td>'.$arrMoodlekurs[$i]->studiensemester_kurzbz.'</td>';
|
||||
$content.='</tr>';
|
||||
|
||||
$content.='<tr>';
|
||||
$content.='<td> </td><th> Studiengang </th>';
|
||||
$content.='<td>'.$stg_obj->kuerzel.' '.$stg_obj->bezeichnung.' ('.$stg_obj->kurzbzlang.'), '.$stg_obj->studiengang_kz.' </td>';
|
||||
$content.='</tr>';
|
||||
|
||||
$content.='<tr>';
|
||||
$content.='<td></td><th> Semester </th>';
|
||||
$content.='<td>'.$arrMoodlekurs[$i]->lehrveranstaltung_semester.' </td>';
|
||||
$content.='</tr>';
|
||||
|
||||
$content.='<tr>';
|
||||
$content.='<td></td><th> Lehrveranstaltung </th>';
|
||||
$content.='<td>'.(isset($arrMoodlekurs[$i]->lehrveranstaltung_bezeichnung)?$arrMoodlekurs[$i]->lehrveranstaltung_bezeichnung.' Kurzbz: '.$arrMoodlekurs[$i]->lehrveranstaltung_kurzbz.' , Lehrform Kurzbz:'.($arrMoodlekurs[$i]->lehrveranstaltung_lehrform_kurzbz?$arrMoodlekurs[$i]->lehrveranstaltung_lehrform_kurzbz:' - '):'').', ID '.$arrMoodlekurs[$i]->lehrveranstaltung_id.' </td>';
|
||||
$content.='</tr>';
|
||||
|
||||
$content.='<tr>';
|
||||
$content.='<td></td><th valign="top"> Lehreinheit </th>';
|
||||
|
||||
if ($arrMoodlekurs[$i]->moodle_lehrveranstaltung_id)
|
||||
{
|
||||
$content.='<td valign="top">';
|
||||
$le_obj->lehreinheiten=array(); // Init
|
||||
$le_obj->load_lehreinheiten($arrMoodlekurs[$i]->lehrveranstaltung_id, $arrMoodlekurs[$i]->studiensemester_kurzbz);
|
||||
foreach ($le_obj->lehreinheiten as $row)
|
||||
{
|
||||
//Gruppen laden
|
||||
$gruppen = '';
|
||||
if (!$legrp_obj = new lehreinheitgruppe())
|
||||
die('Fehler beim Oeffnen der Lehreinheitgruppe');
|
||||
if ($legrp_obj->getLehreinheitgruppe($row->lehreinheit_id))
|
||||
{
|
||||
foreach ($legrp_obj->lehreinheitgruppe as $grp)
|
||||
{
|
||||
if($grp->gruppe_kurzbz=='')
|
||||
$gruppen.=' '.$grp->semester.$grp->verband.$grp->gruppe;
|
||||
else
|
||||
$gruppen.=' '.$grp->gruppe_kurzbz;
|
||||
}
|
||||
}
|
||||
|
||||
//Lektoren laden
|
||||
$lektoren='';
|
||||
$lehreinheitmitarbeiter = new lehreinheitmitarbeiter();
|
||||
$lehreinheitmitarbeiter->getLehreinheitmitarbeiter($row->lehreinheit_id);
|
||||
foreach ($lehreinheitmitarbeiter->lehreinheitmitarbeiter as $ma)
|
||||
{
|
||||
$lektoren.= ($lektoren?',':'').' '.$ma->mitarbeiter_uid;
|
||||
}
|
||||
|
||||
$content.=$row->lehrform_kurzbz.' '.$gruppen.' ID '.$row->lehreinheit_id.' '.$lektoren;
|
||||
$content.='<br />';
|
||||
}
|
||||
$content.='</td>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$content.='<td>'.$gruppen.', '.($arrMoodlekurs[$i]->lehreinheit_id?$arrMoodlekurs[$i]->lehreinheit_id:'').'</td>';
|
||||
}
|
||||
|
||||
$content.='</tr>';
|
||||
$content.='<tr><td> </td></tr>';
|
||||
// Bearbeitung Submit
|
||||
$content.='<tr>';
|
||||
if ($arrMoodlekurs[$i]->mdl_course_id)
|
||||
{
|
||||
# $cFormName='workMoodleCurseDetail'.$i;
|
||||
$content.= '<th colspan="3" style="cursor: pointer;" onclick="document.'.$cFormName.'.submit();">';
|
||||
$content.= '<img height="15" src="../../skin/images/edit.png" border="0" title="MoodleKurs entfernen" alt="edit.png" />';
|
||||
$content.= '<input onclick="this.checked=false;" onblur="this.checked=false;" type="checkbox" value="" style="'.(!stristr($_SERVER['HTTP_USER_AGENT'],'OPERA') && !stristr($_SERVER['HTTP_USER_AGENT'],'Safari')?'display:none;':'').'font-size: 4px;border:0px solid transparent;text-decoration:none; background-color: transparent;" name="check_va_detail_kal'.$i.'" />';
|
||||
$content.= 'ändern';
|
||||
$content.= '</th>';
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
$content.= '<td> </td>';
|
||||
}
|
||||
$content.= '</tr>';
|
||||
$content.='</table></td></tr>';
|
||||
|
||||
} // Ende Moodlekurse in einer Schleife anzeigen.
|
||||
$content.= '</table>';
|
||||
$content.='</div>';
|
||||
return $content;
|
||||
}
|
||||
|
||||
|
||||
// ***********************************************************************************************
|
||||
|
||||
// String auf Laenge abschneiden
|
||||
|
||||
// ***********************************************************************************************
|
||||
|
||||
function CutString($strVal, $limit)
|
||||
{
|
||||
if(strlen($strVal) > $limit+3)
|
||||
{
|
||||
return substr($strVal, 0, $limit) . "...";
|
||||
}
|
||||
else
|
||||
{
|
||||
return $strVal;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
||||
@@ -1,779 +0,0 @@
|
||||
<?php
|
||||
//@version $Id: kurs_verwaltung.php 2799 2009-07-16 11:56:39Z simane $
|
||||
/* 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: Christian Paminger < christian.paminger@technikum-wien.at >
|
||||
* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
*/
|
||||
/*
|
||||
* Dieses Programm listet nach Selektinskreterien alle Moodelkurse zu einem Studiengang oder Lehreinheit auf.
|
||||
* Jede MoodleID kann invididuell zu einem Studiengang oder Lehreinheit zugeteilt werden.
|
||||
*/
|
||||
header('Content-Type: text/html;charset=UTF-8');
|
||||
// Ohne einer Moodlekurs ID hier beenden
|
||||
$mdl_course_id=(isset($_REQUEST['mdl_course_id'])?trim($_REQUEST['mdl_course_id']):'');
|
||||
$entfernen=(isset($_REQUEST['entfernen'])?trim($_REQUEST['entfernen']):'');
|
||||
if (empty($mdl_course_id) && !$entfernen)
|
||||
exit();
|
||||
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/globals.inc.php');
|
||||
require_once('../../include/studiengang.class.php');
|
||||
require_once('../../include/studiensemester.class.php');
|
||||
require_once('../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../include/lehreinheit.class.php');
|
||||
require_once('../../include/lehreinheitgruppe.class.php');
|
||||
require_once('../../include/lehreinheitmitarbeiter.class.php');
|
||||
require_once('../../include/moodle19_course.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/moodle'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
// ***********************************************************************************************
|
||||
// Datenbankverbindungen zu Moodle und Vilesci und Classen
|
||||
// ***********************************************************************************************
|
||||
if (!$objMoodle = new moodle19_course())
|
||||
die('Fehler beim Oeffnen der Moodleverbindung');
|
||||
|
||||
$entfernen=(isset($_REQUEST['entfernen'])?trim($_REQUEST['entfernen']):'');
|
||||
if (!empty($entfernen))
|
||||
{
|
||||
$lehrveranstaltung_id=(isset($_REQUEST['lehrveranstaltung_id']) && !empty($_REQUEST['lehrveranstaltung_id'])?trim($_REQUEST['lehrveranstaltung_id']):null);
|
||||
$lehreinheit_id=(isset($_REQUEST['lehreinheit_id']) && !empty($_REQUEST['lehreinheit_id'])?$_REQUEST['lehreinheit_id']:null);
|
||||
if(!$objMoodle->delete_vilesci($mdl_course_id,$lehrveranstaltung_id,$lehreinheit_id))
|
||||
{
|
||||
exit('Eintrag wurde in Lehre nicht gelöscht! '.$objMoodle->errormsg);
|
||||
}
|
||||
exit('Eintrag in Lehre gelöscht! '.$objMoodle->errormsg);
|
||||
}
|
||||
|
||||
|
||||
if (!$le_obj = new lehreinheit())
|
||||
die('Fehler beim Oeffnen der Lehreinheit');
|
||||
|
||||
if (!$legrp_obj = new lehreinheitgruppe())
|
||||
die('Fehler beim Oeffnen der Lehreinheitgruppe');
|
||||
|
||||
if (!$lv_obj = new lehrveranstaltung())
|
||||
die('Fehler beim Oeffnen der Lehrveranstaltung');
|
||||
|
||||
if (!$stg_obj = new studiengang())
|
||||
die('Fehler beim Oeffnen der Studiengänge');
|
||||
|
||||
if (!$stsem = new studiensemester())
|
||||
die('Fehler beim Oeffnen der Studiensemester');
|
||||
|
||||
|
||||
// @$studiensemester_kurzbz Studiensemester xxJJJJ - xx fuer SS Sommer oder WW Winter
|
||||
if (!$stsem_aktuell = $stsem->getakt())
|
||||
$stsem_aktuell = $stsem->getaktorNext();
|
||||
|
||||
|
||||
|
||||
// ***********************************************************************************************
|
||||
|
||||
// Variable Initialisieren
|
||||
|
||||
// ***********************************************************************************************
|
||||
#var_dump($_REQUEST);
|
||||
|
||||
// AusgabeStream
|
||||
|
||||
$content='';
|
||||
$errormsg=array();
|
||||
|
||||
// ***********************************************************************************************
|
||||
// POST oder GET Parameter einlesen
|
||||
// ***********************************************************************************************
|
||||
// @$mdl_course_id Moodle - ID suche
|
||||
$mdl_course_id=(isset($_REQUEST['mdl_course_id'])?trim($_REQUEST['mdl_course_id']):'');
|
||||
$studSem = (isset($_REQUEST['studiensemester_kurzbz'])?$_REQUEST['studiensemester_kurzbz']:'');
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Pruefen vor dem Datenlesen ob die Verarbeitung bereits erfolgen muss
|
||||
$bNeuAufbau=(isset($_REQUEST['aendern'])?trim($_REQUEST['aendern']):false);
|
||||
if ($mdl_course_id && $bNeuAufbau)
|
||||
{
|
||||
$bWartung=(isset($_REQUEST['aenderung'])?trim($_REQUEST['aenderung']):false);
|
||||
$bKopieren=(isset($_REQUEST['kopieren'])?trim($_REQUEST['kopieren']):false);
|
||||
if ($bWartung || $bKopieren)
|
||||
moodlekurswartung($mdl_course_id,$errormsg );
|
||||
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Check Moodle
|
||||
$mdl_course_stat='';
|
||||
|
||||
if(!$objMoodle->getAllMoodleVariant($mdl_course_id,'',$studSem,'','','',false,false,false))
|
||||
{
|
||||
die('Moodle-Kurs '.$objMoodle->mdl_course_id.' wurde in Lehre nicht gefunden! '.$objMoodle->errormsg);
|
||||
}
|
||||
// es wurden Vilescidaten gefunden
|
||||
if(isset($objMoodle->result) && isset($objMoodle->result[0]))
|
||||
{
|
||||
$new=false;
|
||||
$mdl_course_stat='*';
|
||||
$moodle_id=$objMoodle->result[0]->moodle_id;
|
||||
$studiengang_kz=$objMoodle->result[0]->lehrveranstaltung_studiengang_kz;
|
||||
$studiensemester_kurzbz=$objMoodle->result[0]->studiensemester_kurzbz;
|
||||
$semester=$objMoodle->result[0]->lehrveranstaltung_semester;
|
||||
#moodle_lehrveranstaltung_id
|
||||
|
||||
$lehrveranstaltung_id=$objMoodle->result[0]->lehrveranstaltung_id;
|
||||
$lehreinheit_id=$objMoodle->result[0]->lehreinheit_id;
|
||||
$gruppen=$objMoodle->result[0]->gruppen;
|
||||
$bezeichnung=$objMoodle->result[0]->mdl_fullname;
|
||||
$kurzbezeichnung=$objMoodle->result[0]->mdl_shortname;
|
||||
$lehrveranstaltung_id_moodle=$objMoodle->result[0]->moodle_lehrveranstaltung_id;
|
||||
}
|
||||
// es wurden Moodledaten gefunden
|
||||
else if ($objMoodle->load($mdl_course_id))
|
||||
{
|
||||
$objMoodle->result=array();
|
||||
$objMoodle->result[0]= new stdClass();
|
||||
$objMoodle->result[0]->fullname=$objMoodle->mdl_fullname;
|
||||
$objMoodle->result[0]->shortname=$objMoodle->mdl_shortname;
|
||||
|
||||
$new=true;
|
||||
$mdl_course_stat='+';
|
||||
$errormsg[]='Neuzuteilung zu Moodlekurs '.$objMoodle->mdl_course_id.' möglich';
|
||||
$moodle_id='?';
|
||||
$studiengang_kz=227;
|
||||
$studiensemester_kurzbz=$stsem_aktuell;
|
||||
$semester=1;
|
||||
$lehrveranstaltung_id='';
|
||||
$lehreinheit_id='';
|
||||
$gruppen=false;
|
||||
$bezeichnung=$objMoodle->result[0]->fullname;
|
||||
$kurzbezeichnung=$objMoodle->result[0]->shortname;
|
||||
$lehrveranstaltung_id_moodle=false;
|
||||
}
|
||||
else
|
||||
{
|
||||
die('Moodle-Kurs '.$objMoodle->mdl_course_id.' wurde nicht gefunden! '.$objMoodle->errormsg);
|
||||
}
|
||||
|
||||
|
||||
// ***********************************************************************************************
|
||||
// Restliche POST oder GET Parameter der Dateneingabe einlesen
|
||||
// ***********************************************************************************************
|
||||
// @bDebug Anzeige der xml-rfc Daten moegliche Stufen sind 0,1,2,3
|
||||
$bDebug= (isset($_REQUEST['debug'])?$_REQUEST['debug']:0);
|
||||
|
||||
$aendern_studiensemester_kurzbz=(isset($_REQUEST['aendern_studiensemester_kurzbz'])?trim($_REQUEST['aendern_studiensemester_kurzbz']):$studiensemester_kurzbz);
|
||||
$aendern_studiengang_kz=(isset($_REQUEST['aendern_studiengang_kz'])?trim($_REQUEST['aendern_studiengang_kz']):$studiengang_kz);
|
||||
$aendern_semester=(isset($_REQUEST['aendern_semester'])?trim($_REQUEST['aendern_semester']):$semester);
|
||||
|
||||
$sel_lehrveranstaltung_id=(isset($_REQUEST['sel_lehrveranstaltung_id'])?trim($_REQUEST['sel_lehrveranstaltung_id']):$lehrveranstaltung_id);
|
||||
$aendern_lehrveranstaltung_id=(isset($_REQUEST['aendern_lehrveranstaltung_id']) && !empty($_REQUEST['aendern_lehrveranstaltung_id'])?trim($_REQUEST['aendern_lehrveranstaltung_id']):$sel_lehrveranstaltung_id);
|
||||
|
||||
$aendern_lehreinheit_id=(isset($_REQUEST['aendern_lehreinheit_id'])?$_REQUEST['aendern_lehreinheit_id']:(isset($_REQUEST['aendern_studiensemester_kurzbz'])?'':$lehreinheit_id));
|
||||
|
||||
|
||||
$aendern_bezeichnung=(isset($_REQUEST['aendern_bezeichnung'])?trim($_REQUEST['aendern_bezeichnung']):$bezeichnung);
|
||||
$aendern_kurzbezeichnung=(isset($_REQUEST['aendern_kurzbezeichnung'])?trim($_REQUEST['aendern_kurzbezeichnung']):$kurzbezeichnung);
|
||||
$aendern_gruppen=(isset($_REQUEST['aendern_gruppen']) && !empty($_REQUEST['aendern_gruppen'])?true:(isset($_REQUEST['aendern_gruppen'])?1:$gruppen));
|
||||
|
||||
// ***********************************************************************************************
|
||||
// HTML Auswahlfelder (Teil 1)
|
||||
// ***********************************************************************************************
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Fuer bestehende Vilescidaten wird eine Detailinformation angezeigt
|
||||
if (!$new )
|
||||
{
|
||||
// Header
|
||||
$content.='<h2>Moodle Kurs '.$objMoodle->result[0]->mdl_course_id.($aendern_lehrveranstaltung_id?' zur Lehrveranstaltung ':' zu Lehreinheiten ').' - '.$objMoodle->result[0]->mdl_fullname .' - '.$objMoodle->result[0]->mdl_shortname.'</h2>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$content.='<h2>Moodle Kurs Neuzuteilung '.$mdl_course_id.' - '.$objMoodle->result[0]->fullname.' - '.$objMoodle->result[0]->shortname.'</h2>';
|
||||
}
|
||||
// ***********************************************************************************************
|
||||
// HTML Listenanzeige (Teil 2) Aenderungsdaten
|
||||
// ***********************************************************************************************
|
||||
// FormName erzeugen
|
||||
$cFormName='workMoodleCurse'.$mdl_course_id;
|
||||
$content.='
|
||||
<form accept-charset="UTF-8" name="'.$cFormName.'" method="POST" target="_self" action="'.$_SERVER['PHP_SELF'].'" >
|
||||
<table class="liste">
|
||||
<tr><td> </td></tr>
|
||||
<tr>
|
||||
<td> Studiensemester </td>
|
||||
<td> Studiengang </td>
|
||||
<td> Semster </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>';
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Studiensemester public.tbl_studiensemester_kurzbz
|
||||
$content.='<td valign="top"><select onchange="document.'.$cFormName.'.aendern_bezeichnung.value=\'\';document.'.$cFormName.'.aendern_lehrveranstaltung_id.checked=false;uncheckLE();generateLEText();document.'.$cFormName.'.submit();" name="aendern_studiensemester_kurzbz">';
|
||||
if ($stsem->getAll())
|
||||
{
|
||||
foreach ($stsem->studiensemester as $row)
|
||||
{
|
||||
$content.='<option value="'.$row->studiensemester_kurzbz.'" '.(("$aendern_studiensemester_kurzbz"=="$row->studiensemester_kurzbz")?' selected="selected" ':'').'> '.$row->studiensemester_kurzbz.' </option>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg[]='Studiensemester wurden nicht gefunden! '.$stsem->errormsg;
|
||||
}
|
||||
$content.='</select></td>';
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Studiengang public.tbl_studiengang_kz
|
||||
$content.='<td valign="top"><select onchange="document.'.$cFormName.'.aendern_bezeichnung.value=\'\';document.'.$cFormName.'.aendern_lehrveranstaltung_id.checked=false;uncheckLE();generateLEText();document.'.$cFormName.'.submit();" name="aendern_studiengang_kz">';
|
||||
$aendern_studiengang_name='';
|
||||
if ($stg_obj->getAll('typ, kurzbz',true))
|
||||
{
|
||||
$max_semester=0;
|
||||
$arrStudiengang='';
|
||||
foreach ($stg_obj->result as $row)
|
||||
{
|
||||
if (empty($aendern_studiengang_kz) )
|
||||
{
|
||||
$aendern_studiengang_kz=$row->studiengang_kz;
|
||||
$aendern_semester=1;
|
||||
}
|
||||
|
||||
if ($aendern_studiengang_kz==$row->studiengang_kz)
|
||||
{
|
||||
$aendern_studiengang_name=$row->kuerzel;
|
||||
$arrStudiengang=$row;
|
||||
$max_semester=$row->max_semester;
|
||||
}
|
||||
$content.='<option title="'.$row->kuerzel.'" value="'.$row->studiengang_kz.'" '.(("$aendern_studiengang_kz"=="$row->studiengang_kz")?' selected="selected" ':'').'> '.$row->kuerzel.' </option>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$content.='<option value="" > '.$stg_obj->errormsg.' </option>';
|
||||
$errormsg[]='Studiengang wurde nicht gefunden! '.$stg_obj->errormsg;
|
||||
}
|
||||
$content.='</select></td>';
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Semster public.tbl_studiengang_kz - max Semester des Selektierten Studiengangs
|
||||
$content.='<td valign="top"><select onchange="document.'.$cFormName.'.aendern_bezeichnung.value=\'\';document.'.$cFormName.'.aendern_lehrveranstaltung_id.checked=false;uncheckLE();generateLEText();document.'.$cFormName.'.submit();" name="aendern_semester">';
|
||||
if ($aendern_studiengang_kz!='')
|
||||
{
|
||||
for($i=0;$i<=$max_semester;$i++)
|
||||
{
|
||||
$content.='<option value="'.($i).'" '.("$aendern_semester"=="$i"?' selected="selected" ':'').'> '.($i).' </option>';
|
||||
}
|
||||
}
|
||||
$content.='</select></td>';
|
||||
$content.='<td valign="top">';
|
||||
|
||||
$content.='<table><tr>';
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Lehrveranstaltungen
|
||||
$content.='<th valign="top"> Lehrveranstaltung </th>';
|
||||
$content.='<td><select onchange="document.'.$cFormName.'.aendern_bezeichnung.value=\'\';document.'.$cFormName.'.aendern_lehrveranstaltung_id.value=this.value;document.'.$cFormName.'.aendern_lehrveranstaltung_id.checked=false;uncheckLE();generateLEText();document.'.$cFormName.'.submit();" name="sel_lehrveranstaltung_id">';
|
||||
$lv_bez='';
|
||||
$lv_kurz_bez='';
|
||||
$lv_obj->lehrveranstaltungen=array();
|
||||
if ($lv_obj->load_lva_le($aendern_studiengang_kz,$aendern_studiensemester_kurzbz, $aendern_semester,null,null,null,'bezeichnung'))
|
||||
{
|
||||
foreach ($lv_obj->lehrveranstaltungen as $row)
|
||||
{
|
||||
|
||||
if (empty($sel_lehrveranstaltung_id))
|
||||
$sel_lehrveranstaltung_id=$row->lehrveranstaltung_id;
|
||||
|
||||
if ("$sel_lehrveranstaltung_id"=="$row->lehrveranstaltung_id")
|
||||
{
|
||||
$lv_kurz_bez=trim($row->kurzbz);
|
||||
if (!$aendern_bezeichnung)
|
||||
$aendern_bezeichnung=$row->bezeichnung;
|
||||
}
|
||||
|
||||
$content.='<option value="'.$row->lehrveranstaltung_id.'" '.("$sel_lehrveranstaltung_id"=="$row->lehrveranstaltung_id"?' selected="selected" ':'').'> '.CutString($row->bezeichnung, 35).' '.($row->kurzbz?CutString($row->kurzbz,7).', ':'').' '.$row->lehrveranstaltung_id.($row->lehrform_kurzbz?CutString(', '.$row->lehrform_kurzbz,5):'').'</option>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$content.='<option value="" > '.$stg_obj->errormsg.' </option>';
|
||||
$errormsg[]='Lehrveranstaltung wurde nicht gefunden! '.$lv_obj->errormsg;
|
||||
}
|
||||
$content.='</select></td>';
|
||||
|
||||
$aendern_lehrveranstaltung_id=(isset($_REQUEST['aendern_lehrveranstaltung_id']) && !empty($_REQUEST['aendern_lehrveranstaltung_id'])?trim($_REQUEST['aendern_lehrveranstaltung_id']):$sel_lehrveranstaltung_id);
|
||||
|
||||
$bChecked=((!isset($_REQUEST['aendern_lehrveranstaltung_id']) && isset($objMoodle->result[0]->moodle_lehrveranstaltung_id) && $objMoodle->result[0]->moodle_lehrveranstaltung_id) || (isset($_REQUEST['aendern_lehrveranstaltung_id']) && $aendern_lehrveranstaltung_id)?true:false);
|
||||
|
||||
$content.='<th '.($bChecked?' class="error" ':'').' valign="top" title="'.$lv_kurz_bez.'" valign="top"><input onchange="if(this.checked) {uncheckLE();};generateLEText();" name="aendern_lehrveranstaltung_id" value="'.$aendern_lehrveranstaltung_id.'" type="Checkbox" '.($bChecked?' checked="checked" ':'').'> Moodle Kurs für gesamte LV</th>';
|
||||
$content.='</tr>';
|
||||
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Lehreinheit
|
||||
$content.='<tr>';
|
||||
$content.='<th valign="top"> Lehreinheiten </th>';
|
||||
$content.='<td valign="top"><table>';
|
||||
|
||||
# $content.='<tr><th>Moodlekurs zu LV '.$aendern_studiensemester_kurzbz.'/'.$aendern_lehrveranstaltung_id.' </th></tr>';
|
||||
|
||||
$le_obj->lehreinheiten=array();
|
||||
$le_obj->load_lehreinheiten($sel_lehrveranstaltung_id, $aendern_studiensemester_kurzbz);
|
||||
|
||||
if (!is_array($le_obj->lehreinheiten) || count($le_obj->lehreinheiten)<1)
|
||||
{
|
||||
$content.='<tr>';
|
||||
$content.='<td valign="top" class="error">Achtung ! Es gibt keine Lehreinheit für '.$aendern_studiensemester_kurzbz.'-'.$aendern_bezeichnung.' '.$lv_kurz_bez.'</td>';
|
||||
$content.='</tr>';
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach ($le_obj->lehreinheiten as $row)
|
||||
{
|
||||
//Gruppen laden
|
||||
$gruppen = '';
|
||||
if (!$legrp_obj = new lehreinheitgruppe())
|
||||
die('Fehler beim Oeffnen der Lehreinheitgruppe');
|
||||
|
||||
if ($legrp_obj->getLehreinheitgruppe($row->lehreinheit_id))
|
||||
{
|
||||
foreach ($legrp_obj->lehreinheitgruppe as $grp)
|
||||
{
|
||||
if($grp->gruppe_kurzbz=='')
|
||||
$gruppen.=' '.$grp->semester.$grp->verband.$grp->gruppe;
|
||||
else
|
||||
$gruppen.=' '.$grp->gruppe_kurzbz;
|
||||
}
|
||||
}
|
||||
|
||||
//Lektoren laden
|
||||
$lektoren='';
|
||||
$lehreinheitmitarbeiter = new lehreinheitmitarbeiter();
|
||||
$lehreinheitmitarbeiter->getLehreinheitmitarbeiter($row->lehreinheit_id);
|
||||
foreach ($lehreinheitmitarbeiter->lehreinheitmitarbeiter as $ma)
|
||||
{
|
||||
$lektoren.= ($lektoren?',':'').' '.$ma->mitarbeiter_uid;
|
||||
}
|
||||
|
||||
$le_gefunden=false;
|
||||
# $bChecked=((!isset($_REQUEST['aendern_lehrveranstaltung_id']) && isset($objMoodle->result[0]->moodle_lehrveranstaltung_id) && $objMoodle->result[0]->moodle_lehrveranstaltung_id) || (isset($_REQUEST['aendern_lehrveranstaltung_id']) && $aendern_lehrveranstaltung_id)?false:true);
|
||||
if (isset($_REQUEST['aendern_lehrveranstaltung_id']) && !$aendern_lehrveranstaltung_id && isset($aendern_lehreinheit_id) && is_array($aendern_lehreinheit_id))
|
||||
{
|
||||
reset($aendern_lehreinheit_id);
|
||||
for ($ii=0;$ii<count($aendern_lehreinheit_id);$ii++)
|
||||
{
|
||||
if (isset($aendern_lehreinheit_id[$ii]) && $aendern_lehreinheit_id[$ii]==$row->lehreinheit_id)
|
||||
$le_gefunden=true;
|
||||
}
|
||||
}
|
||||
else if ($new || (isset($_REQUEST['aendern_lehrveranstaltung_id']) && $aendern_lehrveranstaltung_id) )
|
||||
{
|
||||
$le_gefunden=false;
|
||||
}
|
||||
else
|
||||
{
|
||||
reset($objMoodle->result);
|
||||
for ($ii=0;$ii<count($objMoodle->result);$ii++)
|
||||
{
|
||||
if ($objMoodle->result[$ii]->moodle_lehreinheit_id==$row->lehreinheit_id)
|
||||
$le_gefunden=true;
|
||||
}
|
||||
}
|
||||
|
||||
$content.='<tr '.($le_gefunden?' class="error" ':' ').' >';
|
||||
// LE Text
|
||||
$content.='<td>'.$row->lehrform_kurzbz.' </td><td>'.$gruppen.' </td><td>'.$row->lehreinheit_id.' </td>';
|
||||
// LE Checkbox
|
||||
$content.='<td><input '.($le_gefunden?' checked="checked" ':' ').' onchange="if(this.checked) {document.'.$cFormName.'.aendern_lehrveranstaltung_id.checked=false;};generateLEText();" id="aendern_lehreinheit_id[]" name="aendern_lehreinheit_id[]" value="'.$row->lehreinheit_id.'" type="Checkbox"> '.$lektoren.'</td>';
|
||||
$content.='</tr>';
|
||||
}
|
||||
}
|
||||
$bGefundenLehreinheit=(count($le_obj->lehreinheiten)?true:false);
|
||||
|
||||
$content.='<tr><td> </td></tr></table></td>';
|
||||
$content.='</tr>';
|
||||
$content.='</table></td></tr>';
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// ---- Submitknopf
|
||||
$content.='<tr><td colspan="4"><table>
|
||||
<tr>
|
||||
|
||||
<th align="left">Moodle :
|
||||
<br />Kursbez.: <input name="aendern_bezeichnung" maxlength="254" size="60" type="Text" value="'. $aendern_bezeichnung.'">
|
||||
<br />Kurzbez.: <input name="aendern_kurzbezeichnung" maxlength="254" size="60" type="Text" value="'. $aendern_kurzbezeichnung.'">
|
||||
</th>
|
||||
<td> </td>
|
||||
<th>Gruppen übernehmen: <input type="checkbox" value="1" name="aendern_gruppen" '.($aendern_gruppen?' checked="checked" ':'').' ><br /></th>
|
||||
<th>
|
||||
<input style="display:none" type="text" name="mdl_course_id" value="'.$mdl_course_id.'">
|
||||
<input style="display:none" type="text" name="aendern" value="aendern" />
|
||||
<input style="display:none" type="text" name="debug" value="'.$bDebug.'" />
|
||||
|
||||
|
||||
<input style="padding: 2px 20px 2px 20px;" name="aenderung" type="submit" value="neu zuteilen">
|
||||
<input style="padding: 2px 20px 2px 20px;" name="kopieren" type="submit" value="hinzufügen">
|
||||
</th>';
|
||||
if (!$new )
|
||||
{
|
||||
// Header
|
||||
$content.='<td><table border="0">';
|
||||
$content.='<tr id="aktuell_on" onclick="this.className=\'ausblenden\';document.getElementById(\'aktuell\').className=\'einblenden\';document.getElementById(\'aktuell_off\').className=\'einblenden\';" class="einblenden"><td><img height="15" src="../../skin/images/bullet_arrow_right.png" border="0" title="Detailansicht" alt="bullet_arrow_down.png" /></td><td><b>anzeigen</b> aktuelle '.($objMoodle->result[0]->moodle_lehrveranstaltung_id?' Lehrveranstaltung ':' Lehreinheiten').'</td></tr>';
|
||||
$content.='<tr id="aktuell_off" onclick="this.className=\'ausblenden\';document.getElementById(\'aktuell\').className=\'ausblenden\';document.getElementById(\'aktuell_on\').className=\'einblenden\';" class="ausblenden"><td><img height="15" src="../../skin/images/bullet_arrow_down.png" border="0" title="Detailansicht" alt="bullet_arrow_down.png" /></td><td><b>ausblenden</b> ktuelle '.($objMoodle->result[0]->moodle_lehrveranstaltung_id?' Lehrveranstaltung ':' Lehreinheiten').'</td></tr>';
|
||||
$content.='</table></td>';
|
||||
}
|
||||
|
||||
$content.='</tr></table></td>';
|
||||
$content.='</tr></table>
|
||||
</form>
|
||||
<hr>';
|
||||
//---------------------------------------------------------------------------
|
||||
// Fuer bestehende Vilescidaten wird eine Detailinformation angezeigt
|
||||
if (!$new )
|
||||
{
|
||||
$content.='<table border="0" id="aktuell" class="ausblenden" >';
|
||||
//---------------------------------------------------------------------------
|
||||
// @studiengang_kz Studiengang
|
||||
if ($studiengang_kz)
|
||||
{
|
||||
if ($stg_obj->load($studiengang_kz))
|
||||
{
|
||||
$content.='<tr>';
|
||||
$content.='<th>Studiengang</th>
|
||||
<td rowspan="5"> </td>
|
||||
<td>
|
||||
<table class="liste" summary="Studiengang">
|
||||
<tr>
|
||||
<td>'.(isset($objMoodle->result[0]) && isset($objMoodle->result[0]->studiensemester_kurzbz)?$objMoodle->result[0]->studiensemester_kurzbz:'').' </td>
|
||||
<td>'.$stg_obj->kuerzel.' </td>
|
||||
<td>'.$stg_obj->bezeichnung.' </td>
|
||||
<td>('.$stg_obj->kurzbzlang.') </td>
|
||||
<td>ID '.$studiengang_kz.' </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>';
|
||||
$content.='</tr>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg[]='Studieng '.$studiengang_kz.' wurden nicht gefunden! '.$stg_obj->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$content.='<tr><td>-</td></tr>';
|
||||
}
|
||||
$content.='<tr>';
|
||||
$content.='<th valign="top">Lehrveranstaltung</th>
|
||||
<td valign="top">'.(isset($objMoodle->result[0]) && isset($objMoodle->result[0]->lehrveranstaltung_bezeichnung)?$objMoodle->result[0]->lehrveranstaltung_bezeichnung.' Kurzbz: '.$objMoodle->result[0]->lehrveranstaltung_kurzbz.' , Lehrform Kurzbz:'.($objMoodle->result[0]->lehrveranstaltung_lehrform_kurzbz?$objMoodle->result[0]->lehrveranstaltung_lehrform_kurzbz:' - ').', ID '.$objMoodle->result[0]->lehrveranstaltung_id.' ':' - ').'</td>
|
||||
<td valign="top" '.($objMoodle->result[0]->moodle_lehrveranstaltung_id?' class="error" ':'').'><input disabled name="lehrveranstaltung_id" value="'.$objMoodle->result[0]->lehrveranstaltung_id.'" type="Checkbox" '.($objMoodle->result[0]->moodle_lehrveranstaltung_id?' checked="checked" ':'').'> </td>
|
||||
';
|
||||
$content.='<th valign="top">Lehreinheiten</th>';
|
||||
$content.='<td><table>';
|
||||
|
||||
$le_obj->lehreinheiten=array(); // Init
|
||||
$le_obj->load_lehreinheiten($lehrveranstaltung_id, $studiensemester_kurzbz);
|
||||
foreach ($le_obj->lehreinheiten as $row)
|
||||
{
|
||||
//Gruppen laden
|
||||
$gruppen = '';
|
||||
if (!$legrp_obj = new lehreinheitgruppe())
|
||||
die('Fehler beim Oeffnen der Lehreinheitgruppe');
|
||||
if ($legrp_obj->getLehreinheitgruppe($row->lehreinheit_id))
|
||||
{
|
||||
foreach ($legrp_obj->lehreinheitgruppe as $grp)
|
||||
{
|
||||
if($grp->gruppe_kurzbz=='')
|
||||
$gruppen.=' '.$grp->semester.$grp->verband.$grp->gruppe;
|
||||
else
|
||||
$gruppen.=' '.$grp->gruppe_kurzbz;
|
||||
}
|
||||
|
||||
}
|
||||
//Lektoren laden
|
||||
$lektoren='';
|
||||
$lehreinheitmitarbeiter = new lehreinheitmitarbeiter();
|
||||
$lehreinheitmitarbeiter->getLehreinheitmitarbeiter($row->lehreinheit_id);
|
||||
foreach ($lehreinheitmitarbeiter->lehreinheitmitarbeiter as $ma)
|
||||
{
|
||||
$lektoren.= ($lektoren?',':'').' '.$ma->mitarbeiter_uid;
|
||||
}
|
||||
$le_gefunden=false;
|
||||
reset($objMoodle->result);
|
||||
for ($ii=0;$ii<count($objMoodle->result);$ii++)
|
||||
{
|
||||
if ($objMoodle->result[$ii]->moodle_lehreinheit_id==$row->lehreinheit_id)
|
||||
$le_gefunden=true;
|
||||
}
|
||||
$content.='<tr '.($le_gefunden?' class="error" ':' ').'>';
|
||||
$content.='<td>'.$row->lehrform_kurzbz.' </td><td>'.$gruppen.' </td><td>ID '.$row->lehreinheit_id.' </td>';
|
||||
$content.='<td valign="top"><input '.($le_gefunden?' checked="checked" ':'').' id="lehreinheit_id" disabled name="lehreinheit_id[]" value="'.$row->lehreinheit_id.'" type="Checkbox" > '.$lektoren.'</td>';
|
||||
$content.='</tr>';
|
||||
}
|
||||
$content.='</table></td>';
|
||||
$content.='</tr>';
|
||||
$content.='</table>';
|
||||
}
|
||||
|
||||
// ***********************************************************************************************
|
||||
// HTML Header und Foot zum Content (Ausgabestring) hinzufuegen, und wartung
|
||||
// ***********************************************************************************************
|
||||
$content='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Moodle - Kurszuteilungverwalten</title>
|
||||
<base target="main">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
|
||||
<script type="text/javascript" language="JavaScript">
|
||||
<!-- Begin
|
||||
function generateLEText()
|
||||
{
|
||||
document.'.$cFormName.'.aendern_kurzbezeichnung.value=document.'.$cFormName.'.aendern_studiensemester_kurzbz.value+"-'.(isset($aendern_studiengang_name)?$aendern_studiengang_name:'???').'-"+document.'.$cFormName.'.aendern_semester.value+"'.($lv_kurz_bez?'-'.$lv_kurz_bez:'').'";
|
||||
if ("'.($bGefundenLehreinheit?'X':'').'"=="" || document.'.$cFormName.'.aendern_lehrveranstaltung_id.checked==true)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var bez="";
|
||||
document.'.$cFormName.'.aendern_kurzbezeichnung.bez;
|
||||
|
||||
var no;
|
||||
var m=document.'.$cFormName.';
|
||||
if (no=m.elements["aendern_lehreinheit_id[]"].length)
|
||||
{
|
||||
for(i=0;i<no;i++)
|
||||
{
|
||||
if (m.elements["aendern_lehreinheit_id[]"][i].checked==true)
|
||||
{
|
||||
if (bez!="")
|
||||
{
|
||||
bez=bez+"/";
|
||||
}
|
||||
bez=bez+m.elements["aendern_lehreinheit_id[]"][i].value;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (bez!="")
|
||||
{
|
||||
document.'.$cFormName.'.aendern_kurzbezeichnung.value=document.'.$cFormName.'.aendern_studiensemester_kurzbz.value+"-'.(isset($aendern_studiengang_name)?$aendern_studiengang_name:'???').'-"+document.'.$cFormName.'.aendern_semester.value+"-"+bez;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function uncheckLE()
|
||||
{
|
||||
'.($bGefundenLehreinheit?'':' return; '). '
|
||||
|
||||
var no;
|
||||
var m=document.'.$cFormName.';
|
||||
if (no=m.elements["aendern_lehreinheit_id[]"].length)
|
||||
{
|
||||
for(i=0;i<no;i++)
|
||||
{
|
||||
m.elements["aendern_lehreinheit_id[]"][i].checked=false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//-->
|
||||
</script>
|
||||
</head>
|
||||
<body class="background_main">
|
||||
<!-- MoodleKurs Content Start -->
|
||||
'.$content.'<p class="error">'.implode('<br>',$errormsg).'</p>
|
||||
<br />
|
||||
</body>
|
||||
</html>';
|
||||
echo $content;
|
||||
exit;
|
||||
|
||||
// ***********************************************************************************************
|
||||
// Submit - Datenverarbeiten
|
||||
// ***********************************************************************************************
|
||||
function moodlekurswartung($mdl_course_id,&$errormsg)
|
||||
{
|
||||
if (!$user=get_uid())
|
||||
{
|
||||
$errormsg[]='Sie sind nicht angemeldet. Es wurde keine Benutzer UID gefunden !';
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!$objMoodle = new moodle19_course())
|
||||
die('Fehler beim Oeffnen der Moodleverbindung');
|
||||
|
||||
if (!$le_obj = new lehreinheit())
|
||||
die('Fehler beim Oeffnen der Lehreinheit');
|
||||
|
||||
if (!$legrp_obj = new lehreinheitgruppe())
|
||||
die('Fehler beim Oeffnen der Lehreinheitgruppe');
|
||||
|
||||
if (!$lv_obj = new lehrveranstaltung())
|
||||
die('Fehler beim Oeffnen der Lehrveranstaltung');
|
||||
|
||||
if (!$stg_obj = new studiengang())
|
||||
die('Fehler beim Oeffnen der Studiengänge');
|
||||
|
||||
if (!$stsem = new studiensemester())
|
||||
die('Fehler beim Oeffnen der Studiensemester');
|
||||
|
||||
// alter Pfad des Moodle Kurses
|
||||
$oldPath = $objMoodle->getPath($mdl_course_id);
|
||||
|
||||
$bWartung=(isset($_REQUEST['aenderung']) && !empty($_REQUEST['aenderung'])?true:false);
|
||||
$bKopieren=(isset($_REQUEST['kopieren']) && !empty($_REQUEST['kopieren'])?true:false);
|
||||
$aendern_studiensemester_kurzbz=(isset($_REQUEST['aendern_studiensemester_kurzbz'])?trim($_REQUEST['aendern_studiensemester_kurzbz']):'');
|
||||
$aendern_studiengang_kz=(isset($_REQUEST['aendern_studiengang_kz'])?trim($_REQUEST['aendern_studiengang_kz']):'');
|
||||
$aendern_semester=(isset($_REQUEST['aendern_semester'])?trim($_REQUEST['aendern_semester']):'');
|
||||
|
||||
$sel_lehrveranstaltung_id=(isset($_REQUEST['sel_lehrveranstaltung_id'])?trim($_REQUEST['sel_lehrveranstaltung_id']):$lehrveranstaltung_id);
|
||||
$aendern_lehrveranstaltung_id=(isset($_REQUEST['aendern_lehrveranstaltung_id']) && !empty($_REQUEST['aendern_lehrveranstaltung_id'])?trim($_REQUEST['aendern_lehrveranstaltung_id']):$sel_lehrveranstaltung_id);
|
||||
|
||||
$aendern_lehreinheit_id=(isset($_REQUEST['aendern_lehreinheit_id'])?$_REQUEST['aendern_lehreinheit_id']:(isset($_REQUEST['aendern_studiensemester_kurzbz'])?'':''));
|
||||
|
||||
$aendern_bezeichnung=(isset($_REQUEST['aendern_bezeichnung'])?trim($_REQUEST['aendern_bezeichnung']):'');
|
||||
$aendern_kurzbezeichnung=(isset($_REQUEST['aendern_kurzbezeichnung'])?trim($_REQUEST['aendern_kurzbezeichnung']):'');
|
||||
$aendern_gruppen=(isset($_REQUEST['aendern_gruppen']) && !empty($_REQUEST['aendern_gruppen'])?true:(isset($_REQUEST['aendern_gruppen'])?1:0));
|
||||
|
||||
|
||||
// Original Moodlekurs lesen
|
||||
if(!$objMoodle->getAllMoodleVariant($mdl_course_id,'','','','','',false,false,false))
|
||||
{
|
||||
die('Moodle-Kurs '.$objMoodle->mdl_course_id.' wurde in Lehre nicht gefunden! '.$objMoodle->errormsg);
|
||||
}
|
||||
// Kurs wurde gefunden
|
||||
if(isset($objMoodle->result) && isset($objMoodle->result[0]))
|
||||
{
|
||||
$new_lehre_moodle_kurs=false;
|
||||
$objMoodle->new=false;
|
||||
}
|
||||
// Es gibt im Moodle den Kurs
|
||||
else if ($objMoodle->load($mdl_course_id) && !$bKopieren)
|
||||
{
|
||||
$new_lehre_moodle_kurs=true;
|
||||
$objMoodle->new=true; // Datensatz anlegen
|
||||
}
|
||||
else
|
||||
{
|
||||
die('Moodle-Kurs '.$mdl_course_id.' wurde nicht gefunden! '.$objMoodle->errormsg);
|
||||
}
|
||||
|
||||
|
||||
if ($bKopieren)
|
||||
{
|
||||
if ($new_lehre_moodle_kurs)
|
||||
{
|
||||
die('nur bestehende Moodle-Kurse können kopiert werden ');
|
||||
}
|
||||
$objMoodle->new=true; // Datensatz anlegen
|
||||
}
|
||||
|
||||
#echo $aendern_lehrveranstaltung_id;
|
||||
#var_dump($aendern_lehreinheit_id);
|
||||
|
||||
// Lehreinheiten
|
||||
if ((!is_array($aendern_lehreinheit_id) && !empty($aendern_lehreinheit_id))
|
||||
|| (is_array($aendern_lehreinheit_id) && count($aendern_lehreinheit_id)>0) )
|
||||
{
|
||||
$objMoodle->lehrveranstaltung_id=null;
|
||||
$objMoodle->lehreinheit_id=$aendern_lehreinheit_id;
|
||||
}
|
||||
// Lehrveranstaltung
|
||||
else if ($aendern_lehrveranstaltung_id)
|
||||
{
|
||||
$objMoodle->lehrveranstaltung_id=$aendern_lehrveranstaltung_id;
|
||||
$objMoodle->lehreinheit_id=null;
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg[]='LV oder LE wurde nicht ausgewählt!';
|
||||
return false;
|
||||
}
|
||||
|
||||
$objMoodle->mdl_course_id=$mdl_course_id;
|
||||
|
||||
$objMoodle->studiensemester_kurzbz=$aendern_studiensemester_kurzbz;
|
||||
|
||||
// Kurztext des Moodlekurses neu ermitteln
|
||||
$objMoodle->mdl_fullname=$aendern_bezeichnung;
|
||||
$objMoodle->mdl_shortname=$aendern_kurzbezeichnung;
|
||||
$objMoodle->insertamum=(!$new_lehre_moodle_kurs && isset($objMoodle->result[0]->insertamum)?$objMoodle->result[0]->insertamum:date('Y-m-d H:i:s'));
|
||||
$objMoodle->insertvon=(!$new_lehre_moodle_kurs && isset($objMoodle->result[0]->insertvon)?$objMoodle->result[0]->insertvon:$user);
|
||||
$objMoodle->gruppen=($aendern_gruppen?1:0);
|
||||
|
||||
|
||||
if (!$objMoodle->update_vilesci())
|
||||
{
|
||||
$errormsg[]='Fehler Vilesci Moodle-Kurs '.$mdl_course_id.' '.$objMoodle->result[0]->mdl_fullname.' zugeordnet '.$objMoodle->errormsg;
|
||||
return false;
|
||||
}
|
||||
|
||||
$errormsg[]='Vilesci Moodle-Kurs '.$mdl_course_id.' '.$aendern_bezeichnung.' '.$aendern_kurzbezeichnung.($objMoodle->new?' angelegt ':' geaendert ').$objMoodle->errormsg;
|
||||
if ($bKopieren || $new_lehre_moodle_kurs)
|
||||
return true;
|
||||
|
||||
// Moodle aenderungen nur bei Wechsel der LV
|
||||
|
||||
|
||||
|
||||
if ( (($aendern_lehrveranstaltung_id && isset($objMoodle->result[0]->lehrveranstaltung_id) && $objMoodle->result[0]->lehrveranstaltung_id!=$aendern_lehrveranstaltung_id)
|
||||
|| ( $aendern_bezeichnung!=$objMoodle->result[0]->mdl_fullname || $aendern_kurzbezeichnung!=$objMoodle->result[0]->mdl_shortname )))
|
||||
{
|
||||
if (is_array($objMoodle->lehreinheit_id))
|
||||
$objMoodle->lehreinheit_id=$objMoodle->lehreinheit_id[0];
|
||||
|
||||
if (!$objMoodle->update_moodle($oldPath))
|
||||
{
|
||||
$errormsg[]='Fehler Moodle-Kurs aendern '.$mdl_course_id.' '.$aendern_bezeichnung.' '.$aendern_kurzbezeichnung.' '.$objMoodle->errormsg;
|
||||
return false;
|
||||
}
|
||||
$errormsg[]='Moodle-Kurs '.$mdl_course_id.' geaendert auf '.$aendern_bezeichnung.' '.$aendern_kurzbezeichnung.' '.$objMoodle->errormsg;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
// ***********************************************************************************************
|
||||
// String auf Laenge abschneiden
|
||||
// ***********************************************************************************************
|
||||
function CutString($strVal, $limit)
|
||||
{
|
||||
if(strlen($strVal) > $limit+3)
|
||||
{
|
||||
return substr($strVal, 0, $limit) . "...";
|
||||
}
|
||||
else
|
||||
{
|
||||
return $strVal;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -657,19 +657,6 @@ function casDeleteMitarbeiter($db, $mitarbeiter_uid, $trans=true)
|
||||
}
|
||||
}
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
$qry = '
|
||||
DELETE FROM lehre.tbl_moodle
|
||||
WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit
|
||||
WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung
|
||||
WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).'))';
|
||||
if(!$db->db_query($qry))
|
||||
{
|
||||
$error = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
$qry = '
|
||||
@@ -718,18 +705,6 @@ function casDeleteMitarbeiter($db, $mitarbeiter_uid, $trans=true)
|
||||
}
|
||||
}
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
$qry = '
|
||||
DELETE FROM lehre.tbl_moodle
|
||||
WHERE lehrveranstaltung_id IN (SELECT lehrveranstaltung_id FROM lehre.tbl_lehrveranstaltung
|
||||
WHERE koordinator='.$db->db_add_param($mitarbeiter_uid).')';
|
||||
if(!$db->db_query($qry))
|
||||
{
|
||||
$error = true;
|
||||
}
|
||||
}
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
$qry = '
|
||||
|
||||
Reference in New Issue
Block a user