Merge branch 'master' into udf

This commit is contained in:
Paolo
2017-08-03 15:37:37 +02:00
73 changed files with 1094 additions and 12777 deletions
+4 -1
View File
@@ -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]
+4 -5
View File
@@ -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',
@@ -236,12 +235,12 @@ $config['fhc_acl'] = array
'wawi.tbl_rechnungsbetrag' => 'basis/rechnungsbetrag',
'wawi.tbl_rechnungstyp' => 'basis/rechnungstyp',
'wawi.tbl_zahlungstyp' => 'basis/zahlungstyp',
DMS_PATH => 'fs/dms',
'public.tbl_sprache' => 'admin',
'PhrasesLib.getPhrase' => 'system/PhrasesLib'
);
$config['addons_aufnahme_url'] = 'http://debian.dev/build/addons/aufnahme/cis/index.php';
$config['addons_aufnahme_url'] = 'http://debian.dev/build/addons/aufnahme/cis/index.php';
@@ -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;
}
}
@@ -2,20 +2,33 @@
if (!defined("BASEPATH")) exit("No direct script access allowed");
/**
* Studienjahr controller for listing, editing and removing a Studienjahr
*/
class Studienjahr extends VileSci_Controller
{
/**
* Studienjahr constructor.
* loads model for Studienjahr
*/
public function __construct()
{
parent::__construct();
$this->load->model("organisation/Studienjahr_model", "StudienjahrModel");
}
public function index()
{
$this->listStudienjahr();
}
/**
* by default, Studienjahre are listed by calling the listStudienjahr function
*/
/* public function index()
{
$this->listStudienjahr();
}*/
/**
* lists all Studienjahre
*/
public function listStudienjahr()
{
$studienjahr = $this->StudienjahrModel->load();
@@ -30,6 +43,13 @@ class Studienjahr extends VileSci_Controller
$this->load->view("organisation/studienjahr.php", $data);
}
/**
* shows view for editing a Studienjahr with a given Kurzbezeichnung
* replaces slash in Kurzbezeichnung with underscore,
* otherwise the Kurzbezeichnung is treated as part of url navigation
* e.g. organisation/studienjahr/editStudienjahr/2017/18
* @param $studienjahr_kurzbez Studienjahrkurzbezeichnung, e.g. 2017/18
*/
public function editStudienjahr($studienjahr_kurzbez)
{
$studienjahr_kurzbez = str_replace("_", "/", $studienjahr_kurzbez);
@@ -44,6 +64,12 @@ class Studienjahr extends VileSci_Controller
$this->load->view("organisation/studienjahrEdit.php", $data);
}
/**
* shows view for adding a Studienjahr
* retrieves all Studienjahre, increases last Studienjahr in database by 1 to get current Studienjahr
* sends current Studienjahrkurzbezeichnung to view
* So view can prefill fields with current Studienjahr
*/
public function newStudienjahr()
{
$this->StudienjahrModel->addOrder('studienjahr_kurzbz', "DESC");
@@ -60,6 +86,11 @@ class Studienjahr extends VileSci_Controller
$this->load->view("organisation/studienjahrNew.php", $data);
}
/**
* helper function for extracting the two years from Studienjahrkurzbezeichnung
* @param $studienjahr_kurzbez Studienjahrkurzbezeichnung, e.g. 2017/18
* @return array contains the two years, e.g. [0] - 2017, [1] - 18
*/
private function __getYearsFromStudienjahr($studienjahr_kurzbez)
{
$firstyear = intval(substr($studienjahr_kurzbez, 0, 4));
@@ -67,6 +98,12 @@ class Studienjahr extends VileSci_Controller
return array($firstyear, $secondyear);
}
/**
* inserts a Studienjahr
* replaces slash in Kurzbezeichnung with underscore,
* redirects to edit page after inserting.
* saved=true is a GET parameter passed for showing save message
*/
public function insStudienjahr()
{
$data = $this->__retrieveStudienjahrData();
@@ -80,13 +117,20 @@ class Studienjahr extends VileSci_Controller
redirect("/organisation/studienjahr/editStudienjahr/".str_replace("/", "_", $data['studienjahr_kurzbz']."?saved=true"));
}
private function __retrieveStudienjahrData(){
/**
* gets Studienjahr data from input fields (POST request)
* escapes html characters for all texts coming from text input fields
* validates the Studienjahr data before returning it or throwing an error
* @return array contains all data for a Studienjahr
*/
private function __retrieveStudienjahrData()
{
$studienjahr_kurzbz = $this->input->post("studienjahrkurzbz");
$bezeichnung = $this->input->post("studienjahrbz");
$data = array(
"studienjahr_kurzbz" => $studienjahr_kurzbz,
"bezeichnung" => $bezeichnung,
"bezeichnung" => html_escape($bezeichnung)
);
$validation = $this->_validate($data);
@@ -99,17 +143,30 @@ class Studienjahr extends VileSci_Controller
}
}
/**
* runs checks on Studienjahr data
* checks if Studienjahr Kurzbezeichnung has the correct form e.g. 2017/18
* checks if second year in Studienjahr is exactly one year after first
* @param $data contains all data for a Studienjahr
* @return array errorarray with error text if a check failed or success-array if all checks succeeded
*/
private function _validate($data)
{
$studienjahr_kurzbz = $data['studienjahr_kurzbz'];
$years = $this->__getYearsFromStudienjahr($studienjahr_kurzbz);
//if not desired form or second year comes not right after the first
//if wrong form or second year comes not right after the first
$correctyears = $years[0] % 100 == $years[1] - 1;
if (!preg_match("/^\d{4}\/\d{2}$/", $studienjahr_kurzbz) || !$correctyears)
return error("Studienjahrbezeichnung muss folgende Form haben: Jahreszahl/letzeZweiZahlenDesNächstenJahres, z.B. 2017/18");
return success("Semesterdaten sind valide");
return success("Studienjahrdaten sind valide");
}
/**
* updates a Studienjahr
* redirects to edit page after inserting
* replaces slash in Kurzbezeichnung with underscore
* saved=true is a GET parameter passed for showing save message
*/
public function saveStudienjahr()
{
$data = $this->__retrieveStudienjahrData();
@@ -123,6 +180,12 @@ class Studienjahr extends VileSci_Controller
redirect("/organisation/studienjahr/editStudienjahr/".str_replace("/", "_", $data['studienjahr_kurzbz']."?saved=true"));
}
/**
* deletes a Studienjahr
* redirects to list Studienjahr view after deleting
* replaces slash in Kurzbezeichnung with underscore
* @param $studienjahr_kurzbez Studienjahrkurzbezeichnung, e.g. SS2017
*/
public function deleteStudienjahr($studienjahr_kurzbez)
{
$studienjahr_kurzbez = str_replace("_", "/", $studienjahr_kurzbez);
@@ -3,13 +3,15 @@
if (!defined("BASEPATH")) exit("No direct script access allowed");
/**
* Description of Semester
*
* @author root
* Studiensemester controller for listing, editing and removing a Studiensemester
*/
class Studiensemester extends VileSci_Controller
{
/**
* Studiensemester constructor.
* loads model for Studiensemester and Studienjahr (Studienjahr needed for dropdown)
*/
public function __construct()
{
parent::__construct();
@@ -17,11 +19,17 @@ class Studiensemester extends VileSci_Controller
$this->load->model("organisation/Studienjahr_model", "StudienjahrModel");
}
public function index()
{
$this->listStudiensemester();
}
/**
* by default, Studiensemesters are listed by calling the listStudiensemester function
*/
/* public function index()
{
$this->listStudiensemester();
}*/
/**
* lists all Studiensemesters
*/
public function listStudiensemester()
{
$semester = $this->StudiensemesterModel->load();
@@ -36,6 +44,11 @@ class Studiensemester extends VileSci_Controller
$this->load->view("organisation/studiensemester.php", $data);
}
/**
* shows view for editing a Studiensemester with a given Kurzbezeichnung
* retrieves Studienjahre for showing in a dropdown in descending order
* @param $semester_kurzbez Semesterkurzbezeichnung, e.g. SS2017
*/
public function editStudiensemester($semester_kurzbez)
{
$semester = $this->StudiensemesterModel->load($semester_kurzbez);
@@ -57,6 +70,10 @@ class Studiensemester extends VileSci_Controller
$this->load->view("organisation/studiensemesterEdit.php", $data);
}
/**
* shows view for adding a Studiensemester
* retrieves Studienjahre for showing in a dropdown in descending order
*/
public function newStudiensemester()
{
$this->StudienjahrModel->addOrder('studienjahr_kurzbz', "DESC");
@@ -75,7 +92,8 @@ class Studiensemester extends VileSci_Controller
/**
* inserts a Studiensemester
* formats dates in english as required by database
* redirects to edit page after inserting.
* saved=true is a GET parameter passed for showing save message
*/
public function insStudiensemester()
{
@@ -91,6 +109,13 @@ class Studiensemester extends VileSci_Controller
}
/**
* gets Studiensemester data from input fields (POST request)
* formats Studiensemester begin and end date as required by the database (english format)
* escapes html characters for all texts coming from text input fields
* validates the Studiensemester data before returning it or throwing an error
* @return array contains all data for a Studiensemester
*/
private function __retrieveStudiensemesterData()
{
$studiensemester_kurzbz = $this->input->post("semkurzbz");
@@ -104,11 +129,11 @@ class Studiensemester extends VileSci_Controller
$data = array(
"studiensemester_kurzbz" => $studiensemester_kurzbz,
"bezeichnung" => $bezeichnung,
"bezeichnung" => html_escape($bezeichnung),
"start" => $start,
"ende" => $ende,
"studienjahr_kurzbz" => $studienjahr_kurzbz,
"beschreibung" => $beschreibung,
"beschreibung" => html_escape($beschreibung),
"onlinebewerbung" => $onlinebewerbung
);
@@ -125,6 +150,13 @@ class Studiensemester extends VileSci_Controller
}
}
/**
* runs checks on Studiensemester data
* checks if Studiensemester Kurzbezeichnung has the correct form e.g. SS2017
* checks if date was given in the correct format dd.mm.yyyy (german format)
* @param $data contains all data for a Studiensemester
* @return array errorarray with error text if a check failed or success-array if all checks succeeded
*/
private function _validate($data)
{
$datepattern = "/^\d{2}.\d{2}.\d{4}$/";
@@ -138,6 +170,11 @@ class Studiensemester extends VileSci_Controller
return success("Semesterdaten sind valide");
}
/**
* updates a Studiensemester
* redirects to edit page after inserting
* saved=true is a GET parameter passed for showing save message
*/
public function saveStudiensemester()
{
$data = $this->__retrieveStudiensemesterData();
@@ -151,6 +188,11 @@ class Studiensemester extends VileSci_Controller
redirect("/organisation/studiensemester/editStudiensemester/".$data['studiensemester_kurzbz']."?saved=true");
}
/**
* deletes a Studiensemester
* redirects to list Studiensemester view after deleting
* @param $semester_kurzbez Semesterkurzbezeichnung, e.g. SS2017
*/
public function deleteStudiensemester($semester_kurzbez)
{
$semester = $this->StudiensemesterModel->delete($semester_kurzbez);
@@ -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';
}
}
@@ -1,5 +1,5 @@
<?php
$this->load->view('templates/header', array('title' => 'StudienjahrList', 'tablesort' => true, 'tableid' => 't1', 'headers' => '2:{sorter:false}, 3:{sorter:false}', 'sortList' =>'0,1'));
$this->load->view('templates/header', array('title' => 'StudienjahrList', 'tablesort' => true, 'tableid' => 't1', 'headers' => '2:{sorter:false}, 3:{sorter:false}', 'sortList' => '0,1'));
?>
<body>
<div class="row">
@@ -20,7 +20,7 @@ $this->load->view('templates/header', array('title' => 'StudienjahrList', 'table
<tbody>
<?php foreach ($studienjahr as $jahr):
$escapedstudienjahrkurzbz = str_replace("/", "_", $jahr->studienjahr_kurzbz);
?>
?>
<tr>
<td><?php echo $jahr->studienjahr_kurzbz; ?></td>
<td><?php echo $jahr->bezeichnung; ?></td>
@@ -6,7 +6,7 @@ $this->load->view('templates/header', array('title' => 'StudienjahrEdit', 'jquer
<div class="row">
<div class="row">
<div class="span4">
<h2>Studienjahr bearbeiten: <?php echo $jahr->bezeichnung; ?></h2>
<h2>Studienjahr bearbeiten: <?php echo $jahr->studienjahr_kurzbz; ?></h2>
<form method="post" action="<?php echo APP_ROOT."index.ci.php/organisation/studienjahr/saveStudienjahr" ?>">
<table>
@@ -1,5 +1,5 @@
<?php
$bezeichnung = (isset($jahr->bezeichnung))?$jahr->bezeichnung:(isset($studienjahrkurzbz)?"Studienjahr ".$studienjahrkurzbz:"");
$bezeichnung = (isset($jahr->bezeichnung)) ? $jahr->bezeichnung : (isset($studienjahrkurzbz) ? "Studienjahr ".$studienjahrkurzbz : "");
?>
<tr>
@@ -44,6 +44,6 @@ $bezeichnung = (isset($jahr->bezeichnung))?$jahr->bezeichnung:(isset($studienjah
</table>
<br />
<br/>
<div class="input_ok"><?php if (isset($_GET['saved']) && $_GET['saved']) echo 'Studienjahr wurde gespeichert.'; ?></div>
<div class="input_error" id="errormessage"></div>
@@ -8,7 +8,8 @@ $this->load->view('templates/header', array('title' => 'StudienjahrNew', 'jquery
<div class="span4">
<h2>Neues Studienjahr anlegen</h2>
<form method="post"
action="<?php echo APP_ROOT."index.ci.php/organisation/studienjahr/insStudienjahr"; ?>" id="newStudienjahrForm">
action="<?php echo APP_ROOT."index.ci.php/organisation/studienjahr/insStudienjahr"; ?>"
id="newStudienjahrForm">
<table>
<tr>
<td colspan="2">
@@ -22,6 +23,11 @@ $this->load->view('templates/header', array('title' => 'StudienjahrNew', 'jquery
</div>
</div>
<script>
/**
* prevents submitting the form data if data entered incorrectly
* additional check before php check for user-friendliness (no php die)
* outputs errormessages in case of wrong inputs
*/
$('#newStudienjahrForm').submit(function (event) {
var studienjahrkurzbez = $('input[name=studienjahrkurzbz]').val();
if (checkStudienjahrkurzbez(studienjahrkurzbez))return;
@@ -29,11 +35,18 @@ $this->load->view('templates/header', array('title' => 'StudienjahrNew', 'jquery
event.preventDefault();
});
function checkStudienjahrkurzbez(semesterkurzbez) {
var firstyear = parseInt(semesterkurzbez.substr(2,2));
var secondyear = parseInt(semesterkurzbez.substr(5,2));
/**
* checks correct Studienjahrkurzbezeichnung format with regex
* first check is whether the form ist right: e.g. 2017/18
* second check is whether first year is second year - 1
* @param studienjahrkurzbez
* @returns {boolean} whether the Studienjahrkurzbezeichnung has correct format
*/
function checkStudienjahrkurzbez(studienjahrkurzbez) {
var firstyear = parseInt(studienjahrkurzbez.substr(2, 2));
var secondyear = parseInt(studienjahrkurzbez.substr(5, 2));
var pattern = /^\d{4}\/\d{2}$/;
return pattern.test(semesterkurzbez) && secondyear - firstyear === 1;
return pattern.test(studienjahrkurzbez) && secondyear - firstyear === 1;
}
</script>
</body>
@@ -1,5 +1,5 @@
<?php
$this->load->view('templates/header', array('title' => 'StudiensemesterList', 'tablesort' => true, 'tableid' => 't1', 'headers' => '7:{sorter:false}, 8:{sorter:false}', 'sortList' =>'4,1'));
$this->load->view('templates/header', array('title' => 'StudiensemesterList', 'tablesort' => true, 'tableid' => 't1', 'headers' => '7:{sorter:false}, 8:{sorter:false}', 'sortList' => '4,1],[0,0'));
?>
<body>
<div class="row">
@@ -7,10 +7,11 @@ $this->load->view('templates/header', array('title' => 'StudiensemesterEdit', 'd
<div class="row">
<div class="span4">
<h2>Studiensemester bearbeiten: <?php echo $sem->studiensemester_kurzbz; ?></h2>
<form method="post" action="<?php echo APP_ROOT."index.ci.php/organisation/studiensemester/saveStudiensemester" ?>">
<form method="post"
action="<?php echo APP_ROOT."index.ci.php/organisation/studiensemester/saveStudiensemester" ?>">
<table>
<?php include('studiensemesterForm.php'); ?>
<input type="hidden" name="semkurzbz" value="<?php echo $sem->studiensemester_kurzbz; ?>"/>
<input type="hidden" name="semkurzbz" value="<?php echo $sem->studiensemester_kurzbz; ?>"/>
</form>
</div>
</div>
@@ -38,6 +38,11 @@ $this->load->view('templates/header', array('title' => 'StudiensemesterNew', 'jq
);
});
/**
* prefills all date-associated input fields depending on given Semesterkurzbezeichnung
* fires when value in input field Semesterkurzbezeichnung is changed
* @param semesterkurzbez
*/
function prefillYearFields(semesterkurzbez) {
if (!checkSemesterkurzbez(semesterkurzbez))return;
var semester = semesterkurzbez.substr(0, 2);
@@ -52,7 +57,7 @@ $this->load->view('templates/header', array('title' => 'StudiensemesterNew', 'jq
} else {
wsssbezeichnung = "Sommersemester";
jahrbez = jahr;
studienjahr = jahr + "/" + (parseInt(jahr.substr(2, 4)) - 1);
studienjahr = (parseInt(jahr) - 1) + "/" + (parseInt(jahr.substr(2, 4)));
start = "01.02." + jahr;
ende = "01.08." + jahr;
}
@@ -60,20 +65,55 @@ $this->load->view('templates/header', array('title' => 'StudiensemesterNew', 'jq
$('input[name=sembz]').val(bezeichnung);
$('input[name=semstart]').val(start);
$('input[name=semende]').val(ende);
$('input[name=studienjahrkurzbz]').val(studienjahr);
$('select[name=studienjahrkurzbz]').val(studienjahr);
}
/**
* prevents submitting the form data if data entered incorrectly
* additional check before php check for user-friendliness (no php die)
* outputs errormessages in case of wrong inputs
*/
$('#newSemesterForm').submit(function (event) {
var semesterkurzbez = $('input[name=semkurzbz]').val();
if (checkSemesterkurzbez(semesterkurzbez))return;
$('#errormessage').text("Semesterkurzbezeichnung muss mit WS oder SS beginnen und mit einer Jahreszahl enden, z.B. SS2017");
event.preventDefault();
var startdatum = $('input[name=semstart]').val();
var enddatum = $('input[name=semende]').val();
var errormessage = "";
var error = false;
if (!checkSemesterkurzbez(semesterkurzbez)) {
errormessage = "Semesterkurzbezeichnung muss mit WS oder SS beginnen und mit einer Jahreszahl enden, z.B. SS2017";
error = true;
} else if (!checkDate(startdatum)) {
errormessage = "Startdatum falsch eingegeben. Richtiges Format: dd.mm.yyyy, z.B. 01.01.2017";
error = true;
} else if (!checkDate(enddatum)) {
errormessage = "Enddatum falsch eingegeben. Richtiges Format: dd.mm.yyyy, z.B. 01.01.2017";
error = true;
}
if (error) {
event.preventDefault();
$('#errormessage').text(errormessage);
}
});
/**
* checks correct Semesterkurzbezeichnung format with regex
* @param semesterkurzbez
* @returns {boolean} whether the Semesterkurzbezeichnung has correct format
*/
function checkSemesterkurzbez(semesterkurzbez) {
var pattern = /^(WS|SS)\d{4}$/;
return pattern.test(semesterkurzbez);
}
/**
* checks date for right (german) format
* @param date
* @returns {boolean} whether the Semesterkurzbezeichnung has correct format
*/
function checkDate(date) {
var pattern = /^\d{2}.\d{2}.\d{4}$/;
return pattern.test(date);
}
</script>
</body>
</html>
File diff suppressed because it is too large Load Diff
-1
View File
@@ -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');
-407
View File
@@ -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).'&nbsp;('.$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&uuml;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 '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<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>';
?>
-127
View File
@@ -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>';
?>
-476
View File
@@ -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.'&nbsp;('.$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&uuml;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 '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<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>';
?>
-109
View File
@@ -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>';
?>
-6
View File
@@ -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');
-9
View File
@@ -150,15 +150,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);
-5
View File
@@ -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','');
+7 -20
View File
@@ -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;
}
}
}
-36
View File
@@ -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
-402
View File
@@ -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
-788
View File
@@ -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;
}
}
-837
View File
@@ -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;
}
}
-922
View File
@@ -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;
}
}
}
+9 -149
View File
@@ -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))
{
-9
View File
@@ -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'),
+3 -1
View File
@@ -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';
?>
-6
View File
@@ -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';
-40
View File
@@ -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';
?>
-6
View File
@@ -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';
-40
View File
@@ -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';
?>
-4
View File
@@ -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 luso 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';
-30
View File
@@ -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']='';
?>
-10
View File
@@ -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;
-12
View File
@@ -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">
-2
View File
@@ -491,8 +491,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"),
+1 -1
View File
@@ -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
-23
View File
@@ -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;
-23
View File
@@ -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;
-23
View File
@@ -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';
-199
View File
@@ -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";
?>
-158
View File
@@ -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;
-159
View File
@@ -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();
+48 -36
View File
@@ -89,20 +89,20 @@ if (isset($_REQUEST['compare']))
'lehrveranstaltungen' => null,
'errormsg' => null
);
$lv1 = new lehrveranstaltung();
$lv1->load($courseLeft);
$lv1_arr = get_object_vars($lv1);
$lv1_arr = array_diff_key($lv1_arr, $deleteValues);
$lv2 = new lehrveranstaltung();
$lv2->load($courseRight);
$lv2_arr = get_object_vars($lv2);
$lv2_arr = array_diff_key($lv2_arr, $deleteValues);
$lv2_arr = array_diff_key($lv2_arr, $deleteValues);
$lv_diff1 = array_diff_assoc($lv1_arr, $lv2_arr);
$lv_diff2 = array_diff_assoc($lv2_arr, $lv1_arr);
$msg = '<span style="font-size: small"><b>Differences in courses (only columns with differences are shown)</b></span>';
$msg .= '<table id="t3" class="tablesorter"><thead><tr>';
foreach ($lv_diff1 as $key => $value)
@@ -131,7 +131,7 @@ if (isset($_REQUEST['compare']))
}
$msg .= '</tr></tbody></table>';
}
else
else
$msg="Please select 2 different courses";
}
@@ -145,7 +145,7 @@ if((isset($_REQUEST['transfer']) || isset($_REQUEST['mergeDelete'])) && isset($c
{
if(!$rechte->isBerechtigt('lehre/lehrveranstaltung', NULL, 'sui'))
die($rechte->errormsg);
$msg='';
$update_qry="BEGIN;";
@@ -156,7 +156,7 @@ if((isset($_REQUEST['transfer']) || isset($_REQUEST['mergeDelete'])) && isset($c
// Updates for Pruefungsverwaltung
$update_qry.="UPDATE campus.tbl_lehrveranstaltung_pruefung SET lehrveranstaltung_id=".$db->db_add_param($courseRight, FHC_INTEGER)." WHERE lehrveranstaltung_id=".$db->db_add_param($courseLeft, FHC_INTEGER)." AND pruefung_id IN (SELECT pruefung_id FROM campus.tbl_pruefung WHERE studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz).");";
$update_qry.="UPDATE campus.tbl_pruefungsanmeldung SET lehrveranstaltung_id=".$db->db_add_param($courseRight, FHC_INTEGER)." WHERE lehrveranstaltung_id=".$db->db_add_param($courseLeft, FHC_INTEGER)." AND pruefungstermin_id IN (SELECT pruefungstermin_id FROM campus.tbl_pruefungstermin JOIN campus.tbl_pruefung USING (pruefung_id) WHERE studiensemester_kurzbz=".$db->db_add_param($studiensemester_kurzbz).");";
// LV-Infos will be copied if $courseRight has none and $courseLeft has some
$lvinfo_qry_right = "SELECT * FROM campus.tbl_lvinfo WHERE lehrveranstaltung_id=".$db->db_add_param($courseRight, FHC_INTEGER).";";
$result_right = $db->db_query($lvinfo_qry_right);
@@ -170,9 +170,9 @@ if((isset($_REQUEST['transfer']) || isset($_REQUEST['mergeDelete'])) && isset($c
while($row = $db->db_fetch_object($result_left))
{
$update_qry.=" INSERT INTO campus.tbl_lvinfo (lehrveranstaltung_id, sprache, titel, lehrziele, lehrinhalte, methodik, voraussetzungen, unterlagen, pruefungsordnung, anmerkung, kurzbeschreibung, genehmigt, aktiv, updateamum, updatevon, insertamum, insertvon, anwesenheit)
SELECT ".$db->db_add_param($courseRight, FHC_INTEGER).", ".$db->db_add_param($row->sprache).", titel, lehrziele, lehrinhalte, methodik, voraussetzungen, unterlagen, pruefungsordnung, anmerkung, kurzbeschreibung, genehmigt, aktiv, NULL, NULL, now(), ".$db->db_add_param($uid).", anwesenheit
FROM campus.tbl_lvinfo
WHERE lehrveranstaltung_id=".$db->db_add_param($courseLeft, FHC_INTEGER)."
SELECT ".$db->db_add_param($courseRight, FHC_INTEGER).", ".$db->db_add_param($row->sprache).", titel, lehrziele, lehrinhalte, methodik, voraussetzungen, unterlagen, pruefungsordnung, anmerkung, kurzbeschreibung, genehmigt, aktiv, NULL, NULL, now(), ".$db->db_add_param($uid).", anwesenheit
FROM campus.tbl_lvinfo
WHERE lehrveranstaltung_id=".$db->db_add_param($courseLeft, FHC_INTEGER)."
AND sprache=".$db->db_add_param($row->sprache).";";
}
}
@@ -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).";";
@@ -198,7 +197,7 @@ if((isset($_REQUEST['transfer']) || isset($_REQUEST['mergeDelete'])) && isset($c
{
$update_qry.=" INSERT INTO lehre.tbl_notenschluesselzuordnung (notenschluessel_kurzbz, lehrveranstaltung_id, studienplan_id, oe_kurzbz, studiensemester_kurzbz)
SELECT notenschluessel_kurzbz, ".$db->db_add_param($courseRight, FHC_INTEGER).", studienplan_id, oe_kurzbz, studiensemester_kurzbz
FROM lehre.tbl_notenschluesselzuordnung
FROM lehre.tbl_notenschluesselzuordnung
WHERE lehrveranstaltung_id=".$db->db_add_param($courseLeft, FHC_INTEGER).";";
}
}
@@ -206,19 +205,26 @@ if((isset($_REQUEST['transfer']) || isset($_REQUEST['mergeDelete'])) && isset($c
$update_qry.="/*<hr>*/";
$update_qry.="UPDATE public.tbl_preincoming_lehrveranstaltung SET lehrveranstaltung_id=".$db->db_add_param($courseRight, FHC_INTEGER)." WHERE lehrveranstaltung_id=".$db->db_add_param($courseLeft, FHC_INTEGER).";";
$update_qry.="/*<hr>Addons<br>*/";
//addon lvevaluierung
if (in_array('lvevaluierung', $activeAddons))
{
$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).";";
}
}
if (isset($_REQUEST['mergeDelete']))
{
if(!$rechte->isBerechtigt('lehre/lehrveranstaltung', NULL, 'suid'))
@@ -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).";";
@@ -267,7 +279,7 @@ if((isset($_REQUEST['transfer']) || isset($_REQUEST['mergeDelete'])) && isset($c
//$msg = "Merged successfully<br>";
//$msg .= "<br>".mb_eregi_replace(';',';<br>',$update_qry);
if($db->db_query($update_qry))
{
$msg = "<span style='color: green'><b>Merged successfully</b></span><br>";
@@ -276,10 +288,10 @@ if((isset($_REQUEST['transfer']) || isset($_REQUEST['mergeDelete'])) && isset($c
$msg_qry = str_replace('*/', '', $msg_qry);
$msg .= "<br>".$msg_qry;
$db->db_query("COMMIT;");
//Log schreiben
$log = new log();
$log->new = true;
$log->sql = $update_qry;
$log->sqlundo = 'No undo statement implemented yet';
@@ -289,7 +301,7 @@ if((isset($_REQUEST['transfer']) || isset($_REQUEST['mergeDelete'])) && isset($c
$log->beschreibung = "lv_merge.php: Merge of course $courseLeft to $courseRight";
elseif (isset($_REQUEST['mergeDelete']))
$log->beschreibung = "lv_merge.php: Deletion of course $courseLeft. Merged with $courseRight";
if(!$log->save())
{
$msg .= "<span style='color: red'><b>Error while writing log-file</b></span><br>";
@@ -408,11 +420,11 @@ foreach ($studiengang->result as $stg)
echo '</optgroup>';
echo '<optgroup label="'.$stg->typ.'">';
}
echo '<option value="'.$stg->studiengang_kz.'" '.($stg->studiengang_kz==$select_stg_kz_left?'selected':'').'>'.$db->convert_html_chars($stg->kurzbzlang.' - '.$stg->bezeichnung).'</option>';
$maxsemester[$stg->studiengang_kz] = $stg->max_semester;
$typ = $stg->typ;
}
}
echo '</select><br>or ';
// Input text or ID
@@ -444,7 +456,7 @@ if ($select_stg_kz_left!='')
$stp_arr = array();
foreach ($orgform->result as $of)
$of_arr[$of->orgform_kurzbz] = $of->bezeichnung;
$studienplan = new studienplan();
$studienplan->getStudienplaene($select_stg_kz_left);
foreach ($studienplan->result as $plan)
@@ -455,7 +467,7 @@ if ($select_stg_kz_left!='')
$selected = 'selected';
else
$selected = '';
echo '<option value="'.$plan->orgform_kurzbz.'" '.$selected.'>'.$plan->orgform_kurzbz.' - '.$of_arr[$plan->orgform_kurzbz].'</option>';
$stp_arr[] = $plan->orgform_kurzbz;
}
@@ -476,7 +488,7 @@ if ($select_stg_kz_left!='')
$selected = 'selected';
else
$selected = '';
if ($select_orgform_left=='' || $select_orgform_left==$plan->orgform_kurzbz)
echo '<option value="'.$plan->studienplan_id.'" '.$selected.'>'.$plan->bezeichnung.'</option>';
}
@@ -489,7 +501,7 @@ echo '<option value="" '.($select_lehrtyp_left==''?'selected':'').'>--All--</opt
$lehrtyp = new lehrtyp();
$lehrtyp->getAll();
foreach ($lehrtyp->result as $lt)
{
{
echo '<option value="'.$lt->lehrtyp_kurzbz.'" '.($select_lehrtyp_left==$lt->lehrtyp_kurzbz?'selected':'').'>'.$lt->bezeichnung.'</option>';
}
echo '</select><br>';
@@ -523,11 +535,11 @@ foreach ($studiengang->result as $stg)
echo '</optgroup>';
echo '<optgroup label="'.$stg->typ.'">';
}
echo '<option value="'.$stg->studiengang_kz.'" '.($stg->studiengang_kz==$select_stg_kz_right?'selected':'').'>'.$db->convert_html_chars($stg->kurzbzlang.' - '.$stg->bezeichnung).'</option>';
$maxsemester[$stg->studiengang_kz] = $stg->max_semester;
$typ = $stg->typ;
}
}
echo '</select><br>or ';
// Input text or ID
@@ -559,7 +571,7 @@ if ($select_stg_kz_right!='')
$stp_arr = array();
foreach ($orgform->result as $of)
$of_arr[$of->orgform_kurzbz] = $of->bezeichnung;
$studienplan = new studienplan();
$studienplan->getStudienplaene($select_stg_kz_right);
foreach ($studienplan->result as $plan)
@@ -570,7 +582,7 @@ if ($select_stg_kz_right!='')
$selected = 'selected';
else
$selected = '';
echo '<option value="'.$plan->orgform_kurzbz.'" '.$selected.'>'.$plan->orgform_kurzbz.' - '.$of_arr[$plan->orgform_kurzbz].'</option>';
$stp_arr[] = $plan->orgform_kurzbz;
}
@@ -602,7 +614,7 @@ echo '</select><br>';
echo ' Type <select name="select_lehrtyp_right" id="select_lehrtyp_right" '.($select_stg_kz_right==''?'disabled="disabled"':'').'>';
echo '<option value="" '.($select_lehrtyp_right==''?'selected':'').'>--All--</option>';
foreach ($lehrtyp->result as $lt)
{
{
echo '<option value="'.$lt->lehrtyp_kurzbz.'" '.($select_lehrtyp_right==$lt->lehrtyp_kurzbz?'selected':'').'>'.$lt->bezeichnung.'</option>';
}
echo '</select><br>';
@@ -642,7 +654,7 @@ echo '<input type="hidden" name="select_studienplan_right" value="'.$select_stud
if($rechte->isBerechtigt('lehre/lehrveranstaltung', NULL, 'sui'))
{
echo ' <input type="submit" name="transfer" value="Transfer for" style="margin: 3px 0 3px 0; background-color: #faebcc; color: #8a6d3b;" onclick="return confirm(\'Are you sure you want to transfer the these courses?\')">';
echo ' <select name="studiensemester_kurzbz" id="studiensemester_kurzbz">';
$studiensemester = new studiensemester();
$studiensemester->getAll();
@@ -699,7 +711,7 @@ if ((is_numeric($input_text_left) || ($input_text_left!='' && strlen($input_text
{
if ($select_studienplan_left!='')
$qry_left .= " JOIN lehre.tbl_studienplan_lehrveranstaltung USING (lehrveranstaltung_id)";
$qry_left .= " WHERE 1=1";
if ($select_stg_kz_left!='')
$qry_left .= " AND studiengang_kz=".$db->db_add_param($select_stg_kz_left);
@@ -784,7 +796,7 @@ if ((is_numeric($input_text_right) || ($input_text_right!='' && strlen($input_te
{
if ($select_studienplan_right!='')
$qry_right .= " JOIN lehre.tbl_studienplan_lehrveranstaltung USING (lehrveranstaltung_id)";
$qry_right .= " WHERE 1=1";
if ($select_stg_kz_right!='')
$qry_right .= " AND studiengang_kz=".$db->db_add_param($select_stg_kz_right);
-84
View File
@@ -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>';
?>
-204
View File
@@ -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>&nbsp;Nachname&nbsp;</th>';
$content.='<th>&nbsp;Vorname&nbsp;</th>';
$content.='<th>&nbsp;UserID&nbsp;</th>';
$content.='<th>&nbsp;Status&nbsp;</th>';
$content.='<th>&nbsp;MoodleAccount&nbsp;</th>';
# $content.='<th>&nbsp;Bearbeitung&nbsp;</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);
?>
-162
View File
@@ -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>&nbsp;Nachname&nbsp;</th>';
$content.='<th>&nbsp;Vorname&nbsp;</th>';
$content.='<th>&nbsp;UserID&nbsp;</th>';
$content.='<th>&nbsp;Status&nbsp;</th>';
$content.='<th>&nbsp;MoodleAccount&nbsp;</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>';
?>
-352
View File
@@ -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" ':'').'>&nbsp;'.$row->studiensemester_kurzbz.'&nbsp;</option>';
}
$content.='</select></td>';
// Studiengang public.tbl_studiengang_kz
$content.='<td>Studiengang</td><td><select onchange="document.'.$cFormName.'.submit();" name="studiengang_kz"><option value="">&nbsp;Alle&nbsp;</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" ':'').'>&nbsp;'.$row->kuerzel.'&nbsp;('.$row->kurzbzlang.')&nbsp;</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="">&nbsp;Alle&nbsp;</option>';
if ($studiengang_kz!='')
{
for($i=0;$i<=$max_semester;$i++)
{
$content.='<option value="'.($i).'" '.(("$semester"=="$i")?' selected="selected" ':'').'>&nbsp;'.($i).'&nbsp;</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>&nbsp;Lehrveranstaltung&nbsp;</th>';
$content.='<th>&nbsp;Kurzbz.&nbsp;</th>';
$content.='<th>&nbsp;StgKz&nbsp;</th>';
$content.='<th>&nbsp;LV&nbsp;</th>';
$content.='<th>&nbsp;Sem&nbsp;</th>';
$content.='<th>&nbsp;LE&nbsp;</th>';
$content.='<th>&nbsp;Kursbezeichnung&nbsp;</th>';
$content.='<th>&nbsp;ID&nbsp;</th>';
$content.='<td>&nbsp;Benotungen&nbsp;</td>';
$content.='<td title="Aktivit&auml;ten und Lehrmaterial">&nbsp;Aktivit&auml;ten&nbsp;</td>';
$content.='<td>&nbsp;Bearbeiten&nbsp;</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&ouml;glich.</font>&nbsp;</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">&nbsp;</td>';
// Bearbeitung Submit
$content.= '<td style="cursor: pointer;" onclick="if (!window.confirm(\'L&ouml;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&ouml;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);
?>
-213
View File
@@ -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" ':'').'>&nbsp;'.$row->studiensemester_kurzbz.'&nbsp;</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" ':'').'>&nbsp;'.$row->kuerzel.'&nbsp;('.$row->kurzbzlang.')&nbsp;</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>"
?>
-105
View File
@@ -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>';
?>
-99
View File
@@ -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>&nbsp;</td>
<td>&nbsp;</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>';
?>
-112
View File
@@ -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>&nbsp;</td>
<td>&nbsp;</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>';
?>
-711
View File
@@ -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&auml;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>&nbsp;</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="">&nbsp;Alle&nbsp;</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" ':'').'>&nbsp;'.$row->studiensemester_kurzbz.'&nbsp;</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" ':'').'>&nbsp;Alle&nbsp;</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" ':'').'>&nbsp;'.$row->kuerzel.'&nbsp;('.$row->kurzbzlang.')&nbsp;</option>';
}
}
else
{
$content.='<option value="" '.(empty($studiengang_kz)?' selected="selected" ':'').'>&nbsp;'.$stg_obj->errormsg.'&nbsp;</option>';
$errormsg[]='Studieng&auml;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" ':'').'>&nbsp;Alle&nbsp;</option>';
if ($studiengang_kz!='')
{
for($i=0;$i<=$max_semester;$i++)
{
$content.='<option value="'.($i).'" '.(("$semester"=="$i")?' selected="selected" ':'').'>&nbsp;'.($i).'&nbsp;</option>';
}
}
else
{
for($i=0;$i<=9;$i++)
{
$content.='<option value="'.($i).'" '.(("$semester"=="$i")?' selected="selected" ':'').'>&nbsp;'.($i).'&nbsp;</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" ':'').'>&nbsp;Alle&nbsp;</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" ':'').'>&nbsp;'.CutString($row->bezeichnung, 21).' '.$row->lehrform_kurzbz.'&nbsp;'.$row->lehrveranstaltung_id.'</option>';
}
}
else
{
$content.='<option value="" '.(empty($studiengang_kz)?' selected="selected" ':'').'>&nbsp;'.$stg_obj->errormsg.'&nbsp;</option>';
$errormsg[]='Lehrveranstaltungen wurden nicht gefunden! '.$lv_obj->errormsg;
}
}
$content.='</select><br />
&nbsp;nur in Lehre&nbsp;<input title="nur mit Verplanter Lehreinheiten" type="Checkbox" value="1" name="lehre" '.($lehre?' checked="checked" ':'').' />
&nbsp;nur aktive&nbsp;<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" ':'').'>&nbsp;Alle&nbsp;</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" ':'').'>&nbsp;'.$row->lehrform_kurzbz.' '.$gruppen.($bDebug?'&nbsp;(Le ID '.$row->lehreinheit_id.')':'').'</option>';
}
}
$content.='</select></td>';
//---------------------------------------------------------------------------
// ---- Moodle mdl_course_id
$content.='<td valign="top"><b>oder</b>&nbsp;KursID&nbsp;<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&auml;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">&nbsp;StSem&nbsp;</th>';
$content.='<th colspan="2">&nbsp;Studiengang&nbsp;</th>';
$content.='<th>&nbsp;Sem&nbsp;</th>';
$content.='<th colspan="2">&nbsp;Lehrveranstaltung&nbsp;</th>';
$content.='<th colspan="2">&nbsp;Lehreinheit&nbsp;</th>';
$content.='<th colspan="2">&nbsp;Moodle Kurs&nbsp;</th>';
$content.='<td colspan="2">&nbsp;bearbeiten&nbsp;</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" />&nbsp;</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" />&nbsp;</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.'&nbsp;</td>';
$content.='<td '.$showCSS.'>'.$stg_obj->bezeichnung.($bDebug?' '.$stg_obj->studiengang_kz:'').'&nbsp;</td>';
$content.='<td '.$showCSS.'>'.$arrMoodlekurs[$i]->lehrveranstaltung_semester.'&nbsp;</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:'').'&nbsp;</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.'&nbsp;';
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.'&nbsp;</td>';
$content.='<td '.$showCSS.'>'.($bDebug?$leID:'').'&nbsp;</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.'&nbsp;</td>';
$content.='<td onclick="document.'.$cFormName.'.submit();" '.$showCSS.'>'.$arrMoodlekurs[$i]->mdl_course_id.'&nbsp;</td>';
// Bearbeitung Submit
$cFormNameDel=$cFormName.'del';
if ($arrMoodlekurs[$i]->mdl_course_id)
{
$content.= '<td valign="top" title="&Auml;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.= '&auml;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&ouml;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&ouml;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>&nbsp;</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>&nbsp;Moodle Kurs&nbsp;</th><td>'.$arrMoodlekurs[$i]->mdl_fullname.'<br />&nbsp;'. $arrMoodlekurs[$i]->mdl_shortname.',&nbsp;</td>';
$content.='</tr>';
$content.='<tr>
<td colspan="3"><hr /></td>
</tr>';
$content.='<tr>';
$content.='<td>&nbsp;</td><th>&nbsp;Studiensemester&nbsp;</th>';
$content.='<td>'.$arrMoodlekurs[$i]->studiensemester_kurzbz.'</td>';
$content.='</tr>';
$content.='<tr>';
$content.='<td>&nbsp;</td><th>&nbsp;Studiengang&nbsp;</th>';
$content.='<td>'.$stg_obj->kuerzel.'&nbsp;'.$stg_obj->bezeichnung.'&nbsp;('.$stg_obj->kurzbzlang.'),&nbsp;'.$stg_obj->studiengang_kz.'&nbsp;</td>';
$content.='</tr>';
$content.='<tr>';
$content.='<td></td><th>&nbsp;Semester&nbsp;</th>';
$content.='<td>'.$arrMoodlekurs[$i]->lehrveranstaltung_semester.'&nbsp;</td>';
$content.='</tr>';
$content.='<tr>';
$content.='<td></td><th>&nbsp;Lehrveranstaltung&nbsp;</th>';
$content.='<td>'.(isset($arrMoodlekurs[$i]->lehrveranstaltung_bezeichnung)?$arrMoodlekurs[$i]->lehrveranstaltung_bezeichnung.'&nbsp;&nbsp;Kurzbz:&nbsp;'.$arrMoodlekurs[$i]->lehrveranstaltung_kurzbz.'&nbsp;,&nbsp;Lehrform Kurzbz:'.($arrMoodlekurs[$i]->lehrveranstaltung_lehrform_kurzbz?$arrMoodlekurs[$i]->lehrveranstaltung_lehrform_kurzbz:' - '):'').',&nbsp;ID&nbsp;'.$arrMoodlekurs[$i]->lehrveranstaltung_id.'&nbsp;</td>';
$content.='</tr>';
$content.='<tr>';
$content.='<td></td><th valign="top">&nbsp;Lehreinheit&nbsp;</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?',':'').'&nbsp;'.$ma->mitarbeiter_uid;
}
$content.=$row->lehrform_kurzbz.'&nbsp;'.$gruppen.'&nbsp;ID&nbsp;'.$row->lehreinheit_id.'&nbsp;'.$lektoren;
$content.='<br />';
}
$content.='</td>';
}
else
{
$content.='<td>'.$gruppen.',&nbsp;'.($arrMoodlekurs[$i]->lehreinheit_id?$arrMoodlekurs[$i]->lehreinheit_id:'').'</td>';
}
$content.='</tr>';
$content.='<tr><td>&nbsp;</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.= '&auml;ndern';
$content.= '</th>';
}
else
{
$content.= '<td>&nbsp;</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;
}
}
?>
-779
View File
@@ -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&ouml;scht! '.$objMoodle->errormsg);
}
exit('Eintrag in Lehre gel&ouml;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&auml;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&ouml;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 ').'&nbsp;-&nbsp;'.$objMoodle->result[0]->mdl_fullname .'&nbsp;-&nbsp;'.$objMoodle->result[0]->mdl_shortname.'</h2>';
}
else
{
$content.='<h2>Moodle Kurs Neuzuteilung '.$mdl_course_id.'&nbsp;-&nbsp;'.$objMoodle->result[0]->fullname.'&nbsp;-&nbsp;'.$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>&nbsp;</td></tr>
<tr>
<td>&nbsp;Studiensemester&nbsp;</td>
<td>&nbsp;Studiengang&nbsp;</td>
<td>&nbsp;Semster&nbsp;</td>
<td>&nbsp;</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" ':'').'>&nbsp;'.$row->studiensemester_kurzbz.'&nbsp;</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" ':'').'>&nbsp;'.$row->kuerzel.'&nbsp;</option>';
}
}
else
{
$content.='<option value="" >&nbsp;'.$stg_obj->errormsg.'&nbsp;</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" ':'').'>&nbsp;'.($i).'&nbsp;</option>';
}
}
$content.='</select></td>';
$content.='<td valign="top">';
$content.='<table><tr>';
//---------------------------------------------------------------------------
// Lehrveranstaltungen
$content.='<th valign="top">&nbsp;Lehrveranstaltung&nbsp;</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" ':'').'>&nbsp;'.CutString($row->bezeichnung, 35).'&nbsp;'.($row->kurzbz?CutString($row->kurzbz,7).', ':'').'&nbsp;'.$row->lehrveranstaltung_id.($row->lehrform_kurzbz?CutString(', '.$row->lehrform_kurzbz,5):'').'</option>';
}
}
else
{
$content.='<option value="" >&nbsp;'.$stg_obj->errormsg.'&nbsp;</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" ':'').'>&nbsp;Moodle Kurs f&uuml;r gesamte LV</th>';
$content.='</tr>';
//---------------------------------------------------------------------------
// Lehreinheit
$content.='<tr>';
$content.='<th valign="top">&nbsp;Lehreinheiten&nbsp;</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&uuml;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?',':'').'&nbsp;'.$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.'&nbsp;</td><td>'.$gruppen.'&nbsp;</td><td>'.$row->lehreinheit_id.'&nbsp;</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">&nbsp;'.$lektoren.'</td>';
$content.='</tr>';
}
}
$bGefundenLehreinheit=(count($le_obj->lehreinheiten)?true:false);
$content.='<tr><td>&nbsp;</td></tr></table></td>';
$content.='</tr>';
$content.='</table></td></tr>';
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// ---- Submitknopf
$content.='<tr><td colspan="4"><table>
<tr>
<th align="left">Moodle :
<br />Kursbez.:&nbsp;<input name="aendern_bezeichnung" maxlength="254" size="60" type="Text" value="'. $aendern_bezeichnung.'">
<br />Kurzbez.:&nbsp;<input name="aendern_kurzbezeichnung" maxlength="254" size="60" type="Text" value="'. $aendern_kurzbezeichnung.'">
</th>
<td>&nbsp;</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&uuml;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">&nbsp;&nbsp;&nbsp;</td>
<td>
<table class="liste" summary="Studiengang">
<tr>
<td>'.(isset($objMoodle->result[0]) && isset($objMoodle->result[0]->studiensemester_kurzbz)?$objMoodle->result[0]->studiensemester_kurzbz:'').'&nbsp; </td>
<td>'.$stg_obj->kuerzel.'&nbsp;</td>
<td>'.$stg_obj->bezeichnung.'&nbsp;</td>
<td>('.$stg_obj->kurzbzlang.')&nbsp;</td>
<td>ID&nbsp;'.$studiengang_kz.'&nbsp;</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.'&nbsp;&nbsp;Kurzbz:&nbsp;'.$objMoodle->result[0]->lehrveranstaltung_kurzbz.'&nbsp;,&nbsp;Lehrform Kurzbz:'.($objMoodle->result[0]->lehrveranstaltung_lehrform_kurzbz?$objMoodle->result[0]->lehrveranstaltung_lehrform_kurzbz:' - ').',&nbsp;ID&nbsp;'.$objMoodle->result[0]->lehrveranstaltung_id.'&nbsp;':' - ').'</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" ':'').'>&nbsp;</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?',':'').'&nbsp;'.$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.'&nbsp;</td><td>'.$gruppen.'&nbsp;</td><td>ID&nbsp;'.$row->lehreinheit_id.'&nbsp;</td>';
$content.='<td valign="top"><input '.($le_gefunden?' checked="checked" ':'').' id="lehreinheit_id" disabled name="lehreinheit_id[]" value="'.$row->lehreinheit_id.'" type="Checkbox" >&nbsp;'.$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&auml;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&ouml;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&auml;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;
}
}
?>
+3 -28
View File
@@ -212,13 +212,13 @@ if($searchstr!='')
FROM
public.tbl_person
LEFT JOIN public.tbl_benutzer USING(person_id)";
if ($filter=='mitarbeiter')
$qry .= " JOIN public.tbl_mitarbeiter ON (uid=mitarbeiter_uid) ";
elseif ($filter=='student')
$qry .= " JOIN public.tbl_prestudent USING (person_id) ";
$qry .= " WHERE true
$qry .= " WHERE true
AND nachname ~* '".$db->db_escape($searchstr)."' OR
vorname ~* '".$db->db_escape($searchstr)."' OR
(nachname || ' ' || vorname) ~* '".$db->db_escape($searchstr)."' OR
@@ -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 = '