mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-07-04 04:19:28 +00:00
Merge branch 'master' of https://github.com/FH-Complete/FHC-Core
This commit is contained in:
@@ -21,3 +21,4 @@ tests/codeception/tests/unit.suite.yml
|
||||
bin
|
||||
/application/logs/
|
||||
/sparks/*
|
||||
/webdav/google.php
|
||||
|
||||
+7
-1
@@ -11,9 +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]
|
||||
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
#ignore all addons
|
||||
*
|
||||
#except template addon
|
||||
!template/*
|
||||
!template**/**
|
||||
!CodingGuidelines.txt
|
||||
!index.html
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
<?php
|
||||
/* Copyright (C) 2017 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>,
|
||||
*/
|
||||
/**
|
||||
* Hier koennen neue Menuepunkte im Vilesci definiert werden
|
||||
*/
|
||||
|
||||
// Hauptmenuepunkt hinzufuegen
|
||||
$menu_addon = array
|
||||
(
|
||||
'Template'=>array
|
||||
(
|
||||
'name'=>'Template', 'opener'=>'true', 'hide'=>'true', 'permissions'=>array('basis/addon'), 'image'=>'../../skin/images/vilesci_addons.png',
|
||||
'link'=>'left.php?categorie=Template', 'target'=>'nav',
|
||||
'TemplateEntry1'=>array('name'=>'Template Entry1', 'link'=>'../addons/template/vilesci/index.php', 'target'=>'main'),
|
||||
'TemplateEntry2'=>array('name'=>'Template Entry2', 'link'=>'../addons/template/vilesci/index.php', 'target'=>'main')
|
||||
)
|
||||
);
|
||||
$menu = array_merge($menu,$menu_addon);
|
||||
|
||||
// Submenuepunkt hinzufuegen unter dem Hauptmenue Punkt "Admin"
|
||||
$menu_addon = array
|
||||
(
|
||||
'TemplateSubmenu'=>array('name'=>'Template', 'link'=>'../addons/template/vilesci/index.php', 'target'=>'main','permissions'=>array('basis/addon')),
|
||||
|
||||
);
|
||||
$menu['Admin'] = array_merge($menu['Admin'],$menu_addon);
|
||||
?>
|
||||
@@ -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',
|
||||
@@ -235,12 +234,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';
|
||||
|
||||
@@ -34,11 +34,11 @@ class Prestudent extends APIv1_Controller
|
||||
public function getPrestudent()
|
||||
{
|
||||
$prestudentID = $this->get('prestudent_id');
|
||||
|
||||
|
||||
if (isset($prestudentID))
|
||||
{
|
||||
$result = $this->PrestudentModel->load($prestudentID);
|
||||
|
||||
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
else
|
||||
@@ -46,18 +46,18 @@ class Prestudent extends APIv1_Controller
|
||||
$this->response();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function getPrestudentByPersonID()
|
||||
{
|
||||
$person_id = $this->get('person_id');
|
||||
|
||||
|
||||
if (isset($person_id))
|
||||
{
|
||||
$result = $this->PrestudentModel->load(array('person_id' => $person_id));
|
||||
|
||||
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
else
|
||||
@@ -65,7 +65,7 @@ class Prestudent extends APIv1_Controller
|
||||
$this->response();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
@@ -73,14 +73,14 @@ class Prestudent extends APIv1_Controller
|
||||
{
|
||||
$prestudent_id = $this->get('prestudent_id');
|
||||
$titel = $this->get('titel');
|
||||
|
||||
|
||||
if (isset($prestudent_id) && isset($titel))
|
||||
{
|
||||
// Loads model Notiz_model
|
||||
$this->load->model('person/Notiz_model', 'NotizModel');
|
||||
|
||||
|
||||
$result = $this->NotizModel->getSpecialization($prestudent_id, $titel);
|
||||
|
||||
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
else
|
||||
@@ -88,7 +88,7 @@ class Prestudent extends APIv1_Controller
|
||||
$this->response();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
@@ -98,7 +98,7 @@ class Prestudent extends APIv1_Controller
|
||||
$studiensemester_kurzbz = $this->get('studiensemester_kurzbz');
|
||||
$studiengang_kz = $this->get('studiengang_kz');
|
||||
$status_kurzbz = $this->get('status_kurzbz');
|
||||
|
||||
|
||||
if (isset($person_id))
|
||||
{
|
||||
$result = $this->PrestudentModel->getLastStatuses(
|
||||
@@ -107,7 +107,7 @@ class Prestudent extends APIv1_Controller
|
||||
$studiengang_kz,
|
||||
$status_kurzbz
|
||||
);
|
||||
|
||||
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
else
|
||||
@@ -115,21 +115,56 @@ class Prestudent extends APIv1_Controller
|
||||
$this->response();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Get all Persons with a Status in the define Timerange
|
||||
* Additionally ALL Prestudents of this person are included.
|
||||
* (Not only the ones with the status)
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function getPrestudentsPerStatus()
|
||||
{
|
||||
$this->load->model('person/person_model', 'PersonModel');
|
||||
$status_kurzbz = $this->get('status_kurzbz');
|
||||
$von = $this->get('von');
|
||||
$bis = $this->get('bis');
|
||||
|
||||
if (isset($status_kurzbz) && isset($von) && isset($bis))
|
||||
{
|
||||
$result = $this->PersonModel->getPersonFromStatus(
|
||||
$status_kurzbz,
|
||||
$von,
|
||||
$bis
|
||||
);
|
||||
|
||||
// Remove person images from result array to reduce useless traffic
|
||||
foreach($result->retval as $key=>$val)
|
||||
{
|
||||
unset($result->retval[$key]->foto);
|
||||
}
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->response();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function postRmSpecialization()
|
||||
{
|
||||
$notiz_id = $this->post()['notiz_id'];
|
||||
|
||||
|
||||
if (isset($notiz_id))
|
||||
{
|
||||
// Loads model Notiz_model
|
||||
$this->load->model('person/Notiz_model', 'NotizModel');
|
||||
|
||||
|
||||
$result = $this->NotizModel->rmSpecialization($notiz_id);
|
||||
|
||||
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
else
|
||||
@@ -137,7 +172,7 @@ class Prestudent extends APIv1_Controller
|
||||
$this->response();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
@@ -146,14 +181,14 @@ class Prestudent extends APIv1_Controller
|
||||
$prestudent_id = $this->post()['prestudent_id'];
|
||||
$titel = $this->post()['titel'];
|
||||
$text = $this->post()['text'];
|
||||
|
||||
|
||||
if (isset($prestudent_id) && isset($titel) && isset($text))
|
||||
{
|
||||
// Loads model Notiz_model
|
||||
$this->load->model('person/Notiz_model', 'NotizModel');
|
||||
|
||||
|
||||
$result = $this->NotizModel->addSpecialization($prestudent_id, $titel, $text);
|
||||
|
||||
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
else
|
||||
@@ -168,7 +203,7 @@ class Prestudent extends APIv1_Controller
|
||||
public function postPrestudent()
|
||||
{
|
||||
$prestudent = $this->post();
|
||||
|
||||
|
||||
if ($this->_validate($this->post()))
|
||||
{
|
||||
if (isset($prestudent['prestudent_id']))
|
||||
@@ -179,7 +214,7 @@ class Prestudent extends APIv1_Controller
|
||||
{
|
||||
$result = $this->PrestudentModel->insert($prestudent);
|
||||
}
|
||||
|
||||
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
else
|
||||
@@ -187,7 +222,7 @@ class Prestudent extends APIv1_Controller
|
||||
$this->response();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
@@ -196,7 +231,7 @@ class Prestudent extends APIv1_Controller
|
||||
if ($this->_validate($this->delete()))
|
||||
{
|
||||
$result = $this->PrestudentModel->delete($this->delete()['prestudent_id']);
|
||||
|
||||
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
else
|
||||
@@ -204,28 +239,28 @@ class Prestudent extends APIv1_Controller
|
||||
$this->response();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function postAddReihungstest()
|
||||
{
|
||||
$ddReihungstest = $this->post();
|
||||
|
||||
|
||||
if ($this->_validateReihungstest($ddReihungstest))
|
||||
{
|
||||
if(isset($ddReihungstest['new']) && $ddReihungstest['new'] == true)
|
||||
{
|
||||
// Remove new parameter to avoid DB insert errors
|
||||
unset($ddReihungstest['new']);
|
||||
|
||||
|
||||
$result = $this->reihungstestlib->insertPersonReihungstest($ddReihungstest);
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = $this->reihungstestlib->updatePersonReihungstest($ddReihungstest);
|
||||
}
|
||||
|
||||
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
else
|
||||
@@ -233,18 +268,18 @@ class Prestudent extends APIv1_Controller
|
||||
$this->response();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function postDelReihungstest()
|
||||
{
|
||||
$ddReihungstest = $this->post();
|
||||
|
||||
|
||||
if (isset($ddReihungstest['rt_person_id']))
|
||||
{
|
||||
$result = $this->reihungstestlib->deletePersonReihungstest($ddReihungstest);
|
||||
|
||||
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
else
|
||||
@@ -252,19 +287,19 @@ class Prestudent extends APIv1_Controller
|
||||
$this->response();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private function _validate($prestudent = NULL)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
private function _validateReihungstest($ddReihungstest = NULL)
|
||||
{
|
||||
if (!isset($ddReihungstest['person_id']) || !isset($ddReihungstest['rt_id']) || !isset($ddReihungstest['studienplan_id']))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -35,11 +35,11 @@ class Prestudentstatus extends APIv1_Controller
|
||||
$studiensemester_kurzbz = $this->get('studiensemester_kurzbz');
|
||||
$status_kurzbz = $this->get('status_kurzbz');
|
||||
$prestudent_id = $this->get('prestudent_id');
|
||||
|
||||
|
||||
if (isset($ausbildungssemester) && isset($studiensemester_kurzbz) && isset($status_kurzbz) && isset($prestudent_id))
|
||||
{
|
||||
$result = $this->PrestudentstatusModel->load(array($ausbildungssemester, $studiensemester_kurzbz, $status_kurzbz, $prestudent_id));
|
||||
|
||||
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
else
|
||||
@@ -47,7 +47,7 @@ class Prestudentstatus extends APIv1_Controller
|
||||
$this->response();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
@@ -56,11 +56,11 @@ class Prestudentstatus extends APIv1_Controller
|
||||
$prestudent_id = $this->get("prestudent_id");
|
||||
$studiensemester_kurzbz = $this->get("studiensemester_kurzbz");
|
||||
$status_kurzbz = $this->get("status_kurzbz");
|
||||
|
||||
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
$result = $this->PrestudentstatusModel->getLastStatus($prestudent_id, $studiensemester_kurzbz, $status_kurzbz);
|
||||
|
||||
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
else
|
||||
@@ -75,14 +75,14 @@ class Prestudentstatus extends APIv1_Controller
|
||||
public function postPrestudentstatus()
|
||||
{
|
||||
$prestudentstatus = $this->post();
|
||||
|
||||
|
||||
if ($this->_validate($prestudentstatus))
|
||||
{
|
||||
if(isset($prestudentstatus['new']) && $prestudentstatus['new'] == true)
|
||||
{
|
||||
// Remove new parameter to avoid DB insert errors
|
||||
unset($prestudentstatus['new']);
|
||||
|
||||
|
||||
$result = $this->PrestudentstatusModel->insert($prestudentstatus);
|
||||
}
|
||||
else
|
||||
@@ -95,7 +95,7 @@ class Prestudentstatus extends APIv1_Controller
|
||||
|
||||
$result = $this->PrestudentstatusModel->update($pksArray, $prestudentstatus);
|
||||
}
|
||||
|
||||
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
else
|
||||
@@ -103,14 +103,14 @@ class Prestudentstatus extends APIv1_Controller
|
||||
$this->response();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function deletePrestudentstatus()
|
||||
{
|
||||
$prestudentstatus = $this->delete();
|
||||
|
||||
|
||||
if ($this->_validate($prestudentstatus))
|
||||
{
|
||||
$pksArray = array($prestudentstatus['ausbildungssemester'],
|
||||
@@ -120,7 +120,7 @@ class Prestudentstatus extends APIv1_Controller
|
||||
);
|
||||
|
||||
$result = $this->PrestudentstatusModel->delete($pksArray);
|
||||
|
||||
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
else
|
||||
@@ -128,9 +128,34 @@ class Prestudentstatus extends APIv1_Controller
|
||||
$this->response();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private function _validate($prestudentstatus = null)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get list of Status entries of a prestudent according to the filter
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function getStatusByFilter()
|
||||
{
|
||||
$prestudent_id = $this->get("prestudent_id");
|
||||
$status_kurzbz = $this->get("status_kurzbz");
|
||||
$ausbildungssemester = $this->get("ausbildungssemester");
|
||||
$studiensemester_kurzbz = $this->get("studiensemester_kurzbz");
|
||||
|
||||
if (isset($prestudent_id))
|
||||
{
|
||||
$result = $this->PrestudentstatusModel->getStatusByFilter($prestudent_id, $status_kurzbz, $ausbildungssemester, $studiensemester_kurzbz);
|
||||
|
||||
$this->response($result, REST_Controller::HTTP_OK);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->response();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,203 @@
|
||||
<?php
|
||||
|
||||
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");
|
||||
}
|
||||
|
||||
/**
|
||||
* 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();
|
||||
if ($studienjahr->error)
|
||||
{
|
||||
show_error($studienjahr->retval);
|
||||
}
|
||||
|
||||
$data = array(
|
||||
"studienjahr" => $studienjahr->retval
|
||||
);
|
||||
$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);
|
||||
$studienjahr = $this->StudienjahrModel->load($studienjahr_kurzbez);
|
||||
if ($studienjahr->error)
|
||||
{
|
||||
show_error($studienjahr->retval);
|
||||
}
|
||||
$data = array(
|
||||
"studienjahr" => $studienjahr->retval
|
||||
);
|
||||
$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");
|
||||
$allstudienjahrkurzbz = $this->StudienjahrModel->load();
|
||||
if ($allstudienjahrkurzbz->error)
|
||||
{
|
||||
show_error($allstudienjahrkurzbz->retval);
|
||||
}
|
||||
$studienjahrkurzbz = $allstudienjahrkurzbz->retval[0]->studienjahr_kurzbz;
|
||||
$years = $this->__getYearsFromStudienjahr($studienjahrkurzbz);
|
||||
$data = array(
|
||||
"studienjahrkurzbz" => ($years[0] + 1)."/".($years[1] + 1)
|
||||
);
|
||||
$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));
|
||||
$secondyear = intval(substr($studienjahr_kurzbez, 5, 2));
|
||||
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();
|
||||
$studienjahr = $this->StudienjahrModel->insert($data);
|
||||
|
||||
if ($studienjahr->error)
|
||||
{
|
||||
show_error($studienjahr->retval);
|
||||
}
|
||||
|
||||
redirect("/organisation/studienjahr/editStudienjahr/".str_replace("/", "_", $data['studienjahr_kurzbz']."?saved=true"));
|
||||
}
|
||||
|
||||
/**
|
||||
* 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" => html_escape($bezeichnung)
|
||||
);
|
||||
|
||||
$validation = $this->_validate($data);
|
||||
if (isSuccess($validation))
|
||||
{
|
||||
return $data;
|
||||
} else
|
||||
{
|
||||
show_error($validation->retval);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 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 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("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();
|
||||
$studienjahr = $this->StudienjahrModel->update($data['studienjahr_kurzbz'], $data);
|
||||
|
||||
if ($studienjahr->error)
|
||||
{
|
||||
show_error($studienjahr->retval);
|
||||
}
|
||||
|
||||
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);
|
||||
$studienjahr = $this->StudienjahrModel->delete($studienjahr_kurzbez);
|
||||
|
||||
if ($studienjahr->error)
|
||||
{
|
||||
show_error($studienjahr->retval);
|
||||
}
|
||||
|
||||
redirect("/organisation/studienjahr/listStudienjahr");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,208 @@
|
||||
<?php
|
||||
|
||||
if (!defined("BASEPATH")) exit("No direct script access allowed");
|
||||
|
||||
/**
|
||||
* 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();
|
||||
$this->load->model("organisation/Studiensemester_model", "StudiensemesterModel");
|
||||
$this->load->model("organisation/Studienjahr_model", "StudienjahrModel");
|
||||
}
|
||||
|
||||
/**
|
||||
* 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();
|
||||
if ($semester->error)
|
||||
{
|
||||
show_error($semester->retval);
|
||||
}
|
||||
|
||||
$data = array(
|
||||
"semester" => $semester->retval
|
||||
);
|
||||
$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);
|
||||
if ($semester->error)
|
||||
{
|
||||
show_error($semester->retval);
|
||||
}
|
||||
$this->StudienjahrModel->addOrder('studienjahr_kurzbz', "DESC");
|
||||
$allstudienjahre = $this->StudienjahrModel->load();
|
||||
if ($allstudienjahre->error)
|
||||
{
|
||||
show_error($allstudienjahre->retval);
|
||||
}
|
||||
$data = array(
|
||||
"semester" => $semester->retval,
|
||||
"allstudienjahre" => $allstudienjahre->retval
|
||||
);
|
||||
|
||||
$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");
|
||||
$allstudienjahre = $this->StudienjahrModel->load();
|
||||
if ($allstudienjahre->error)
|
||||
{
|
||||
show_error($allstudienjahre->retval);
|
||||
}
|
||||
|
||||
$data = array(
|
||||
"allstudienjahre" => $allstudienjahre->retval
|
||||
);
|
||||
|
||||
$this->load->view("organisation/studiensemesterNew.php", $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* inserts a Studiensemester
|
||||
* redirects to edit page after inserting.
|
||||
* saved=true is a GET parameter passed for showing save message
|
||||
*/
|
||||
public function insStudiensemester()
|
||||
{
|
||||
$data = $this->__retrieveStudiensemesterData();
|
||||
$semester = $this->StudiensemesterModel->insert($data);
|
||||
|
||||
if ($semester->error)
|
||||
{
|
||||
show_error($semester->retval);
|
||||
}
|
||||
|
||||
redirect("/organisation/studiensemester/editStudiensemester/".$data['studiensemester_kurzbz']."?saved=true");
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 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");
|
||||
$bezeichnung = $this->input->post("sembz");
|
||||
$start = $this->input->post("semstart");
|
||||
$ende = $this->input->post("semende");
|
||||
$studienjahr_kurzbz = $this->input->post("studienjahrkurzbz");
|
||||
$beschreibung = $this->input->post("beschreibung");
|
||||
$onlinebewerbung = $this->input->post("onlinebewerbung");
|
||||
$onlinebewerbung = isset($onlinebewerbung);
|
||||
|
||||
$data = array(
|
||||
"studiensemester_kurzbz" => $studiensemester_kurzbz,
|
||||
"bezeichnung" => html_escape($bezeichnung),
|
||||
"start" => $start,
|
||||
"ende" => $ende,
|
||||
"studienjahr_kurzbz" => $studienjahr_kurzbz,
|
||||
"beschreibung" => html_escape($beschreibung),
|
||||
"onlinebewerbung" => $onlinebewerbung
|
||||
);
|
||||
|
||||
$validation = $this->_validate($data);
|
||||
if (isSuccess($validation))
|
||||
{
|
||||
//dateconversion
|
||||
$data["start"] = date_format(date_create($start), "Y-m-d");
|
||||
$data["ende"] = date_format(date_create($ende), "Y-m-d");
|
||||
return $data;
|
||||
} else
|
||||
{
|
||||
show_error($validation->retval);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 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}$/";
|
||||
|
||||
if (!preg_match("/^(WS|SS)\d{4}$/", $data['studiensemester_kurzbz']))
|
||||
return error("Semesterkurzbezeichnung muss mit WS oder SS beginnen und mit einer Jahreszahl enden, z.B. SS2017");
|
||||
if (!preg_match($datepattern, $data['start']))
|
||||
return error("Falsches Startdatumsformat. Richtiges Format: dd.mm.yyyy");
|
||||
if (!preg_match($datepattern, $data['ende']))
|
||||
return error("Falsches Enddatumsformat. Richtiges Format: dd.mm.yyyy");
|
||||
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();
|
||||
$semester = $this->StudiensemesterModel->update($data['studiensemester_kurzbz'], $data);
|
||||
|
||||
if ($semester->error)
|
||||
{
|
||||
show_error($semester->retval);
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
if ($semester->error)
|
||||
{
|
||||
show_error($semester->retval);
|
||||
}
|
||||
|
||||
redirect("/organisation/studiensemester/listStudiensemester");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -11,7 +11,7 @@ class Prestudent_model extends DB_Model
|
||||
$this->dbTable = 'public.tbl_prestudent';
|
||||
$this->pk = 'prestudent_id';
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
@@ -24,7 +24,7 @@ class Prestudent_model extends DB_Model
|
||||
return $isEntitled;
|
||||
if (($isEntitled = $this->isEntitled('public.tbl_status', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR)) !== true)
|
||||
return $isEntitled;
|
||||
|
||||
|
||||
$query = 'SELECT *
|
||||
FROM public.tbl_prestudent p
|
||||
JOIN (
|
||||
@@ -37,33 +37,33 @@ class Prestudent_model extends DB_Model
|
||||
WHERE ps.ausbildungssemester = 1';
|
||||
|
||||
$parametersArray = array($person_id);
|
||||
|
||||
|
||||
if ($studiensemester_kurzbz != '')
|
||||
{
|
||||
array_push($parametersArray, $studiensemester_kurzbz);
|
||||
$query .= ' AND ps.studiensemester_kurzbz = ?';
|
||||
}
|
||||
|
||||
|
||||
if (isset($studiengang_kz))
|
||||
{
|
||||
array_push($parametersArray, $studiengang_kz);
|
||||
$query .= ' AND p.studiengang_kz = ?';
|
||||
}
|
||||
|
||||
|
||||
if ($status_kurzbz != '')
|
||||
{
|
||||
array_push($parametersArray, $status_kurzbz);
|
||||
$query .= ' AND ps.status_kurzbz = ?';
|
||||
}
|
||||
|
||||
|
||||
return $this->execQuery($query, $parametersArray);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
public function updateAufnahmegruppe($prestudentIdArray, $aufnahmegruppe)
|
||||
{
|
||||
{
|
||||
return $this->execQuery(
|
||||
'UPDATE public.tbl_prestudent
|
||||
SET aufnahmegruppe_kurzbz = ?
|
||||
@@ -74,7 +74,7 @@ class Prestudent_model extends DB_Model
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns a list of prestudent with additional information:
|
||||
* - person_id
|
||||
@@ -104,7 +104,7 @@ class Prestudent_model extends DB_Model
|
||||
aufnahmegruppe_kurzbz,
|
||||
SUM(rtp.punkte) AS punkte'
|
||||
);
|
||||
|
||||
|
||||
$this->addJoin('public.tbl_person p', 'person_id', 'LEFT');
|
||||
$this->addJoin(
|
||||
'(
|
||||
@@ -123,39 +123,39 @@ class Prestudent_model extends DB_Model
|
||||
$this->addJoin('lehre.tbl_studienordnung so', 'studienordnung_id');
|
||||
$this->addJoin('public.tbl_studiengang sg', 'sg.studiengang_kz = so.studiengang_kz');
|
||||
$this->addJoin('public.tbl_studiengangstyp sgt', 'typ');
|
||||
|
||||
|
||||
$this->addJoin('public.tbl_rt_person rtp', 'rtp.person_id = p.person_id AND rtp.studienplan_id = s.studienplan_id', 'LEFT');
|
||||
|
||||
|
||||
$this->addOrder('p.person_id', 'ASC');
|
||||
$this->addOrder('prestudent_id', 'ASC');
|
||||
|
||||
|
||||
$parametersArray = array('p.aktiv' => true, 'ps.status_kurzbz' => 'Interessent');
|
||||
|
||||
|
||||
if ($studiengang != null)
|
||||
{
|
||||
$parametersArray['public.tbl_prestudent.studiengang_kz'] = $studiengang;
|
||||
}
|
||||
|
||||
|
||||
if ($studiensemester != null)
|
||||
{
|
||||
$parametersArray['ps.studiensemester_kurzbz'] = $studiensemester;
|
||||
}
|
||||
|
||||
|
||||
if ($gruppe != null)
|
||||
{
|
||||
$parametersArray['aufnahmegruppe_kurzbz'] = $gruppe;
|
||||
}
|
||||
|
||||
|
||||
if ($reihungstest != null)
|
||||
{
|
||||
$parametersArray['rtp.rt_id'] = $reihungstest;
|
||||
}
|
||||
|
||||
|
||||
if ($stufe != null)
|
||||
{
|
||||
$parametersArray['ps.rt_stufe'] = $stufe;
|
||||
}
|
||||
|
||||
|
||||
$this->addGroupBy(
|
||||
array(
|
||||
'p.person_id',
|
||||
@@ -174,7 +174,7 @@ class Prestudent_model extends DB_Model
|
||||
'aufnahmegruppe_kurzbz'
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
return $this->loadWhere($parametersArray);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@ class Prestudentstatus_model extends DB_Model
|
||||
$this->pk = array('ausbildungssemester', 'studiensemester_kurzbz', 'status_kurzbz', 'prestudent_id');
|
||||
$this->hasSequence = false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
@@ -25,7 +25,7 @@ class Prestudentstatus_model extends DB_Model
|
||||
return $isEntitled;
|
||||
if (($isEntitled = $this->isEntitled('public.tbl_status', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR)) !== true)
|
||||
return $isEntitled;
|
||||
|
||||
|
||||
$query = 'SELECT tbl_prestudentstatus.*,
|
||||
bezeichnung AS studienplan_bezeichnung,
|
||||
tbl_status.bezeichnung_mehrsprachig
|
||||
@@ -35,7 +35,7 @@ class Prestudentstatus_model extends DB_Model
|
||||
AND prestudent_id = ?';
|
||||
|
||||
$parametersArray = array($prestudent_id);
|
||||
|
||||
|
||||
if ($studiensemester_kurzbz != '')
|
||||
{
|
||||
array_push($parametersArray, $studiensemester_kurzbz);
|
||||
@@ -46,17 +46,17 @@ class Prestudentstatus_model extends DB_Model
|
||||
array_push($parametersArray, $status_kurzbz);
|
||||
$query .= ' AND status_kurzbz = ?';
|
||||
}
|
||||
|
||||
|
||||
$query .= ' ORDER BY datum DESC, insertamum DESC, ext_id DESC LIMIT 1';
|
||||
|
||||
|
||||
return $this->execQuery($query, $parametersArray);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
public function updateStufe($prestudentIdArray, $stufe)
|
||||
{
|
||||
{
|
||||
return $this->execQuery(
|
||||
'UPDATE public.tbl_prestudentstatus
|
||||
SET rt_stufe = ?
|
||||
@@ -68,4 +68,51 @@ class Prestudentstatus_model extends DB_Model
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all Prestudent status entries according to the given filter
|
||||
*
|
||||
* @param prestudent_id ID of the Prestudent.
|
||||
* @param $status_kurzbz kurzbz of the status.
|
||||
* @param $ausbildungssemester ausbildungssemester of the status.
|
||||
* @param $studiensemester_kurzbz studiensemster of the status.
|
||||
*
|
||||
* @return result object with all the status entries
|
||||
*/
|
||||
public function getStatusByFilter($prestudent_id, $status_kurzbz = '', $ausbildungssemester = '', $studiensemester_kurzbz = '')
|
||||
{
|
||||
// Checks if the operation is permitted by the API caller
|
||||
if (($isEntitled = $this->isEntitled('public.tbl_prestudentstatus', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR)) !== true)
|
||||
return $isEntitled;
|
||||
|
||||
$query = '
|
||||
SELECT
|
||||
tbl_prestudentstatus.*
|
||||
FROM
|
||||
public.tbl_prestudentstatus
|
||||
WHERE
|
||||
prestudent_id = ?';
|
||||
|
||||
$parametersArray = array($prestudent_id);
|
||||
|
||||
if ($studiensemester_kurzbz != '')
|
||||
{
|
||||
array_push($parametersArray, $studiensemester_kurzbz);
|
||||
$query .= ' AND studiensemester_kurzbz = ?';
|
||||
}
|
||||
if ($status_kurzbz != '')
|
||||
{
|
||||
array_push($parametersArray, $status_kurzbz);
|
||||
$query .= ' AND status_kurzbz = ?';
|
||||
}
|
||||
if ($ausbildungssemester != '')
|
||||
{
|
||||
array_push($parametersArray, $ausbildungssemester);
|
||||
$query .= ' AND ausbildungssemester = ?';
|
||||
}
|
||||
|
||||
$query .= ' ORDER BY datum DESC, insertamum DESC, ext_id DESC';
|
||||
|
||||
return $this->execQuery($query, $parametersArray);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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';
|
||||
}
|
||||
}
|
||||
@@ -10,5 +10,6 @@ class Studienjahr_model extends DB_Model
|
||||
parent::__construct();
|
||||
$this->dbTable = 'public.tbl_studienjahr';
|
||||
$this->pk = 'studienjahr_kurzbz';
|
||||
$this->hasSequence = false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ class Studiensemester_model extends DB_Model
|
||||
parent::__construct();
|
||||
$this->dbTable = 'public.tbl_studiensemester';
|
||||
$this->pk = 'studiensemester_kurzbz';
|
||||
$this->hasSequence = false;
|
||||
}
|
||||
|
||||
public function getLastOrAktSemester($days = 60)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
class Person_model extends DB_Model
|
||||
{
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
@@ -11,16 +11,16 @@ class Person_model extends DB_Model
|
||||
$this->dbTable = 'public.tbl_person';
|
||||
$this->pk = 'person_id';
|
||||
}
|
||||
|
||||
|
||||
public function getPersonKontaktByZugangscode($zugangscode, $email)
|
||||
{
|
||||
$this->addJoin('public.tbl_kontakt', 'person_id');
|
||||
|
||||
|
||||
return $this->loadWhere(array('zugangscode' => $zugangscode, 'kontakt' => $email));
|
||||
}
|
||||
|
||||
/**
|
||||
*
|
||||
*
|
||||
*/
|
||||
public function checkBewerbung($email, $studiensemester_kurzbz = null)
|
||||
{
|
||||
@@ -34,10 +34,10 @@ class Person_model extends DB_Model
|
||||
return $isEntitled;
|
||||
if (($isEntitled = $this->isEntitled('public.tbl_prestudentstatus', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR)) !== true)
|
||||
return $isEntitled;
|
||||
|
||||
|
||||
$checkBewerbungQuery = '';
|
||||
$parametersArray = array($email, $email, $email);
|
||||
|
||||
|
||||
if (is_null($studiensemester_kurzbz))
|
||||
{
|
||||
$checkBewerbungQuery = 'SELECT DISTINCT p.person_id, p.zugangscode, p.insertamum
|
||||
@@ -60,13 +60,13 @@ class Person_model extends DB_Model
|
||||
AND studiensemester_kurzbz = ?
|
||||
ORDER BY p.insertamum DESC
|
||||
LIMIT 1';
|
||||
|
||||
|
||||
array_push($parametersArray, $studiensemester_kurzbz);
|
||||
}
|
||||
|
||||
|
||||
return $this->execQuery($checkBewerbungQuery, $parametersArray);
|
||||
}
|
||||
|
||||
|
||||
public function updatePerson($person)
|
||||
{
|
||||
if (isset($person['svnr']) && $person['svnr'] != '')
|
||||
@@ -88,7 +88,46 @@ class Person_model extends DB_Model
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return $this->PersonModel->update($person['person_id'], $person);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @return void
|
||||
*/
|
||||
public function getPersonFromStatus($status_kurzbz, $von, $bis)
|
||||
{
|
||||
// Checks if the operation is permitted by the API caller
|
||||
if (($isEntitled = $this->isEntitled('public.tbl_prestudent', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR)) !== true)
|
||||
return $isEntitled;
|
||||
if (($isEntitled = $this->isEntitled('public.tbl_prestudentstatus', PermissionLib::SELECT_RIGHT, FHC_NORIGHT, FHC_MODEL_ERROR)) !== true)
|
||||
return $isEntitled;
|
||||
|
||||
$this->addJoin('public.tbl_prestudent', 'person_id');
|
||||
|
||||
$result = $this->loadTree(
|
||||
'public.tbl_person',
|
||||
array(
|
||||
'public.tbl_prestudent'
|
||||
),
|
||||
'EXISTS (
|
||||
SELECT
|
||||
1
|
||||
FROM
|
||||
public.tbl_prestudentstatus
|
||||
JOIN public.tbl_prestudent USING(prestudent_id)
|
||||
WHERE
|
||||
person_id=tbl_person.person_id
|
||||
AND status_kurzbz='.$this->escape($status_kurzbz).'
|
||||
AND datum >= '.$this->escape($von).'
|
||||
AND datum <= '.$this->escape($bis).'
|
||||
)',
|
||||
array(
|
||||
'prestudenten'
|
||||
)
|
||||
);
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
$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">
|
||||
<div class="span4">
|
||||
<h2>Studienjahr</h2>
|
||||
<a href="newStudienjahr/">
|
||||
Neues Studienjahr anlegen
|
||||
</a>
|
||||
<table id="t1" class="tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Kurzbez</th>
|
||||
<th>Bezeichnung</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<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>
|
||||
<td>
|
||||
<a href="editStudienjahr/<?php echo $escapedstudienjahrkurzbz; ?>">
|
||||
Bearbeiten
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="deleteStudienjahr/<?php echo $escapedstudienjahrkurzbz; ?>">
|
||||
Löschen
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
$jahr = $studienjahr[0];
|
||||
$this->load->view('templates/header', array('title' => 'StudienjahrEdit', 'jquery' => true));
|
||||
?>
|
||||
<body>
|
||||
<div class="row">
|
||||
<div class="row">
|
||||
<div class="span4">
|
||||
<h2>Studienjahr bearbeiten: <?php echo $jahr->studienjahr_kurzbz; ?></h2>
|
||||
<form method="post" action="<?php echo APP_ROOT."index.ci.php/organisation/studienjahr/saveStudienjahr" ?>">
|
||||
|
||||
<table>
|
||||
<?php include('studienjahrForm.php'); ?>
|
||||
<input type="hidden" name="studienjahrkurzbz" value="<?php echo $jahr->studienjahr_kurzbz; ?>"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
$bezeichnung = (isset($jahr->bezeichnung)) ? $jahr->bezeichnung : (isset($studienjahrkurzbz) ? "Studienjahr ".$studienjahrkurzbz : "");
|
||||
?>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
Bezeichnung:<br/><br/>
|
||||
<input type="text" name="studienjahrbz" value="<?php echo $bezeichnung; ?>"/><br/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<button type="submit">Speichern</button>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="<?php echo '../listStudienjahr'; ?>">
|
||||
<button type="button">Zur Übersicht</button>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" align="center">
|
||||
<a href="<?php echo '../../studiensemester/listStudiensemester'; ?>">
|
||||
<button type="button">Zur Semesterübersicht</button>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</table>
|
||||
<br/>
|
||||
<div class="input_ok"><?php if (isset($_GET['saved']) && $_GET['saved']) echo 'Studienjahr wurde gespeichert.'; ?></div>
|
||||
<div class="input_error" id="errormessage"></div>
|
||||
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
$this->load->view('templates/header', array('title' => 'StudienjahrNew', 'jqueryComposer' => true));
|
||||
?>
|
||||
<body>
|
||||
|
||||
<div class="row">
|
||||
<div class="row">
|
||||
<div class="span4">
|
||||
<h2>Neues Studienjahr anlegen</h2>
|
||||
<form method="post"
|
||||
action="<?php echo APP_ROOT."index.ci.php/organisation/studienjahr/insStudienjahr"; ?>"
|
||||
id="newStudienjahrForm">
|
||||
<table>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
Kurzbezeichnung:<br/><br/>
|
||||
<input type="text" name="studienjahrkurzbz" value="<?php echo $studienjahrkurzbz ?>"/><br/>
|
||||
</td>
|
||||
</tr>
|
||||
<?php include('studienjahrForm.php'); ?>
|
||||
</form>
|
||||
</div>
|
||||
</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;
|
||||
$('#errormessage').text("Studienjahrbezeichnung muss folgende Form haben: Jahreszahl/letzeZweiZahlenDesNächstenJahres, z.B. 2017/18");
|
||||
event.preventDefault();
|
||||
});
|
||||
|
||||
/**
|
||||
* 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(studienjahrkurzbez) && secondyear - firstyear === 1;
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,55 @@
|
||||
<?php
|
||||
$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">
|
||||
<div class="span4">
|
||||
<h2>Studiensemester</h2>
|
||||
<a href="newStudiensemester/">
|
||||
Neues Studiensemester anlegen
|
||||
</a>
|
||||
<table id="t1" class="tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Kurzbez</th>
|
||||
<th>Bezeichnung</th>
|
||||
<th>Start</th>
|
||||
<th>Ende</th>
|
||||
<th>Studienjahr</th>
|
||||
<th>Beschreibung</th>
|
||||
<th>Onlinebewerbung</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<?php foreach ($semester as $sem): ?>
|
||||
<tr>
|
||||
<td><?php echo $sem->studiensemester_kurzbz; ?></td>
|
||||
<td><?php echo $sem->bezeichnung; ?></td>
|
||||
<td><?php echo date_format(date_create($sem->start), "d.m.Y"); ?></td>
|
||||
<td><?php echo date_format(date_create($sem->ende), "d.m.Y"); ?></td>
|
||||
<td><?php echo $sem->studienjahr_kurzbz; ?></td>
|
||||
<td><?php echo $sem->beschreibung; ?></td>
|
||||
<td><?php echo ($sem->onlinebewerbung) ? "Ja" : "Nein"; ?></td>
|
||||
<td>
|
||||
<a href="editStudiensemester/<?php echo $sem->studiensemester_kurzbz; ?>">
|
||||
Bearbeiten
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="deleteStudiensemester/<?php echo $sem->studiensemester_kurzbz; ?>">
|
||||
Löschen
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach ?>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
$sem = $semester[0];
|
||||
$this->load->view('templates/header', array('title' => 'StudiensemesterEdit', 'datepicker' => true, 'datepickerclass' => 'dateinput'));
|
||||
?>
|
||||
<body>
|
||||
<div class="row">
|
||||
<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" ?>">
|
||||
<table>
|
||||
<?php include('studiensemesterForm.php'); ?>
|
||||
<input type="hidden" name="semkurzbz" value="<?php echo $sem->studiensemester_kurzbz; ?>"/>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,103 @@
|
||||
<?php
|
||||
$bezeichnung = (isset($sem->bezeichnung) ? $sem->bezeichnung : "");
|
||||
$start = (isset($sem->start) ? date_format(date_create($sem->start), "d.m.Y") : "");
|
||||
$ende = (isset($sem->ende) ? date_format(date_create($sem->ende), "d.m.Y") : "");
|
||||
$studienjahr_kurzbz = (isset($sem->studienjahr_kurzbz) ? $sem->studienjahr_kurzbz : "");
|
||||
$beschreibung = (isset($sem->beschreibung) ? $sem->beschreibung : "");
|
||||
$onlinebewerbung = (isset($sem->onlinebewerbung) ? $sem->onlinebewerbung : "");
|
||||
?>
|
||||
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
Bezeichnung:<br/><br/>
|
||||
<input type="text" name="sembz" value="<?php echo $bezeichnung; ?>"/><br/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
Datum start:<br/><br/>
|
||||
<input type="text" class="dateinput" name="semstart" value="<?php echo $start; ?>"/><br/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
Datum ende:<br/><br/>
|
||||
<input type="text" class="dateinput" name="semende" value="<?php echo $ende; ?>"/><br/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
Studienjahr:<br/><br/>
|
||||
<select name="studienjahrkurzbz">
|
||||
<?php foreach ($allstudienjahre as $jahr): ?>
|
||||
<option <?php if ($studienjahr_kurzbz == $jahr->studienjahr_kurzbz) echo 'selected' ?>
|
||||
value="<?php echo $jahr->studienjahr_kurzbz ?>">
|
||||
<?php echo $jahr->bezeichnung ?>
|
||||
</option>
|
||||
<?php endforeach ?>
|
||||
</select>
|
||||
<a href="<?php echo '../../studienjahr/newStudienjahr/'; ?>">
|
||||
<button type="button">Neues Studienjahr</button>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
Beschreibung:<br/><br/>
|
||||
<textarea name="beschreibung" rows="5" cols="33"><?php echo $beschreibung; ?></textarea>
|
||||
<br/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Onlinebewerbung
|
||||
<br/>
|
||||
</td>
|
||||
<td>
|
||||
<input type="checkbox" name="onlinebewerbung" <?php if ($onlinebewerbung) echo 'checked' ?>/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center">
|
||||
<button type="submit">Speichern</button>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="<?php echo '../listStudiensemester'; ?>">
|
||||
<button type="button">Zur Übersicht</button>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<br/>
|
||||
<div class="input_ok"><?php if (isset($_GET['saved']) && $_GET['saved']) echo 'Studiensemester wurde gespeichert.'; ?></div>
|
||||
<div class="input_error" id="errormessage"></div>
|
||||
@@ -0,0 +1,119 @@
|
||||
<?php
|
||||
$this->load->view('templates/header', array('title' => 'StudiensemesterNew', 'jqueryComposer' => true, 'datepicker' => true, 'datepickerclass' => 'dateinput'));
|
||||
?>
|
||||
<body>
|
||||
|
||||
<div class="row">
|
||||
<div class="row">
|
||||
<div class="span4">
|
||||
<h2>Neues Studiensemester anlegen</h2>
|
||||
<form method="post"
|
||||
action="<?php echo APP_ROOT."index.ci.php/organisation/studiensemester/insStudiensemester"; ?>"
|
||||
id="newSemesterForm">
|
||||
<table>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
Kurzbezeichnung:<br/><br/>
|
||||
<input type="text" name="semkurzbz" value=""/><br/>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<?php include('studiensemesterForm.php'); ?>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
$('input[name=semkurzbz]').on(
|
||||
'input',
|
||||
function () {
|
||||
var semesterkurzbez = $('input[name=semkurzbz]').val();
|
||||
prefillYearFields(semesterkurzbez);
|
||||
}
|
||||
);
|
||||
});
|
||||
|
||||
/**
|
||||
* 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);
|
||||
var jahr = semesterkurzbez.substr(2, 6);
|
||||
var wsssbezeichnung, jahrbez, studienjahr, start, ende = "";
|
||||
if (semester == 'WS') {
|
||||
wsssbezeichnung = "Wintersemester";
|
||||
jahrbez = jahr + "/" + (parseInt(jahr) + 1);
|
||||
studienjahr = jahr + "/" + (parseInt(jahr.substr(2, 4)) + 1);
|
||||
start = "01.09." + jahr;
|
||||
ende = "01.02." + (parseInt(jahr) + 1);
|
||||
} else {
|
||||
wsssbezeichnung = "Sommersemester";
|
||||
jahrbez = jahr;
|
||||
studienjahr = (parseInt(jahr) - 1) + "/" + (parseInt(jahr.substr(2, 4)));
|
||||
start = "01.02." + jahr;
|
||||
ende = "01.08." + jahr;
|
||||
}
|
||||
var bezeichnung = wsssbezeichnung + " " + jahrbez;
|
||||
$('input[name=sembz]').val(bezeichnung);
|
||||
$('input[name=semstart]').val(start);
|
||||
$('input[name=semende]').val(ende);
|
||||
$('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();
|
||||
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>
|
||||
@@ -3,6 +3,8 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
isset($title) ? $title = 'VileSci - '.$title : $title = 'VileSci';
|
||||
!isset($jquery) ? $jquery = false : $jquery = $jquery;
|
||||
!isset($jqueryComposer) ? $jqueryComposer = false : $jqueryComposer = $jqueryComposer;
|
||||
!isset($jqueryui) ? $jqueryui = false : $jqueryui = $jqueryui;
|
||||
!isset($jquery_checkboxes) ? $jquery_checkboxes = false : $jquery_checkboxes = $jquery_checkboxes;
|
||||
!isset($jquery_custom) ? $jquery_custom = false : $jquery_custom = $jquery_custom;
|
||||
!isset($tablesort) ? $tablesort = false : $tablesort = $tablesort;
|
||||
@@ -13,9 +15,20 @@ isset($title) ? $title = 'VileSci - '.$title : $title = 'VileSci';
|
||||
!isset($jsoneditor) ? $jsoneditor = false : $jsoneditor = $jsoneditor;
|
||||
!isset($jsonforms) ? $jsonforms = false : $jsonforms = $jsonforms;
|
||||
!isset($textile) ? $textile = false : $textile = $textile;
|
||||
!isset($datepicker) ? $datepicker = false : $datepicker = $datepicker;
|
||||
|
||||
if ($tablesort || $jquery_checkboxes || $jquery_custom)
|
||||
$jquery = true;
|
||||
|
||||
if($datepicker)
|
||||
$jqueryui = true;
|
||||
|
||||
if($jqueryui)
|
||||
$jqueryComposer = true;
|
||||
|
||||
if($jquery && $jqueryComposer)
|
||||
show_error("Two JQuery versions used: composer and includefolderversion");
|
||||
|
||||
?>
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
@@ -32,6 +45,15 @@ if ($tablesort || $jquery_checkboxes || $jquery_custom)
|
||||
<script type="text/javascript" src="<?php echo base_url('include/js/jquery1.9.min.js'); ?>"></script>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if($jqueryComposer) : ?>
|
||||
<script type="text/javascript" src="<?php echo base_url('vendor/components/jquery/jquery.min.js'); ?>"></script>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if($jqueryui) : ?>
|
||||
<script type="text/javascript" src="<?php echo base_url('vendor/components/jqueryui/jquery-ui.min.js'); ?>"></script>
|
||||
<link rel="stylesheet" type="text/css" href="<?php echo base_url('vendor/components/jqueryui/themes/base/jquery-ui.min.css'); ?>" />
|
||||
<?php endif ?>
|
||||
|
||||
<?php if($jquery_checkboxes) : ?>
|
||||
<script type="text/javascript" src="<?php echo base_url('include/js/jquery.checkboxes-1.0.7.min.js'); ?>"></script>
|
||||
<?php endif ?>
|
||||
@@ -53,6 +75,19 @@ if ($tablesort || $jquery_checkboxes || $jquery_custom)
|
||||
});
|
||||
</script>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if($datepicker && !empty($datepickerclass)) : ?>
|
||||
<script language="Javascript" type="text/javascript">
|
||||
$(document).ready(function()
|
||||
{
|
||||
$(".<?php echo $datepickerclass; ?>").datepicker(
|
||||
{
|
||||
dateFormat:"dd.mm.yy"
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<?php endif ?>
|
||||
|
||||
<?php if($tinymce) : ?>
|
||||
<script type="text/javascript" src="<?php echo base_url('vendor/tinymce/tinymce/tinymce.min.js');?>"></script>
|
||||
<?php endif ?>
|
||||
|
||||
@@ -47,7 +47,7 @@ $aktuellerContentIdx=0;
|
||||
//Cookie erhaelt zusaetzlich die IP im Namen damit bei der Preview keine Konflikte entstehen
|
||||
$cookie = 'infoscreenContent'.str_replace('-','',str_replace('.','',$ip));
|
||||
|
||||
//zuletzt angezeigte Seite des Terminals ermitteln
|
||||
//zuletzt angezeigte Seite des Terminals ermitteln
|
||||
if(isset($_COOKIE[$cookie]))
|
||||
{
|
||||
$lastinfoscreencontent = $_COOKIE[$cookie];
|
||||
@@ -57,7 +57,7 @@ else
|
||||
$lastinfoscreencontent = -1;
|
||||
$aktuellerContentIdx = 0;
|
||||
}
|
||||
|
||||
|
||||
if($infoscreen->getInfoscreen($ip))
|
||||
{
|
||||
$infoscreen_id = $infoscreen->infoscreen_id;
|
||||
@@ -72,14 +72,14 @@ if($infoscreen->getInfoscreen($ip))
|
||||
{
|
||||
$aktuellerContentIdx=$i+1;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
if($aktuellerContentIdx>$i)
|
||||
$aktuellerContentIdx=0;
|
||||
|
||||
if(isset($refreshzeiten[$aktuellerContentIdx]) && $refreshzeiten[$aktuellerContentIdx]!='')
|
||||
$refreshzeit = $refreshzeiten[$aktuellerContentIdx];
|
||||
$refreshzeit = $refreshzeiten[$aktuellerContentIdx];
|
||||
|
||||
if(isset($infoscreen_content) && isset($infoscreen_content[$aktuellerContentIdx]))
|
||||
{
|
||||
@@ -105,7 +105,7 @@ function initialize()
|
||||
{
|
||||
startit()
|
||||
}
|
||||
|
||||
|
||||
function scrollwindow()
|
||||
{
|
||||
if (document.all)
|
||||
@@ -134,12 +134,12 @@ function scrollwindow()
|
||||
window.scroll(0,currentpos)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function startit()
|
||||
{
|
||||
setInterval("scrollwindow()",40) <!--Zeit in ms bis zum naechsten Bildwechsel 1000=1sek-->
|
||||
}
|
||||
|
||||
|
||||
window.onload=initialize
|
||||
</script>';
|
||||
$scroll= "<script>
|
||||
@@ -155,22 +155,22 @@ window.onload=scrolldown;
|
||||
//echo $scroll;
|
||||
|
||||
echo '
|
||||
<title>Infoscreen</title>
|
||||
<title>Informationsbildschirm</title>
|
||||
</head>
|
||||
<body>';
|
||||
echo '<!-- Last content:'.$lastinfoscreencontent.' Infoscreen-ID:'.$infoscreen_id.' IP:'.$ip.'-->';
|
||||
echo '<!-- Last content:'.$lastinfoscreencontent.' ID:'.$infoscreen_id.' IP:'.$ip.'-->';
|
||||
if($infoscreen_id!='' && isset($content[$aktuellerContentIdx]))
|
||||
{
|
||||
|
||||
|
||||
echo '<center style="height: 100%"><iframe id="content" src="../../cms/content.php?content_id='.$content[$aktuellerContentIdx].'" ></iframe></center>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<br><br><br>
|
||||
<center>
|
||||
<h1>Infoscreen - '.CAMPUS_NAME.'</h1>
|
||||
<h1>Informationsbildschirm - '.CAMPUS_NAME.'</h1>
|
||||
<br><br><br>
|
||||
Dieser Infoscreen wurde noch nicht registriert
|
||||
Dieser Informationsbildschirm wurde noch nicht registriert
|
||||
<br><br>
|
||||
IP-Adresse:'.$ip.'
|
||||
</center>';
|
||||
@@ -15,7 +15,7 @@
|
||||
* 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>,
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
@@ -54,9 +54,9 @@ if(isset($_GET['uebung_id']) && is_numeric($_GET['uebung_id']))
|
||||
}
|
||||
else
|
||||
{
|
||||
if(!isset($_GET['all']))
|
||||
if(!isset($_GET['all']))
|
||||
die('Fehlerhafte Parameteruebergabe');
|
||||
else
|
||||
else
|
||||
{
|
||||
$lehreinheit_id = $_GET['lehreinheit_id'];
|
||||
$lehreinheit_obj = new lehreinheit($lehreinheit_id);
|
||||
@@ -78,11 +78,11 @@ if (isset($_GET["download_abgabe"])){
|
||||
exit;
|
||||
}
|
||||
/*
|
||||
$qry = "SELECT * FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) WHERE
|
||||
$qry = "SELECT * FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) WHERE
|
||||
tbl_lehreinheit.lehreinheit_id=".$db->db_add_param($lehreinheit_obj->lehreinheit_id, FHC_INTEGER)." AND
|
||||
mitarbeiter_uid=".$db->db_add_param($user);
|
||||
*/
|
||||
$qry = "SELECT * FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) WHERE
|
||||
$qry = "SELECT * FROM lehre.tbl_lehreinheit JOIN lehre.tbl_lehreinheitmitarbeiter USING(lehreinheit_id) WHERE
|
||||
tbl_lehreinheit.lehrveranstaltung_id in(Select lehrveranstaltung_id from lehre.tbl_lehreinheit where lehreinheit_id=".$db->db_add_param($lehreinheit_obj->lehreinheit_id, FHC_INTEGER).") AND
|
||||
mitarbeiter_uid=".$db->db_add_param($user);
|
||||
|
||||
@@ -91,12 +91,12 @@ if(!$result = $db->db_query($qry))
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
|
||||
if(!($db->db_num_rows($result)>0 || $rechte->isBerechtigt('admin',0) || $rechte->isBerechtigt('admin',$lehreinheit_obj->studiengang_kz) || $rechte->isBerechtigt('lehre',$lehreinheit_obj->studiengang_kz)))
|
||||
die('Sie haben keine Berechtigung für diesen Bereich');
|
||||
|
||||
// Beteiligte Gruppen laden
|
||||
$gruppen = '';
|
||||
$gruppen = '';
|
||||
$qry_gruppen = "SELECT * FROM lehre.tbl_lehreinheitgruppe WHERE lehreinheit_id=".$db->db_add_param($lehreinheit_obj->lehreinheit_id, FHC_INTEGER);
|
||||
if($result_gruppen = $db->db_query($qry_gruppen))
|
||||
{
|
||||
@@ -122,33 +122,33 @@ if(isset($_GET['output']) && $_GET['output']=='xls')
|
||||
//EXCEL VERSION / ALLE Kreuzerllisten
|
||||
$le_obj = new lehreinheit();
|
||||
$le_obj->load($lehreinheit_id);
|
||||
|
||||
|
||||
$lv_obj = new lehrveranstaltung();
|
||||
$lv_obj->load($le_obj->lehrveranstaltung_id);
|
||||
|
||||
|
||||
// Creating a workbook
|
||||
$workbook = new Spreadsheet_Excel_Writer();
|
||||
$workbook->setVersion(8);
|
||||
// sending HTTP headers
|
||||
$workbook->send("Kreuzerlliste_Gesamt_".$lv_obj->lehreverzeichnis. "_" . date("d_m_Y") . ".xls");
|
||||
|
||||
|
||||
// Creating a worksheet
|
||||
$worksheet =& $workbook->addWorksheet("Kreuzerltool");
|
||||
$worksheet->setInputEncoding('utf-8');
|
||||
|
||||
|
||||
$format_bold =& $workbook->addFormat();
|
||||
$format_bold->setBold();
|
||||
|
||||
|
||||
$format_title =& $workbook->addFormat();
|
||||
$format_title->setBold();
|
||||
// let's merge
|
||||
$format_title->setAlign('merge');
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$worksheet->write(0,0,'Gesamtübersicht '.$lv_obj->bezeichnung.' vom '.date('d.m.Y'), $format_bold);
|
||||
$maxlength = array();
|
||||
|
||||
|
||||
//Ueberschrift
|
||||
$i=0;
|
||||
$worksheet->write(1,$i,"Vorname", $format_title);
|
||||
@@ -174,7 +174,7 @@ if(isset($_GET['output']) && $_GET['output']=='xls')
|
||||
$maxlength[$i]=strlen('Punkte insgesamt');
|
||||
$worksheet->write(1,++$i,"Unterschrift", $format_title);
|
||||
$maxlength[$i]=strlen('Unterschrift')+5;
|
||||
|
||||
|
||||
if(isset($_GET['gruppe']) && $_GET['gruppe']!='')
|
||||
{
|
||||
$gruppe = $_GET['gruppe'];
|
||||
@@ -188,49 +188,49 @@ if(isset($_GET['output']) && $_GET['output']=='xls')
|
||||
$gruppe_bez = 'Gruppe '.$row->gruppe_kurzbz;
|
||||
$qry_stud = "SELECT uid, vorname, nachname, matrikelnr FROM campus.vw_student JOIN public.tbl_benutzergruppe USING(uid) WHERE gruppe_kurzbz=".$db->db_add_param($row->gruppe_kurzbz)." AND studiensemester_kurzbz = ".$db->db_add_param($stsem)." ORDER BY nachname, vorname";
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$gruppe_bez = 'Gruppe '.$row->verband.$row->gruppe;
|
||||
$qry_stud = "SELECT uid, vorname, nachname, matrikelnr FROM campus.vw_student
|
||||
WHERE studiengang_kz=".$db->db_add_param($row->studiengang_kz)."
|
||||
$qry_stud = "SELECT uid, vorname, nachname, matrikelnr FROM campus.vw_student
|
||||
WHERE studiengang_kz=".$db->db_add_param($row->studiengang_kz)."
|
||||
AND semester=".$db->db_add_param($row->semester).
|
||||
($row->verband!=''?" AND verband=".$db->db_add_param($row->verband):'').
|
||||
($row->gruppe!=''?" AND gruppe=".$db->db_add_param($row->gruppe):'').
|
||||
" ORDER BY nachname, vorname";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
die('Gruppe konnte nicht ermittelt werden');
|
||||
}
|
||||
else
|
||||
else
|
||||
die('Gruppe konnte nicht ermittelt werden');
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
if(isset($_GET['lehreinheit_id']) && $_GET['lehreinheit_id']!='')
|
||||
{
|
||||
$lehreinheit_id = $_GET['lehreinheit_id'];
|
||||
$gruppe_bez = 'Alle Studienrende';
|
||||
//Alle Studenten die dieser Lehreinheit zugeordnet sind
|
||||
$qry_stud = "SELECT
|
||||
vw_student.uid, vorname, nachname, matrikelnr,
|
||||
tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe
|
||||
FROM
|
||||
campus.vw_student, public.tbl_benutzergruppe, lehre.tbl_lehreinheitgruppe,
|
||||
$qry_stud = "SELECT
|
||||
vw_student.uid, vorname, nachname, matrikelnr,
|
||||
tbl_studentlehrverband.semester, tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe
|
||||
FROM
|
||||
campus.vw_student, public.tbl_benutzergruppe, lehre.tbl_lehreinheitgruppe,
|
||||
public.tbl_studentlehrverband, lehre.tbl_lehreinheit
|
||||
WHERE
|
||||
tbl_lehreinheitgruppe.lehreinheit_id=".$db->db_add_param($lehreinheit_id)." AND
|
||||
WHERE
|
||||
tbl_lehreinheitgruppe.lehreinheit_id=".$db->db_add_param($lehreinheit_id)." AND
|
||||
tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitgruppe.lehreinheit_id AND
|
||||
vw_student.uid = tbl_benutzergruppe.uid AND
|
||||
tbl_benutzergruppe.gruppe_kurzbz = tbl_lehreinheitgruppe.gruppe_kurzbz AND
|
||||
vw_student.uid=tbl_studentlehrverband.student_uid AND
|
||||
tbl_studentlehrverband.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz
|
||||
UNION
|
||||
SELECT
|
||||
vw_student.uid, vorname, nachname, matrikelnr, tbl_studentlehrverband.semester,
|
||||
tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe
|
||||
FROM
|
||||
SELECT
|
||||
vw_student.uid, vorname, nachname, matrikelnr, tbl_studentlehrverband.semester,
|
||||
tbl_studentlehrverband.verband, tbl_studentlehrverband.gruppe
|
||||
FROM
|
||||
campus.vw_student, lehre.tbl_lehreinheitgruppe, public.tbl_studentlehrverband, lehre.tbl_lehreinheit
|
||||
WHERE
|
||||
tbl_lehreinheitgruppe.lehreinheit_id=".$db->db_add_param($lehreinheit_id)." AND
|
||||
@@ -239,29 +239,29 @@ if(isset($_GET['output']) && $_GET['output']=='xls')
|
||||
tbl_studentlehrverband.student_uid=vw_student.uid AND
|
||||
tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitgruppe.lehreinheit_id AND
|
||||
tbl_lehreinheit.studiensemester_kurzbz=tbl_studentlehrverband.studiensemester_kurzbz AND
|
||||
((tbl_lehreinheitgruppe.verband<>'' AND
|
||||
tbl_lehreinheitgruppe.gruppe<>'' AND
|
||||
((tbl_lehreinheitgruppe.verband<>'' AND
|
||||
tbl_lehreinheitgruppe.gruppe<>'' AND
|
||||
trim(tbl_lehreinheitgruppe.verband) = trim(tbl_studentlehrverband.verband) AND
|
||||
trim(tbl_lehreinheitgruppe.gruppe) = trim(tbl_studentlehrverband.gruppe))
|
||||
OR
|
||||
(tbl_lehreinheitgruppe.verband<>'' AND
|
||||
(tbl_lehreinheitgruppe.verband<>'' AND
|
||||
(trim(tbl_lehreinheitgruppe.gruppe)='' OR tbl_lehreinheitgruppe.gruppe is null) AND
|
||||
trim(tbl_lehreinheitgruppe.verband) = trim(tbl_studentlehrverband.verband))
|
||||
OR (tbl_lehreinheitgruppe.verband is null AND tbl_lehreinheitgruppe.gruppe is null)
|
||||
)
|
||||
ORDER BY nachname, vorname";
|
||||
}
|
||||
else
|
||||
else
|
||||
die('Fehler bei der Parameteruebergabe');
|
||||
$gruppe='';
|
||||
}
|
||||
|
||||
|
||||
if($result_stud = $db->db_query($qry_stud))
|
||||
{
|
||||
$zeile=3;
|
||||
|
||||
|
||||
while($row_stud = $db->db_fetch_object($result_stud))
|
||||
{
|
||||
{
|
||||
$spalte=0;
|
||||
$summe=0;
|
||||
//vorname
|
||||
@@ -275,15 +275,15 @@ if(isset($_GET['output']) && $_GET['output']=='xls')
|
||||
//matrikelnr
|
||||
$worksheet->write($zeile,++$spalte,'="'.$row_stud->matrikelnr.'"');
|
||||
if(strlen($row_stud->matrikelnr)>$maxlength[$spalte])
|
||||
$maxlength[$spalte]=strlen($row_stud->matrikelnr);
|
||||
$maxlength[$spalte]=strlen($row_stud->matrikelnr);
|
||||
//Gruppe
|
||||
$worksheet->write($zeile,++$spalte,$row_stud->semester.$row_stud->verband.$row_stud->gruppe);
|
||||
if(strlen($row_stud->semester.$row_stud->verband.$row_stud->gruppe)>$maxlength[$spalte])
|
||||
$maxlength[$spalte]=strlen($row_stud->semester.$row_stud->verband.$row_stud->gruppe);
|
||||
|
||||
|
||||
foreach($ueb_obj->uebungen as $row_ueb)
|
||||
{
|
||||
$qry = "SELECT sum(punkte) as punkte FROM campus.tbl_studentbeispiel JOIN campus.tbl_beispiel USING(beispiel_id)
|
||||
$qry = "SELECT sum(punkte) as punkte FROM campus.tbl_studentbeispiel JOIN campus.tbl_beispiel USING(beispiel_id)
|
||||
WHERE uebung_id=".$db->db_add_param($row_ueb->uebung_id)." AND student_uid=".$db->db_add_param($row_stud->uid)." AND vorbereitet=true";
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
@@ -292,67 +292,67 @@ if(isset($_GET['output']) && $_GET['output']=='xls')
|
||||
$punkte = $row->punkte;
|
||||
$summe +=$punkte;
|
||||
}
|
||||
else
|
||||
else
|
||||
$punkte = 'failed';
|
||||
}
|
||||
else
|
||||
else
|
||||
$punkte='failed';
|
||||
//punkte auf uebung
|
||||
$worksheet->write($zeile,++$spalte,($punkte!=''?$punkte:'0'));
|
||||
}
|
||||
|
||||
|
||||
//summe
|
||||
$worksheet->write($zeile,++$spalte,$summe);
|
||||
|
||||
|
||||
//mitarbeit
|
||||
$qry = "SELECT sum(mitarbeitspunkte) as mitarbeit FROM campus.tbl_studentuebung JOIN campus.tbl_uebung USING(uebung_id)
|
||||
$qry = "SELECT sum(mitarbeitspunkte) as mitarbeit FROM campus.tbl_studentuebung JOIN campus.tbl_uebung USING(uebung_id)
|
||||
WHERE lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER)." AND student_uid=".$db->db_add_param($row_stud->uid);
|
||||
if($result = $db->db_query($qry))
|
||||
if($row = $db->db_fetch_object($result))
|
||||
$mitarbeit=$row->mitarbeit;
|
||||
else
|
||||
$mitarbeit=$row->mitarbeit;
|
||||
else
|
||||
$mitarbeit='failed';
|
||||
else
|
||||
else
|
||||
$mitarbeit='failed';
|
||||
|
||||
|
||||
$worksheet->write($zeile,++$spalte,($row->mitarbeit!=''?$mitarbeit:'0'));
|
||||
//punkte insgesamt
|
||||
$worksheet->write($zeile,++$spalte,($summe+$mitarbeit), $format_bold);
|
||||
|
||||
$zeile++;
|
||||
|
||||
$zeile++;
|
||||
}
|
||||
for($i=0;$i<count($maxlength);$i++)
|
||||
{
|
||||
$worksheet->setColumn(0, $i, $maxlength[$i]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$workbook->close();
|
||||
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
//EXCEL VERSION / Einzelne Kreuzerlliste
|
||||
|
||||
|
||||
// Creating a workbook
|
||||
$workbook = new Spreadsheet_Excel_Writer();
|
||||
$workbook->setVersion(8);
|
||||
|
||||
|
||||
// sending HTTP headers
|
||||
$workbook->send("Kreuzerltool". "_" . date("d_m_Y") . ".xls");
|
||||
|
||||
|
||||
// Creating a worksheet
|
||||
$worksheet =& $workbook->addWorksheet("Kreuzerltool");
|
||||
$worksheet->setInputEncoding('utf-8');
|
||||
|
||||
|
||||
$format_bold =& $workbook->addFormat();
|
||||
$format_bold->setBold();
|
||||
|
||||
|
||||
$format_title =& $workbook->addFormat();
|
||||
$format_title->setBold();
|
||||
// let's merge
|
||||
$format_title->setAlign('merge');
|
||||
|
||||
|
||||
$worksheet->write(0,0,$uebung_obj->bezeichnung.' am '.date('d.m.Y').' '.$gruppen, $format_bold);
|
||||
$maxlength = array();
|
||||
//Ueberschrift
|
||||
@@ -382,7 +382,7 @@ if(isset($_GET['output']) && $_GET['output']=='xls')
|
||||
$maxlength[$i]=strlen('Mitarbeit insgesamt');
|
||||
$worksheet->write(1,++$i,"Unterschrift", $format_title);
|
||||
$maxlength[$i]=strlen('Unterschrift')+5;
|
||||
|
||||
|
||||
if(isset($_GET['gruppe']) && $_GET['gruppe']!='')
|
||||
{
|
||||
$gruppe = $_GET['gruppe'];
|
||||
@@ -394,60 +394,60 @@ if(isset($_GET['output']) && $_GET['output']=='xls')
|
||||
if($row->gruppe_kurzbz!='')
|
||||
{
|
||||
$gruppe_bez = 'Gruppe '.$row->gruppe_kurzbz;
|
||||
$qry_stud = "SELECT uid, vorname, nachname, matrikelnr, vw_student.semester, vw_student.verband, vw_student.gruppe
|
||||
FROM campus.vw_student JOIN public.tbl_benutzergruppe USING(uid)
|
||||
$qry_stud = "SELECT uid, vorname, nachname, matrikelnr, vw_student.semester, vw_student.verband, vw_student.gruppe
|
||||
FROM campus.vw_student JOIN public.tbl_benutzergruppe USING(uid)
|
||||
WHERE gruppe_kurzbz=".$db->db_add_param($row->gruppe_kurzbz)." AND studiensemester_kurzbz=".$db->db_add_param($stsem)." ORDER BY nachname, vorname";
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$gruppe_bez = 'Gruppe '.$row->verband.$row->gruppe;
|
||||
$qry_stud = "SELECT uid, vorname, nachname, matrikelnr, vw_student.semester, vw_student.verband, vw_student.gruppe FROM campus.vw_student
|
||||
WHERE studiengang_kz=".$db->db_add_param($row->studiengang_kz)."
|
||||
$qry_stud = "SELECT uid, vorname, nachname, matrikelnr, vw_student.semester, vw_student.verband, vw_student.gruppe FROM campus.vw_student
|
||||
WHERE studiengang_kz=".$db->db_add_param($row->studiengang_kz)."
|
||||
AND semester=".$db->db_add_param($row->semester).
|
||||
($row->verband!=''?" AND verband=".$db->db_add_param($row->verband):'').
|
||||
($row->gruppe!=''?" AND gruppe=".$db->db_add_param($row->gruppe):'').
|
||||
" ORDER BY nachname, vorname";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
die('Gruppe konnte nicht ermittelt werden');
|
||||
}
|
||||
else
|
||||
else
|
||||
die('Gruppe konnte nicht ermittelt werden');
|
||||
|
||||
|
||||
|
||||
|
||||
$lehreinheit_id = $uebung_obj->lehreinheit_id;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
if(isset($_GET['lehreinheit_id']) && $_GET['lehreinheit_id']!='')
|
||||
{
|
||||
$lehreinheit_id = $_GET['lehreinheit_id'];
|
||||
$gruppe_bez = 'Alle Studienrende';
|
||||
|
||||
$qry_stud = "SELECT uid, vorname, nachname, matrikelnr FROM campus.vw_student_lehrveranstaltung JOIN campus.vw_student using(uid)
|
||||
$qry_stud = "SELECT uid, vorname, nachname, matrikelnr FROM campus.vw_student_lehrveranstaltung JOIN campus.vw_student using(uid)
|
||||
WHERE studiensemester_kurzbz = ".$db->db_add_param($stsem)." AND lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER)." ORDER BY nachname, vorname";
|
||||
|
||||
|
||||
//Alle Studenten die dieser Lehreinheit zugeordnet sind
|
||||
/*
|
||||
$qry_stud = "SELECT vw_student.uid, vorname, nachname, matrikelnr, vw_student.semester, vw_student.verband, vw_student.gruppe
|
||||
FROM campus.vw_student, public.tbl_benutzergruppe, lehre.tbl_lehreinheitgruppe
|
||||
WHERE tbl_lehreinheitgruppe.lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER)." AND
|
||||
$qry_stud = "SELECT vw_student.uid, vorname, nachname, matrikelnr, vw_student.semester, vw_student.verband, vw_student.gruppe
|
||||
FROM campus.vw_student, public.tbl_benutzergruppe, lehre.tbl_lehreinheitgruppe
|
||||
WHERE tbl_lehreinheitgruppe.lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER)." AND
|
||||
vw_student.uid = tbl_benutzergruppe.uid AND
|
||||
tbl_benutzergruppe.gruppe_kurzbz = tbl_lehreinheitgruppe.gruppe_kurzbz
|
||||
UNION
|
||||
SELECT vw_student.uid, vorname, nachname, matrikelnr, vw_student.semester, vw_student.verband, vw_student.gruppe
|
||||
SELECT vw_student.uid, vorname, nachname, matrikelnr, vw_student.semester, vw_student.verband, vw_student.gruppe
|
||||
FROM campus.vw_student, lehre.tbl_lehreinheitgruppe WHERE
|
||||
tbl_lehreinheitgruppe.lehreinheit_id=".$db->db_add_param($lehreinheit_id)." AND
|
||||
tbl_lehreinheitgruppe.studiengang_kz=vw_student.studiengang_kz AND
|
||||
tbl_lehreinheitgruppe.semester = vw_student.semester AND
|
||||
((tbl_lehreinheitgruppe.verband<>'' AND
|
||||
tbl_lehreinheitgruppe.gruppe<>'' AND
|
||||
((tbl_lehreinheitgruppe.verband<>'' AND
|
||||
tbl_lehreinheitgruppe.gruppe<>'' AND
|
||||
trim(tbl_lehreinheitgruppe.verband) = trim(vw_student.verband) AND
|
||||
trim(tbl_lehreinheitgruppe.gruppe) = trim(vw_student.gruppe))
|
||||
OR
|
||||
(tbl_lehreinheitgruppe.verband<>'' AND
|
||||
(tbl_lehreinheitgruppe.verband<>'' AND
|
||||
(trim(tbl_lehreinheitgruppe.gruppe)='' OR tbl_lehreinheitgruppe.gruppe is null) AND
|
||||
trim(tbl_lehreinheitgruppe.verband) = trim(vw_student.verband))
|
||||
OR (tbl_lehreinheitgruppe.verband is null AND tbl_lehreinheitgruppe.gruppe is null)
|
||||
@@ -455,7 +455,7 @@ if(isset($_GET['output']) && $_GET['output']=='xls')
|
||||
ORDER BY nachname, vorname";
|
||||
*/
|
||||
}
|
||||
else
|
||||
else
|
||||
die('Fehler bei der Parameteruebergabe');
|
||||
$gruppe='';
|
||||
}
|
||||
@@ -463,9 +463,9 @@ if(isset($_GET['output']) && $_GET['output']=='xls')
|
||||
if($result_stud = $db->db_query($qry_stud))
|
||||
{
|
||||
$zeile=3;
|
||||
|
||||
|
||||
while($row_stud = $db->db_fetch_object($result_stud))
|
||||
{
|
||||
{
|
||||
$spalte=0;
|
||||
$punkte_heute=0;
|
||||
//vorname
|
||||
@@ -480,7 +480,7 @@ if(isset($_GET['output']) && $_GET['output']=='xls')
|
||||
$worksheet->write($zeile,++$spalte,'="'.$row_stud->matrikelnr.'"');
|
||||
if(strlen($row_stud->matrikelnr)>$maxlength[$spalte])
|
||||
$maxlength[$spalte]=strlen($row_stud->matrikelnr);
|
||||
|
||||
|
||||
//Gruppe
|
||||
/*
|
||||
$worksheet->write($zeile,++$spalte,$row_stud->semester.$row_stud->verband.$row_stud->gruppe);
|
||||
@@ -493,27 +493,27 @@ if(isset($_GET['output']) && $_GET['output']=='xls')
|
||||
$studentbeispiel_obj->load_studentbeispiel($row_stud->uid, $row_bsp->beispiel_id);
|
||||
if($studentbeispiel_obj->vorbereitet)
|
||||
$punkte = $row_bsp->punkte;
|
||||
else
|
||||
else
|
||||
$punkte = 0;
|
||||
$punkte_heute +=$punkte;
|
||||
//punkte auf uebung
|
||||
$worksheet->write($zeile,++$spalte,$punkte);
|
||||
}
|
||||
|
||||
|
||||
//punkte heute
|
||||
$worksheet->write($zeile,++$spalte,$punkte_heute);
|
||||
|
||||
|
||||
//mitarbeit heute
|
||||
$qry = "SELECT sum(mitarbeitspunkte) as mitarbeit_heute FROM campus.tbl_studentuebung
|
||||
$qry = "SELECT sum(mitarbeitspunkte) as mitarbeit_heute FROM campus.tbl_studentuebung
|
||||
WHERE uebung_id=".$db->db_add_param($uebung_id, FHC_INTEGER)." AND student_uid=".$db->db_add_param($row_stud->uid);
|
||||
if($result = $db->db_query($qry))
|
||||
if($row = $db->db_fetch_object($result))
|
||||
$worksheet->write($zeile,++$spalte,($row->mitarbeit_heute!=''?$row->mitarbeit_heute:'0'));
|
||||
else
|
||||
else
|
||||
$worksheet->write($zeile,++$spalte,'failed');
|
||||
else
|
||||
else
|
||||
$worksheet->write($zeile,++$spalte,'failed');
|
||||
|
||||
|
||||
//punkte insgesamt
|
||||
$qry = "SELECT sum(tbl_beispiel.punkte) AS gesamt_ohne_mitarbeit FROM campus.tbl_uebung, campus.tbl_beispiel, campus.tbl_studentbeispiel WHERE
|
||||
tbl_studentbeispiel.student_uid=".$db->db_add_param($row_stud->uid)." AND
|
||||
@@ -525,32 +525,32 @@ if(isset($_GET['output']) && $_GET['output']=='xls')
|
||||
if($result = $db->db_query($qry))
|
||||
if($row = $db->db_fetch_object($result))
|
||||
$worksheet->write($zeile,++$spalte,($row->gesamt_ohne_mitarbeit!=''?$row->gesamt_ohne_mitarbeit:'0'));
|
||||
else
|
||||
else
|
||||
$worksheet->write($zeile,++$spalte,'failed');
|
||||
else
|
||||
else
|
||||
$worksheet->write($zeile,++$spalte,'failed');
|
||||
|
||||
|
||||
//mitarbeit insgesamt
|
||||
$qry = "SELECT sum(mitarbeitspunkte) as mitarbeit_heute FROM campus.tbl_studentuebung JOIN campus.tbl_uebung USING(uebung_id)
|
||||
$qry = "SELECT sum(mitarbeitspunkte) as mitarbeit_heute FROM campus.tbl_studentuebung JOIN campus.tbl_uebung USING(uebung_id)
|
||||
WHERE student_uid=".$db->db_add_param($row_stud->uid)." AND lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER);
|
||||
if($result = $db->db_query($qry))
|
||||
if($row = $db->db_fetch_object($result))
|
||||
$worksheet->write($zeile,++$spalte,($row->mitarbeit_heute!=''?$row->mitarbeit_heute:'0'));
|
||||
else
|
||||
else
|
||||
$worksheet->write($zeile,++$spalte,'failed');
|
||||
else
|
||||
else
|
||||
$worksheet->write($zeile,++$spalte,'failed');
|
||||
|
||||
$zeile++;
|
||||
|
||||
$zeile++;
|
||||
}
|
||||
for($i=0;$i<count($maxlength);$i++)
|
||||
$worksheet->setColumn(0, $i, $maxlength[$i]);
|
||||
}
|
||||
|
||||
|
||||
$workbook->close();
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
//HTML VERSION
|
||||
?>
|
||||
@@ -561,7 +561,7 @@ else
|
||||
<link href="../../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<title>Kreuzerltool</title>
|
||||
<script language="Javascript">
|
||||
function addUser(student_uid)
|
||||
function addUser(student_uid)
|
||||
{
|
||||
var upd, upd_f;
|
||||
upd = document.forms[0].update_ids;
|
||||
@@ -577,10 +577,10 @@ function addUser(student_uid)
|
||||
<body>
|
||||
<?php
|
||||
if(isset($_POST['submit']))
|
||||
{
|
||||
{
|
||||
//Update der Daten
|
||||
$uids = split('#',$_POST['update_ids']);
|
||||
|
||||
$uids = explode('#',$_POST['update_ids']);
|
||||
|
||||
$uebung_obj = new uebung($uebung_id);
|
||||
$beispiel_obj = new beispiel();
|
||||
$beispiel_obj->load_beispiel($uebung_id);
|
||||
@@ -589,35 +589,35 @@ function addUser(student_uid)
|
||||
{
|
||||
if($uid!='')
|
||||
{
|
||||
if ($uebung_obj->beispiele)
|
||||
{
|
||||
if ($uebung_obj->beispiele)
|
||||
{
|
||||
foreach($beispiel_obj->beispiele as $bsp)
|
||||
{
|
||||
if(isset($_POST['update_'.$uid.'_'.$bsp->beispiel_id]))
|
||||
$vorbereitet=true;
|
||||
else
|
||||
else
|
||||
$vorbereitet=false;
|
||||
|
||||
|
||||
$bsp_obj = new beispiel();
|
||||
|
||||
|
||||
if(!$bsp_obj->studentbeispiel_exists($uid,$bsp->beispiel_id))
|
||||
{
|
||||
$new=true;
|
||||
$bsp_obj->insertamum = date('Y-m-d H:i:s');
|
||||
$bsp_obj->insertvon = $user;
|
||||
}
|
||||
else
|
||||
{
|
||||
else
|
||||
{
|
||||
$bsp_obj->load_studentbeispiel($uid, $bsp->beispiel_id);
|
||||
$new=false;
|
||||
}
|
||||
|
||||
|
||||
$bsp_obj->student_uid = $uid;
|
||||
$bsp_obj->beispiel_id = $bsp->beispiel_id;
|
||||
$bsp_obj->vorbereitet = $vorbereitet;
|
||||
$bsp_obj->updateamum = date('Y-m-d H:i:s');
|
||||
$bsp_obj->updatevon = $user;
|
||||
|
||||
|
||||
if(!$bsp_obj->studentbeispiel_save($new))
|
||||
$error=true;
|
||||
}
|
||||
@@ -638,39 +638,39 @@ function addUser(student_uid)
|
||||
$uebung_obj->updatevon = null;
|
||||
$uebung_obj->insertamum = date("Y-m-d H:i:s");
|
||||
$uebung_obj->insertvon = $user;
|
||||
$new = true;
|
||||
$new = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$uebung_obj->load_studentuebung($uid,$uebung_id);
|
||||
$uebung_obj->load_studentuebung($uid,$uebung_id);
|
||||
$uebung_obj->mitarbeiter_uid = $user;
|
||||
$uebung_obj->note = $_POST['update_'.$uid.'_note'];
|
||||
$uebung_obj->benotungsdatum = date("Y-m-d H:i:s");
|
||||
$uebung_obj->updateamum = date("Y-m-d H:i:s");
|
||||
$uebung_obj->updatevon = $user;
|
||||
$new = false;
|
||||
$new = false;
|
||||
}
|
||||
$uebung_obj->studentuebung_save($new);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!$error)
|
||||
echo "Die Änderungen wurden erfolgreich gespeichert";
|
||||
else
|
||||
else
|
||||
echo "<span class='error'>Fehler beim Speichern der Änderungen</span>";
|
||||
}
|
||||
|
||||
|
||||
$uebung_obj = new uebung($uebung_id);
|
||||
$lehreinheit_obj = new lehreinheit($uebung_obj->lehreinheit_id);
|
||||
|
||||
$beispiel_obj = new beispiel();
|
||||
|
||||
|
||||
$lehrveranstaltung_obj = new lehrveranstaltung($lehreinheit_obj->lehrveranstaltung_id);
|
||||
$stg_obj = new studiengang($lehrveranstaltung_obj->studiengang_kz);
|
||||
|
||||
|
||||
$beispiel_obj->load_beispiel($uebung_id);
|
||||
if ($uebung_obj->beispiele)
|
||||
if ($uebung_obj->beispiele)
|
||||
$anzahl = count($beispiel_obj->beispiele);
|
||||
else
|
||||
$anzahl = 1;
|
||||
@@ -685,42 +685,42 @@ function addUser(student_uid)
|
||||
if($row->gruppe_kurzbz!='')
|
||||
{
|
||||
$gruppe_bez = 'Gruppe '.$row->gruppe_kurzbz;
|
||||
$qry_stud = "SELECT uid, vorname, nachname FROM campus.vw_student JOIN public.tbl_benutzergruppe USING(uid)
|
||||
WHERE gruppe_kurzbz=".$db->db_add_param($row->gruppe_kurzbz)." AND studiensemester_kurzbz = ".$db->db_add_param($stsem)."
|
||||
$qry_stud = "SELECT uid, vorname, nachname FROM campus.vw_student JOIN public.tbl_benutzergruppe USING(uid)
|
||||
WHERE gruppe_kurzbz=".$db->db_add_param($row->gruppe_kurzbz)." AND studiensemester_kurzbz = ".$db->db_add_param($stsem)."
|
||||
ORDER BY nachname, vorname";
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$gruppe_bez = 'Gruppe '.$row->verband.$row->gruppe;
|
||||
$qry_stud = "SELECT uid, vorname, nachname FROM campus.vw_student
|
||||
$qry_stud = "SELECT uid, vorname, nachname FROM campus.vw_student
|
||||
WHERE studiengang_kz=".$db->db_add_param($row->studiengang_kz)."
|
||||
AND semester=".$db->db_add_param($row->semester).
|
||||
($row->verband!=''?" AND verband=".$db->db_add_param($row->verband):'').
|
||||
($row->gruppe!=''?" AND gruppe=".$db->db_add_param($row->gruppe):'').
|
||||
" ORDER BY nachname, vorname";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
die('Gruppe konnte nicht ermittelt werden');
|
||||
}
|
||||
else
|
||||
else
|
||||
die('Gruppe konnte nicht ermittelt werden');
|
||||
$lehreinheit_id = '';
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
if(isset($_GET['lehreinheit_id']) && $_GET['lehreinheit_id']!='')
|
||||
{
|
||||
$lehreinheit_id = $_GET['lehreinheit_id'];
|
||||
$gruppe_bez = 'Alle Studierende';
|
||||
//Alle Studenten die dieser lehreinheit zugeordnet sind
|
||||
// studentenquery
|
||||
$qry_stud = "SELECT uid, vorname, nachname, matrikelnr FROM campus.vw_student_lehrveranstaltung JOIN campus.vw_student using(uid)
|
||||
// studentenquery
|
||||
$qry_stud = "SELECT uid, vorname, nachname, matrikelnr FROM campus.vw_student_lehrveranstaltung JOIN campus.vw_student using(uid)
|
||||
WHERE studiensemester_kurzbz = ".$db->db_add_param($stsem)." AND lehreinheit_id=".$db->db_add_param($lehreinheit_id, FHC_INTEGER)." ORDER BY nachname, vorname";
|
||||
/*
|
||||
$qry_stud = "SELECT vw_student.uid, vorname, nachname FROM campus.vw_student, public.tbl_benutzergruppe, lehre.tbl_lehreinheitgruppe
|
||||
WHERE tbl_lehreinheitgruppe.lehreinheit_id='$lehreinheit_id' AND
|
||||
/*
|
||||
$qry_stud = "SELECT vw_student.uid, vorname, nachname FROM campus.vw_student, public.tbl_benutzergruppe, lehre.tbl_lehreinheitgruppe
|
||||
WHERE tbl_lehreinheitgruppe.lehreinheit_id='$lehreinheit_id' AND
|
||||
vw_student.uid = tbl_benutzergruppe.uid AND
|
||||
tbl_benutzergruppe.gruppe_kurzbz = tbl_lehreinheitgruppe.gruppe_kurzbz AND
|
||||
tbl_benutzergruppe.studiensemester_kurzbz = '$stsem'
|
||||
@@ -729,8 +729,8 @@ function addUser(student_uid)
|
||||
tbl_lehreinheitgruppe.lehreinheit_id='$lehreinheit_id' AND
|
||||
tbl_lehreinheitgruppe.studiengang_kz=vw_student.studiengang_kz AND
|
||||
tbl_lehreinheitgruppe.semester = vw_student.semester AND
|
||||
((tbl_lehreinheitgruppe.verband<>'' AND
|
||||
tbl_lehreinheitgruppe.gruppe<>'' AND
|
||||
((tbl_lehreinheitgruppe.verband<>'' AND
|
||||
tbl_lehreinheitgruppe.gruppe<>'' AND
|
||||
tbl_lehreinheitgruppe.verband is not null AND
|
||||
tbl_lehreinheitgruppe.gruppe is not null AND
|
||||
trim(tbl_lehreinheitgruppe.verband) = trim(vw_student.verband) AND
|
||||
@@ -744,11 +744,11 @@ function addUser(student_uid)
|
||||
ORDER BY nachname, vorname";
|
||||
*/
|
||||
}
|
||||
else
|
||||
else
|
||||
die('Fehler bei der Parameteruebergabe');
|
||||
$gruppe='';
|
||||
}
|
||||
|
||||
|
||||
echo "<form method='POST' action='anwesenheitsliste.php?output=html&uebung_id=$uebung_id&lehreinheit_id=$lehreinheit_id&gruppe=$gruppe&stsem=$stsem'>";
|
||||
echo "<input type='hidden' name='update_ids' value=''>";
|
||||
echo "<table border='1'>
|
||||
@@ -763,7 +763,7 @@ function addUser(student_uid)
|
||||
</table>
|
||||
</td>
|
||||
</tr>";
|
||||
|
||||
|
||||
echo "<tr><td align='center'><b>Name</b></td>";
|
||||
if (!$uebung_obj->beispiele)
|
||||
echo "<td>Note</td>";
|
||||
@@ -775,7 +775,7 @@ function addUser(student_uid)
|
||||
}
|
||||
}
|
||||
echo "<td align='center' width='200'><b>Unterschrift</b></td><td></td></tr>\n";
|
||||
|
||||
|
||||
if($result = $db->db_query($qry_stud))
|
||||
{
|
||||
while($row_stud = $db->db_fetch_object($result))
|
||||
@@ -784,14 +784,14 @@ function addUser(student_uid)
|
||||
$filename = '';
|
||||
$su_obj = new uebung($uebung_id);
|
||||
$su_obj->load_studentuebung($row_stud->uid, $uebung_id);
|
||||
if ($su_obj->abgabe_id)
|
||||
{
|
||||
if ($su_obj->abgabe_id)
|
||||
{
|
||||
$su_obj->load_abgabe($su_obj->abgabe_id);
|
||||
$filename = $su_obj->abgabedatei;
|
||||
}
|
||||
else
|
||||
$filename='';
|
||||
|
||||
|
||||
echo "<tr onMouseOver=\"this.style.backgroundColor='#c7dfe8'\" onMouseOut=\"this.style.backgroundColor='#ffffff'\">
|
||||
<td nowrap><input type='checkbox' name='update_$row_stud->uid' disabled> <b>$row_stud->nachname</b> $row_stud->vorname $row_stud->uid</td>";
|
||||
if (!$uebung_obj->beispiele)
|
||||
@@ -799,10 +799,10 @@ function addUser(student_uid)
|
||||
$studentuebung_obj = new uebung();
|
||||
$studentuebung_obj->load_studentuebung($row_stud->uid,$uebung_id);
|
||||
echo "<td align='center'><input type='text' name='update_".$row_stud->uid."_note' onchange=\"addUser('$row_stud->uid');\" value='".$studentuebung_obj->note."' size='3'></td>\n";
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
foreach($beispiel_obj->beispiele as $row_bsp)
|
||||
{
|
||||
$studentbeispiel_obj = new beispiel();
|
||||
@@ -812,7 +812,7 @@ function addUser(student_uid)
|
||||
}
|
||||
echo "<td> </td>";
|
||||
|
||||
if ($filename != "")
|
||||
if ($filename != "")
|
||||
echo "<td><a href='anwesenheitsliste.php?uid=$row_stud->uid&output=html&uebung_id=$uebung_id&lehreinheit_id=$lehreinheit_id&stsem=$stsem&download_abgabe=$filename'>Abgabe</a></td>\n";
|
||||
else if ($uebung_obj->abgabe)
|
||||
echo "<td><span style='color:red;'>Fehlt!</span></td>";
|
||||
@@ -821,7 +821,7 @@ function addUser(student_uid)
|
||||
echo "</tr>\n";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
echo '</table>';
|
||||
echo "<br><br><table width='100%'><tr><td align='right'><input type='submit' name='submit' value='Änderungen Speichern'></td></tr></table>";
|
||||
echo '</form>'
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -27,7 +27,6 @@ require_once('../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../include/studiensemester.class.php');
|
||||
require_once('../../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../../include/studiengang.class.php');
|
||||
require_once('../../../include/moodle.class.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
require_once('../../../include/lehre_tools.class.php');
|
||||
require_once('../../../include/lvangebot.class.php');
|
||||
|
||||
@@ -1,404 +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;
|
||||
|
||||
$lv = new lehrveranstaltung();
|
||||
$lv->load($lvid);
|
||||
|
||||
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<script language="Javascript">
|
||||
<!--
|
||||
function togglediv()
|
||||
{
|
||||
var block = "table-row";
|
||||
if (navigator.appName.indexOf("Microsoft") > -1)
|
||||
block = "block";
|
||||
|
||||
if(document.getElementById("radiole").checked)
|
||||
document.getElementById("lehreinheitencheckboxen").style.display = block;
|
||||
else
|
||||
document.getElementById("lehreinheitencheckboxen").style.display = "none";
|
||||
}
|
||||
-->
|
||||
</script>
|
||||
</head>
|
||||
<body onload="togglediv()">
|
||||
<h1>'.$db->convert_html_chars($lv->bezeichnung).' ('.$db->convert_html_chars($stsem).')</h1>
|
||||
<table width="100%">
|
||||
<tr>
|
||||
<td valign="top">';
|
||||
|
||||
if(isset($_POST['neu']))
|
||||
{
|
||||
if($_POST['bezeichnung']=='')
|
||||
{
|
||||
echo '<span class="error">'.$p->t('benotungstool/bezeichnungMussEingegebenWerden').'</span><br>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$lehrveranstaltung = new lehrveranstaltung();
|
||||
$lehrveranstaltung->load($lvid);
|
||||
$studiengang = new studiengang();
|
||||
$studiengang->load($lehrveranstaltung->studiengang_kz);
|
||||
|
||||
$orgform = ($lehrveranstaltung->orgform_kurzbz!=''?$lehrveranstaltung->orgform_kurzbz:$studiengang->orgform_kurzbz);
|
||||
|
||||
//Kurzbezeichnung generieren Format: STSEM-STG-SEM-LV/LEID/LEID/LEID...
|
||||
//$shortname = $stsem.'-'.$studiengang->kuerzel.'-'.$lehrveranstaltung->semester.'-'.$lehrveranstaltung->kurzbz;
|
||||
$shortname = $studiengang->kuerzel.'-'.$orgform.'-'.$lehrveranstaltung->semester.'-'.$stsem.'-'.$lehrveranstaltung->kurzbz;
|
||||
|
||||
//Gesamte LV zu einem Moodle Kurs zusammenlegen
|
||||
if($art=='lv')
|
||||
{
|
||||
$mdl_course = new moodle24_course();
|
||||
|
||||
$mdl_course->lehrveranstaltung_id = $lvid;
|
||||
$mdl_course->studiensemester_kurzbz = $stsem;
|
||||
$mdl_course->mdl_fullname = $_POST['bezeichnung'];
|
||||
$mdl_course->mdl_shortname = $shortname;
|
||||
$mdl_course->insertamum = date('Y-m-d H:i:s');
|
||||
$mdl_course->insertvon = $user;
|
||||
$mdl_course->gruppen = isset($_POST['gruppen']);
|
||||
|
||||
//Moodlekurs anlegen
|
||||
if($mdl_course->create_moodle())
|
||||
{
|
||||
//Eintrag in der Vilesci DB
|
||||
$mdl_course->create_vilesci();
|
||||
|
||||
$mdl_user = new moodle24_user();
|
||||
//Lektoren Synchronisieren
|
||||
if(!$mdl_user->sync_lektoren($mdl_course->mdl_course_id))
|
||||
echo $mdl_user->errormsg;
|
||||
|
||||
$mdl_user = new moodle24_user();
|
||||
//Studenten Synchronisieren
|
||||
if(!$mdl_user->sync_studenten($mdl_course->mdl_course_id))
|
||||
echo $mdl_user->errormsg;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $mdl_course->errormsg;
|
||||
}
|
||||
}
|
||||
elseif($art=='le') //Getrennte Kurse fuer die Lehreinheiten
|
||||
{
|
||||
$lehreinheiten=array();
|
||||
|
||||
foreach ($_POST as $key=>$value)
|
||||
{
|
||||
if(mb_strstr($key, 'lehreinheit_'))
|
||||
{
|
||||
$shortname.='/'.$value;
|
||||
$lehreinheiten[]=$value;
|
||||
}
|
||||
}
|
||||
|
||||
if(count($lehreinheiten)>0)
|
||||
{
|
||||
$mdl_course = new moodle24_course();
|
||||
|
||||
$mdl_course->mdl_fullname = $_POST['bezeichnung'];
|
||||
$mdl_course->mdl_shortname = $shortname;
|
||||
$mdl_course->studiensemester_kurzbz = $stsem;
|
||||
$mdl_course->insertamum = date('Y-m-d H:i:s');
|
||||
$mdl_course->insertvon = $user;
|
||||
$mdl_course->lehreinheit_id=$lehreinheiten[0];
|
||||
$mdl_course->gruppen = isset($_POST['gruppen']);
|
||||
|
||||
//Kurs im Moodle anlegen
|
||||
if($mdl_course->create_moodle())
|
||||
{
|
||||
//fuer jede Lehreinheit einen Eintrag in VilesciDB anlegen
|
||||
foreach ($lehreinheiten as $value)
|
||||
{
|
||||
$mdl_course->lehreinheit_id = $value;
|
||||
if(!$mdl_course->create_vilesci())
|
||||
echo '<br>'.$p->t('moodle/fehlerBeimAnlegenAufgetreten').':'.$mdl_course->errormsg;
|
||||
}
|
||||
|
||||
$mdl_user = new moodle24_user();
|
||||
//Lektoren Synchronisieren
|
||||
if(!$mdl_user->sync_lektoren($mdl_course->mdl_course_id))
|
||||
echo $mdl_user->errormsg;
|
||||
|
||||
$mdl_user = new moodle24_user();
|
||||
//Studenten Synchronisieren
|
||||
if(!$mdl_user->sync_studenten($mdl_course->mdl_course_id))
|
||||
echo $mdl_user->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">'.$p->t('moodle/esMussMindestensEineLehreinheitMarkiertSein').'</span><br>';
|
||||
}
|
||||
}
|
||||
else
|
||||
die($p->t('moodle/artIstUnbekannt'));
|
||||
}
|
||||
}
|
||||
//Gruppen Syncro ein/aus schalten
|
||||
if(isset($_POST['changegruppe']))
|
||||
{
|
||||
if(isset($_POST['moodle_id']) && is_numeric($_POST['moodle_id']))
|
||||
{
|
||||
$mcourse = new moodle24_course();
|
||||
if($mcourse->updateGruppenSync($_POST['moodle_id'], isset($_POST['gruppen'])))
|
||||
echo '<b>'.$p->t('moodle/datenWurdenAktualisiert').'</b><br>';
|
||||
else
|
||||
echo '<span class="error">'.$p->t('global/fehlerBeimAktualisierenDerDaten').'</span>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">'.$p->t('moodle/esWurdeKeineGueltigeIdUebergeben').'</span>';
|
||||
}
|
||||
}
|
||||
|
||||
//Anlegen eines Testkurses
|
||||
if(isset($_GET['action']) && $_GET['action']=='createtestkurs')
|
||||
{
|
||||
$mdl_course = new moodle24_course();
|
||||
if(!$mdl_course->loadTestkurs($lvid, $stsem))
|
||||
{
|
||||
$lehrveranstaltung = new lehrveranstaltung();
|
||||
$lehrveranstaltung->load($lvid);
|
||||
$studiengang = new studiengang();
|
||||
$studiengang->load($lehrveranstaltung->studiengang_kz);
|
||||
|
||||
//$orgform = ($lehrveranstaltung->orgform_kurzbz!=''?$lehrveranstaltung->orgform_kurzbz:$studiengang->orgform_kurzbz);
|
||||
|
||||
//Kurzbezeichnung generieren Format: STSEM-STG-SEM-LV/LEID/LEID/LEID...
|
||||
$shortname = mb_strtoupper('TK-'.$stsem.'-'.$studiengang->kuerzel.'-'.$lehrveranstaltung->semester.'-'.$lehrveranstaltung->kurzbz);
|
||||
|
||||
$mdl_course->lehrveranstaltung_id = $lvid;
|
||||
$mdl_course->studiensemester_kurzbz = $stsem;
|
||||
$mdl_course->mdl_fullname = 'Testkurs - '.$lehrveranstaltung->bezeichnung;
|
||||
$mdl_course->mdl_shortname = $shortname;
|
||||
|
||||
//TestKurs erstellen
|
||||
if($mdl_course->createTestkurs($lvid, $stsem))
|
||||
{
|
||||
$id=$mdl_course->mdl_course_id;
|
||||
$errormsg='';
|
||||
|
||||
$mdl_user = new moodle24_user();
|
||||
//Lektoren zuweisen
|
||||
if(!$mdl_user->sync_lektoren($id, $lvid, $stsem))
|
||||
$errormsg.=$p->t('moodle/fehlerBeiDerLektorenZuordnung').':'.$mdl_user->errormsg.'<br>';
|
||||
//Teststudenten zuweisen
|
||||
if(!$mdl_user->createTestStudentenZuordnung($id))
|
||||
$errormsg.=$p->t('moodle/fehlerBeiDerStudentenZuordnung').':'.$mdl_user->errormsg.'<br>';
|
||||
|
||||
if($errormsg!='')
|
||||
echo $errormsg;
|
||||
else
|
||||
echo '<b>'.$p->t('moodle/testkursWurdeErfolgreichAngelegt').'</b><br>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">'.$p->t('moodle/esExistiertBereitsEinTestkurs').'</span><br>';
|
||||
}
|
||||
}
|
||||
|
||||
$moodle = new moodle();
|
||||
if($moodle->course_exists_for_lv($lvid, $stsem) || $moodle->course_exists_for_allLE($lvid, $stsem))
|
||||
{
|
||||
echo $p->t('moodle/esIstBereitsEinMoodleKursVorhanden');
|
||||
}
|
||||
else
|
||||
{
|
||||
//wenn bereits ein Moodle Kurs fuer eine Lehreinheit angelegt wurde, dann dass
|
||||
//anlegen fuer die Lehrveranstaltung verhindern
|
||||
$qry = "SELECT 1 FROM lehre.tbl_moodle
|
||||
WHERE lehreinheit_id in(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit
|
||||
WHERE lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)."
|
||||
AND studiensemester_kurzbz=".$db->db_add_param($stsem).")";
|
||||
$disable_lv='';
|
||||
if($result = $db->db_query($qry))
|
||||
if($db->db_num_rows($result)>0)
|
||||
{
|
||||
$disable_lv='disabled="true"';
|
||||
//wenn schon ein Moodle Kurs zu einer Lehreinheit angelegt wurde,
|
||||
//dann ist standardmaessig die Lehreinheit markiert
|
||||
if($art=='lv')
|
||||
$art='le';
|
||||
}
|
||||
|
||||
echo '<b>'.$p->t('moodle/moodleKursAnlegen').': </b><br><br>
|
||||
<form action="'.$_SERVER['PHP_SELF'].'?lvid='.$lvid.'&stsem='.$stsem.'" method="POST">
|
||||
<input type="radio" '.$disable_lv.' name="art" value="lv" onclick="togglediv()" '.($art=='lv'?'checked':'').'>einen Moodle Kurs für die gesamte LV anlegen<br>
|
||||
<input type="radio" id="radiole" name="art" value="le" onclick="togglediv()" '.($art=='le'?'checked':'').'>einen Moodle Kurs für einzelne Lehreinheiten anlegen
|
||||
';
|
||||
|
||||
$le = new lehreinheit();
|
||||
$le->load_lehreinheiten($lv->lehrveranstaltung_id, $stsem);
|
||||
echo '<div id="lehreinheitencheckboxen" style="display:none">';
|
||||
foreach ($le->lehreinheiten as $row)
|
||||
{
|
||||
//Gruppen laden
|
||||
$gruppen = '';
|
||||
|
||||
$lehreinheitgruppe = new lehreinheitgruppe();
|
||||
$lehreinheitgruppe->getLehreinheitgruppe($row->lehreinheit_id);
|
||||
foreach ($lehreinheitgruppe->lehreinheitgruppe as $grp)
|
||||
{
|
||||
if($grp->gruppe_kurzbz=='')
|
||||
$gruppen.=' '.$grp->semester.$grp->verband.$grp->gruppe;
|
||||
else
|
||||
$gruppen.=' '.$grp->gruppe_kurzbz;
|
||||
}
|
||||
|
||||
//Lektoren laden
|
||||
$lektoren = '';
|
||||
$lehreinheitmitarbeiter = new lehreinheitmitarbeiter();
|
||||
$lehreinheitmitarbeiter->getLehreinheitmitarbeiter($row->lehreinheit_id);
|
||||
|
||||
foreach ($lehreinheitmitarbeiter->lehreinheitmitarbeiter as $ma)
|
||||
{
|
||||
$lektoren.= ' '.$ma->mitarbeiter_uid;
|
||||
}
|
||||
|
||||
if($moodle->course_exists_for_le($row->lehreinheit_id))
|
||||
$disabled='disabled';
|
||||
else
|
||||
$disabled='';
|
||||
echo '
|
||||
<input type="checkbox" name="lehreinheit_'.$row->lehreinheit_id.'" value="'.$row->lehreinheit_id.'" '.$disabled.'>'.$row->lehrform_kurzbz.' '.$gruppen.' '.$lektoren;
|
||||
echo '<br>';
|
||||
}
|
||||
echo '</div>';
|
||||
|
||||
$studiengang = new studiengang();
|
||||
$studiengang->load($lv->studiengang_kz);
|
||||
$orgform = ($lv->orgform_kurzbz!=''?$lv->orgform_kurzbz:$studiengang->orgform_kurzbz);
|
||||
$longbezeichnung = $studiengang->kuerzel.'-'.$orgform.'-'.$lv->semester.'-'.$stsem.' - '.$lv->bezeichnung;
|
||||
|
||||
echo '<br>'.$p->t('moodle/kursbezeichnung').': <input type="text" name="bezeichnung" maxlength="254" size="40" value="'.$db->convert_html_chars($longbezeichnung).'">';
|
||||
echo '<br>'.$p->t('moodle/gruppenUebernehmen').': <input type="checkbox" name="gruppen" checked>';
|
||||
echo '<br><br><input type="submit" name="neu" value="'.$p->t('moodle/kursAnlegen').'">
|
||||
</form>';
|
||||
}
|
||||
echo '</td>';
|
||||
|
||||
echo '<td valign="top">';
|
||||
echo '<b>'.$p->t('moodle/vorhandeneMoodleKurse').'</b>';
|
||||
if(!$moodle->getAll($lvid, $stsem))
|
||||
echo $moodle->errormsg;
|
||||
echo '<table>';
|
||||
foreach ($moodle->result as $course)
|
||||
{
|
||||
|
||||
switch($course->moodle_version)
|
||||
{
|
||||
case '2.4':
|
||||
$mdlcourse = new moodle24_course();
|
||||
$mdlcourse->load($course->mdl_course_id);
|
||||
echo '<tr>';
|
||||
echo '<td><a href="'.$moodle->getPfad($course->moodle_version).'course/view.php?id='.$course->mdl_course_id.'" class="Item" target="_blank">'.$mdlcourse->mdl_fullname.'</a></td>';
|
||||
// echo "<td nowrap><form action='".$_SERVER['PHP_SELF']."?lvid=$lvid&stsem=$stsem' method='POST' style='margin:0px'><input type='hidden' name='moodle_id' value='$course->moodle_id'><input type='checkbox' name='gruppen' ".($course->gruppen?'checked':'').">Gruppen übernehmen <input type='submit' value='".$p->t('global/ok')."' name='changegruppe'></form></td>";
|
||||
break;
|
||||
case '1.9':
|
||||
$moodlecourse = new moodle19_course();
|
||||
$moodlecourse->load($course->mdl_course_id);
|
||||
echo '<tr>';
|
||||
echo '<td><a href="'.$moodle->getPfad($course->moodle_version).'course/view.php?id='.$course->mdl_course_id.'" class="Item" target="_blank">'.$moodlecourse->mdl_fullname.'</a> (v1.9)</td>';
|
||||
// echo "<td nowrap><form action='".$_SERVER['PHP_SELF']."?lvid=$lvid&stsem=$stsem' method='POST' style='margin:0px'><input type='hidden' name='moodle_id' value='$course->moodle_id'><input type='checkbox' name='gruppen' ".($course->gruppen?'checked':'').">Gruppen übernehmen <input type='submit' value='".$p->t('global/ok')."' name='changegruppe'></form></td>";
|
||||
echo '</tr>';
|
||||
break;
|
||||
default:
|
||||
echo '<tr><td>Moodle v'.$course->moodle_version.' - '.$course->mdl_course_id.'</td></tr>';
|
||||
break;
|
||||
}
|
||||
}
|
||||
echo '</table>';
|
||||
echo '</td></tr></table>';
|
||||
|
||||
echo '<br><br><br>';
|
||||
echo '<b>'.$p->t('moodle/testkurse').'</b><br><br>';
|
||||
$mdlcourse = new moodle24_course();
|
||||
if($mdlcourse->loadTestkurs($lvid, $stsem))
|
||||
{
|
||||
echo '<a href="'.$moodle->getPfad('2.4').'course/view.php?id='.$mdlcourse->mdl_course_id.'" class="Item" target="_blank">'.$db->convert_html_chars($mdlcourse->mdl_fullname).'</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<a href='".$_SERVER['PHP_SELF']."?lvid=$lvid&stsem=$stsem&action=createtestkurs' class='Item'>".$p->t('moodle/klickenSieHierUmTestkursErstellen')."</a>";
|
||||
}
|
||||
echo '
|
||||
</body>
|
||||
</html>';
|
||||
?>
|
||||
@@ -1,127 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
*/
|
||||
require_once('../../../config/cis.config.inc.php');
|
||||
require_once('../../../include/basis_db.class.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/moodle.class.php');
|
||||
require_once('../../../include/moodle19_course.class.php');
|
||||
require_once('../../../include/moodle24_course.class.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
require_once('../../../include/lehreinheit.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Herstellen der Datenbankverbindung');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
$p = new phrasen(getSprache());
|
||||
|
||||
if(isset($_GET['lvid']))
|
||||
$lvid=$_GET['lvid'];
|
||||
else
|
||||
die('lvid muss uebergeben werden');
|
||||
|
||||
if(isset($_GET['stsem']))
|
||||
$stsem = $_GET['stsem'];
|
||||
else
|
||||
die('Es wurde kein Studiensemester uebergeben');
|
||||
|
||||
echo '<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
</head>
|
||||
<body>
|
||||
<h1>'.$p->t('moodle/kursUebersicht').'</h1>
|
||||
';
|
||||
|
||||
$moodle = new moodle();
|
||||
$moodle->getAll($lvid, $stsem);
|
||||
|
||||
$meinekurse = '';
|
||||
$allgemeinekurse = '';
|
||||
|
||||
foreach ($moodle->result as $row)
|
||||
{
|
||||
$kurs = '';
|
||||
switch($row->moodle_version)
|
||||
{
|
||||
case '1.9':
|
||||
$mdlcourse19=new moodle19_course();
|
||||
$mdlcourse19->load($row->mdl_course_id);
|
||||
$bezeichnung = $mdlcourse19->mdl_fullname;
|
||||
if($bezeichnung=='')
|
||||
$bezeichnung = 'Course '.$row->mdl_course_id;
|
||||
$kurs = "<a href='".$moodle->getPfad($row->moodle_version)."course/view.php?id=".$row->mdl_course_id."' class='Item'>$bezeichnung</a><br>";
|
||||
break;
|
||||
|
||||
case '2.4':
|
||||
$mdlcourse24=new moodle24_course();
|
||||
$mdlcourse24->load($row->mdl_course_id);
|
||||
$bezeichnung = $mdlcourse24->mdl_fullname;
|
||||
if($bezeichnung=='')
|
||||
$bezeichnung = 'Course '.$row->mdl_course_id;
|
||||
$kurs = "<a href='".$moodle->getPfad($row->moodle_version)."course/view.php?id=".$row->mdl_course_id."' class='Item'>$bezeichnung</a><br>";
|
||||
break;
|
||||
|
||||
default:
|
||||
$kurs = $p->t('moodle/ungueltigeVersion',array($row->moodle_version)).'<br>';
|
||||
break;
|
||||
}
|
||||
if($row->lehreinheit_id!='')
|
||||
{
|
||||
$le = new lehreinheit();
|
||||
$stud = $le->getStudenten($row->lehreinheit_id);
|
||||
$zugeordnet = false;
|
||||
|
||||
foreach($stud as $row_stud)
|
||||
{
|
||||
if($row_stud->uid == $user)
|
||||
{
|
||||
$zugeordnet = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if($zugeordnet)
|
||||
{
|
||||
$meinekurse .= $kurs;
|
||||
}
|
||||
}
|
||||
$allgemeinekurse .= $kurs;
|
||||
}
|
||||
|
||||
if($meinekurse!='')
|
||||
{
|
||||
echo '<h2>'.$p->t('moodle/meineKurse').'</h2>';
|
||||
echo $meinekurse;
|
||||
}
|
||||
|
||||
echo '<br><br><h2>'.$p->t('moodle/vorhandeneKurse').'</h2>';
|
||||
|
||||
echo $allgemeinekurse;
|
||||
|
||||
echo '</body>
|
||||
</html>';
|
||||
?>
|
||||
@@ -1,473 +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;
|
||||
|
||||
$lv = new lehrveranstaltung();
|
||||
$lv->load($lvid);
|
||||
|
||||
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
<script language="Javascript">
|
||||
<!--
|
||||
function togglediv()
|
||||
{
|
||||
var block = "table-row";
|
||||
if (navigator.appName.indexOf("Microsoft") > -1)
|
||||
block = "block";
|
||||
|
||||
if(document.getElementById("radiole").checked)
|
||||
document.getElementById("lehreinheitencheckboxen").style.display = block;
|
||||
else
|
||||
document.getElementById("lehreinheitencheckboxen").style.display = "none";
|
||||
}
|
||||
-->
|
||||
</script>
|
||||
</head>
|
||||
<body onload="togglediv()">
|
||||
<h1>'.$lv->bezeichnung.' ('.$stsem.')</h1>
|
||||
<table width="100%" >
|
||||
<tr>
|
||||
<td valign="top">';
|
||||
|
||||
if(isset($_POST['neu']))
|
||||
{
|
||||
if($_POST['bezeichnung']=='')
|
||||
{
|
||||
echo '<span class="error">'.$p->t('benotungstool/bezeichnungMussEingegebenWerden').'</span><br>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$lehrveranstaltung = new lehrveranstaltung();
|
||||
$lehrveranstaltung->load($lvid);
|
||||
$studiengang = new studiengang();
|
||||
$studiengang->load($lehrveranstaltung->studiengang_kz);
|
||||
|
||||
$orgform = ($lehrveranstaltung->orgform_kurzbz!=''?$lehrveranstaltung->orgform_kurzbz:$studiengang->orgform_kurzbz);
|
||||
|
||||
//Kurzbezeichnung generieren Format: STSEM-STG-SEM-LV/LEID/LEID/LEID...
|
||||
//$shortname = $stsem.'-'.$studiengang->kuerzel.'-'.$lehrveranstaltung->semester.'-'.$lehrveranstaltung->kurzbz;
|
||||
$shortname = $studiengang->kuerzel.'-'.$orgform.'-'.$lehrveranstaltung->semester.'-'.$stsem.'-'.$lehrveranstaltung->kurzbz;
|
||||
|
||||
//Gesamte LV zu einem Moodle Kurs zusammenlegen
|
||||
if($art=='lv')
|
||||
{
|
||||
$mdl_course = new moodle19_course();
|
||||
|
||||
$mdl_course->lehrveranstaltung_id = $lvid;
|
||||
$mdl_course->studiensemester_kurzbz = $stsem;
|
||||
$mdl_course->mdl_fullname = $_POST['bezeichnung'];
|
||||
$mdl_course->mdl_shortname = $shortname;
|
||||
$mdl_course->insertamum = date('Y-m-d H:i:s');
|
||||
$mdl_course->insertvon = $user;
|
||||
$mdl_course->gruppen = isset($_POST['gruppen']);
|
||||
|
||||
//Moodlekurs anlegen
|
||||
if($mdl_course->create_moodle())
|
||||
{
|
||||
//Eintrag in der Vilesci DB
|
||||
$mdl_course->create_vilesci();
|
||||
|
||||
$mdl_user = new moodle19_user();
|
||||
//Lektoren Synchronisieren
|
||||
if(!$mdl_user->sync_lektoren($mdl_course->mdl_course_id))
|
||||
echo $mdl_user->errormsg;
|
||||
|
||||
$mdl_user = new moodle19_user();
|
||||
//Studenten Synchronisieren
|
||||
if(!$mdl_user->sync_studenten($mdl_course->mdl_course_id))
|
||||
echo $mdl_user->errormsg;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $mdl_course->errormsg;
|
||||
}
|
||||
}
|
||||
elseif($art=='le') //Getrennte Kurse fuer die Lehreinheiten
|
||||
{
|
||||
$lehreinheiten=array();
|
||||
|
||||
foreach ($_POST as $key=>$value)
|
||||
{
|
||||
if(mb_strstr($key, 'lehreinheit_'))
|
||||
{
|
||||
$shortname.='/'.$value;
|
||||
$lehreinheiten[]=$value;
|
||||
}
|
||||
}
|
||||
|
||||
if(count($lehreinheiten)>0)
|
||||
{
|
||||
$mdl_course = new moodle19_course();
|
||||
|
||||
$mdl_course->mdl_fullname = $_POST['bezeichnung'];
|
||||
$mdl_course->mdl_shortname = $shortname;
|
||||
$mdl_course->studiensemester_kurzbz = $stsem;
|
||||
$mdl_course->insertamum = date('Y-m-d H:i:s');
|
||||
$mdl_course->insertvon = $user;
|
||||
$mdl_course->lehreinheit_id=$lehreinheiten[0];
|
||||
$mdl_course->gruppen = isset($_POST['gruppen']);
|
||||
|
||||
//Kurs im Moodle anlegen
|
||||
if($mdl_course->create_moodle())
|
||||
{
|
||||
//fuer jede Lehreinheit einen Eintrag in VilesciDB anlegen
|
||||
foreach ($lehreinheiten as $value)
|
||||
{
|
||||
$mdl_course->lehreinheit_id = $value;
|
||||
if(!$mdl_course->create_vilesci())
|
||||
echo '<br>'.$p->t('moodle/fehlerBeimAnlegenAufgetreten').':'.$mdl_course->errormsg;
|
||||
}
|
||||
|
||||
$mdl_user = new moodle19_user();
|
||||
//Lektoren Synchronisieren
|
||||
if(!$mdl_user->sync_lektoren($mdl_course->mdl_course_id))
|
||||
echo $mdl_user->errormsg;
|
||||
|
||||
$mdl_user = new moodle19_user();
|
||||
//Studenten Synchronisieren
|
||||
if(!$mdl_user->sync_studenten($mdl_course->mdl_course_id))
|
||||
echo $mdl_user->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">'.$p->t('moodle/esMussMindestensEineLehreinheitMarkiertSein').'</span><br>';
|
||||
}
|
||||
}
|
||||
else
|
||||
die($p->t('moodle/artIstUnbekannt'));
|
||||
}
|
||||
}
|
||||
//Gruppen Syncro ein/aus schalten
|
||||
if(isset($_POST['changegruppe']))
|
||||
{
|
||||
if(isset($_POST['moodle_id']) && is_numeric($_POST['moodle_id']))
|
||||
{
|
||||
$mcourse = new moodle19_course();
|
||||
if($mcourse->updateGruppenSync($_POST['moodle_id'], isset($_POST['gruppen'])))
|
||||
echo '<b>'.$p->t('moodle/datenWurdenAktualisiert').'</b><br>';
|
||||
else
|
||||
echo '<span class="error">'.$p->t('global/fehlerBeimAktualisierenDerDaten').'</span>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">'.$p->t('moodle/esWurdeKeineGueltigeIdUebergeben').'</span>';
|
||||
}
|
||||
}
|
||||
|
||||
//Anlegen eines Testkurses
|
||||
if(isset($_GET['action']) && $_GET['action']=='createtestkurs')
|
||||
{
|
||||
$mdl_course = new moodle19_course();
|
||||
if(!$mdl_course->loadTestkurs($lvid, $stsem))
|
||||
{
|
||||
$lehrveranstaltung = new lehrveranstaltung();
|
||||
$lehrveranstaltung->load($lvid);
|
||||
$studiengang = new studiengang();
|
||||
$studiengang->load($lehrveranstaltung->studiengang_kz);
|
||||
|
||||
//$orgform = ($lehrveranstaltung->orgform_kurzbz!=''?$lehrveranstaltung->orgform_kurzbz:$studiengang->orgform_kurzbz);
|
||||
|
||||
//Kurzbezeichnung generieren Format: STSEM-STG-SEM-LV/LEID/LEID/LEID...
|
||||
$shortname = 'TK-'.$stsem.'-'.$studiengang->kuerzel.'-'.$lehrveranstaltung->semester.'-'.$lehrveranstaltung->kurzbz;
|
||||
|
||||
$mdl_course->lehrveranstaltung_id = $lvid;
|
||||
$mdl_course->studiensemester_kurzbz = $stsem;
|
||||
$mdl_course->mdl_fullname = 'Testkurs - '.$lehrveranstaltung->bezeichnung;
|
||||
$mdl_course->mdl_shortname = $shortname;
|
||||
|
||||
//TestKurs erstellen
|
||||
if($mdl_course->createTestkurs($lvid, $stsem))
|
||||
{
|
||||
$id=$mdl_course->mdl_course_id;
|
||||
$errormsg='';
|
||||
|
||||
$mdl_user = new moodle19_user();
|
||||
//Lektoren zuweisen
|
||||
if(!$mdl_user->sync_lektoren($id, $lvid, $stsem))
|
||||
$errormsg.=$p->t('moodle/fehlerBeiDerLektorenZuordnung').':'.$mdl_user->errormsg.'<br>';
|
||||
//Teststudenten zuweisen
|
||||
if(!$mdl_user->createTestStudentenZuordnung($id))
|
||||
$errormsg.=$p->t('moodle/fehlerBeiDerStudentenZuordnung').':'.$mdl_user->errormsg.'<br>';
|
||||
|
||||
if($errormsg!='')
|
||||
echo $errormsg;
|
||||
else
|
||||
echo '<b>'.$p->t('moodle/testkursWurdeErfolgreichAngelegt').'</b><br>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">'.$p->t('moodle/esExistiertBereitsEinTestkurs').'</span><br>';
|
||||
}
|
||||
}
|
||||
|
||||
//Anlegen eines Testkurses fuer Moodle 24
|
||||
if(isset($_GET['action']) && $_GET['action']=='createtestkurs24')
|
||||
{
|
||||
$mdl_course24 = new moodle24_course();
|
||||
if(!$mdl_course24->loadTestkurs($lvid, $stsem))
|
||||
{
|
||||
$lehrveranstaltung = new lehrveranstaltung();
|
||||
$lehrveranstaltung->load($lvid);
|
||||
$studiengang = new studiengang();
|
||||
$studiengang->load($lehrveranstaltung->studiengang_kz);
|
||||
|
||||
//$orgform = ($lehrveranstaltung->orgform_kurzbz!=''?$lehrveranstaltung->orgform_kurzbz:$studiengang->orgform_kurzbz);
|
||||
|
||||
//Kurzbezeichnung generieren Format: STSEM-STG-SEM-LV/LEID/LEID/LEID...
|
||||
$shortname = 'TK-'.$stsem.'-'.$studiengang->kuerzel.'-'.$lehrveranstaltung->semester.'-'.$lehrveranstaltung->kurzbz;
|
||||
|
||||
$mdl_course24->lehrveranstaltung_id = $lvid;
|
||||
$mdl_course24->studiensemester_kurzbz = $stsem;
|
||||
$mdl_course24->mdl_fullname = 'Testkurs - '.$lehrveranstaltung->bezeichnung;
|
||||
$mdl_course24->mdl_shortname = $shortname;
|
||||
|
||||
//TestKurs erstellen
|
||||
if($mdl_course24->createTestkurs($lvid, $stsem))
|
||||
{
|
||||
$id=$mdl_course24->mdl_course_id;
|
||||
$errormsg='';
|
||||
|
||||
$mdl_user24 = new moodle24_user();
|
||||
//Lektoren zuweisen
|
||||
if(!$mdl_user24->sync_lektoren($id, $lvid, $stsem))
|
||||
$errormsg.=$p->t('moodle/fehlerBeiDerLektorenZuordnung').':'.$mdl_user24->errormsg.'<br>';
|
||||
//Teststudenten zuweisen
|
||||
if(!$mdl_user24->createTestStudentenZuordnung($id))
|
||||
$errormsg.=$p->t('moodle/fehlerBeiDerStudentenZuordnung').':'.$mdl_user24->errormsg.'<br>';
|
||||
|
||||
if($errormsg!='')
|
||||
echo $errormsg;
|
||||
else
|
||||
echo '<b>'.$p->t('moodle/testkursWurdeErfolgreichAngelegt').'</b><br>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo '<span class="error">'.$p->t('moodle/esExistiertBereitsEinTestkurs').'</span><br>';
|
||||
}
|
||||
}
|
||||
|
||||
$moodle = new moodle();
|
||||
|
||||
// Pruefen ob bereits fuer alle Lehreinheiten oder fuer die gesamte LV ein Moodle Kurs angelegt ist
|
||||
if($moodle->course_exists_for_lv($lvid, $stsem) || $moodle->course_exists_for_allLE($lvid, $stsem))
|
||||
{
|
||||
echo $p->t('moodle/esIstBereitsEinMoodleKursVorhanden');
|
||||
}
|
||||
else
|
||||
{
|
||||
//wenn bereits ein Moodle Kurs fuer eine Lehreinheit angelegt wurde, dann dass
|
||||
//anlegen fuer die Lehrveranstaltung verhindern
|
||||
$qry = "SELECT 1 FROM lehre.tbl_moodle
|
||||
WHERE lehreinheit_id in(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit
|
||||
WHERE lehrveranstaltung_id=".$db->db_add_param($lvid)."
|
||||
AND studiensemester_kurzbz=".$db->db_add_param($stsem).")";
|
||||
$disable_lv='';
|
||||
if($result = $db->db_query($qry))
|
||||
if($db->db_num_rows($result)>0)
|
||||
{
|
||||
$disable_lv='disabled="true"';
|
||||
//wenn schon ein Moodle Kurs zu einer Lehreinheit angelegt wurde,
|
||||
//dann ist standardmaessig die Lehreinheit markiert
|
||||
if($art=='lv')
|
||||
$art='le';
|
||||
}
|
||||
|
||||
echo '<b>'.$p->t('moodle/moodleKursAnlegen').': </b><br><br>
|
||||
<form action="'.$_SERVER['PHP_SELF'].'?lvid='.$lvid.'&stsem='.$stsem.'" method="POST">
|
||||
<input type="radio" '.$disable_lv.' name="art" value="lv" onclick="togglediv()" '.($art=='lv'?'checked':'').'>einen Moodle Kurs für die gesamte LV anlegen<br>
|
||||
<input type="radio" id="radiole" name="art" value="le" onclick="togglediv()" '.($art=='le'?'checked':'').'>einen Moodle Kurs für einzelne Lehreinheiten anlegen
|
||||
';
|
||||
|
||||
$le = new lehreinheit();
|
||||
$le->load_lehreinheiten($lv->lehrveranstaltung_id, $stsem);
|
||||
echo '<div id="lehreinheitencheckboxen" style="display:none">';
|
||||
foreach ($le->lehreinheiten as $row)
|
||||
{
|
||||
//Gruppen laden
|
||||
$gruppen = '';
|
||||
|
||||
$lehreinheitgruppe = new lehreinheitgruppe();
|
||||
$lehreinheitgruppe->getLehreinheitgruppe($row->lehreinheit_id);
|
||||
foreach ($lehreinheitgruppe->lehreinheitgruppe as $grp)
|
||||
{
|
||||
if($grp->gruppe_kurzbz=='')
|
||||
$gruppen.=' '.$grp->semester.$grp->verband.$grp->gruppe;
|
||||
else
|
||||
$gruppen.=' '.$grp->gruppe_kurzbz;
|
||||
}
|
||||
|
||||
//Lektoren laden
|
||||
$lektoren = '';
|
||||
$lehreinheitmitarbeiter = new lehreinheitmitarbeiter();
|
||||
$lehreinheitmitarbeiter->getLehreinheitmitarbeiter($row->lehreinheit_id);
|
||||
|
||||
foreach ($lehreinheitmitarbeiter->lehreinheitmitarbeiter as $ma)
|
||||
{
|
||||
$lektoren.= ' '.$ma->mitarbeiter_uid;
|
||||
}
|
||||
|
||||
if($moodle->course_exists_for_le($row->lehreinheit_id))
|
||||
$disabled='disabled';
|
||||
else
|
||||
$disabled='';
|
||||
echo '
|
||||
<input type="checkbox" name="lehreinheit_'.$row->lehreinheit_id.'" value="'.$row->lehreinheit_id.'" '.$disabled.'>'.$row->lehrform_kurzbz.' '.$gruppen.' '.$lektoren;
|
||||
echo '<br>';
|
||||
}
|
||||
echo '</div>';
|
||||
|
||||
$studiengang = new studiengang();
|
||||
$studiengang->load($lv->studiengang_kz);
|
||||
$orgform = ($lv->orgform_kurzbz!=''?$lv->orgform_kurzbz:$studiengang->orgform_kurzbz);
|
||||
$longbezeichnung = $studiengang->kuerzel.'-'.$orgform.'-'.$lv->semester.'-'.$stsem.' - '.$lv->bezeichnung;
|
||||
|
||||
echo '<br>'.$p->t('moodle/kursbezeichnung').': <input type="text" name="bezeichnung" maxlength="254" size="40" value="'.$longbezeichnung.'">';
|
||||
echo '<br>'.$p->t('moodle/gruppenUebernehmen').': <input type="checkbox" name="gruppen" checked>';
|
||||
echo '<br><br><input type="submit" name="neu" value="'.$p->t('moodle/kursAnlegen').'">
|
||||
</form>';
|
||||
}
|
||||
echo '</td>';
|
||||
|
||||
echo '<td valign="top">';
|
||||
echo '<b>'.$p->t('moodle/vorhandeneMoodleKurse').'</b>';
|
||||
if(!$moodle->getAll($lvid, $stsem))
|
||||
echo $moodle->errormsg;
|
||||
echo '<table>';
|
||||
foreach ($moodle->result as $course)
|
||||
{
|
||||
switch($course->moodle_version)
|
||||
{
|
||||
case '1.9':
|
||||
$moodlecourse = new moodle19_course();
|
||||
$moodlecourse->load($course->mdl_course_id);
|
||||
echo '<tr>';
|
||||
echo '<td><a href="'.$moodle->getPfad($course->moodle_version).'course/view.php?id='.$course->mdl_course_id.'" class="Item" target="_blank">'.$moodlecourse->mdl_fullname.'</a></td>';
|
||||
// echo "<td nowrap><form action='".$_SERVER['PHP_SELF']."?lvid=$lvid&stsem=$stsem' method='POST' style='margin:0px'><input type='hidden' name='moodle_id' value='$course->moodle_id'><input type='checkbox' name='gruppen' ".($course->gruppen?'checked':'').">Gruppen übernehmen <input type='submit' value='".$p->t('global/ok')."' name='changegruppe'></form></td>";
|
||||
echo '</tr>';
|
||||
break;
|
||||
|
||||
case '2.4':
|
||||
$moodlecourse = new moodle24_course();
|
||||
$moodlecourse->load($course->mdl_course_id);
|
||||
echo '<tr>';
|
||||
echo '<td><a href="'.$moodle->getPfad($course->moodle_version).'course/view.php?id='.$course->mdl_course_id.'" class="Item" target="_blank">'.$moodlecourse->mdl_fullname.'</a> (v2.4)</td>';
|
||||
echo '</tr>';
|
||||
break;
|
||||
|
||||
default:
|
||||
// andere Moodle Version
|
||||
echo '<tr><td>Unknown Moodle Version - ID '.$course->mdl_course_id.'</td></tr>';
|
||||
}
|
||||
}
|
||||
echo '</table>';
|
||||
echo '</td></tr></table>';
|
||||
|
||||
echo '<br><br><br>';
|
||||
echo '<b>'.$p->t('moodle/testkurse').'</b><br><br>';
|
||||
$mdlcourse = new moodle19_course();
|
||||
if($mdlcourse->loadTestkurs($lvid, $stsem))
|
||||
{
|
||||
echo '<a href="'.$moodle->getPfad('1.9').'course/view.php?id='.$mdlcourse->mdl_course_id.'" class="Item" target="_blank">'.$mdlcourse->mdl_fullname.'</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<a href='".$_SERVER['PHP_SELF']."?lvid=$lvid&stsem=$stsem&action=createtestkurs' class='Item'>".$p->t('moodle/klickenSieHierUmTestkursErstellen')."</a>";
|
||||
}
|
||||
|
||||
echo '<br><br><hr><b>'.$p->t('moodle/testkurse24').'</b><br><br>';
|
||||
$mdlcourse24 = new moodle24_course();
|
||||
if($mdlcourse24->loadTestkurs($lvid, $stsem))
|
||||
{
|
||||
echo '<a href="'.$moodle->getPfad('2.4').'course/view.php?id='.$mdlcourse24->mdl_course_id.'" class="Item" target="_blank">'.$mdlcourse24->mdl_fullname.'</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "<a href='".$_SERVER['PHP_SELF']."?lvid=$lvid&stsem=$stsem&action=createtestkurs24' class='Item'>".$p->t('moodle/klickenSieHierUmTestkursErstellen24')."</a>";
|
||||
}
|
||||
echo '
|
||||
</body>
|
||||
</html>';
|
||||
?>
|
||||
@@ -1,109 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2013 FH Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
*/
|
||||
/*
|
||||
* Verlinkt zur Wartungsseite der verwendeten Moodle Version
|
||||
*/
|
||||
require_once('../../../config/cis.config.inc.php');
|
||||
require_once('../../../include/basis_db.class.php');
|
||||
require_once('../../../include/functions.inc.php');
|
||||
require_once('../../../include/benutzerberechtigung.class.php');
|
||||
require_once('../../../include/moodle.class.php');
|
||||
require_once('../../../include/phrasen.class.php');
|
||||
|
||||
$sprache = getSprache();
|
||||
$p = new phrasen($sprache);
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung'));
|
||||
|
||||
if (!$user=get_uid())
|
||||
die($p->t('moodle/sieSindNichtAngemeldet').' !');
|
||||
|
||||
if(isset($_GET['lvid']) && is_numeric($_GET['lvid']))
|
||||
$lvid=$_GET['lvid'];
|
||||
else
|
||||
die($p->t('moodle/lvidMussUebergebenWerden'));
|
||||
|
||||
if(isset($_GET['stsem']) && check_stsem($_GET['stsem']))
|
||||
$stsem = $_GET['stsem'];
|
||||
else
|
||||
die($p->t('moodle/esWurdeKeinStudiensemesterUebergeben'));
|
||||
|
||||
$art = (isset($_POST['art'])?$_POST['art']:'lv');
|
||||
|
||||
$berechtigt = false;
|
||||
|
||||
//Pruefen ob Rechte fuer diese LV vorhanden sind
|
||||
$qry = "SELECT distinct vorname, nachname, tbl_benutzer.uid as uid FROM lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter, public.tbl_benutzer, public.tbl_person WHERE tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid=tbl_benutzer.uid AND tbl_person.person_id=tbl_benutzer.person_id AND lehrveranstaltung_id='$lvid' AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid NOT like '_Dummy%' AND tbl_person.aktiv=true AND studiensemester_kurzbz='$stsem' ORDER BY nachname, vorname";
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
while($row_lector = $db->db_fetch_object($result))
|
||||
{
|
||||
if($user==$row_lector->uid)
|
||||
$berechtigt=true;
|
||||
}
|
||||
}
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if($rechte->isBerechtigt('admin'))
|
||||
$berechtigt=true;
|
||||
|
||||
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link href="../../../skin/style.css.php" rel="stylesheet" type="text/css">
|
||||
</head>
|
||||
<body>
|
||||
<h1>Moodle Versionswahl</h1>';
|
||||
$moodle = new moodle();
|
||||
if(!$moodle->getAll($lvid, $stsem))
|
||||
echo $moodle->errormsg;
|
||||
|
||||
|
||||
if(isset($moodle->result[0]))
|
||||
{
|
||||
// Wenn bereits ein Moodle Kurs vorhanden ist, wird auf die
|
||||
// Wartungsseite der entsprechenden Version verlinkt.
|
||||
$moodle_version = $moodle->result[0]->moodle_version;
|
||||
|
||||
if($moodle_version=='1.9')
|
||||
$link = 'moodle_wartung.php?lvid='.$db->convert_html_chars($lvid).'&stsem='.$db->convert_html_chars($stsem);
|
||||
elseif($moodle_version=='2.4')
|
||||
$link = 'moodle2_4_wartung.php?lvid='.$db->convert_html_chars($lvid).'&stsem='.$db->convert_html_chars($stsem);
|
||||
else
|
||||
die('Unbekannte Moodle Version gefunden');
|
||||
|
||||
echo '<script language="javascript">window.location.href=\''.$link.'\';</script>';
|
||||
echo $p->t('moodle/weiterleitung', array($link));
|
||||
}
|
||||
else
|
||||
{
|
||||
$link19 = 'moodle_wartung.php?lvid='.$db->convert_html_chars($lvid).'&stsem='.$db->convert_html_chars($stsem);
|
||||
$link24 = 'moodle2_4_wartung.php?lvid='.$db->convert_html_chars($lvid).'&stsem='.$db->convert_html_chars($stsem);
|
||||
echo $p->t('moodle/wartungschoice', array($link19, $link24));
|
||||
}
|
||||
echo '</body></html>';
|
||||
?>
|
||||
@@ -160,7 +160,7 @@ if (isset($_GET['output']) && $_GET['output']!='pdf')
|
||||
else
|
||||
$output = $_GET['output'];
|
||||
}
|
||||
else
|
||||
else
|
||||
$output = 'pdf';
|
||||
|
||||
|
||||
@@ -248,7 +248,8 @@ if (($user == $_GET["uid"]) || $rechte->isBerechtigt('admin'))
|
||||
$buffer = $proc->transformToXml($xml_doc);
|
||||
//echo $buffer;
|
||||
//exit;
|
||||
$tempfolder = '/tmp/'.uniqid();
|
||||
$tmp = sys_get_temp_dir();
|
||||
$tempfolder = $tmp.'/FHC'.uniqid();
|
||||
mkdir($tempfolder);
|
||||
chdir($tempfolder);
|
||||
file_put_contents('content.xml', $buffer);
|
||||
@@ -388,8 +389,8 @@ if (($user == $_GET["uid"]) || $rechte->isBerechtigt('admin'))
|
||||
fclose($handle);
|
||||
|
||||
unlink('content.xml');
|
||||
if(isset($_GET['style_xsl']))
|
||||
unlink('styles.xml');
|
||||
if(file_exists('styles.xml'))
|
||||
unlink('styles.xml');
|
||||
unlink($tempname_zip);
|
||||
if($output=='pdf' || $output=='doc')
|
||||
unlink($tempPdfName);
|
||||
|
||||
+219
-228
@@ -36,8 +36,8 @@ require_once('../../../include/globals.inc.php');
|
||||
require_once('../../../include/sprache.class.php');
|
||||
|
||||
|
||||
$sprache = getSprache();
|
||||
$lang = new sprache();
|
||||
$sprache = getSprache();
|
||||
$lang = new sprache();
|
||||
$lang->load($sprache);
|
||||
$p = new phrasen($sprache);
|
||||
|
||||
@@ -45,7 +45,6 @@ if (!$db = new basis_db())
|
||||
die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung'));
|
||||
|
||||
$content_resturlaub = '';
|
||||
$content = '';
|
||||
$resturlaubstage = '0';
|
||||
$mehrarbeitsstunden = '0';
|
||||
$anspruch = '25';
|
||||
@@ -177,52 +176,62 @@ if((isset($_GET['delete']) || isset($_POST['delete'])))
|
||||
//Eintragung speichern
|
||||
if(isset($_GET['speichern']) && isset($_GET['wtag']))
|
||||
{
|
||||
$vertretung=$_GET['vertretung_uid'];
|
||||
$erreichbar=$_GET['erreichbar'];
|
||||
if($erreichbar=='')
|
||||
$vertretung = $_GET['vertretung_uid'];
|
||||
|
||||
$bn = new benutzer();
|
||||
if($vertretung != '' && !$bn->load($vertretung))
|
||||
{
|
||||
$erreichbar='n';
|
||||
$vgmail.='<br><span class="error">'.$p->t('zeitsperre/vertretungNichtKorrekt').'</span>';
|
||||
$error = true;
|
||||
}
|
||||
$wtag=$_GET['wtag'];
|
||||
$akette[0]=$wtag[0];
|
||||
$ekette[0]=$wtag[0];
|
||||
for($i=1,$j=0;$i<count($wtag);$i++)
|
||||
else
|
||||
{
|
||||
//ketten bilden
|
||||
if($wtag[$i]==date("Y-m-d",strtotime("+1 Day",strtotime($wtag[$i-1]))))
|
||||
$erreichbar=$_GET['erreichbar'];
|
||||
if($erreichbar=='')
|
||||
{
|
||||
$ekette[$j]=$wtag[$i];
|
||||
$erreichbar='n';
|
||||
}
|
||||
else
|
||||
$wtag=$_GET['wtag'];
|
||||
$akette[0]=$wtag[0];
|
||||
$ekette[0]=$wtag[0];
|
||||
for($i=1,$j=0;$i<count($wtag);$i++)
|
||||
{
|
||||
$j++;
|
||||
$akette[$j]=$wtag[$i];
|
||||
$ekette[$j]=$wtag[$i];
|
||||
//ketten bilden
|
||||
if($wtag[$i]==date("Y-m-d",strtotime("+1 Day",strtotime($wtag[$i-1]))))
|
||||
{
|
||||
$ekette[$j]=$wtag[$i];
|
||||
}
|
||||
else
|
||||
{
|
||||
$j++;
|
||||
$akette[$j]=$wtag[$i];
|
||||
$ekette[$j]=$wtag[$i];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//Pruefen ob bereits ein Urlaub in den markierten Bereichen vorhanden ist und ggf Abbrechen
|
||||
//Das Problem sollte nur beim manuellen Refresh der Seite auftreten
|
||||
$error=false;
|
||||
for($i=0;$i<count($akette);$i++)
|
||||
{
|
||||
$zeitsperre = new zeitsperre();
|
||||
|
||||
if($zeitsperre->UrlaubEingetragen($uid, $akette[$i], $ekette[$i]))
|
||||
//Pruefen ob bereits ein Urlaub in den markierten Bereichen vorhanden ist und ggf Abbrechen
|
||||
//Das Problem sollte nur beim manuellen Refresh der Seite auftreten
|
||||
$error=false;
|
||||
for($i=0;$i<count($akette);$i++)
|
||||
{
|
||||
$vgmail.='<br><span class="error">'.$p->t('zeitsperre/urlaubBereitsEingetragen').'</span>';
|
||||
$error=true;
|
||||
break;
|
||||
$zeitsperre = new zeitsperre();
|
||||
|
||||
if($zeitsperre->UrlaubEingetragen($uid, $akette[$i], $ekette[$i]))
|
||||
{
|
||||
$vgmail.='<br><span class="error">'.$p->t('zeitsperre/urlaubBereitsEingetragen').'</span>';
|
||||
$error=true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if(!$error)
|
||||
{
|
||||
for($i=0;$i<count($akette);$i++)
|
||||
{
|
||||
$zeitsperre = new zeitsperre();
|
||||
|
||||
|
||||
$zeitsperre->new = true;
|
||||
$zeitsperre->zeitsperretyp_kurzbz='Urlaub';
|
||||
$zeitsperre->mitarbeiter_uid=$uid;
|
||||
@@ -239,98 +248,71 @@ if(isset($_GET['speichern']) && isset($_GET['wtag']))
|
||||
$zeitsperre->erreichbarkeit=$erreichbar;
|
||||
$zeitsperre->freigabeamum='';
|
||||
$zeitsperre->freigabevon='';
|
||||
|
||||
|
||||
if(!$zeitsperre->save())
|
||||
{
|
||||
$error = true;
|
||||
echo $zeitsperre->errormsg;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
//Mail an Vorgesetzten
|
||||
$vorgesetzter = $ma->getVorgesetzte($uid);
|
||||
if($vorgesetzter)
|
||||
if(!$error)
|
||||
{
|
||||
$to='';
|
||||
foreach($ma->vorgesetzte as $vg)
|
||||
//Mail an Vorgesetzten
|
||||
$vorgesetzter = $ma->getVorgesetzte($uid);
|
||||
if($vorgesetzter)
|
||||
{
|
||||
if($to!='')
|
||||
$to='';
|
||||
foreach($ma->vorgesetzte as $vg)
|
||||
{
|
||||
$to.=', '.$vg.'@'.DOMAIN;
|
||||
if($to!='')
|
||||
{
|
||||
$to.=', '.$vg.'@'.DOMAIN;
|
||||
}
|
||||
else
|
||||
{
|
||||
$to.=$vg.'@'.DOMAIN;
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
$benutzer = new benutzer();
|
||||
$benutzer->load($uid);
|
||||
$message = $p->t('urlaubstool/diesIstEineAutomatischeMail')."\n".
|
||||
$p->t('urlaubstool/xHatNeuenUrlaubEingetragen',array($benutzer->nachname,$benutzer->vorname)).":\n";
|
||||
|
||||
for($i=0;$i<count($akette);$i++)
|
||||
{
|
||||
$to.=$vg.'@'.DOMAIN;
|
||||
$message.= $p->t('urlaubstool/von')." ".date("d.m.Y", strtotime($akette[$i]))." ".$p->t('urlaubstool/bis')." ".date("d.m.Y", strtotime($ekette[$i]))."\n";
|
||||
}
|
||||
|
||||
//Ab September wird das neue Jahr uebergeben
|
||||
if(date("m",strtotime($akette[0]))>=9)
|
||||
$jahr = date("Y", strtotime($akette[0]))+1;
|
||||
else
|
||||
$jahr = date("Y", strtotime($akette[0]));
|
||||
|
||||
$message.="\n".$p->t('urlaubstool/sieKoennenDiesenUnterFolgenderAdresseFreigeben').":\n".
|
||||
APP_ROOT."cis/private/profile/urlaubsfreigabe.php?uid=$uid&year=".$jahr;
|
||||
|
||||
$mail = new mail($to, 'vilesci@'.DOMAIN,$p->t('urlaubstool/freigabeansuchenUrlaub'), $message);
|
||||
if($mail->send())
|
||||
{
|
||||
$vgmail="<span style='color:green;'>".$p->t('urlaubstool/freigabemailWurdeVersandt',array($to))."</span>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$vgmail="<br><span class='error'>".$p->t('urlaubstool/fehlerBeimSendenAufgetreten',array($to))."!</span>";
|
||||
}
|
||||
}
|
||||
//$to = 'oesi@technikum-wien.at';
|
||||
$benutzer = new benutzer();
|
||||
$benutzer->load($uid);
|
||||
$message = $p->t('urlaubstool/diesIstEineAutomatischeMail')."\n".
|
||||
$p->t('urlaubstool/xHatNeuenUrlaubEingetragen',array($benutzer->nachname,$benutzer->vorname)).":\n";
|
||||
|
||||
for($i=0;$i<count($akette);$i++)
|
||||
{
|
||||
$message.= $p->t('urlaubstool/von')." ".date("d.m.Y", strtotime($akette[$i]))." ".$p->t('urlaubstool/bis')." ".date("d.m.Y", strtotime($ekette[$i]))."\n";
|
||||
}
|
||||
|
||||
//Ab September wird das neue Jahr uebergeben
|
||||
if(date("m",strtotime($akette[0]))>=9)
|
||||
$jahr = date("Y", strtotime($akette[0]))+1;
|
||||
else
|
||||
$jahr = date("Y", strtotime($akette[0]));
|
||||
|
||||
$message.="\n".$p->t('urlaubstool/sieKoennenDiesenUnterFolgenderAdresseFreigeben').":\n".
|
||||
APP_ROOT."cis/private/profile/urlaubsfreigabe.php?uid=$uid&year=".$jahr;
|
||||
|
||||
$mail = new mail($to, 'vilesci@'.DOMAIN,$p->t('urlaubstool/freigabeansuchenUrlaub'), $message);
|
||||
if($mail->send())
|
||||
{
|
||||
$vgmail="<span style='color:green;'>".$p->t('urlaubstool/freigabemailWurdeVersandt',array($to))."</span>";
|
||||
}
|
||||
else
|
||||
{
|
||||
$vgmail="<br><span class='error'>".$p->t('urlaubstool/fehlerBeimSendenAufgetreten',array($to))."!</span>";
|
||||
$vgmail="<br><span class='error'>".$p->t('urlaubstool/konnteKeinFreigabemailVersendetWerden')."</span>";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$vgmail="<br><span class='error'>".$p->t('urlaubstool/konnteKeinFreigabemailVersendetWerden')."</span>";
|
||||
}
|
||||
//Mail an Vertretung. Wird derzeit nicht gewuenscht.
|
||||
/*
|
||||
if($vertretung!='')
|
||||
{
|
||||
$to = $vertretung.'@'.DOMAIN;
|
||||
|
||||
$benutzer = new benutzer();
|
||||
$benutzer->load($uid);
|
||||
$datumsbereich = '';
|
||||
|
||||
for($i=0;$i<count($akette);$i++)
|
||||
|
||||
if($vertretung=='')
|
||||
{
|
||||
$datumsbereich.="Von ".date("d.m.Y", strtotime($akette[$i]))." bis ".date("d.m.Y", strtotime($ekette[$i]))."\n";
|
||||
$vtmail="<br><span>".$p->t('urlaubstool/keineVertretungEingetragen')."</span>";
|
||||
}
|
||||
|
||||
$message = $p->t('urlaubstool/mailtextVertretung', array ($benutzer->nachname,$benutzer->vorname,$datumsbereich));
|
||||
//"Dies ist eine automatische Mail. \n".
|
||||
// "$benutzer->nachname $benutzer->vorname hat neuen Urlaub eingetragen und sie wurden als Vertretung angegeben:\n";
|
||||
|
||||
|
||||
$mail = new mail($to, 'vilesci@'.DOMAIN,'Urlaubsvertretung für '.$benutzer->nachname.' '.$benutzer->vorname.'', $message);
|
||||
if($mail->send())
|
||||
{
|
||||
$vtmail="".$p->t('urlaubstool/vertretungsmailWurdeVersandt',$to)."!";
|
||||
}
|
||||
else
|
||||
{
|
||||
$vtmail="<br><span class='error'>".$p->t('urlaubstool/fehlerBeimSendenAufgetreten',$to)."!</span>";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$vtmail="<br><span>".$p->t('urlaubstool/keineVertretungEingetragen')."</span>";
|
||||
}*/
|
||||
if($vertretung=='')
|
||||
{
|
||||
$vtmail="<br><span>".$p->t('urlaubstool/keineVertretungEingetragen')."</span>";
|
||||
}
|
||||
}
|
||||
|
||||
@@ -363,7 +345,7 @@ if ((isset($wmonat) || isset($wmonat))&&(isset($wjahr) || isset($wjahr)))
|
||||
{
|
||||
$wvon=date("Y-m-d",mktime(0, 0, 0, 12 , $mendev-($wotag-1), ($jahre[$wjahr])-1));
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$wvon=date("Y-m-d",mktime(0, 0, 0, ($wmonat) , $mendev-($wotag-1), ($jahre[$wjahr])));
|
||||
}
|
||||
@@ -371,7 +353,7 @@ if ((isset($wmonat) || isset($wmonat))&&(isset($wjahr) || isset($wjahr)))
|
||||
{
|
||||
$wbis=date("Y-m-d",mktime(0, 0, 0, 1 , (7-($ttt['wday']==0?7:$ttt['wday'])), $jahre[$wjahr]+1));
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$wbis=date("Y-m-d",mktime(0, 0, 0, ($wmonat+2) , (7-($ttt['wday']==0?7:$ttt['wday'])), $jahre[$wjahr]));
|
||||
}
|
||||
@@ -433,16 +415,14 @@ $PHP_SELF = $_SERVER['PHP_SELF'];
|
||||
|
||||
$datum_obj = new datum();
|
||||
?>
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<meta charset="UTF-8">
|
||||
<link rel="stylesheet" href="../../../skin/style.css.php" type="text/css">
|
||||
<link rel="stylesheet" href="../../../skin/jquery-ui-1.9.2.custom.min.css" type="text/css">
|
||||
<script src="../../../include/js/tablesort/table.js" type="text/javascript"></script>
|
||||
<script src="../../../include/js/jquery1.9.min.js" type="text/javascript"></script>
|
||||
|
||||
<?php
|
||||
// ADDONS laden
|
||||
$addon_obj = new addon();
|
||||
@@ -450,30 +430,33 @@ $addon_obj->loadAddons();
|
||||
foreach($addon_obj->result as $addon)
|
||||
{
|
||||
if(file_exists('../../../addons/'.$addon->kurzbz.'/cis/init.js.php'))
|
||||
echo '<script type="application/x-javascript" src="../../../addons/'.$addon->kurzbz.'/cis/init.js.php" ></script>';
|
||||
{
|
||||
echo '
|
||||
<script type="application/x-javascript" src="../../../addons/'.$addon->kurzbz.'/cis/init.js.php" ></script>';
|
||||
}
|
||||
}
|
||||
|
||||
// Wenn Seite fertig geladen ist Addons aufrufen
|
||||
echo '
|
||||
<script>
|
||||
$( document ).ready(function()
|
||||
{
|
||||
if(typeof addon !== \'undefined\')
|
||||
{
|
||||
for(i in addon)
|
||||
<script>
|
||||
$( document ).ready(function()
|
||||
{
|
||||
addon[i].init("cis/private/profile/urlaubstool.php", {uid:\''.$uid.'\'});
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>';
|
||||
if(typeof addon !== \'undefined\')
|
||||
{
|
||||
for(i in addon)
|
||||
{
|
||||
addon[i].init("cis/private/profile/urlaubstool.php", {uid:\''.$uid.'\'});
|
||||
}
|
||||
}
|
||||
});
|
||||
</script>';
|
||||
?>
|
||||
<script language="Javascript">
|
||||
function conf_del()
|
||||
{
|
||||
return confirm('<?php echo $p->t('urlaubstool/eintragWirklichLoeschen');?>');
|
||||
}
|
||||
|
||||
|
||||
function checkval()
|
||||
{
|
||||
if(document.getElementById('vertretung_uid').value=='')
|
||||
@@ -484,7 +467,7 @@ $( document ).ready(function()
|
||||
else
|
||||
return true;
|
||||
}
|
||||
$(document).ready(function()
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#vertretung").autocomplete({
|
||||
source: "urlaubstool_autocomplete.php?autocomplete=mitarbeiter",
|
||||
@@ -529,17 +512,17 @@ $( document ).ready(function()
|
||||
$mehrarbeitsstunden = $resturlaub->mehrarbeitsstunden;
|
||||
$anspruch = $resturlaub->urlaubstageprojahr;
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$resturlaubstage=0;
|
||||
$mehrarbeitsstunden=0;
|
||||
// wenn mitarbeiter ist kein fixangestellter --> kein urlaubsanspruch
|
||||
$mitarbeiter_anspruch = new mitarbeiter();
|
||||
$mitarbeiter_anspruch = new mitarbeiter();
|
||||
$mitarbeiter_anspruch->load($uid);
|
||||
if($mitarbeiter_anspruch->fixangestellt == true)
|
||||
$anspruch=25;
|
||||
else
|
||||
$anspruch = 0;
|
||||
$anspruch = 25;
|
||||
else
|
||||
$anspruch = 0;
|
||||
}
|
||||
|
||||
$jahr=date('Y');
|
||||
@@ -573,34 +556,57 @@ $( document ).ready(function()
|
||||
if($gebuchterurlaub=='')
|
||||
$gebuchterurlaub=0;
|
||||
|
||||
$content_resturlaub.='<div id="resturlaub">';
|
||||
$content_resturlaub.="<table><tr><td nowrap><h3>".$p->t('urlaubstool/urlaubImGeschaeftsjahr')." $geschaeftsjahr</h3></td><td></td></tr>";
|
||||
$content_resturlaub.="<tr><td nowrap>".$p->t('urlaubstool/anspruch')."</td><td align='right' nowrap>$anspruch ".$p->t('urlaubstool/tage')."</td><td class='grey' nowrap>  ( ".$p->t('urlaubstool/jaehrlich')." )</td></tr>";
|
||||
$content_resturlaub.="<tr><td nowrap>+ ".$p->t('urlaubstool/resturlaub')."</td><td align='right' nowrap>$resturlaubstage ".$p->t('urlaubstool/tage')."</td><td class='grey' nowrap> ( ".$p->t('urlaubstool/stichtag').": $datum_beginn )</td>";
|
||||
$content_resturlaub.="<tr><td nowrap>- ".$p->t('urlaubstool/aktuellGebuchterUrlaub')." </td><td align='right' nowrap>$gebuchterurlaub ".$p->t('urlaubstool/tage')."</td><td class='grey' nowrap> ( $datum_beginn - $datum_ende )</td>";
|
||||
$content_resturlaub .="</tr>";
|
||||
$content_resturlaub.="<tr><td style='border-top: 1px solid black;' nowrap>".$p->t('urlaubstool/aktuellerStand')."</td><td style='border-top: 1px solid black;' align='right' nowrap>".($anspruch+$resturlaubstage-$gebuchterurlaub)." ".$p->t('urlaubstool/tage')."</td><td class='grey' nowrap> ( ".$p->t('urlaubstool/stichtag').": $datum_ende )</td></tr>";
|
||||
$content_resturlaub.="</table>";
|
||||
$content_resturlaub.='</div>';
|
||||
$content_resturlaub .= '<div id="resturlaub">';
|
||||
$content_resturlaub .= "<table><tr><td nowrap><h3>".$p->t('urlaubstool/urlaubImGeschaeftsjahr')." $geschaeftsjahr</h3></td><td></td></tr>";
|
||||
$content_resturlaub .= "<tr><td nowrap>".$p->t('urlaubstool/anspruch')."</td><td align='right' nowrap>$anspruch ".$p->t('urlaubstool/tage')."</td><td class='grey' nowrap> ( ".$p->t('urlaubstool/jaehrlich')." )</td></tr>";
|
||||
$content_resturlaub .= "<tr><td nowrap>+ ".$p->t('urlaubstool/resturlaub')."</td><td align='right' nowrap>$resturlaubstage ".$p->t('urlaubstool/tage')."</td><td class='grey' nowrap> ( ".$p->t('urlaubstool/stichtag').": $datum_beginn )</td>";
|
||||
$content_resturlaub .= "<tr><td nowrap>- ".$p->t('urlaubstool/aktuellGebuchterUrlaub')." </td><td align='right' nowrap>$gebuchterurlaub ".$p->t('urlaubstool/tage')."</td><td class='grey' nowrap> ( $datum_beginn - $datum_ende )</td>";
|
||||
$content_resturlaub .= "</tr>";
|
||||
$content_resturlaub .= "<tr><td style='border-top: 1px solid black;' nowrap>".$p->t('urlaubstool/aktuellerStand')."</td><td style='border-top: 1px solid black;' align='right' nowrap>".($anspruch+$resturlaubstage-$gebuchterurlaub)." ".$p->t('urlaubstool/tage')."</td><td class='grey' nowrap> ( ".$p->t('urlaubstool/stichtag').": $datum_ende )</td></tr>";
|
||||
$content_resturlaub .= "</table>";
|
||||
$content_resturlaub .= '</div>';
|
||||
|
||||
//Formular Auswahl Monat und Jahr für Kalender
|
||||
echo '<table width="95%" align="left">';
|
||||
echo "<td class='tdvertical' align='left' colspan='2'>$content_resturlaub</td>";
|
||||
echo '</td>';
|
||||
echo '<td style="vertical-align:top; width: 20%;"><table cellspacing="0" cellpadding="0"><tr>
|
||||
<td class="menubox" height="10px">
|
||||
<p><a href="zeitsperre_resturlaub.php">'.$p->t("urlaubstool/meineZeitsperren").'</a></p>';
|
||||
echo '
|
||||
<table width="95%" align="left">
|
||||
<tr>
|
||||
<td class="tdvertical" align="left" colspan="2">'.$content_resturlaub.'</td>
|
||||
<td style="vertical-align:top; width: 20%;">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td class="menubox" height="10px">
|
||||
<p><a href="zeitsperre_resturlaub.php">'.$p->t("urlaubstool/meineZeitsperren").'</a></p>';
|
||||
|
||||
if ($p->t("dms_link/handbuchUrlaubsverwaltung")!='')
|
||||
{
|
||||
echo '<p><a href="../../../cms/dms.php?id='.$p->t("dms_link/handbuchUrlaubsverwaltung").'">'.$p->t("urlaubstool/handbuchUrlaubserfassung").'</a></p>';
|
||||
echo '
|
||||
<p>
|
||||
<a href="../../../cms/dms.php?id='.$p->t("dms_link/handbuchUrlaubsverwaltung").'">
|
||||
'.$p->t("urlaubstool/handbuchUrlaubserfassung").'</a>
|
||||
</p>';
|
||||
}
|
||||
echo '<p><a href="#" onclick="alert(\''.$p->t('urlaubstool/anspruchAnzahlDerUrlaubstage').'\');">'.$p->t("urlaubstool/hilfe").'</a></p>
|
||||
</td></tr></table></td>';
|
||||
echo '</tr>';
|
||||
echo '<tr><td nowrap>';
|
||||
$content= '<form action="'.$_SERVER['PHP_SELF'].'" method="GET">';
|
||||
$content.='<INPUT name="links" type="image" src="../../../skin/images/left_lvplan.png" style="vertical-align: middle;" alt="links"> ';
|
||||
$content.='<SELECT name="wmonat">';
|
||||
|
||||
echo '
|
||||
<p>
|
||||
<a href="#" onclick="alert(\''.$p->t('urlaubstool/anspruchAnzahlDerUrlaubstage').'\');">
|
||||
'.$p->t("urlaubstool/hilfe").'
|
||||
</a>
|
||||
</p>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="3">'.$vgmail.' '.$vtmail.'</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td nowrap>
|
||||
<form action="'.$_SERVER['PHP_SELF'].'" method="GET">
|
||||
<INPUT name="links" type="image" src="../../../skin/images/left_lvplan.png"
|
||||
style="vertical-align: middle;" alt="links">
|
||||
<SELECT name="wmonat">';
|
||||
|
||||
for($i=0;$i<12;$i++)
|
||||
{
|
||||
if($wmonat==$i)
|
||||
@@ -611,13 +617,12 @@ for($i=0;$i<12;$i++)
|
||||
{
|
||||
$selected='';
|
||||
}
|
||||
$content.="<option value='$i' $selected>".$monatsname[$lang->index][$i]."</option>";
|
||||
echo "<option value='$i' $selected>".$monatsname[$lang->index][$i]."</option>";
|
||||
}
|
||||
$content.='</SELECT>';
|
||||
echo "</SELECT>\n";
|
||||
|
||||
|
||||
$content.=' <INPUT name="rechts" type="image" src="../../../skin/images/right_lvplan.png" style="vertical-align: middle;" alt="rechts">';
|
||||
$content.=' <SELECT name="wjahr">';
|
||||
echo ' <INPUT name="rechts" type="image" src="../../../skin/images/right_lvplan.png" style="vertical-align: middle;" alt="rechts">';
|
||||
echo ' <SELECT name="wjahr">';
|
||||
for($i=0;$i<5;$i++)
|
||||
{
|
||||
if($wjahr==$i)
|
||||
@@ -628,40 +633,23 @@ for($i=0;$i<5;$i++)
|
||||
{
|
||||
$selected='';
|
||||
}
|
||||
$content.="<option value='$i' $selected>$jahre[$i]</option>";
|
||||
echo "<option value='$i' $selected>$jahre[$i]</option>";
|
||||
}
|
||||
$content.='</SELECT>';
|
||||
$content.=" <INPUT type='submit' name='ok' value='".$p->t('urlaubstool/ok')."'> ";
|
||||
$content.='</form></td>';
|
||||
$content.='<form action="'.$_SERVER['PHP_SELF'].'" method="GET">';
|
||||
$content.= "<td align='center' nowrap>";
|
||||
echo '</SELECT>
|
||||
<INPUT type="submit" name="ok" value="'.$p->t('urlaubstool/ok').'">
|
||||
</form>
|
||||
</td>
|
||||
<td colspan="2">
|
||||
<form action="'.$_SERVER['PHP_SELF'].'" method="GET">
|
||||
'.$p->t('urlaubstool/vertretung').':
|
||||
<input type="text" id="vertretung" placeholder="'.$p->t('lvplan/nameEingeben').'"
|
||||
name="vertretung_uid" value="'.$vertretung.'">
|
||||
<SELECT name="erreichbar" id="erreichbarkeit_kurzbz">';
|
||||
|
||||
$content.= $p->t('urlaubstool/vertretung').": <input type='text' id='vertretung' placeholder='".$p->t('lvplan/nameEingeben')."' name='vertretung_uid' value='".$vertretung."'>";
|
||||
//dropdown fuer vertretung. Ersetzt durch AutoComplete
|
||||
/*$qry = "SELECT * FROM campus.vw_mitarbeiter WHERE uid not LIKE '\\\_%' ORDER BY nachname, vorname";
|
||||
|
||||
$content.= "<SELECT name='vertretung_uid' id='vertretung_uid'><OPTION value=''>-- ".$p->t('urlaubstool/vertretung')." --</OPTION>\n";
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
if($vertretung == $row->uid)
|
||||
{
|
||||
$content.= "<OPTION value='$row->uid' selected>$row->nachname $row->vorname ($row->uid)</OPTION>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$content.= "<OPTION value='$row->uid'>$row->nachname $row->vorname ($row->uid)</OPTION>\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
$content.= '</SELECT>';*/
|
||||
$content.= " <SELECT name='erreichbar' id='erreichbarkeit_kurzbz'>";
|
||||
//dropdown fuer Erreichbarkeit
|
||||
$qry = "SELECT * FROM campus.tbl_erreichbarkeit ORDER BY erreichbarkeit_kurzbz";
|
||||
|
||||
$content.= "<OPTION value=''>-- ".$p->t('urlaubstool/erreichbarkeit')." --</OPTION>\n";
|
||||
echo "<OPTION value=''>-- ".$p->t('urlaubstool/erreichbarkeit')." --</OPTION>\n";
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
@@ -669,16 +657,15 @@ if($result = $db->db_query($qry))
|
||||
{
|
||||
if($erreichbar == $row->erreichbarkeit_kurzbz)
|
||||
{
|
||||
$content.= "<OPTION value='$row->erreichbarkeit_kurzbz' selected>$row->beschreibung</OPTION>\n";
|
||||
echo "<OPTION value='$row->erreichbarkeit_kurzbz' selected>$row->beschreibung</OPTION>\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$content.= "<OPTION value='$row->erreichbarkeit_kurzbz'>$row->beschreibung</OPTION>\n";
|
||||
echo "<OPTION value='$row->erreichbarkeit_kurzbz'>$row->beschreibung</OPTION>\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
$content.= '</SELECT>';
|
||||
$content.='</td>';
|
||||
echo '</SELECT>';
|
||||
|
||||
//Tage
|
||||
$mbeginn=mktime(0, 0, 0, ($wmonat+1) , 1, $jahre[$wjahr]);
|
||||
@@ -713,7 +700,7 @@ for($i=1;$i<43;$i++)
|
||||
{
|
||||
$tage[$i]=date("d.m.Y", mktime(0, 0, 0, 12 , $mendev+$i-($wotag-1), $jahre[$wjahr]-1));
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$tage[$i]=date("d.m.Y", mktime(0, 0, 0, ($wmonat) , $mendev+$i-($wotag-1), $jahre[$wjahr]));
|
||||
}
|
||||
@@ -724,84 +711,88 @@ for($i=1;$i<43;$i++)
|
||||
{
|
||||
$tage[$i]=date("d.m.Y", mktime(0, 0, 0, 1 , $i-$mende-$wotag+1, $jahre[$wjahr+1]));
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$tage[$i]=date("d.m.Y", mktime(0, 0, 0, ($wmonat+2) , $i-$mende-$wotag+1, $jahre[$wjahr]));
|
||||
}
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$tage[$i]='';
|
||||
$tage[$i]='';
|
||||
}
|
||||
}
|
||||
|
||||
$content.='<td>';
|
||||
$content.='<input type="submit" name="speichern" value="'.$p->t('urlaubstool/eintragungenSpeichern').'">';
|
||||
$content.='<input type="hidden" name="wmonat" value="'.$wmonat.'">';
|
||||
$content.='<input type="hidden" name="wjahr" value="'.$wjahr.'">';
|
||||
$content.='</td></tr><tr><td> </td></tr>';
|
||||
$content.='</table>';
|
||||
$content.='<table border=0 width="95%" align="left" class="urlaube">';
|
||||
echo ' <input type="submit" name="speichern" value="'.$p->t('urlaubstool/eintragungenSpeichern').'">
|
||||
<input type="hidden" name="wmonat" value="'.$wmonat.'">
|
||||
<input type="hidden" name="wjahr" value="'.$wjahr.'">
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table border=0 width="95%" align="left" class="urlaube">
|
||||
<tr>';
|
||||
|
||||
$content.='<th style="width:14%; height:20px; background-color: #A5AFB6">'.$tagbez[$lang->index][1].'</th><th style="width:14%; background-color: #A5AFB6">'.$tagbez[$lang->index][2].'</th><th style="width:14%; background-color: #A5AFB6">'.$tagbez[$lang->index][3].'</th><th style="width:14%; background-color: #A5AFB6">'.$tagbez[$lang->index][4].'</th><th style="width:14%; background-color: #A5AFB6">'.$tagbez[$lang->index][5].'</th><th style="width:14%; background-color: #A5AFB6">'.$tagbez[$lang->index][6].'</th><th style="width:14%; background-color: #A5AFB6">'.$tagbez[$lang->index][7].'</th>';
|
||||
for($i=1;$i<=7;$i++)
|
||||
echo "\n".'<th style="width:14%; background-color: #A5AFB6">'.$tagbez[$lang->index][$i].'</th>';
|
||||
|
||||
echo '</tr>';
|
||||
for ($i=0;$i<6;$i++)
|
||||
{
|
||||
$content.='<tr height="50" style="font-family:Arial,sans-serif; font-size:30px; color:black">';
|
||||
echo "\n".'<tr height="50" style="font-family:Arial,sans-serif; font-size:30px; color:black">';
|
||||
for ($j=1;$j<8;$j++)
|
||||
{
|
||||
echo "\n";
|
||||
if(strlen(stristr($tage[$j+7*$i],"."))>0)
|
||||
{
|
||||
$content.='<td align="center" valign="center" style="font-size:16px; color:grey; background-color: '.$hgfarbe[$j+7*$i].'">';
|
||||
echo '<td align="center" valign="center" style="font-size:16px; color:grey; background-color: '.$hgfarbe[$j+7*$i].'">';
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$content.='<td align="center" valign="center" style="background-color: '.$hgfarbe[$j+7*$i].'">';
|
||||
echo '<td align="center" valign="center" style="background-color: '.$hgfarbe[$j+7*$i].'">';
|
||||
}
|
||||
if($tage[$j+7*$i]!='')
|
||||
{
|
||||
if($hgfarbe[$j+7*$i]=='#FFFC7F')
|
||||
{
|
||||
$content.='<b title='.$p->t('urlaubstool/vertretung').': '.$vertretung_uid[$j+7*$i].' - '.$p->t('urlaubstool/erreichbar').': '.$erreichbarkeit_kurzbz[$j+7*$i].'">'.$tage[$j+7*$i].'</b><br>';;
|
||||
echo '<b title='.$p->t('urlaubstool/vertretung').': '.$vertretung_uid[$j+7*$i].' - '.$p->t('urlaubstool/erreichbar').': '.$erreichbarkeit_kurzbz[$j+7*$i].'">'.$tage[$j+7*$i].'</b><br>';;
|
||||
$k=$j+7*$i;
|
||||
$content.="<a href='$PHP_SELF?wmonat=$wmonat&wjahr=$wjahr&delete=$datensatz[$k]' onclick='return conf_del()'>";
|
||||
$content.='<img src="../../../skin/images/delete_x.png" alt="loeschen" title="'.$p->t('urlaubstool/eintragungLoeschen').'"></a></td>';
|
||||
echo "<a href='$PHP_SELF?wmonat=$wmonat&wjahr=$wjahr&delete=$datensatz[$k]' onclick='return conf_del()'>";
|
||||
echo '<img src="../../../skin/images/delete_x.png" alt="loeschen" title="'.$p->t('urlaubstool/eintragungLoeschen').'"></a></td>';
|
||||
}
|
||||
elseif($hgfarbe[$j+7*$i]=='#E9ECEE')
|
||||
{
|
||||
$content.='<b>'.$tage[$j+7*$i].'</b><br>';
|
||||
echo '<b>'.$tage[$j+7*$i].'</b><br>';
|
||||
if(strlen(stristr($tage[$j+7*$i],"."))>0)
|
||||
{
|
||||
$content.='<input type="checkbox" name="wtag[]" value="'.date("Y-m-d",mktime(0, 0, 0, substr($tage[$j+7*$i],3,2) , substr($tage[$j+7*$i],0,2), substr($tage[$j+7*$i],6,4))).'"></td>';
|
||||
echo '<input type="checkbox" name="wtag[]" value="'.date("Y-m-d",mktime(0, 0, 0, substr($tage[$j+7*$i],3,2) , substr($tage[$j+7*$i],0,2), substr($tage[$j+7*$i],6,4))).'"></td>';
|
||||
}
|
||||
else
|
||||
else
|
||||
{
|
||||
$content.='<input type="checkbox" name="wtag[]" value="'.date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $tage[$j+7*$i], $jahre[$wjahr])).'"></td>';
|
||||
echo '<input type="checkbox" name="wtag[]" value="'.date("Y-m-d",mktime(0, 0, 0, ($wmonat+1) , $tage[$j+7*$i], $jahre[$wjahr])).'"></td>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$content.='<b title="'.$p->t('urlaubstool/vertretung').': '.$vertretung_uid[$j+7*$i].' - '.$p->t('urlaubstool/erreichbar').': '.$erreichbarkeit_kurzbz[$j+7*$i].'">'.$tage[$j+7*$i].'</b><br>';
|
||||
echo '<b title="'.$p->t('urlaubstool/vertretung').': '.$vertretung_uid[$j+7*$i].' - '.$p->t('urlaubstool/erreichbar').': '.$erreichbarkeit_kurzbz[$j+7*$i].'">'.$tage[$j+7*$i].'</b><br>';
|
||||
if(isset($freigabeamum[$j+7*$i]))
|
||||
{
|
||||
$content.='<img src="../../../skin/images/flag-green.png" alt="freigegeben" title="'.$p->t('urlaubstool/freigegebenDurchAm', array($freigabevon[$j+7*$i])).' '.date("d-m-Y",strtotime($freigabeamum[$j+7*$i])).'"></td>';
|
||||
echo '<img src="../../../skin/images/flag-green.png" alt="freigegeben" title="'.$p->t('urlaubstool/freigegebenDurchAm', array($freigabevon[$j+7*$i])).' '.date("d-m-Y",strtotime($freigabeamum[$j+7*$i])).'"></td>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$content.='<img src="../../../skin/images/flag-green.png" alt="freigegeben" title="'.$p->t('urlaubstool/freigegebenDurch', array($freigabevon[$j+7*$i])).': '.$freigabevon[$j+7*$i].'"></td>';
|
||||
echo '<img src="../../../skin/images/flag-green.png" alt="freigegeben" title="'.$p->t('urlaubstool/freigegebenDurch', array($freigabevon[$j+7*$i])).': '.$freigabevon[$j+7*$i].'"></td>';
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$content.='<b> </b><br>';
|
||||
echo '<b> </b><br>';
|
||||
}
|
||||
}
|
||||
$content.='</tr>';
|
||||
echo '</tr>';
|
||||
}
|
||||
$content.='</table></form>';
|
||||
echo $content;
|
||||
echo "<table width='100%'><tr><td><br>".$vgmail;
|
||||
echo "<br>".$vtmail."</td></tr></table>";
|
||||
echo '</table></form>';
|
||||
|
||||
|
||||
?>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -75,6 +75,7 @@
|
||||
"rougin/combustor": "1.1.*",
|
||||
"rougin/refinery": "*",
|
||||
"components/jquery": "2.1.4",
|
||||
"components/jqueryui": "1.12.*",
|
||||
"components/angular.js": "1.3.16",
|
||||
"components/bootstrap": "3.3.5",
|
||||
"michelf/php-markdown": "1.5.0",
|
||||
|
||||
Generated
+232
-233
@@ -4,59 +4,8 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"hash": "adbc1b15e2cdf73d1f0db3727e919dc5",
|
||||
"content-hash": "97bc2bdf8f101931b1f6eac635401324",
|
||||
"content-hash": "eb5f2edc278196fd77c4de1f2e201dc0",
|
||||
"packages": [
|
||||
{
|
||||
"name": "blueimp/jquery-file-upload",
|
||||
"version": "v9.14.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/vkhramtsov/jQuery-File-Upload.git",
|
||||
"reference": "71d67a9c277e29efcf5935cd2409009c0f841a57"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/vkhramtsov/jQuery-File-Upload/zipball/71d67a9c277e29efcf5935cd2409009c0f841a57",
|
||||
"reference": "71d67a9c277e29efcf5935cd2409009c0f841a57",
|
||||
"shasum": ""
|
||||
},
|
||||
"type": "library",
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sebastian Tschan",
|
||||
"homepage": "https://blueimp.net"
|
||||
}
|
||||
],
|
||||
"description": "File Upload widget for jQuery.",
|
||||
"homepage": "https://github.com/blueimp/jQuery-File-Upload",
|
||||
"keywords": [
|
||||
"bootstrap",
|
||||
"chunk",
|
||||
"cross-domain",
|
||||
"cross-site",
|
||||
"drag",
|
||||
"drop",
|
||||
"file",
|
||||
"gae",
|
||||
"go",
|
||||
"jquery",
|
||||
"multiple",
|
||||
"php",
|
||||
"preview",
|
||||
"progress",
|
||||
"python",
|
||||
"resume",
|
||||
"selection",
|
||||
"upload",
|
||||
"widget"
|
||||
],
|
||||
"time": "2016-11-21 05:38:19"
|
||||
},
|
||||
{
|
||||
"name": "codeigniter-restserver",
|
||||
"version": "2.6",
|
||||
@@ -98,7 +47,7 @@
|
||||
],
|
||||
"description": "The CodeIgniter framework",
|
||||
"homepage": "https://codeigniter.com",
|
||||
"time": "2016-10-28 15:13:14"
|
||||
"time": "2016-10-28T15:13:14+00:00"
|
||||
},
|
||||
{
|
||||
"name": "components/angular.js",
|
||||
@@ -402,7 +351,7 @@
|
||||
],
|
||||
"description": "Shim repository for Angular.js",
|
||||
"homepage": "http://angularjs.org",
|
||||
"time": "2015-06-07 20:10:38"
|
||||
"time": "2015-06-07T20:10:38+00:00"
|
||||
},
|
||||
{
|
||||
"name": "components/bootstrap",
|
||||
@@ -470,42 +419,7 @@
|
||||
"responsive",
|
||||
"web"
|
||||
],
|
||||
"time": "2015-06-17 06:08:09"
|
||||
},
|
||||
{
|
||||
"name": "components/font-awesome",
|
||||
"version": "4.7.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/components/font-awesome.git",
|
||||
"reference": "885308b939369d147bec93174722786bc2c4eedd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/components/font-awesome/zipball/885308b939369d147bec93174722786bc2c4eedd",
|
||||
"reference": "885308b939369d147bec93174722786bc2c4eedd",
|
||||
"shasum": ""
|
||||
},
|
||||
"type": "component",
|
||||
"extra": {
|
||||
"component": {
|
||||
"styles": [
|
||||
"css/font-awesome.css"
|
||||
],
|
||||
"files": [
|
||||
"css/font-awesome.min.css",
|
||||
"css/font-awesome.css.map",
|
||||
"fonts/*"
|
||||
]
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT",
|
||||
"OFL-1.1"
|
||||
],
|
||||
"description": "The iconic font designed for use with Twitter Bootstrap.",
|
||||
"time": "2016-10-25 10:56:23"
|
||||
"time": "2015-06-17T06:08:09+00:00"
|
||||
},
|
||||
{
|
||||
"name": "components/jquery",
|
||||
@@ -547,7 +461,7 @@
|
||||
],
|
||||
"description": "jQuery JavaScript Library",
|
||||
"homepage": "http://jquery.com",
|
||||
"time": "2015-05-08 05:04:47"
|
||||
"time": "2015-05-08T05:04:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "components/jqueryui",
|
||||
@@ -632,61 +546,7 @@
|
||||
}
|
||||
],
|
||||
"description": "jQuery UI is a curated set of user interface interactions, effects, widgets, and themes built on top of the jQuery JavaScript Library. Whether you're building highly interactive web applications or you just need to add a date picker to a form control, jQuery UI is the perfect choice.",
|
||||
"time": "2016-09-16 05:47:55"
|
||||
},
|
||||
{
|
||||
"name": "compwright/codeigniter-installers",
|
||||
"version": "1.1.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/compwright/codeigniter-installers.git",
|
||||
"reference": "adbbd5ae2cbf5a24a39931235b1ac7dab56abb4f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/compwright/codeigniter-installers/zipball/adbbd5ae2cbf5a24a39931235b1ac7dab56abb4f",
|
||||
"reference": "adbbd5ae2cbf5a24a39931235b1ac7dab56abb4f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require-dev": {
|
||||
"composer/composer": "1.0.*@dev"
|
||||
},
|
||||
"type": "composer-installer",
|
||||
"extra": {
|
||||
"class": "Composer\\Installer\\CodeigniterInstaller"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Composer\\Installer": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jonathon Hill",
|
||||
"email": "jhill9693@gmail.com",
|
||||
"homepage": "http://jonathonhill.net",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Composer installers for CodeIgniter",
|
||||
"homepage": "https://github.com/compwright/codeigniter-installers",
|
||||
"keywords": [
|
||||
"MX",
|
||||
"codeigniter",
|
||||
"composer",
|
||||
"core",
|
||||
"hmvc",
|
||||
"installer",
|
||||
"library",
|
||||
"module",
|
||||
"spark",
|
||||
"sparks"
|
||||
],
|
||||
"time": "2012-11-12 16:11:38"
|
||||
"time": "2016-09-16T05:47:55+00:00"
|
||||
},
|
||||
{
|
||||
"name": "easyrdf/easyrdf",
|
||||
@@ -748,7 +608,7 @@
|
||||
"rdfa",
|
||||
"sparql"
|
||||
],
|
||||
"time": "2015-02-27 09:45:49"
|
||||
"time": "2015-02-27T09:45:49+00:00"
|
||||
},
|
||||
{
|
||||
"name": "fzaninotto/faker",
|
||||
@@ -796,7 +656,7 @@
|
||||
"faker",
|
||||
"fixtures"
|
||||
],
|
||||
"time": "2016-04-29 12:21:54"
|
||||
"time": "2016-04-29T12:21:54+00:00"
|
||||
},
|
||||
{
|
||||
"name": "json-forms",
|
||||
@@ -884,7 +744,7 @@
|
||||
"json",
|
||||
"schema"
|
||||
],
|
||||
"time": "2014-08-25 02:48:14"
|
||||
"time": "2014-08-25T02:48:14+00:00"
|
||||
},
|
||||
{
|
||||
"name": "kevinlebrun/colors.php",
|
||||
@@ -935,7 +795,7 @@
|
||||
"console",
|
||||
"shell"
|
||||
],
|
||||
"time": "2016-04-12 20:58:34"
|
||||
"time": "2016-04-12T20:58:34+00:00"
|
||||
},
|
||||
{
|
||||
"name": "kingsquare/json-schema-form",
|
||||
@@ -969,7 +829,7 @@
|
||||
}
|
||||
],
|
||||
"description": "A framework-agnostic PHP Implementation for generating simple forms based on json-schema",
|
||||
"time": "2014-07-10 12:27:19"
|
||||
"time": "2014-07-10T12:27:19+00:00"
|
||||
},
|
||||
{
|
||||
"name": "michelf/php-markdown",
|
||||
@@ -1020,7 +880,7 @@
|
||||
"keywords": [
|
||||
"markdown"
|
||||
],
|
||||
"time": "2015-03-01 12:03:08"
|
||||
"time": "2015-03-01T12:03:08+00:00"
|
||||
},
|
||||
{
|
||||
"name": "ml/iri",
|
||||
@@ -1067,7 +927,7 @@
|
||||
"uri",
|
||||
"url"
|
||||
],
|
||||
"time": "2014-01-21 13:43:39"
|
||||
"time": "2014-01-21T13:43:39+00:00"
|
||||
},
|
||||
{
|
||||
"name": "ml/json-ld",
|
||||
@@ -1116,7 +976,7 @@
|
||||
"JSON-LD",
|
||||
"jsonld"
|
||||
],
|
||||
"time": "2016-10-10 08:57:56"
|
||||
"time": "2016-10-10T08:57:56+00:00"
|
||||
},
|
||||
{
|
||||
"name": "netcarver/textile",
|
||||
@@ -1169,7 +1029,7 @@
|
||||
"plaintext",
|
||||
"textile"
|
||||
],
|
||||
"time": "2016-11-17 14:18:12"
|
||||
"time": "2016-11-17T14:18:12+00:00"
|
||||
},
|
||||
{
|
||||
"name": "psr/log",
|
||||
@@ -1216,7 +1076,7 @@
|
||||
"psr",
|
||||
"psr-3"
|
||||
],
|
||||
"time": "2016-10-10 12:19:37"
|
||||
"time": "2016-10-10T12:19:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "rdlowrey/auryn",
|
||||
@@ -1277,64 +1137,7 @@
|
||||
"dic",
|
||||
"ioc"
|
||||
],
|
||||
"time": "2016-03-14 20:10:19"
|
||||
},
|
||||
{
|
||||
"name": "rogeriopradoj/codeigniter-curl",
|
||||
"version": "1.2.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/rogeriopradoj/codeigniter-curl.git",
|
||||
"reference": "eb954890e242a5e80812006e60b07f1ce29b7e7a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/rogeriopradoj/codeigniter-curl/zipball/eb954890e242a5e80812006e60b07f1ce29b7e7a",
|
||||
"reference": "eb954890e242a5e80812006e60b07f1ce29b7e7a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"compwright/codeigniter-installers": "*"
|
||||
},
|
||||
"type": "codeigniter-spark",
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Rogerio Prado de Jesus",
|
||||
"email": "rogeriopradoj@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "codeigniter-curl philsturgeon's library via composer",
|
||||
"time": "2013-05-27 21:19:21"
|
||||
},
|
||||
{
|
||||
"name": "rogeriopradoj/codeigniter-restclient",
|
||||
"version": "2.1.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/rogeriopradoj/codeigniter-restclient.git",
|
||||
"reference": "64991a0105c3cd891a64e1d35e497270ca2b0d78"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/rogeriopradoj/codeigniter-restclient/zipball/64991a0105c3cd891a64e1d35e497270ca2b0d78",
|
||||
"reference": "64991a0105c3cd891a64e1d35e497270ca2b0d78",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"compwright/codeigniter-installers": "*",
|
||||
"rogeriopradoj/codeigniter-curl": "*"
|
||||
},
|
||||
"type": "codeigniter-spark",
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Rogerio Prado de Jesus",
|
||||
"email": "rogeriopradoj@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "codeigniter-restclient philsturgeon's library via composer",
|
||||
"time": "2013-05-27 21:23:54"
|
||||
"time": "2016-03-14T20:10:19+00:00"
|
||||
},
|
||||
{
|
||||
"name": "rougin/blueprint",
|
||||
@@ -1385,7 +1188,7 @@
|
||||
"php",
|
||||
"template"
|
||||
],
|
||||
"time": "2016-02-01 16:31:13"
|
||||
"time": "2016-02-01T16:31:13+00:00"
|
||||
},
|
||||
{
|
||||
"name": "rougin/combustor",
|
||||
@@ -1450,7 +1253,7 @@
|
||||
"generator",
|
||||
"php"
|
||||
],
|
||||
"time": "2016-02-14 10:36:58"
|
||||
"time": "2016-02-14T10:36:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "rougin/describe",
|
||||
@@ -1503,7 +1306,7 @@
|
||||
"describe",
|
||||
"php"
|
||||
],
|
||||
"time": "2016-03-24 18:17:47"
|
||||
"time": "2016-03-24T18:17:47+00:00"
|
||||
},
|
||||
{
|
||||
"name": "rougin/refinery",
|
||||
@@ -1568,7 +1371,7 @@
|
||||
"php",
|
||||
"refinery"
|
||||
],
|
||||
"time": "2016-03-04 16:55:32"
|
||||
"time": "2016-03-04T16:55:32+00:00"
|
||||
},
|
||||
{
|
||||
"name": "rougin/spark-plug",
|
||||
@@ -1627,7 +1430,7 @@
|
||||
"php",
|
||||
"spark-plug"
|
||||
],
|
||||
"time": "2015-10-23 08:27:10"
|
||||
"time": "2015-10-23T08:27:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/console",
|
||||
@@ -1688,7 +1491,7 @@
|
||||
],
|
||||
"description": "Symfony Console Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2016-11-15 23:02:12"
|
||||
"time": "2016-11-15T23:02:12+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/debug",
|
||||
@@ -1745,7 +1548,7 @@
|
||||
],
|
||||
"description": "Symfony Debug Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2016-07-30 07:22:48"
|
||||
"time": "2016-07-30T07:22:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-mbstring",
|
||||
@@ -1804,7 +1607,7 @@
|
||||
"portable",
|
||||
"shim"
|
||||
],
|
||||
"time": "2016-11-14 01:06:16"
|
||||
"time": "2016-11-14T01:06:16+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/yaml",
|
||||
@@ -1853,7 +1656,7 @@
|
||||
],
|
||||
"description": "Symfony Yaml Component",
|
||||
"homepage": "https://symfony.com",
|
||||
"time": "2016-11-14 16:15:57"
|
||||
"time": "2016-11-14T16:15:57+00:00"
|
||||
},
|
||||
{
|
||||
"name": "tinymce/tinymce",
|
||||
@@ -1899,7 +1702,7 @@
|
||||
"tinymce",
|
||||
"wysiwyg"
|
||||
],
|
||||
"time": "2016-11-23 13:00:08"
|
||||
"time": "2016-11-23T13:00:08+00:00"
|
||||
},
|
||||
{
|
||||
"name": "twig/twig",
|
||||
@@ -1960,7 +1763,7 @@
|
||||
"keywords": [
|
||||
"templating"
|
||||
],
|
||||
"time": "2016-11-23 18:41:40"
|
||||
"time": "2016-11-23T18:41:40+00:00"
|
||||
},
|
||||
{
|
||||
"name": "wikimedia/composer-merge-plugin",
|
||||
@@ -2009,7 +1812,7 @@
|
||||
}
|
||||
],
|
||||
"description": "Composer plugin to merge multiple composer.json files",
|
||||
"time": "2016-03-08 17:11:37"
|
||||
"time": "2016-03-08T17:11:37+00:00"
|
||||
},
|
||||
{
|
||||
"name": "zetacomponents/base",
|
||||
@@ -2072,7 +1875,7 @@
|
||||
],
|
||||
"description": "The Base package provides the basic infrastructure that all packages rely on. Therefore every component relies on this package.",
|
||||
"homepage": "https://github.com/zetacomponents",
|
||||
"time": "2014-09-19 03:28:34"
|
||||
"time": "2014-09-19T03:28:34+00:00"
|
||||
},
|
||||
{
|
||||
"name": "zetacomponents/database",
|
||||
@@ -2147,7 +1950,7 @@
|
||||
],
|
||||
"description": "A lightweight database layer on top of PHP's PDO that allows you to utilize a database without having to take care of differences in SQL dialects.",
|
||||
"homepage": "https://github.com/zetacomponents",
|
||||
"time": "2014-09-27 19:26:09"
|
||||
"time": "2014-09-27T19:26:09+00:00"
|
||||
},
|
||||
{
|
||||
"name": "zetacomponents/document",
|
||||
@@ -2198,7 +2001,7 @@
|
||||
],
|
||||
"description": "The Document components provides a general conversion framework for different semantic document markup languages like XHTML, Docbook, RST and similar.",
|
||||
"homepage": "https://github.com/zetacomponents",
|
||||
"time": "2013-12-19 11:40:00"
|
||||
"time": "2013-12-19T11:40:00+00:00"
|
||||
},
|
||||
{
|
||||
"name": "zetacomponents/workflow",
|
||||
@@ -2264,7 +2067,7 @@
|
||||
],
|
||||
"description": "The purpose of the Workflow component is to provide the core functionality of an activity-based workflow system including the definition and execution of workflow specifications.",
|
||||
"homepage": "https://github.com/zetacomponents",
|
||||
"time": "2014-09-27 19:26:10"
|
||||
"time": "2014-09-27T19:26:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "zetacomponents/workflow-database-tiein",
|
||||
@@ -2331,7 +2134,7 @@
|
||||
],
|
||||
"description": "Contains the database backend for the Workflow component.",
|
||||
"homepage": "https://github.com/zetacomponents",
|
||||
"time": "2014-09-27 19:26:10"
|
||||
"time": "2014-09-27T19:26:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "zetacomponents/workflow-event-log-tiein",
|
||||
@@ -2391,10 +2194,206 @@
|
||||
],
|
||||
"description": "Contains the EventLog listener for the Workflow component.",
|
||||
"homepage": "https://github.com/zetacomponents",
|
||||
"time": "2007-12-17 09:04:44"
|
||||
"time": "2007-12-17T09:04:44+00:00"
|
||||
}
|
||||
],
|
||||
"packages-dev": [
|
||||
{
|
||||
"name": "blueimp/jquery-file-upload",
|
||||
"version": "v9.14.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/vkhramtsov/jQuery-File-Upload.git",
|
||||
"reference": "71d67a9c277e29efcf5935cd2409009c0f841a57"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/vkhramtsov/jQuery-File-Upload/zipball/71d67a9c277e29efcf5935cd2409009c0f841a57",
|
||||
"reference": "71d67a9c277e29efcf5935cd2409009c0f841a57",
|
||||
"shasum": ""
|
||||
},
|
||||
"type": "library",
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Sebastian Tschan",
|
||||
"homepage": "https://blueimp.net"
|
||||
}
|
||||
],
|
||||
"description": "File Upload widget for jQuery.",
|
||||
"homepage": "https://github.com/blueimp/jQuery-File-Upload",
|
||||
"keywords": [
|
||||
"bootstrap",
|
||||
"chunk",
|
||||
"cross-domain",
|
||||
"cross-site",
|
||||
"drag",
|
||||
"drop",
|
||||
"file",
|
||||
"gae",
|
||||
"go",
|
||||
"jquery",
|
||||
"multiple",
|
||||
"php",
|
||||
"preview",
|
||||
"progress",
|
||||
"python",
|
||||
"resume",
|
||||
"selection",
|
||||
"upload",
|
||||
"widget"
|
||||
],
|
||||
"time": "2016-11-21T05:38:19+00:00"
|
||||
},
|
||||
{
|
||||
"name": "components/font-awesome",
|
||||
"version": "4.7.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/components/font-awesome.git",
|
||||
"reference": "885308b939369d147bec93174722786bc2c4eedd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/components/font-awesome/zipball/885308b939369d147bec93174722786bc2c4eedd",
|
||||
"reference": "885308b939369d147bec93174722786bc2c4eedd",
|
||||
"shasum": ""
|
||||
},
|
||||
"type": "component",
|
||||
"extra": {
|
||||
"component": {
|
||||
"styles": [
|
||||
"css/font-awesome.css"
|
||||
],
|
||||
"files": [
|
||||
"css/font-awesome.min.css",
|
||||
"css/font-awesome.css.map",
|
||||
"fonts/*"
|
||||
]
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT",
|
||||
"OFL-1.1"
|
||||
],
|
||||
"description": "The iconic font designed for use with Twitter Bootstrap.",
|
||||
"time": "2016-10-25T10:56:23+00:00"
|
||||
},
|
||||
{
|
||||
"name": "compwright/codeigniter-installers",
|
||||
"version": "1.1.4",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/compwright/codeigniter-installers.git",
|
||||
"reference": "adbbd5ae2cbf5a24a39931235b1ac7dab56abb4f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/compwright/codeigniter-installers/zipball/adbbd5ae2cbf5a24a39931235b1ac7dab56abb4f",
|
||||
"reference": "adbbd5ae2cbf5a24a39931235b1ac7dab56abb4f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require-dev": {
|
||||
"composer/composer": "1.0.*@dev"
|
||||
},
|
||||
"type": "composer-installer",
|
||||
"extra": {
|
||||
"class": "Composer\\Installer\\CodeigniterInstaller"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Composer\\Installer": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jonathon Hill",
|
||||
"email": "jhill9693@gmail.com",
|
||||
"homepage": "http://jonathonhill.net",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Composer installers for CodeIgniter",
|
||||
"homepage": "https://github.com/compwright/codeigniter-installers",
|
||||
"keywords": [
|
||||
"MX",
|
||||
"codeigniter",
|
||||
"composer",
|
||||
"core",
|
||||
"hmvc",
|
||||
"installer",
|
||||
"library",
|
||||
"module",
|
||||
"spark",
|
||||
"sparks"
|
||||
],
|
||||
"time": "2012-11-12T16:11:38+00:00"
|
||||
},
|
||||
{
|
||||
"name": "rogeriopradoj/codeigniter-curl",
|
||||
"version": "1.2.2",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/rogeriopradoj/codeigniter-curl.git",
|
||||
"reference": "eb954890e242a5e80812006e60b07f1ce29b7e7a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/rogeriopradoj/codeigniter-curl/zipball/eb954890e242a5e80812006e60b07f1ce29b7e7a",
|
||||
"reference": "eb954890e242a5e80812006e60b07f1ce29b7e7a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"compwright/codeigniter-installers": "*"
|
||||
},
|
||||
"type": "codeigniter-spark",
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Rogerio Prado de Jesus",
|
||||
"email": "rogeriopradoj@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "codeigniter-curl philsturgeon's library via composer",
|
||||
"time": "2013-05-27T21:19:21+00:00"
|
||||
},
|
||||
{
|
||||
"name": "rogeriopradoj/codeigniter-restclient",
|
||||
"version": "2.1.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/rogeriopradoj/codeigniter-restclient.git",
|
||||
"reference": "64991a0105c3cd891a64e1d35e497270ca2b0d78"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/rogeriopradoj/codeigniter-restclient/zipball/64991a0105c3cd891a64e1d35e497270ca2b0d78",
|
||||
"reference": "64991a0105c3cd891a64e1d35e497270ca2b0d78",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"compwright/codeigniter-installers": "*",
|
||||
"rogeriopradoj/codeigniter-curl": "*"
|
||||
},
|
||||
"type": "codeigniter-spark",
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"authors": [
|
||||
{
|
||||
"name": "Rogerio Prado de Jesus",
|
||||
"email": "rogeriopradoj@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "codeigniter-restclient philsturgeon's library via composer",
|
||||
"time": "2013-05-27T21:23:54+00:00"
|
||||
},
|
||||
{
|
||||
"name": "squizlabs/php_codesniffer",
|
||||
"version": "2.7.1",
|
||||
@@ -2471,7 +2470,7 @@
|
||||
"phpcs",
|
||||
"standards"
|
||||
],
|
||||
"time": "2016-11-30 04:02:31"
|
||||
"time": "2016-11-30T04:02:31+00:00"
|
||||
}
|
||||
],
|
||||
"aliases": [],
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -70,6 +70,7 @@ define('CIS_GESAMTNOTE_GEWICHTUNG', true);
|
||||
define('CIS_GESAMTNOTE_PRUEFUNG_TERMIN2',true);
|
||||
|
||||
// Bei Gesamtnote eine zusaetzliche Spalte fuer den 3. Termin anzeigen
|
||||
// Erfordert den Eintrag "Termin3" in der Tabelle lehre.tbl_pruefungstyp
|
||||
define('CIS_GESAMTNOTE_PRUEFUNG_TERMIN3',true);
|
||||
|
||||
// Bei Gesamtnote eine zusaetzliche Spalte fuer die kommissionelle Pruefung anlegen
|
||||
@@ -146,15 +147,6 @@ define('REIHUNGSTEST_CHECK', true);
|
||||
// Bei Statuswechsel auf Bewerber bzw. Student -> soll ZGV brücksichtigt werden
|
||||
define('ZGV_CHECK', true);
|
||||
|
||||
/* Schema zur Erstellung der Kurs Kategorien im Moodle
|
||||
* Leer oder nicht gesetzt: STSEM -> STG -> Ausbsemester (WS2014 -> BEL -> 1)
|
||||
* DEP-STG-JG-STSEM: Department -> STG -> Jahrgang -> StSem (Informationstechnologie und Informationsmanagement -> BIMK -> Jahrgang 2014 -> WS2014)
|
||||
*/
|
||||
define('MOODLE_COURSE_SCHEMA','');
|
||||
|
||||
// Legt fst ob Fachbereichsleiter zu Moodle Kursen zugeteilt werden (mit Benutzerdefinierter Rolle 11)
|
||||
define('MOODLE_SYNC_FACHBEREICHSLEITUNG',false);
|
||||
|
||||
// Bei Statuswechsel auf Bewerber -> bei true wird email (INFOMAIL_BEWERBER) an den Bewerber geschickt
|
||||
define('SEND_BEWERBER_INFOMAIL', false);
|
||||
|
||||
|
||||
@@ -155,11 +155,6 @@ define('MANTIS_PFAD','http://www.example.com/mantis/api/soap/mantisconnect.php?w
|
||||
define('MANTIS_USERNAME',(isset($_SERVER['PHP_AUTH_USER'])?$_SERVER['PHP_AUTH_USER']:''));
|
||||
define('MANTIS_PASSWORT',(isset($_SERVER['PHP_AUTH_PW'])?$_SERVER['PHP_AUTH_PW']:''));
|
||||
|
||||
// ***** Moodle *****
|
||||
define('MOODLE_PATH','http://www.technikum-wien.at/moodle/'); // DEPRECATED
|
||||
define("CONN_STRING_MOODLE","host=localhost dbname=bla user=bla password=bla"); // nur für Moodle 1.9
|
||||
define('MOODLE_TOKEN24','');
|
||||
|
||||
//Name der aktiven Addons getrennt mit ;
|
||||
define('ACTIVE_ADDONS','');
|
||||
|
||||
|
||||
@@ -1346,27 +1346,14 @@ if(!$error)
|
||||
}
|
||||
else
|
||||
{
|
||||
//Loeschen verhindern wenn ein MoodleKurs existiert
|
||||
$qry = "SELECT 1 FROM lehre.tbl_moodle WHERE lehreinheit_id=".$db->db_add_param($_POST['lehreinheit_id'], FHC_INTEGER);
|
||||
if($db->db_query($qry))
|
||||
if ($leDAO->delete($_POST['lehreinheit_id']))
|
||||
{
|
||||
if($db->db_num_rows()>0)
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Lehreinheit kann nicht geloescht werden, da dazu bereits ein Moodle-Kurs angelegt wurde';
|
||||
}
|
||||
else
|
||||
{
|
||||
if ($leDAO->delete($_POST['lehreinheit_id']))
|
||||
{
|
||||
$return = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Fehler beim Loeschen der Lehreinheit '.$leDAO->errormsg;
|
||||
}
|
||||
}
|
||||
$return = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$return = false;
|
||||
$errormsg = 'Fehler beim Loeschen der Lehreinheit '.$leDAO->errormsg;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -409,7 +409,8 @@ if (!isset($_REQUEST["archive"]))
|
||||
$buffer = $proc->transformToXml($xml_doc);
|
||||
//echo $buffer;
|
||||
//exit;
|
||||
$tempfolder = '/tmp/'.uniqid();
|
||||
$tmp = sys_get_temp_dir();
|
||||
$tempfolder = $tmp.'/FHC'.uniqid();
|
||||
mkdir($tempfolder);
|
||||
chdir($tempfolder);
|
||||
file_put_contents('content.xml', $buffer);
|
||||
@@ -672,7 +673,8 @@ else
|
||||
$buffer = $proc->transformToXml($xml_doc);
|
||||
//echo $buffer;
|
||||
//exit;
|
||||
$tempfolder = '/tmp/'.uniqid();
|
||||
$tmp = sys_get_temp_dir();
|
||||
$tempfolder = $tmp.'/FHC'.uniqid();
|
||||
mkdir($tempfolder);
|
||||
chdir($tempfolder);
|
||||
file_put_contents('content.xml', $buffer);
|
||||
@@ -766,7 +768,8 @@ else
|
||||
{
|
||||
echo('Failed to generate PDF');
|
||||
}
|
||||
$file = "/tmp/".$filename.".pdf";
|
||||
$tmp = sys_get_temp_dir();
|
||||
$file = $tmp."/FHC".$filename.".pdf";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1059,17 +1059,17 @@ class benutzerberechtigung extends basis_db
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Laedt die Benutzer zu einer Berechtigung. Wenn $inklusiveRollen true ist (default), wird ein UNION mit der tbl_rolleberechtigung ausgefuehrt
|
||||
*
|
||||
*
|
||||
* @param string $berechtigung_kurzbz Kurzbezeichnung der Berechtigung, deren Rollen geladen werden sollen
|
||||
* @param boolean $inklusiveRollen Default TRUE. Wenn true, wird ein UNION SELECT mit der tbl_rolleberechtigung ausgefuehrt
|
||||
* @return boolean true wenn ok, false im Fehlerfall
|
||||
* @return boolean true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function getBenutzerFromBerechtigung($berechtigung_kurzbz, $inklusiveRollen = true)
|
||||
public function getBenutzerFromBerechtigung($berechtigung_kurzbz, $inklusiveRollen = true, $oe_kurzbz = null)
|
||||
{
|
||||
$qry = "SELECT
|
||||
$qry = "SELECT
|
||||
benutzerberechtigung_id,
|
||||
rolle_kurzbz,
|
||||
funktion_kurzbz,
|
||||
@@ -1078,11 +1078,16 @@ class benutzerberechtigung extends basis_db
|
||||
berechtigung_kurzbz,
|
||||
start,
|
||||
ende
|
||||
FROM
|
||||
system.tbl_benutzerrolle
|
||||
WHERE
|
||||
FROM
|
||||
system.tbl_benutzerrolle
|
||||
WHERE
|
||||
berechtigung_kurzbz = ".$this->db_add_param($berechtigung_kurzbz);
|
||||
|
||||
|
||||
if(!is_null($oe_kurzbz))
|
||||
{
|
||||
$qry.=" AND oe_kurzbz=".$this->db_add_param($oe_kurzbz);
|
||||
}
|
||||
|
||||
if ($inklusiveRollen == true)
|
||||
{
|
||||
$qry .= " UNION SELECT
|
||||
@@ -1126,7 +1131,7 @@ class benutzerberechtigung extends basis_db
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Laedt die Benutzer zu einer Rolle.
|
||||
*
|
||||
@@ -1143,13 +1148,13 @@ class benutzerberechtigung extends basis_db
|
||||
rolle_kurzbz = ".$this->db_add_param($rolle_kurzbz);
|
||||
|
||||
$qry.= " ORDER BY rolle_kurzbz NULLS LAST, funktion_kurzbz NULLS LAST, uid";
|
||||
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$obj = new benutzerberechtigung();
|
||||
|
||||
|
||||
$obj->benutzerberechtigung_id = $row->benutzerberechtigung_id;
|
||||
$obj->rolle_kurzbz = $row->rolle_kurzbz;
|
||||
$obj->berechtigung_kurzbz = $row->berechtigung_kurzbz;
|
||||
@@ -1167,7 +1172,7 @@ class benutzerberechtigung extends basis_db
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->kostenstelle_id = $row->kostenstelle_id;
|
||||
$obj->anmerkung = $row->anmerkung;
|
||||
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
|
||||
@@ -36,6 +36,7 @@ class dokument_export
|
||||
private $images=array();
|
||||
private $sourceDir;
|
||||
public $errormsg;
|
||||
private $unoconv_version;
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
@@ -45,6 +46,12 @@ class dokument_export
|
||||
if(!isset($vorlage))
|
||||
return;
|
||||
|
||||
exec('unoconv --version',$ret_arr);
|
||||
if(isset($ret_arr[0]))
|
||||
$this->unoconv_version = explode(' ',$ret_arr[0])[1];
|
||||
else
|
||||
die('Unoconv not found');
|
||||
|
||||
//Vorlage aus der Datenbank holen
|
||||
$this->vorlage = new vorlage();
|
||||
if(!$this->vorlage->getAktuelleVorlage($oe_kurzbz, $vorlage, $version))
|
||||
@@ -261,7 +268,14 @@ class dokument_export
|
||||
case 'doc':
|
||||
$this->temp_filename = $this->temp_folder . '/out.' . $this->outputformat;
|
||||
|
||||
$command = 'unoconv -e IsSkipEmptyPages=false -f ' . $this->outputformat . ' --output %s %s 2>&1';
|
||||
// Unoconv Version 0.6 hat eine Bug wodurch die Berechtigungen des PDF/Doc nicht korrekt gesetzt
|
||||
// werden. Deshalb wird dies hier speziell behandelt.
|
||||
// Die 2. Variante hat den Vorteil dass hier eine bessere Fehlerbehandlung moeglich ist
|
||||
if($this->unoconv_version=='0.6')
|
||||
$command = 'unoconv -e IsSkipEmptyPages=false -f ' . $this->outputformat . ' %2$s > %1$s';
|
||||
else
|
||||
$command = 'unoconv -e IsSkipEmptyPages=false -f ' . $this->outputformat . ' --output %s %s 2>&1';
|
||||
|
||||
$command = sprintf($command, $this->temp_filename, $tempname_zip);
|
||||
|
||||
exec($command, $out, $ret);
|
||||
@@ -411,7 +425,10 @@ class dokument_export
|
||||
*/
|
||||
public function convert($inFile, $outFile, $format = "pdf")
|
||||
{
|
||||
$command = 'unoconv -f %s --output %s %s 2>&1';
|
||||
if($this->unoconv_version=='0.6')
|
||||
$command = 'unoconv -f %1$s %3$s > %2$s';
|
||||
else
|
||||
$command = 'unoconv -f %s --output %s %s 2>&1';
|
||||
$command = sprintf($command, $format, $outFile, $inFile);
|
||||
|
||||
exec($command, $out, $ret);
|
||||
|
||||
@@ -1056,42 +1056,6 @@ class lehrveranstaltung extends basis_db
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert alle Moodlekurs Ids
|
||||
* @param $lehrveranstaltung_id Id der Lehrveranstaltung
|
||||
* @param $semester Semester
|
||||
* @return array mit Moodlekurs Ids oder false=fehler
|
||||
*/
|
||||
public function getMoodleKurse($lehrveranstaltung_id, $semester)
|
||||
{
|
||||
if ($lehrveranstaltung_id == '' || $semester == '')
|
||||
{
|
||||
$this->errormsg = 'Id und Semester muss übergeben werden.';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "SELECT mdl_course_id FROM lehre.tbl_moodle
|
||||
WHERE studiensemester_kurzbz = " . $this->db_add_param($semester) . "
|
||||
AND (lehrveranstaltung_id = " . $this->db_add_param($lehrveranstaltung_id) . "
|
||||
OR lehreinheit_id IN(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit WHERE lehrveranstaltung_id = " . $this->db_add_param($lehrveranstaltung_id) . "));";
|
||||
|
||||
$moodleArray = array();
|
||||
|
||||
if ($result = $this->db_query($qry))
|
||||
{
|
||||
while ($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$moodleArray[] = $row->mdl_course_id;
|
||||
}
|
||||
return $moodleArray;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Moodlekurs konnte nicht geladen werden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die LVs die als Array uebergeben werden
|
||||
* @param $ids Array mit den LV ids
|
||||
|
||||
@@ -1,402 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2013 FH Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at>
|
||||
* Karl Burkhart <burkhart@technikum-wien.at>
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
class moodle extends basis_db
|
||||
{
|
||||
public $result = array();
|
||||
|
||||
public $moodle_id;
|
||||
public $mdl_course_id;
|
||||
public $lehreinheit_id;
|
||||
public $lehrveranstaltung_id;
|
||||
public $studiensemester_kurzbz;
|
||||
public $insertamum;
|
||||
public $insertvon;
|
||||
public $gruppen;
|
||||
public $moodle_version;
|
||||
|
||||
public $version;
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
*
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->getVersionen();
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
public function load($moodle_id)
|
||||
{
|
||||
$qry = "SELECT * FROM lehre.tbl_moodle WHERE moodle_id =".$this->db_add_param($moodle_id, FHC_INTEGER).';';
|
||||
|
||||
if($result=$this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$this->moodle_id = $row->moodle_id;
|
||||
$this->mdl_course_id = $row->mdl_course_id;
|
||||
$this->lehreinheit_id = $row->lehreinheit_id;
|
||||
$this->lehrveranstaltung_id = $row->lehrveranstaltung_id;
|
||||
$this->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
$this->insertamum = $row->insertamum;
|
||||
$this->insertvon = $row->insertvon;
|
||||
$this->gruppen = $this->db_parse_bool($row->gruppen);
|
||||
$this->moodle_version = $row->moodle_version;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Kein Moodleeintrag gefunden";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg="Fehler bei der Abfrage aufgetreten";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt alle Moodlekurse zu einer LV/Stsem
|
||||
* plus die Moodlekurse die auf dessen LE haengen
|
||||
*
|
||||
* @param lehrveranstaltung_id
|
||||
* @param studiensemester_kurzbz
|
||||
*
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function getAll($lehrveranstaltung_id, $studiensemester_kurzbz)
|
||||
{
|
||||
$qry = "SELECT
|
||||
distinct on(mdl_course_id) *
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_moodle
|
||||
WHERE
|
||||
tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id
|
||||
AND tbl_lehrveranstaltung.lehrveranstaltung_id = ".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
AND ((tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_moodle.lehrveranstaltung_id
|
||||
AND tbl_moodle.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz)
|
||||
OR
|
||||
(tbl_lehreinheit.lehreinheit_id=tbl_moodle.lehreinheit_id))";
|
||||
|
||||
if($result=$this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new stdClass();
|
||||
|
||||
$obj->moodle_id = $row->moodle_id;
|
||||
$obj->mdl_course_id = $row->mdl_course_id;
|
||||
$obj->lehreinheit_id = $row->lehreinheit_id;
|
||||
$obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
|
||||
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->gruppen = $this->db_parse_bool($row->gruppen);
|
||||
$obj->moodle_version = $row->moodle_version;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gibt alle Moodlekurseinträge der Zwischentabelle für übergebenen Studiengang und Semester zurück
|
||||
* @param type $studiengang_kz
|
||||
* @param type $studiensemester
|
||||
*/
|
||||
public function getAllMoodleForStudiengang($studiengang_kz, $studiensemester, $version='2.4')
|
||||
{
|
||||
$qry = '
|
||||
|
||||
SELECT mdl_course_id, moodle.moodle_id, moodle.lehreinheit_id, moodle.lehrveranstaltung_id, moodle.studiensemester_kurzbz, moodle.insertamum, moodle.insertvon, gruppen, moodle_version FROM lehre.tbl_moodle moodle
|
||||
JOIN lehre.tbl_lehrveranstaltung lv USING(lehrveranstaltung_id)
|
||||
WHERE moodle.studiensemester_kurzbz = '.$this->db_add_param($studiensemester).'
|
||||
AND lv.studiengang_kz ='.$this->db_add_param($studiengang_kz).'
|
||||
AND moodle_version ='.$this->db_add_param($version).'
|
||||
AND moodle.lehreinheit_id is null
|
||||
|
||||
UNION
|
||||
|
||||
SELECT distinct on(mdl_course_id) mdl_course_id, moodle.moodle_id, moodle.lehreinheit_id, moodle.lehrveranstaltung_id, moodle.studiensemester_kurzbz, moodle.insertamum, moodle.insertvon, gruppen, moodle_version FROM lehre.tbl_moodle moodle
|
||||
JOIN lehre.tbl_lehreinheit le ON(moodle.lehreinheit_id = le.lehreinheit_id)
|
||||
JOIN lehre.tbl_lehrveranstaltung lv ON(le.lehrveranstaltung_id = lv.lehrveranstaltung_id)
|
||||
WHERE moodle.studiensemester_kurzbz = '.$this->db_add_param($studiensemester).'
|
||||
AND lv.studiengang_kz ='.$this->db_add_param($studiengang_kz).'
|
||||
AND moodle_version ='.$this->db_add_param($version).'
|
||||
AND moodle.lehrveranstaltung_id is null
|
||||
';
|
||||
|
||||
if($result=$this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$obj = new stdClass();
|
||||
|
||||
$obj->moodle_id = $row->moodle_id;
|
||||
$obj->mdl_course_id = $row->mdl_course_id;
|
||||
$obj->lehreinheit_id = $row->lehreinheit_id;
|
||||
$obj->lehrveranstaltung_id = $row->lehrveranstaltung_id;
|
||||
$obj->studiensemester_kurzbz = $row->studiensemester_kurzbz;
|
||||
$obj->insertamum = $row->insertamum;
|
||||
$obj->insertvon = $row->insertvon;
|
||||
$obj->gruppen = $this->db_parse_bool($row->gruppen);
|
||||
$obj->moodle_version = $row->moodle_version;
|
||||
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Daten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Löscht den Zuordnungseintrag in der Moodletablle
|
||||
* @param type $moodle_id
|
||||
*/
|
||||
public function deleteZuordnung($mdl_course_id)
|
||||
{
|
||||
$qry = "DELETE FROM lehre.tbl_moodle WHERE mdl_course_id=".$this->db_add_param($mdl_course_id, FHC_INTEGER).';';
|
||||
|
||||
if($result=$this->db_query($qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg="Fehler beim Löschen der Daten";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gibt alle LE Ids der Übergebenen Moodle_Course_ID zurück
|
||||
*/
|
||||
public function getLeFromCourse($moodle_course_id)
|
||||
{
|
||||
$qry = "SELECT lehreinheit_id FROM lehre.tbl_moodle WHERE mdl_course_id =".$this->db_add_param($moodle_course_id, FHC_INTEGER).';';
|
||||
$le = array();
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$le[] = $row->lehreinheit_id;
|
||||
}
|
||||
}
|
||||
return $le;
|
||||
}
|
||||
|
||||
/**
|
||||
* Schaut ob fuer diese LV/StSem schon ein
|
||||
* Moodle Kurs existiert
|
||||
*
|
||||
* @param lehrveranstaltung_id
|
||||
* @param studiensemester_kurzbz
|
||||
* @return true wenn vorhanden, false wenn nicht
|
||||
*/
|
||||
public function course_exists_for_lv($lehrveranstaltung_id, $studiensemester_kurzbz)
|
||||
{
|
||||
$qry = "SELECT
|
||||
1
|
||||
FROM
|
||||
lehre.tbl_moodle
|
||||
WHERE
|
||||
lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
|
||||
AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($this->db_num_rows()>0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Schaut ob fuer diese LE schon ein Moodle
|
||||
* Kurs existiert
|
||||
* @param lehreinheit_id
|
||||
* @return true wenn vorhanden, false wenn nicht
|
||||
*/
|
||||
public function course_exists_for_le($lehreinheit_id)
|
||||
{
|
||||
$qry = "SELECT 1 FROM lehre.tbl_moodle WHERE lehreinheit_id=".$this->db_add_param($lehreinheit_id, FHC_INTEGER);
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($this->db_num_rows()>0)
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Prueft ob fuer alle Lehreinheiten dieser LV bereits ein Moodlekurs existiert
|
||||
*
|
||||
* @param lehrveranstaltung_id
|
||||
* @param studiensemester_kurzbz
|
||||
* @return true wenn vorhanden, false wenn nicht
|
||||
*/
|
||||
public function course_exists_for_allLE($lehrveranstaltung_id, $studiensemester_kurzbz)
|
||||
{
|
||||
$qry = "SELECT 1 FROM lehre.tbl_lehreinheit
|
||||
WHERE
|
||||
lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
|
||||
AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
AND lehreinheit_id NOT IN (
|
||||
SELECT lehreinheit_id FROM lehre.tbl_moodle
|
||||
WHERE lehreinheit_id=tbl_lehreinheit.lehreinheit_id)";
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($this->db_num_rows()>0)
|
||||
return false;
|
||||
else
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler bei einer Datenbankabfrage';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die Moodle Versionsinformationen
|
||||
*/
|
||||
public function getVersionen()
|
||||
{
|
||||
$qry = "SELECT * FROM lehre.tbl_moodle_version";
|
||||
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
$this->version[$row->moodle_version]['bezeichnung']=$row->bezeichnung;
|
||||
$this->version[$row->moodle_version]['pfad']=$row->pfad;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Versionsdaten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert den Pfad zur Moodle Installation
|
||||
* @param version Versionsnummer
|
||||
* @return pfad (URL) zur Moodle Installation
|
||||
*/
|
||||
public function getPfad($version)
|
||||
{
|
||||
if(isset($this->version[$version]['pfad']))
|
||||
return $this->version[$version]['pfad'];
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Liefert alle Kurse dieser LV zu denen der Student
|
||||
* zugeteilt ist
|
||||
*
|
||||
* @param lehrveranstaltung_id
|
||||
* @param studiensemester_kurzbz
|
||||
* @param student_uid
|
||||
* @return array mit Moodle Kurs IDs
|
||||
*/
|
||||
public function getCourse($lehrveranstaltung_id, $studiensemester_kurzbz, $student_uid)
|
||||
{
|
||||
//alle betreffenden Kurse holen
|
||||
$qry = "SELECT
|
||||
tbl_lehreinheit.lehreinheit_id, mdl_course_id, tbl_moodle.moodle_version
|
||||
FROM
|
||||
lehre.tbl_moodle
|
||||
JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id, studiensemester_kurzbz)
|
||||
WHERE
|
||||
tbl_moodle.lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
|
||||
AND tbl_moodle.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz)."
|
||||
UNION
|
||||
SELECT
|
||||
tbl_lehreinheit.lehreinheit_id, mdl_course_id, tbl_moodle.moodle_version
|
||||
FROM
|
||||
lehre.tbl_moodle
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
WHERE
|
||||
tbl_lehreinheit.lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
|
||||
|
||||
$courses = array();
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object($result))
|
||||
{
|
||||
//schauen in welchen Kursen der Student ist
|
||||
$qry = "SELECT 1 FROM campus.vw_student_lehrveranstaltung
|
||||
WHERE
|
||||
uid=".$this->db_add_param($student_uid)."
|
||||
AND lehreinheit_id=".$this->db_add_param($row->lehreinheit_id, FHC_INTEGER);
|
||||
|
||||
if($result_vw = $this->db_query($qry))
|
||||
{
|
||||
if($this->db_num_rows($result_vw)>0)
|
||||
{
|
||||
if(!array_key_exists($row->mdl_course_id, $courses))
|
||||
{
|
||||
$obj = new stdClass();
|
||||
$obj->mdl_course_id = $row->mdl_course_id;
|
||||
$obj->moodle_version = $row->moodle_version;
|
||||
$this->result[] = $obj;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,788 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2006 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
/*
|
||||
* requires moodle_course.class.php
|
||||
* studiengang.class.php
|
||||
*
|
||||
* Klasse zur Kommunikation mit Moodle 1.9
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
|
||||
class moodle19_user extends basis_db
|
||||
{
|
||||
private $conn_moodle;
|
||||
public $log=''; //log message fuer Syncro
|
||||
public $log_public=''; //log message fuer Syncro
|
||||
public $sync_create=0; //anzahl der durchgefuehrten zuteilungen beim syncro
|
||||
public $group_update=0; //anzahl der updates an gruppen
|
||||
|
||||
public $mdl_user_id;
|
||||
public $mdl_user_username;
|
||||
public $mdl_user_firstname;
|
||||
public $mdl_user_lastname;
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
if(!$this->conn_moodle=pg_pconnect(CONN_STRING_MOODLE))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Herstellen der Moodle Verbindung';
|
||||
return false;
|
||||
}
|
||||
else
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt einen Moodle User
|
||||
*
|
||||
* @param $uid
|
||||
* @return boolean
|
||||
*/
|
||||
public function loaduser($uid)
|
||||
{
|
||||
$qry = "SELECT * FROM public.mdl_user WHERE username='".addslashes($uid)."'";
|
||||
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->mdl_user_id = $row->id;
|
||||
$this->mdl_user_username = $row->username;
|
||||
$this->mdl_user_firstname = $row->firstname;
|
||||
$this->mdl_user_lastname = $row->lastname;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'User wurde nicht gefunden: '.$uid;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Users';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert ein Array mit allen Lektoren die
|
||||
* zu dem Moodle Kurs zugeteilt sind
|
||||
*/
|
||||
public function getMitarbeiter($mdl_course_id)
|
||||
{
|
||||
//Mitarbeiter laden die zu diesem Kurs zugeteilt sind
|
||||
$qry = "SELECT
|
||||
mitarbeiter_uid
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_moodle USING(lehreinheit_id)
|
||||
WHERE
|
||||
moodle_version='1.9'
|
||||
AND mdl_course_id='".addslashes($mdl_course_id)."'
|
||||
UNION
|
||||
SELECT
|
||||
mitarbeiter_uid
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN lehre.tbl_moodle USING(lehrveranstaltung_id)
|
||||
WHERE
|
||||
moodle_version='1.9'
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz=tbl_moodle.studiensemester_kurzbz
|
||||
AND mdl_course_id='".addslashes($mdl_course_id)."'";
|
||||
$mitarbeiter=array();
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row_ma = $this->db_fetch_object())
|
||||
{
|
||||
$mitarbeiter[] = $row_ma->mitarbeiter_uid;
|
||||
}
|
||||
return $mitarbeiter;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler beim Laden der Mitarbeiter';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Synchronisiert die Lektoren der Lehreinheiten
|
||||
* mit denen des Moodle Kurses
|
||||
* @param $mdl_course_id ID des MoodleKurses
|
||||
* lehrveranstaltung_id wird nur angegeben beim Syncro von Testkursen
|
||||
* studiensemester_kurzbz wird nur angegeben beim Syncro von Testkursen
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function sync_lektoren($mdl_course_id, $lehrveranstaltung_id=null, $studiensemester_kurzbz=null)
|
||||
{
|
||||
//Mitarbeiter laden die zu diesem Kurs zugeteilt sind
|
||||
if(!is_null($lehrveranstaltung_id) && !is_null($studiensemester_kurzbz))
|
||||
{
|
||||
//Bei Testkursen werden alle Lektoren einer Lehrveranstaltung zugeteilt
|
||||
//da hier kein Eintrag in der tbl_moodle vorhanden ist, werden die Lektoren direkt aus
|
||||
//der tbl_lehreinheitmitarbeiter geholt.
|
||||
$qry = "SELECT mitarbeiter_uid FROM lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
WHERE lehrveranstaltung_id='".addslashes($lehrveranstaltung_id)."'
|
||||
AND studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'";
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = "SELECT
|
||||
mitarbeiter_uid
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_moodle USING(lehreinheit_id)
|
||||
WHERE
|
||||
moodle_version='1.9'
|
||||
AND mdl_course_id='".addslashes($mdl_course_id)."'
|
||||
UNION
|
||||
SELECT
|
||||
mitarbeiter_uid
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN lehre.tbl_moodle USING(lehrveranstaltung_id)
|
||||
WHERE
|
||||
moodle_version='1.9'
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz=tbl_moodle.studiensemester_kurzbz
|
||||
AND mdl_course_id='".addslashes($mdl_course_id)."'";
|
||||
}
|
||||
$mitarbeiter='';
|
||||
if($result_ma = $this->db_query($qry))
|
||||
{
|
||||
//Context des Kurses holen
|
||||
$mdlcourse = new moodle19_course();
|
||||
if(!$mdlcourse->getContext(50, $mdl_course_id))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Contexts';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row_ma = $this->db_fetch_object($result_ma))
|
||||
{
|
||||
//MoodleID des Users holen bzw ggf neu anlegen
|
||||
if(!$this->loaduser($row_ma->mitarbeiter_uid))
|
||||
{
|
||||
//User anlegen
|
||||
if(!$this->createUser($row_ma->mitarbeiter_uid))
|
||||
{
|
||||
$this->errormsg = "Fehler beim Anlegen des Users $row_ma->mitarbeiter_uid: $this->errormsg";
|
||||
return false;
|
||||
}
|
||||
else
|
||||
$this->errormsg = '';
|
||||
}
|
||||
|
||||
if($mitarbeiter!='')
|
||||
$mitarbeiter.=',';
|
||||
$mitarbeiter.=$this->mdl_user_id;
|
||||
|
||||
//Nachschauen ob dieser Lektor bereits zugeteilt ist
|
||||
$qry = "SELECT 1 FROM public.mdl_role_assignments
|
||||
WHERE
|
||||
userid='".addslashes($this->mdl_user_id)."' AND
|
||||
contextid='".addslashes($mdlcourse->mdl_context_id)."'";
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if(pg_num_rows($result)==0)
|
||||
{
|
||||
//Mitarbeiter ist noch nicht zugeteilt.
|
||||
|
||||
if($this->createZuteilung($this->mdl_user_id, $mdlcourse->mdl_context_id, 3))
|
||||
{
|
||||
$this->log.="\nder Lektor $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
|
||||
$this->log_public.="\nder Lektor $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
|
||||
$this->sync_create++;
|
||||
}
|
||||
else
|
||||
$this->log.="\nFehler beim Anlegen der Lektoren-Zuteilung: $this->errormsg";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Rollen';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
//Lektoren loeschen die nicht mehr zugeordnet sind
|
||||
/* Derzeit werden zugeteilte Personen nicht geloescht
|
||||
$qry = "SELECT * FROM mdl_role_assignments
|
||||
WHERE
|
||||
contextid='".addslashes($mdlcourse->mdl_context_id)."' AND
|
||||
userid NOT in ($mitarbeiter)";
|
||||
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->deleteZuteilung($row->userid, $mdlcourse->mdl_context_id);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln der Lektoren die nicht mehr zugeteilt sind';
|
||||
return false;
|
||||
}
|
||||
*/
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln der Zugeteilten Lektoren';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Synchronisiert die Studenten der Lehreinheiten
|
||||
* mit denen des Moodle Kurses
|
||||
* @param $mdl_course_id ID des MoodleKurses
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function sync_studenten($mdl_course_id)
|
||||
{
|
||||
//Studentengruppen laden die zu diesem Kurs zugeteilt sind
|
||||
$qry = "SELECT
|
||||
studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, tbl_moodle.studiensemester_kurzbz, tbl_moodle.gruppen
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe JOIN lehre.tbl_moodle USING(lehreinheit_id)
|
||||
WHERE
|
||||
moodle_version='1.9'
|
||||
AND mdl_course_id='".addslashes($mdl_course_id)."'
|
||||
UNION
|
||||
SELECT
|
||||
studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, tbl_moodle.studiensemester_kurzbz, tbl_moodle.gruppen
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN lehre.tbl_moodle USING(lehrveranstaltung_id)
|
||||
WHERE
|
||||
moodle_version='1.9'
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz=tbl_moodle.studiensemester_kurzbz
|
||||
AND mdl_course_id='".addslashes($mdl_course_id)."'";
|
||||
$studenten='';
|
||||
if($result_std = $this->db_query($qry))
|
||||
{
|
||||
//Context des Kurses holen
|
||||
$mdlcourse = new moodle19_course();
|
||||
if(!$mdlcourse->getContext(50, $mdl_course_id))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Contexts';
|
||||
return false;
|
||||
}
|
||||
|
||||
while($row_std = $this->db_fetch_object($result_std))
|
||||
{
|
||||
//Schauen ob fuer diesen Kurs die Gruppen mitgesynct werden sollen
|
||||
$gruppensync = $row_std->gruppen=='t'?true:false;
|
||||
|
||||
//Studenten dieser Gruppe holen
|
||||
|
||||
if($row_std->gruppe_kurzbz=='') //LVB Gruppe
|
||||
{
|
||||
$qry = "SELECT
|
||||
distinct student_uid
|
||||
FROM
|
||||
public.tbl_studentlehrverband
|
||||
WHERE
|
||||
studiensemester_kurzbz='".addslashes($row_std->studiensemester_kurzbz)."' AND
|
||||
studiengang_kz = '".addslashes($row_std->studiengang_kz)."' AND
|
||||
semester = '".addslashes($row_std->semester)."'";
|
||||
if(trim($row_std->verband)!='')
|
||||
{
|
||||
$qry.=" AND verband = '$row_std->verband'";
|
||||
if(trim($row_std->gruppe)!='')
|
||||
{
|
||||
$qry.=" AND gruppe = '$row_std->gruppe'";
|
||||
}
|
||||
}
|
||||
$studiengang_obj = new studiengang();
|
||||
$studiengang_obj->load($row_std->studiengang_kz);
|
||||
$gruppenbezeichnung = $studiengang_obj->kuerzel.'-'.trim($row_std->semester).trim($row_std->verband).trim($row_std->gruppe);
|
||||
}
|
||||
else //Spezialgruppe
|
||||
{
|
||||
$qry = "SELECT
|
||||
distinct uid as student_uid
|
||||
FROM
|
||||
public.tbl_benutzergruppe
|
||||
WHERE
|
||||
gruppe_kurzbz='".addslashes($row_std->gruppe_kurzbz)."' AND
|
||||
studiensemester_kurzbz='".addslashes($row_std->studiensemester_kurzbz)."'";
|
||||
$gruppenbezeichnung = $row_std->gruppe_kurzbz;
|
||||
}
|
||||
|
||||
if($result_user = $this->db_query($qry))
|
||||
{
|
||||
while($row_user = $this->db_fetch_object($result_user))
|
||||
{
|
||||
//MoodleID des Users holen bzw ggf neu anlegen
|
||||
if(!$this->loaduser($row_user->student_uid))
|
||||
{
|
||||
//User anlegen
|
||||
if(!$this->createUser($row_user->student_uid))
|
||||
{
|
||||
$this->errormsg = "Fehler beim Anlegen des Users $row_user->student_uid: $this->errormsg";
|
||||
return false;
|
||||
}
|
||||
else
|
||||
$this->errormsg = '';
|
||||
}
|
||||
|
||||
if($studenten!='')
|
||||
$studenten.=',';
|
||||
$studenten.=$this->mdl_user_id;
|
||||
|
||||
//Nachschauen ob dieser Student bereits zugeteilt ist
|
||||
$qry = "SELECT 1 FROM public.mdl_role_assignments
|
||||
WHERE
|
||||
userid='".addslashes($this->mdl_user_id)."' AND
|
||||
contextid='".addslashes($mdlcourse->mdl_context_id)."'";
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if(pg_num_rows($result)==0)
|
||||
{
|
||||
//Student ist noch nicht zugeteilt.
|
||||
|
||||
if($this->createZuteilung($this->mdl_user_id, $mdlcourse->mdl_context_id, 5))
|
||||
{
|
||||
$this->log.="\nder Student $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
|
||||
$this->log_public.="\nder Student $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
|
||||
$this->sync_create++;
|
||||
}
|
||||
else
|
||||
$this->log.="\nFehler beim Anlegen der Studenten-Zuteilung: $this->errormsg";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Rollen';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Gruppenzuteilung
|
||||
if($gruppensync)
|
||||
{
|
||||
//Schauen ob die Gruppe vorhanden ist
|
||||
if(!$groupid = $this->getGroup($mdl_course_id, $gruppenbezeichnung))
|
||||
{
|
||||
//wenn nicht dann anlegen
|
||||
if(!$groupid = $this->createGroup($mdl_course_id, $gruppenbezeichnung))
|
||||
continue;
|
||||
$this->group_update++;
|
||||
$this->log.="\nes wurde eine neue Gruppe angelgt: $gruppenbezeichnung";
|
||||
$this->log_public.="\nes wurde eine neue Gruppe angelgt: $gruppenbezeichnung";
|
||||
}
|
||||
|
||||
//Schauen ob eine Zuteilung zu dieser Gruppe vorhanden ist
|
||||
if(!$this->getGroupMember($groupid, $this->mdl_user_id))
|
||||
{
|
||||
//wenn nicht dann zuteilen
|
||||
$this->createGroupMember($groupid, $this->mdl_user_id);
|
||||
$this->group_update++;
|
||||
$this->log.="\nder Student $this->mdl_user_firstname $this->mdl_user_lastname wurde der Gruppe $gruppenbezeichnung zugeordnet";
|
||||
$this->log_public.="\nder Student $this->mdl_user_firstname $this->mdl_user_lastname wurde der Gruppe $gruppenbezeichnung zugeordnet";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Studenten loeschen die nicht mehr zugeordnet sind
|
||||
/* Derzeit werden zugeteilte Personen nicht geloescht
|
||||
$qry = "SELECT * FROM mdl_role_assignments
|
||||
WHERE
|
||||
contextid='".addslashes($mdlcourse->mdl_context_id)."' AND
|
||||
userid NOT in ($studenten)";
|
||||
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
while($row = pg_fetch_object($result))
|
||||
{
|
||||
$this->deleteZuteilung($row->userid, $mdlcourse->mdl_context_id);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln der Studenten die nicht mehr zugeteilt sind';
|
||||
return false;
|
||||
}
|
||||
*/
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln der Zugeteilten Studenten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Schaut ob eine Zuteilung von Person zu Gruppe
|
||||
* existiert
|
||||
* @param grouid ID der Gruppe
|
||||
* userid ID des Users
|
||||
* @return ID der Zuteilung
|
||||
*/
|
||||
public function getGroupMember($groupid, $userid)
|
||||
{
|
||||
$qry = "SELECT id FROM public.mdl_groups_members WHERE groupid='".addslashes($groupid)."' AND userid='".addslashes($userid)."'";
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
return $row->id;
|
||||
}
|
||||
else
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln der Gruppe';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt eine Zuteilung eines Users zu
|
||||
* einer Gruppe an
|
||||
* @param groupid ID der Gruppe
|
||||
* userid ID des Users
|
||||
* @return ID der Zuteilung oder false im Fehlerfall
|
||||
*/
|
||||
public function createGroupMember($groupid, $userid)
|
||||
{
|
||||
$qry = 'BEGIN; INSERT INTO public.mdl_groups_members(groupid, userid) VALUES('.
|
||||
$this->addslashes($groupid).','.$this->addslashes($userid).');';
|
||||
if(pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
$qry = "SELECT currval('mdl_groups_members_id_seq') as id";
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
pg_query($this->conn_moodle, 'COMMIT;');
|
||||
return $row->id;
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK;');
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK;');
|
||||
$this->errormsg = 'Fehler beim Auslesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Anlegen der Zuteilung';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Holt die ID einer MoodleGruppe
|
||||
* @param $mdl_course_id ID des Kurses
|
||||
* $gruppenbezeichnung Name der Gruppe
|
||||
* @return GruppenID wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function getGroup($mdl_course_id, $gruppenbezeichnung)
|
||||
{
|
||||
$qry = "SELECT id FROM public.mdl_groups WHERE courseid='".addslashes($mdl_course_id)."' AND name='".addslashes($gruppenbezeichnung)."'";
|
||||
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
return $row->id;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = "Gruppe wurde nicht gefunden $gruppenbezeichnung";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden einer Gruppe';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt eine MoodleGruppe zu einem Kurs an
|
||||
* @param mdl_course_id ID des MoodleKuses
|
||||
* gruppenbezeichnung Bezeichnung der Gruppe
|
||||
* @return ID der Gruppe wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function createGroup($mdl_course_id, $gruppenbezeichnung)
|
||||
{
|
||||
$qry = 'BEGIN;INSERT INTO public.mdl_groups(courseid, name, description) VALUES('.
|
||||
$this->addslashes($mdl_course_id).','.
|
||||
$this->addslashes($gruppenbezeichnung).','.
|
||||
$this->addslashes($gruppenbezeichnung).');';
|
||||
if(pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
$qry = "SELECT currval('mdl_groups_id_seq') as id";
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
pg_query($this->conn_moodle, 'COMMIT;');
|
||||
return $row->id;
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK;');
|
||||
$this->errormsg = 'Fehler beim Auslesen der GruppenSequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle, 'ROLLBACK;');
|
||||
$this->errormsg = 'Fehler beim Auslesen der GruppenSequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsgr ='Fehler beim Anlegen der Gruppe';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt einen User im Moodle an
|
||||
* @param $uid UID der Person die angelegt werden soll
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function createUser($uid)
|
||||
{
|
||||
$qry = "SELECT uid, vorname, nachname FROM campus.vw_benutzer WHERE uid='".addslashes($uid)."'";
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$username = $row->uid;
|
||||
$vorname = $row->vorname;
|
||||
$nachname = $row->nachname;
|
||||
|
||||
$qry = "BEGIN; INSERT INTO public.mdl_user(auth, username, idnumber, firstname, lastname, email, mnethostid, confirmed, lang)
|
||||
VALUES('ldap', ".
|
||||
$this->addslashes($username).", ".
|
||||
$this->addslashes($username).",".
|
||||
$this->addslashes($vorname).",".
|
||||
$this->addslashes($nachname).",".
|
||||
$this->addslashes($username.'@'.DOMAIN).", 3, 1, 'de_utf8');";
|
||||
|
||||
if(pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
$qry ="SELECT currval('mdl_user_id_seq') as id;";
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if($row = pg_fetch_object($result))
|
||||
{
|
||||
pg_query($this->conn_moodle, 'COMMIT;');
|
||||
$this->mdl_user_id = $row->id;
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle,'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Lesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle,'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Lesen der Sequence';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
pg_query($this->conn_moodle,'ROLLBACK');
|
||||
$this->errormsg = 'Fehler beim Anlegen des Users';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'User wurde nicht gefunden: '.$uid;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Users';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Teilt den User mit der ID $mdl_user_id zum
|
||||
* Kurs mit der ContextID $mdl_context_id zu.
|
||||
* @param $mdl_user_id Moodle ID des Users
|
||||
* $mdl_context_id ContextID des Kurses
|
||||
* $role Rolle der Zuteilung (1=Admin/3=Lektor/5=Student)
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function createZuteilung($mdl_user_id, $mdl_context_id, $role)
|
||||
{
|
||||
$qry = "INSERT INTO public.mdl_role_assignments(roleid, contextid, userid)
|
||||
VALUES(".
|
||||
$this->addslashes($role).",".
|
||||
$this->addslashes($mdl_context_id).",".
|
||||
$this->addslashes($mdl_user_id).");";
|
||||
|
||||
if(pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Speichern der Zuteilung';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fuegt dem User die globale Gastrolle hinzu
|
||||
* @param $mdl_user_id Moodle ID des Users der
|
||||
* die GastRolle bekommt
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function createGlobaleGastrolle($mdl_user_id)
|
||||
{
|
||||
|
||||
//Nachschauen ob diese Person bereits eine globale Gastrolle hat
|
||||
$qry = "SELECT 1 FROM public.mdl_role_assignments
|
||||
WHERE
|
||||
userid='".addslashes($mdl_user_id)."' AND
|
||||
contextid='1' AND
|
||||
roleid='6'";
|
||||
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if(pg_num_rows($result)==0)
|
||||
{
|
||||
//noch nicht zugeteilt
|
||||
if($this->createZuteilung($mdl_user_id, 1, 6))
|
||||
{
|
||||
$this->log.="\n$this->mdl_user_firstname $this->mdl_user_lastname wurde die globale Gastrolle zugeteilt";
|
||||
$this->log_public.="\n$this->mdl_user_firstname $this->mdl_user_lastname wurde die globale Gastrolle zugeteilt";
|
||||
}
|
||||
else
|
||||
$this->log.="\nFehler beim Anlegen der Gast-Zuteilung: $this->errormsg";
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Rollen';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Loescht die Zuteilung eines Users zu einem Kurs
|
||||
* @param $mdl_user_id MoodleID des Users
|
||||
* $mdl_context_id ContextID des Users
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function deleteZuteilung($mdl_user_id, $mdl_context_id)
|
||||
{
|
||||
$qry = "DELETE FROM public.mdl_role_assignments
|
||||
WHERE userid='".addslashes($mdl_user_id)."' AND contextid='".addslashes($mdl_context_id)."'";
|
||||
if(pg_query($this->conn_moodle, $qry))
|
||||
return true;
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Loeschen der Zuteilung';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Teilt die TestStudenten zu einem Testkurs zu
|
||||
* @param mdl_course_id ID des Moodle Kurses
|
||||
*/
|
||||
public function createTestStudentenZuordnung($mdl_course_id)
|
||||
{
|
||||
//Context des Kurses holen
|
||||
$mdlcourse = new moodle19_course();
|
||||
if(!$mdlcourse->getContext(50, $mdl_course_id))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Contexts';
|
||||
return false;
|
||||
}
|
||||
|
||||
$users = array('student1', 'student2', 'student3');
|
||||
foreach ($users as $row_user)
|
||||
{
|
||||
//MoodleID des Users holen
|
||||
if(!$this->loaduser($row_user))
|
||||
{
|
||||
$this->errormsg = "Fehler beim Laden des Users $row_user: $this->errormsg";
|
||||
return false;
|
||||
}
|
||||
|
||||
//Nachschauen ob dieser Student bereits zugeteilt ist
|
||||
$qry = "SELECT 1 FROM public.mdl_role_assignments
|
||||
WHERE
|
||||
userid='".addslashes($this->mdl_user_id)."' AND
|
||||
contextid='".addslashes($mdlcourse->mdl_context_id)."'";
|
||||
|
||||
if($result = pg_query($this->conn_moodle, $qry))
|
||||
{
|
||||
if(pg_num_rows($result)==0)
|
||||
{
|
||||
//Student ist noch nicht zugeteilt.
|
||||
if($this->createZuteilung($this->mdl_user_id, $mdlcourse->mdl_context_id, 5))
|
||||
{
|
||||
$this->log.="\nder Student $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
|
||||
$this->log_public.="\nder Student $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
|
||||
$this->sync_create++;
|
||||
}
|
||||
else
|
||||
$this->log.="\nFehler beim Anlegen der Studenten-Zuteilung: $this->errormsg";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Auslesen der Rollen';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -1,836 +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);
|
||||
|
||||
$response = $client->core_course_create_courses(array($data));
|
||||
if(isset($response[0]))
|
||||
{
|
||||
$this->mdl_course_id=$response[0]['id'];
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Anlegen des Kurses';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->errormsg.="SOAP Fehler beim Anlegen des Kurses: ".$E->faultstring;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt die ID einer Kurskategorie anhand der Bezeichnung und der ParentID
|
||||
*
|
||||
* @param bezeichnung Bezeichnung der Kategorie
|
||||
* @param parent ID der uebergeordneten Kurskategorie
|
||||
*
|
||||
* @return id der Kategorie, -1 wenn Kategorie nicht existiert, false im Fehlerfall
|
||||
*/
|
||||
public function getCategorie($bezeichnung, $parent)
|
||||
{
|
||||
if($bezeichnung=='')
|
||||
{
|
||||
$this->errormsg = 'Bezeichnung muss angegeben werden';
|
||||
return false;
|
||||
}
|
||||
if($parent=='')
|
||||
{
|
||||
$this->errormsg = 'getCategorie: parent wurde nicht uebergeben';
|
||||
return false;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$response = $client->core_course_get_categories(array(array('key'=>'name','value'=>$bezeichnung),array('key'=>'parent','value'=>$parent)));
|
||||
|
||||
if(isset($response[0]))
|
||||
{
|
||||
return $response[0]['id'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden der Kurskategorie';
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->errormsg.="SOAP Fehler beim Laden der Kurskategorie: ".$E->faultstring;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Erzeugt eine Kurskategorie anhand der Bezeichnung und der ParentID
|
||||
* @param bezeichnung Bezeichnung der Kategorie
|
||||
* @param parent ID der uebergeordneten Kategorie, false im Fehlerfall
|
||||
*/
|
||||
public function createCategorie($bezeichnung, $parent)
|
||||
{
|
||||
if($bezeichnung=='')
|
||||
{
|
||||
$this->errormsg = 'Bezeichnung muss angegeben werden';
|
||||
return false;
|
||||
}
|
||||
if($parent=='')
|
||||
{
|
||||
$this->errormsg = 'createCategorie: parent wurde nicht uebergeben';
|
||||
return false;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$response = $client->core_course_create_categories(array(array('name'=>$bezeichnung,'parent'=>$parent)));
|
||||
|
||||
if(isset($response[0]))
|
||||
{
|
||||
return $response[0]['id'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Anlegen der Kategorie';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->errormsg.="SOAP Fehler beim Anlegen der Kategorie: ".$E->faultstring;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Aktualisiert die Spalte gruppen in der tbl_moodle
|
||||
* @param moodle_id ID der MoodleZuteilung
|
||||
* gruppen boolean true wenn syncronisiert
|
||||
* werden soll, false wenn nicht
|
||||
* @return true wenn ok, false im Fehlerfall
|
||||
*
|
||||
* TODO eventuell auslagern in moodle.class oder ganz loeschen
|
||||
*/
|
||||
public function updateGruppenSync($moodle_id, $gruppen)
|
||||
{
|
||||
if(!is_numeric($moodle_id))
|
||||
{
|
||||
$this->errormsg = 'Moodle_id muss eine gueltige Zahl sein';
|
||||
return false;
|
||||
}
|
||||
|
||||
$qry = "UPDATE lehre.tbl_moodle SET gruppen=".$this->db_add_param($gruppen, FHC_BOOLEAN)."
|
||||
WHERE moodle_id=".$this->db_add_param($moodle_id, FHC_INTEGER);
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Update';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt einen Testkurs an
|
||||
*/
|
||||
public function createTestkurs($lehrveranstaltung_id, $studiensemester_kurzbz)
|
||||
{
|
||||
//CourseCategorie ermitteln
|
||||
|
||||
//Studiengang und Semester holen
|
||||
|
||||
$qry = "SELECT
|
||||
tbl_lehrveranstaltung.semester,
|
||||
UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as stg
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung
|
||||
JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
WHERE
|
||||
lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER);
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$semester = $row->semester;
|
||||
$stg = $row->stg;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Testkurs Categorie holen
|
||||
$id_testkurs = $this->getCategorie('Testkurse', '0');
|
||||
if ($id_testkurs === false)
|
||||
return false;
|
||||
if ($id_testkurs === -1)
|
||||
{
|
||||
if(!$id_testkurs = $this->createCategorie('Testkurse', '0'))
|
||||
{
|
||||
$this->errormsg= "Fehler beim Anlegen der Testkurskategorie";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
//StSem Categorie holen
|
||||
$id_stsem = $this->getCategorie($studiensemester_kurzbz, $id_testkurs);
|
||||
if ($id_stsem === false)
|
||||
return false;
|
||||
if ($id_stsem === -1)
|
||||
{
|
||||
if(!$id_stsem = $this->createCategorie($studiensemester_kurzbz, $id_testkurs))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Anlegen der Studiensemester Kategorie';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
$client = new SoapClient($this->serverurl);
|
||||
|
||||
$data = new stdClass();
|
||||
$data->fullname=$this->mdl_fullname;
|
||||
$data->shortname=$this->mdl_shortname;
|
||||
$data->categoryid=$id_stsem;
|
||||
$data->format='topics';
|
||||
|
||||
$response = $client->core_course_create_courses(array($data));
|
||||
if(isset($response[0]))
|
||||
{
|
||||
$this->mdl_course_id=$response[0]['id'];
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Anlegen des Testkurses';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt den Testkurs zu dieser Lehrveranstaltung
|
||||
* @param lehrveranstaltung_id
|
||||
* studiensemester_kurzbz
|
||||
* @return ID wenn gefunden, false wenn nicht vorhanden
|
||||
*/
|
||||
public function loadTestkurs($lehrveranstaltung_id, $studiensemester_kurzbz)
|
||||
{
|
||||
$qry = "SELECT
|
||||
UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as kuerzel,
|
||||
tbl_lehrveranstaltung.semester, tbl_lehrveranstaltung.kurzbz
|
||||
FROM
|
||||
lehre.tbl_lehrveranstaltung JOIN public.tbl_studiengang USING(studiengang_kz)
|
||||
WHERE
|
||||
lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER, false);
|
||||
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$shortname = mb_strtoupper('TK-'.$studiensemester_kurzbz.'-'.$row->kuerzel.'-'.$row->semester.'-'.$row->kurzbz);
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Testkurses';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Testkurses';
|
||||
return false;
|
||||
}
|
||||
|
||||
//Testkurs Categorie holen
|
||||
$id_testkurs = $this->getCategorie('Testkurse', '0');
|
||||
if ($id_testkurs === false)
|
||||
return false;
|
||||
if ($id_testkurs === -1)
|
||||
{
|
||||
$this->errormsg = 'Categorie nicht gefunden';
|
||||
return false;
|
||||
}
|
||||
|
||||
//StSem Categorie holen
|
||||
$id_stsem = $this->getCategorie($studiensemester_kurzbz, $id_testkurs);
|
||||
if($id_stsem === false)
|
||||
return false;
|
||||
if ($id_stsem === -1)
|
||||
{
|
||||
$this->errormsg = 'Categorie nicht gefunden';
|
||||
return false;
|
||||
}
|
||||
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$response = $client->fhcomplete_courses_by_shortname(array('shortnames'=>array($shortname)));
|
||||
|
||||
if(isset($response[0]))
|
||||
{
|
||||
$this->mdl_fullname = $response[0]['fullname'];
|
||||
$this->mdl_shortname = $response[0]['shortname'];
|
||||
$this->mdl_course_id = $response[0]['id'];
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Es wurde kein Testkurs gefunden';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Laedt die Moodle Noten zu allen Moodlekursen einer Lehrveranstaltung
|
||||
* @param lehrveranstaltung_id
|
||||
* @param $studiensemester_kurzbz
|
||||
*
|
||||
* @return objekt mit den Noten der Teilnehmer dieses Kurses
|
||||
*/
|
||||
public function loadNoten($lehrveranstaltung_id, $studiensemester_kurzbz)
|
||||
{
|
||||
$this->errormsg='';
|
||||
$this->result=null;
|
||||
|
||||
if($lehrveranstaltung_id=='' || $studiensemester_kurzbz=='')
|
||||
{
|
||||
$this->errormsg = 'LehrveranstaltungID und Studiensemester_kurzbz muss uebergeben werden';
|
||||
return false;
|
||||
}
|
||||
|
||||
// Ermitteln die Lehreinheiten und Moodle ID
|
||||
$qry = "
|
||||
SELECT
|
||||
distinct mdl_course_id
|
||||
FROM
|
||||
lehre.tbl_moodle
|
||||
JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id, studiensemester_kurzbz)
|
||||
WHERE
|
||||
tbl_moodle.lehrveranstaltung_id > 0
|
||||
AND moodle_version='2.4'
|
||||
AND tbl_moodle.lehrveranstaltung_id =".$this->db_add_param($lehrveranstaltung_id)."
|
||||
AND tbl_moodle.studiensemester_kurzbz =".$this->db_add_param($studiensemester_kurzbz)."
|
||||
UNION
|
||||
SELECT
|
||||
distinct mdl_course_id
|
||||
FROM
|
||||
lehre.tbl_moodle
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
WHERE
|
||||
tbl_lehreinheit.lehrveranstaltung_id > 0
|
||||
AND moodle_version='2.4'
|
||||
AND tbl_lehreinheit.lehrveranstaltung_id =".$this->db_add_param($lehrveranstaltung_id)."
|
||||
AND tbl_moodle.studiensemester_kurzbz =".$this->db_add_param($studiensemester_kurzbz).";";
|
||||
|
||||
if(!$result_moodle=$this->db_query($qry))
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Lesen der Moodle Kurse , '.$this->errormsg;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
while($row_moodle = $this->db_fetch_object($result_moodle))
|
||||
{
|
||||
try
|
||||
{
|
||||
$client = new SoapClient($this->serverurl);
|
||||
if(CIS_GESAMTNOTE_PUNKTE)
|
||||
$type=2; // Prozentpunkte
|
||||
else
|
||||
$type=3; // Noten aufgrund Skala
|
||||
// 1 = Punkte, 2 = Prozentpunkte, 3 = Note laut Skala
|
||||
|
||||
$response = $client->fhcomplete_get_course_grades($row_moodle->mdl_course_id, $type);
|
||||
|
||||
if (count($response)>0)
|
||||
{
|
||||
|
||||
foreach($response as $row)
|
||||
{
|
||||
if($row['note']!='-')
|
||||
{
|
||||
$userobj = new stdClass();
|
||||
$userobj->mdl_course_id = $row_moodle->mdl_course_id;
|
||||
$userobj->vorname = $row['vorname'];
|
||||
$userobj->nachname = $row['nachname'];
|
||||
$userobj->idnummer = $row['idnummer'];
|
||||
$userobj->uid = $row['username'];
|
||||
$userobj->note = $row['note'];
|
||||
$this->result[]=$userobj;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(SoapFault $e)
|
||||
{
|
||||
//echo print_r($e, true);
|
||||
//return false;
|
||||
}
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Loescht einen Moodle Course im Moodel
|
||||
* Wenn erfolgreich gelöscht wird kein Wert in response zurückgegeben
|
||||
* @param mdl_course_id
|
||||
*
|
||||
*/
|
||||
public function deleteKurs($mdl_course_id)
|
||||
{
|
||||
$client = new SoapClient($this->serverurl);
|
||||
|
||||
$data = array($mdl_course_id);
|
||||
|
||||
$response = $client->core_course_delete_courses(array($mdl_course_id));
|
||||
|
||||
if(is_object($response))
|
||||
{
|
||||
$response_obj = $response;
|
||||
unset($response);
|
||||
if(isset($response_obj->warnings) && isset($response_obj->warnings->message))
|
||||
$response[0] = $response_obj->warnings->message;
|
||||
}
|
||||
|
||||
if(isset($response[0]))
|
||||
{
|
||||
$this->errormsg = $response[0];
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* gibt alle LE Ids der Übergebenen Moodle_Course_ID zurück
|
||||
*/
|
||||
public function getLeFromCourse($moodle_course_id)
|
||||
{
|
||||
$qry = "SELECT lehreinheit_id FROM lehre.tbl_moodle WHERE moodle_version='2.4' AND mdl_course_id =".$this->db_add_param($moodle_course_id, FHC_INTEGER).';';
|
||||
$le = array();
|
||||
if($result = $this->db_query($qry))
|
||||
{
|
||||
while($row = $this->db_fetch_object())
|
||||
{
|
||||
$le[] = $row->lehreinheit_id;
|
||||
}
|
||||
}
|
||||
return $le;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,922 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2013 FH Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
*/
|
||||
/*
|
||||
* Connector fuer Moodle 2.4 User
|
||||
*
|
||||
* FHComplete Moodle Plugin muss installiert sein fuer
|
||||
* Webservice Funktion 'fhcomplete_user_get_users'
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/basis_db.class.php');
|
||||
require_once(dirname(__FILE__).'/moodle.class.php');
|
||||
|
||||
class moodle24_user extends basis_db
|
||||
{
|
||||
public $log=''; //log message fuer Syncro
|
||||
public $log_public=''; //log message fuer Syncro
|
||||
public $sync_create=0; //anzahl der durchgefuehrten zuteilungen beim syncro
|
||||
public $group_update=0; //anzahl der updates an gruppen
|
||||
private $serverurl;
|
||||
|
||||
public $mdl_user_id;
|
||||
public $mdl_user_username;
|
||||
public $mdl_user_firstname;
|
||||
public $mdl_user_lastname;
|
||||
|
||||
/**
|
||||
* Konstruktor
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$moodle = new moodle();
|
||||
$pfad = $moodle->getPfad('2.4');
|
||||
$this->serverurl=$pfad.'/webservice/soap/server.php?wsdl=1&wstoken='.MOODLE_TOKEN24.'&'.microtime(true);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Laedt einen Moodle User
|
||||
*
|
||||
* @param $uid
|
||||
* @return boolean oder -1 bei SOAP Fehler
|
||||
*/
|
||||
public function loaduser($uid)
|
||||
{
|
||||
try
|
||||
{
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$response = $client->fhcomplete_user_get_users(array(array('key'=>'username', 'value'=>$uid)));
|
||||
|
||||
if(is_object($response))
|
||||
{
|
||||
$response_obj = $response;
|
||||
unset($response);
|
||||
$response['users']=$response_obj->users;
|
||||
}
|
||||
|
||||
if(isset($response['users'][0]))
|
||||
{
|
||||
$this->mdl_user_id = $response['users'][0]['id'];
|
||||
$this->mdl_user_username = $response['users'][0]['username'];
|
||||
$this->mdl_user_firstname = $response['users'][0]['firstname'];
|
||||
$this->mdl_user_lastname = $response['users'][0]['lastname'];
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Users';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->errormsg.="SOAP Fehler beim Laden des Users: ".$E->faultstring;
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Liefert ein Array mit allen Lektoren die
|
||||
* zu dem Moodle Kurs zugeteilt sind
|
||||
*/
|
||||
public function getMitarbeiter($mdl_course_id)
|
||||
{
|
||||
//Mitarbeiter laden die zu diesem Kurs zugeteilt sind
|
||||
$qry = "SELECT
|
||||
mitarbeiter_uid
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_moodle USING(lehreinheit_id)
|
||||
WHERE
|
||||
moodle_version='2.4'
|
||||
AND mdl_course_id=".$this->db_add_param($mdl_course_id, FHC_INTEGER)."
|
||||
UNION
|
||||
SELECT
|
||||
mitarbeiter_uid
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN lehre.tbl_moodle USING(lehrveranstaltung_id)
|
||||
WHERE
|
||||
moodle_version='2.4'
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz=tbl_moodle.studiensemester_kurzbz
|
||||
AND mdl_course_id=".$this->db_add_param($mdl_course_id, FHC_INTEGER);
|
||||
$mitarbeiter=array();
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
while($row_ma = $this->db_fetch_object())
|
||||
{
|
||||
$mitarbeiter[] = $row_ma->mitarbeiter_uid;
|
||||
}
|
||||
return $mitarbeiter;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler beim Laden der Mitarbeiter';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Synchronisiert die Lektoren der Lehreinheiten
|
||||
* mit denen des Moodle Kurses
|
||||
* @param $mdl_course_id ID des MoodleKurses
|
||||
* lehrveranstaltung_id wird nur angegeben beim Syncro von Testkursen
|
||||
* studiensemester_kurzbz wird nur angegeben beim Syncro von Testkursen
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function sync_lektoren($mdl_course_id, $lehrveranstaltung_id=null, $studiensemester_kurzbz=null)
|
||||
{
|
||||
//Mitarbeiter laden die zu diesem Kurs zugeteilt sind
|
||||
if(!is_null($lehrveranstaltung_id) && !is_null($studiensemester_kurzbz))
|
||||
{
|
||||
//Bei Testkursen werden alle Lektoren einer Lehrveranstaltung zugeteilt
|
||||
//da hier kein Eintrag in der tbl_moodle vorhanden ist, werden die Lektoren direkt aus
|
||||
//der tbl_lehreinheitmitarbeiter geholt.
|
||||
$qry = "SELECT
|
||||
mitarbeiter_uid
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
WHERE
|
||||
lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)."
|
||||
AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz);
|
||||
}
|
||||
else
|
||||
{
|
||||
$qry = "SELECT
|
||||
mitarbeiter_uid
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_moodle USING(lehreinheit_id)
|
||||
WHERE
|
||||
moodle_version='2.4'
|
||||
AND mdl_course_id=".$this->db_add_param($mdl_course_id, FHC_INTEGER)."
|
||||
AND mitarbeiter_uid not like '_Dummy%'
|
||||
UNION
|
||||
SELECT
|
||||
mitarbeiter_uid
|
||||
FROM
|
||||
lehre.tbl_lehreinheitmitarbeiter JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN lehre.tbl_moodle USING(lehrveranstaltung_id)
|
||||
WHERE
|
||||
moodle_version='2.4'
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz=tbl_moodle.studiensemester_kurzbz
|
||||
AND mdl_course_id=".$this->db_add_param($mdl_course_id, FHC_INTEGER)."
|
||||
AND mitarbeiter_uid not like '_Dummy%'";
|
||||
}
|
||||
$mitarbeiter='';
|
||||
|
||||
try
|
||||
{
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$enrolled_users = $client->core_enrol_get_enrolled_users($mdl_course_id,array(array('name'=>'userfields','value'=>'id,username')));
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->errormsg.="SOAP Fehler beim Laden der Teilnehmer des Kurses: ".$E->faultstring;
|
||||
return false;
|
||||
}
|
||||
|
||||
if($result_ma = $this->db_query($qry))
|
||||
{
|
||||
while($row_ma = $this->db_fetch_object($result_ma))
|
||||
{
|
||||
$user_zugeteilt=false;
|
||||
foreach($enrolled_users as $user)
|
||||
{
|
||||
if($user['username']==$row_ma->mitarbeiter_uid)
|
||||
{
|
||||
$user_zugeteilt=true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(!$user_zugeteilt)
|
||||
{
|
||||
$retval = $this->loaduser($row_ma->mitarbeiter_uid);
|
||||
//MoodleID des Users holen bzw ggf neu anlegen
|
||||
if($retval===false)
|
||||
{
|
||||
//User anlegen
|
||||
if(!$this->createUser($row_ma->mitarbeiter_uid))
|
||||
{
|
||||
$this->errormsg = "Fehler beim Anlegen des Users $row_ma->mitarbeiter_uid: $this->errormsg";
|
||||
return false;
|
||||
}
|
||||
else
|
||||
$this->errormsg = '';
|
||||
}
|
||||
|
||||
if($retval!==-1)
|
||||
{
|
||||
if($mitarbeiter!='')
|
||||
$mitarbeiter.=',';
|
||||
$mitarbeiter.=$this->mdl_user_id;
|
||||
|
||||
//Mitarbeiter ist noch nicht zugeteilt.
|
||||
$data = new stdClass();
|
||||
$data->roleid=3; // 3=Lektor
|
||||
$data->userid=$this->mdl_user_id;
|
||||
$data->courseid=$mdl_course_id;
|
||||
|
||||
try
|
||||
{
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$client->enrol_manual_enrol_users(array($data));
|
||||
|
||||
$this->log.="\nLektorIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
|
||||
$this->log_public.="\nLektorIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
|
||||
$this->sync_create++;
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->errormsg.="SOAP Fehler beim zuteilen der Teilnehmer des Kurses: ".$E->faultstring;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln der Zugeteilten Lektoren';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Synchronisiert die Studenten der Lehreinheiten
|
||||
* mit denen des Moodle Kurses
|
||||
* @param $mdl_course_id ID des MoodleKurses
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function sync_studenten($mdl_course_id)
|
||||
{
|
||||
$vorhandenegruppen=array();
|
||||
$this->gruppenzuordnungen=array();
|
||||
$groupmembertoadd = array();
|
||||
$userstoenroll=array();
|
||||
|
||||
//Studentengruppen laden die zu diesem Kurs zugeteilt sind
|
||||
$qry = "SELECT
|
||||
studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, tbl_moodle.studiensemester_kurzbz, tbl_moodle.gruppen
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe JOIN lehre.tbl_moodle USING(lehreinheit_id)
|
||||
WHERE
|
||||
moodle_version='2.4'
|
||||
AND mdl_course_id=".$this->db_add_param($mdl_course_id)."
|
||||
UNION
|
||||
SELECT
|
||||
studiengang_kz, semester, verband, gruppe, gruppe_kurzbz, tbl_moodle.studiensemester_kurzbz, tbl_moodle.gruppen
|
||||
FROM
|
||||
lehre.tbl_lehreinheitgruppe JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
JOIN lehre.tbl_moodle USING(lehrveranstaltung_id)
|
||||
WHERE
|
||||
moodle_version='2.4'
|
||||
AND tbl_lehreinheit.studiensemester_kurzbz=tbl_moodle.studiensemester_kurzbz
|
||||
AND mdl_course_id=".$this->db_add_param($mdl_course_id);
|
||||
$studenten='';
|
||||
|
||||
try
|
||||
{
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$enrolled_users = $client->core_enrol_get_enrolled_users($mdl_course_id, array(array('name'=>'userfields','value'=>'id,username')));
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->errormsg.="SOAP Fehler beim Laden der Teilnehmer des Kurses: ".$E->faultstring;
|
||||
return false;
|
||||
}
|
||||
|
||||
if($result_std = $this->db_query($qry))
|
||||
{
|
||||
while($row_std = $this->db_fetch_object($result_std))
|
||||
{
|
||||
$this->mdl_user_id='';
|
||||
|
||||
//Schauen ob fuer diesen Kurs die Gruppen mitgesynct werden sollen
|
||||
$gruppensync = $this->db_parse_bool($row_std->gruppen);
|
||||
|
||||
//Studenten dieser Gruppe holen
|
||||
if($row_std->gruppe_kurzbz=='') //LVB Gruppe
|
||||
{
|
||||
$qry = "SELECT
|
||||
distinct student_uid, tbl_person.vorname, tbl_person.nachname
|
||||
FROM
|
||||
public.tbl_studentlehrverband
|
||||
JOIN public.tbl_benutzer ON(student_uid=uid)
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
WHERE
|
||||
tbl_benutzer.aktiv AND
|
||||
studiensemester_kurzbz=".$this->db_add_param($row_std->studiensemester_kurzbz)." AND
|
||||
studiengang_kz = ".$this->db_add_param($row_std->studiengang_kz)." AND
|
||||
semester = ".$this->db_add_param($row_std->semester);
|
||||
|
||||
if(trim($row_std->verband)!='')
|
||||
{
|
||||
$qry.=" AND verband = ".$this->db_add_param($row_std->verband);
|
||||
if(trim($row_std->gruppe)!='')
|
||||
{
|
||||
$qry.=" AND gruppe = ".$this->db_add_param($row_std->gruppe);
|
||||
}
|
||||
}
|
||||
$studiengang_obj = new studiengang();
|
||||
$studiengang_obj->load($row_std->studiengang_kz);
|
||||
$gruppenbezeichnung = $studiengang_obj->kuerzel.'-'.trim($row_std->semester).trim($row_std->verband).trim($row_std->gruppe);
|
||||
}
|
||||
else //Spezialgruppe
|
||||
{
|
||||
$qry = "SELECT
|
||||
distinct uid as student_uid, tbl_person.vorname, tbl_person.nachname
|
||||
FROM
|
||||
public.tbl_benutzergruppe
|
||||
JOIN public.tbl_benutzer USING(uid)
|
||||
JOIN public.tbl_person USING(person_id)
|
||||
WHERE
|
||||
tbl_benutzer.aktiv AND
|
||||
gruppe_kurzbz=".$this->db_add_param($row_std->gruppe_kurzbz)." AND
|
||||
studiensemester_kurzbz=".$this->db_add_param($row_std->studiensemester_kurzbz);
|
||||
$gruppenbezeichnung = $row_std->gruppe_kurzbz;
|
||||
}
|
||||
|
||||
if($result_user = $this->db_query($qry))
|
||||
{
|
||||
while($row_user = $this->db_fetch_object($result_user))
|
||||
{
|
||||
//Nachschauen ob dieser Student bereits zugeteilt ist
|
||||
$user_zugeteilt=false;
|
||||
foreach($enrolled_users as $user)
|
||||
{
|
||||
if($user['username']==$row_user->student_uid)
|
||||
{
|
||||
$user_zugeteilt=true;
|
||||
$this->mdl_user_id=$user['id'];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(!$user_zugeteilt)
|
||||
{
|
||||
$retval = $this->loaduser($row_user->student_uid);
|
||||
//MoodleID des Users holen bzw ggf neu anlegen
|
||||
if($retval===false)
|
||||
{
|
||||
//User anlegen
|
||||
if(!$this->createUser($row_user->student_uid))
|
||||
{
|
||||
$this->errormsg = "Fehler beim Anlegen des Users $row_user->student_uid: $this->errormsg";
|
||||
return false;
|
||||
}
|
||||
else
|
||||
$this->errormsg = '';
|
||||
}
|
||||
|
||||
if($retval!==-1)
|
||||
{
|
||||
if($studenten!='')
|
||||
$studenten.=',';
|
||||
$studenten.=$this->mdl_user_id;
|
||||
|
||||
//Student ist noch nicht zugeteilt.
|
||||
|
||||
$data = new stdClass();
|
||||
$data->roleid=5; // 5=Teilnehmer/Student
|
||||
$data->userid=$this->mdl_user_id;
|
||||
$data->courseid=$mdl_course_id;
|
||||
|
||||
$userstoenroll[]=$data;
|
||||
|
||||
$this->log.="\nStudentIn ".$this->mdl_user_firstname." ".$this->mdl_user_lastname." ($row_user->student_uid) wurde zum Kurs hinzugefügt";
|
||||
$this->log_public.="\nStudentIn ".$this->mdl_user_firstname." ".$this->mdl_user_lastname." ($row_user->student_uid) wurde zum Kurs hinzugefügt";
|
||||
$this->sync_create++;
|
||||
}
|
||||
}
|
||||
|
||||
//Gruppenzuteilung
|
||||
if($gruppensync)
|
||||
{
|
||||
if(!isset($vorhandenegruppen[$gruppenbezeichnung]))
|
||||
{
|
||||
//Schauen ob die Gruppe vorhanden ist
|
||||
$groupid = $this->getGroup($mdl_course_id, $gruppenbezeichnung);
|
||||
if ($groupid === false)
|
||||
return false;
|
||||
|
||||
if($groupid === -1)
|
||||
{
|
||||
//wenn nicht dann anlegen
|
||||
if(!$groupid = $this->createGroup($mdl_course_id, $gruppenbezeichnung))
|
||||
{
|
||||
$this->log.="\nGruppen Anlegen Failed $gruppenbezeichnung $mdl_course_id $groupid";
|
||||
continue;
|
||||
}
|
||||
$this->group_update++;
|
||||
$this->log.="\nes wurde eine neue Gruppe angelgt: $gruppenbezeichnung ID $groupid";
|
||||
$this->log_public.="\nes wurde eine neue Gruppe angelgt: $gruppenbezeichnung";
|
||||
}
|
||||
$vorhandenegruppen[$gruppenbezeichnung]=$groupid;
|
||||
}
|
||||
else
|
||||
$groupid=$vorhandenegruppen[$gruppenbezeichnung];
|
||||
|
||||
//if($this->mdl_user_id=='')
|
||||
// $this->loaduser($row_user->student_uid);
|
||||
//Schauen ob eine Zuteilung zu dieser Gruppe vorhanden ist
|
||||
$groupmember = $this->getGroupMember($groupid, $this->mdl_user_id);
|
||||
if($groupmember === false)
|
||||
continue;
|
||||
|
||||
if($groupmember === -1)
|
||||
{
|
||||
//wenn nicht dann zuteilen
|
||||
$groupmembertoadd[] = array('groupid'=>$groupid,'userid'=>$this->mdl_user_id);
|
||||
//$this->createGroupMember($groupid, $this->mdl_user_id);
|
||||
$this->group_update++;
|
||||
$this->log.="\nStudentIn $row_user->vorname $row_user->nachname ($row_user->student_uid) wurde der Gruppe $gruppenbezeichnung ($groupid) zugeordnet";
|
||||
$this->log_public.="\nStudentIn $row_user->vorname $row_user->nachname ($row_user->student_uid) wurde der Gruppe $gruppenbezeichnung zugeordnet";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(count($userstoenroll)>0)
|
||||
{
|
||||
try
|
||||
{
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$client->enrol_manual_enrol_users($userstoenroll);
|
||||
// Wenn User zum Kurs hinzugefuegt werden, muss eine kleine Pause eingelegt werden
|
||||
// Die User werden nicht gleich zugeordnet, diese werden nach
|
||||
// abschluss des SOAP Requests von Moodle noch weiterverarbeitet und
|
||||
// erst zeitversetzt zugeordnet.
|
||||
// Die Pause ist abgaengig von der Anzahl der User die hinzugefuegt werden
|
||||
usleep(count($userstoenroll)*150000);
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->errormsg.="SOAP Fehler beim Zuteilen der Teilnehmer des Kurses: ".$E->faultstring;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
if(count($groupmembertoadd)>0)
|
||||
{
|
||||
try
|
||||
{
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$groupresult = $client->core_group_add_group_members($groupmembertoadd);
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->errormsg.="SOAP Fehler beim Zuteilen der Teilnehmer zu Gruppen";
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln der Zugeteilten Studenten';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Schaut ob eine Zuteilung von Person zu Gruppe
|
||||
* existiert
|
||||
* @param grouid ID der Gruppe
|
||||
* userid MoodleID des Users
|
||||
* @return true wenn zugeteilt, -1 wenn nicht, false im Fehlerfall
|
||||
*/
|
||||
public function getGroupMember($groupid, $userid)
|
||||
{
|
||||
if(!isset($this->gruppenzuordnungen[$groupid]))
|
||||
{
|
||||
try
|
||||
{
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$response = $client->core_group_get_group_members(array($groupid));
|
||||
|
||||
if(isset($response[0]['userids']))
|
||||
{
|
||||
$this->gruppenzuordnungen[$groupid]=$response[0]['userids'];
|
||||
}
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->errormsg.="SOAP Fehler beim Laden der Gruppenzuordnung: ".$E->faultstring;
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
foreach($this->gruppenzuordnungen[$groupid] as $id)
|
||||
{
|
||||
if ($id == $userid)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt eine Zuteilung eines Users zu
|
||||
* einer Gruppe an
|
||||
* @param groupid ID der Gruppe
|
||||
* userid ID des Users
|
||||
* @return boolean
|
||||
*/
|
||||
public function createGroupMember($groupid, $userid)
|
||||
{
|
||||
try
|
||||
{
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$response = $client->core_group_add_group_members(array(array('groupid'=>$groupid, 'userid'=>$userid)));
|
||||
if(isset($response[0]))
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->errormsg.="SOAP Fehler bei zuteilen zu Gruppe: ".$E->faultstring;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Holt die ID einer MoodleGruppe
|
||||
* @param $mdl_course_id ID des Kurses
|
||||
* $gruppenbezeichnung Name der Gruppe
|
||||
* @return GruppenID wenn ok, -1 wenn nicht gefunden, false im Fehlerfall
|
||||
*/
|
||||
public function getGroup($mdl_course_id, $gruppenbezeichnung)
|
||||
{
|
||||
try
|
||||
{
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$response = $client->core_group_get_course_groups($mdl_course_id);
|
||||
foreach($response as $row)
|
||||
{
|
||||
if($row['name']==$gruppenbezeichnung)
|
||||
return $row['id'];
|
||||
}
|
||||
|
||||
$this->errormsg = "Gruppe wurde nicht gefunden $gruppenbezeichnung";
|
||||
return -1;
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->log.="Fehler beim Laden der Gruppe $mdl_course_id, $gruppenbezeichnung: ".$E->faultstring;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt eine MoodleGruppe zu einem Kurs an
|
||||
* @param mdl_course_id ID des MoodleKuses
|
||||
* gruppenbezeichnung Bezeichnung der Gruppe
|
||||
* @return ID der Gruppe wenn ok, false im Fehlerfall
|
||||
*/
|
||||
public function createGroup($mdl_course_id, $gruppenbezeichnung)
|
||||
{
|
||||
try
|
||||
{
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$data = new stdClass();
|
||||
$data->courseid=$mdl_course_id;
|
||||
$data->name = $gruppenbezeichnung;
|
||||
$data->description = $gruppenbezeichnung;
|
||||
|
||||
$response = $client->core_group_create_groups(array($data));
|
||||
|
||||
if(isset($response[0]))
|
||||
{
|
||||
return $response[0]['id'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Anlegen der Gruppe';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->errormsg.="SOAP Fehler beim Anlegen der Gruppe: ".$E->faultstring;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Legt einen User im Moodle an
|
||||
* @param $uid UID der Person die angelegt werden soll
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function createUser($uid)
|
||||
{
|
||||
if($uid=='_DummyLektor')
|
||||
return true;
|
||||
|
||||
$qry = "SELECT uid, vorname, nachname FROM campus.vw_benutzer WHERE uid=".$this->db_add_param($uid);
|
||||
if($this->db_query($qry))
|
||||
{
|
||||
if($row = $this->db_fetch_object())
|
||||
{
|
||||
$username = $row->uid;
|
||||
$vorname = $row->vorname;
|
||||
$nachname = $row->nachname;
|
||||
|
||||
$user = new stdClass();
|
||||
$user->username = $username;
|
||||
/*
|
||||
Passwort muss gesetzt werden damit das Anlegen funktioniert.
|
||||
Es wird ein random Passwort gesetzt
|
||||
Dieses wird beim Login nicht verwendet da ueber ldap authentifiziert wird.
|
||||
Prefix ist noetig damit es nicht zu Problemen kommt wenn
|
||||
im Moodle die Passwort Policy aktiviert ist
|
||||
|
||||
Wenn das Passwort uebergeben wird, dann versucht Moodle das auch
|
||||
im LDAP zu setzen. Das fuehrt dazu dass der Account nicht mehr funktioniert.
|
||||
Anlegen eines Users ohne Passwortuebergabe ist jedoch nicht moeglich-
|
||||
Deshalb wird die Authentifizierungsmethode beim Anlegen auf manual
|
||||
gesetzt und nach dem anlegen auf ldap geändert
|
||||
*/
|
||||
$user->password = "FHCv!A2".hash('sha512', rand());
|
||||
$user->firstname = $vorname;
|
||||
$user->lastname = $nachname;
|
||||
$user->email = $username.'@'.DOMAIN;
|
||||
//$user->auth = 'ldap';
|
||||
$user->auth = 'manual';
|
||||
$user->idnumber = $username;
|
||||
$user->lang = 'en';
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$response = $client->core_user_create_users(array($user));
|
||||
|
||||
if(isset($response[0]))
|
||||
{
|
||||
$this->mdl_user_id = $response[0]['id'];
|
||||
|
||||
// User nach dem anlegen auf LDAP Auth umstellen
|
||||
$user = new stdClass();
|
||||
$user->id = $this->mdl_user_id;
|
||||
$user->auth = 'ldap';
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$response = $client->core_user_update_users(array($user));
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Users';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->errormsg.="SOAP Fehler beim Anlegen der User: ".$E->faultstring.' '.(isset($E->detail)?$E->detail:'').' data:'.$username;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Laden des Users';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg='Fehler beim Laden des Users';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Teilt die TestStudenten zu einem Testkurs zu
|
||||
* @param mdl_course_id ID des Moodle Kurses
|
||||
*/
|
||||
public function createTestStudentenZuordnung($mdl_course_id)
|
||||
{
|
||||
//Context des Kurses holen
|
||||
$mdlcourse = new moodle24_course();
|
||||
|
||||
$users = array('student1', 'student2', 'student3');
|
||||
|
||||
foreach ($users as $row_user)
|
||||
{
|
||||
$retval = $this->loaduser($row_user);
|
||||
//MoodleID des Users holen
|
||||
if($retval!==true)
|
||||
{
|
||||
$this->errormsg = "Fehler beim Laden des Users $row_user: $this->errormsg";
|
||||
return false;
|
||||
}
|
||||
|
||||
$data = new stdClass();
|
||||
$data->roleid=5;
|
||||
$data->userid=$this->mdl_user_id;
|
||||
$data->courseid=$mdl_course_id;
|
||||
|
||||
try
|
||||
{
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$client->enrol_manual_enrol_users(array($data));
|
||||
// WS-Funktion enrol_manual_enrol_users liefert immer null zurück
|
||||
// Fehler bei der Zuordnung koennen daher nicht abgefangen werden.
|
||||
// Eventuell sollten hier nochmals die Teilnehmer des Kurses geladen werden
|
||||
// um zu pruefen ob die Zuordnung erfolgreich war.
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->errormsg.="SOAP Fehler beim Zuordnen der User: ".$E->faultstring.' '.(isset($E->detail)?$E->detail:'');
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Teilt einen User zu mehreren Moodle Kursen gleichzeitig zu
|
||||
* @param $uid UID des Users
|
||||
* @param $mdl_course_id_array Array mit MoodleKursIDs
|
||||
* @param $role_id Moodle Rolle
|
||||
*/
|
||||
public function MassEnroll($uid, $mdl_course_id_array, $role_id)
|
||||
{
|
||||
//MoodleID des Users holen
|
||||
if(!$this->loaduser($uid))
|
||||
{
|
||||
$this->errormsg = "Fehler beim Laden des Users $uid: $this->errormsg";
|
||||
return false;
|
||||
}
|
||||
|
||||
$param=array();
|
||||
|
||||
foreach($mdl_course_id_array as $mdl_course_id)
|
||||
{
|
||||
$data = new stdClass();
|
||||
$data->roleid=$role_id;
|
||||
$data->userid=$this->mdl_user_id;
|
||||
$data->courseid=$mdl_course_id;
|
||||
|
||||
$param[]=$data;
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$client->enrol_manual_enrol_users($param);
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->errormsg.="SOAP Fehler beim Zuordnen der User: ".$E->faultstring.' '.(isset($E->detail)?$E->detail:'');
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Teilt die Fachbereichsleiter zu den Moodle Kursen zu
|
||||
* @param $mdl_course_id ID des MoodleKurses
|
||||
* @return true wenn ok, false wenn Fehler
|
||||
*/
|
||||
public function sync_fachbereichsleitung($mdl_course_id)
|
||||
{
|
||||
//Leitung laden die zu diesem Kurs zugeteilt sind
|
||||
$qry = "SELECT
|
||||
distinct tbl_benutzer.uid as mitarbeiter_uid
|
||||
FROM
|
||||
public.tbl_organisationseinheit
|
||||
JOIN public.tbl_benutzerfunktion USING (oe_kurzbz)
|
||||
JOIN lehre.tbl_lehrveranstaltung USING(oe_kurzbz)
|
||||
JOIN lehre.tbl_lehreinheit USING (lehrveranstaltung_id)
|
||||
JOIN public.tbl_benutzer ON(tbl_benutzerfunktion.uid=tbl_benutzer.uid)
|
||||
WHERE
|
||||
tbl_benutzer.aktiv
|
||||
AND organisationseinheittyp_kurzbz in('Institut','Fachbereich')
|
||||
AND funktion_kurzbz='Leitung'
|
||||
AND (tbl_benutzerfunktion.datum_von<=now() OR tbl_benutzerfunktion.datum_von is null)
|
||||
AND (tbl_benutzerfunktion.datum_bis>=now() OR tbl_benutzerfunktion.datum_bis is null)
|
||||
AND tbl_lehrveranstaltung.lehrveranstaltung_id IN(
|
||||
SELECT
|
||||
lehrveranstaltung_id
|
||||
FROM
|
||||
lehre.tbl_moodle
|
||||
WHERE
|
||||
moodle_version='2.4'
|
||||
AND mdl_course_id=".$this->db_add_param($mdl_course_id, FHC_INTEGER)."
|
||||
AND lehrveranstaltung_id IS NOT NULL
|
||||
UNION
|
||||
SELECT
|
||||
tbl_lehreinheit.lehrveranstaltung_id
|
||||
FROM
|
||||
lehre.tbl_moodle
|
||||
JOIN lehre.tbl_lehreinheit USING(lehreinheit_id)
|
||||
WHERE
|
||||
moodle_version='2.4'
|
||||
AND mdl_course_id=".$this->db_add_param($mdl_course_id, FHC_INTEGER)."
|
||||
)";
|
||||
$mitarbeiter='';
|
||||
|
||||
try
|
||||
{
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$enrolled_users = $client->core_enrol_get_enrolled_users($mdl_course_id,array(array('name'=>'userfields','value'=>'id,username')));
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->errormsg.="SOAP Fehler beim Ermitteln der Teilnehmer: ".$E->faultstring;
|
||||
return false;
|
||||
}
|
||||
|
||||
if($result_ma = $this->db_query($qry))
|
||||
{
|
||||
while($row_ma = $this->db_fetch_object($result_ma))
|
||||
{
|
||||
$user_zugeteilt=false;
|
||||
foreach($enrolled_users as $user)
|
||||
{
|
||||
if($user['username']==$row_ma->mitarbeiter_uid)
|
||||
{
|
||||
$user_zugeteilt=true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if(!$user_zugeteilt)
|
||||
{
|
||||
$retval = $this->loaduser($row_ma->mitarbeiter_uid);
|
||||
//MoodleID des Users holen bzw ggf neu anlegen
|
||||
if($retval===false)
|
||||
{
|
||||
//User anlegen
|
||||
if(!$this->createUser($row_ma->mitarbeiter_uid))
|
||||
{
|
||||
$this->errormsg = "Fehler beim Anlegen des Users $row_ma->mitarbeiter_uid: $this->errormsg";
|
||||
return false;
|
||||
}
|
||||
else
|
||||
$this->errormsg = '';
|
||||
}
|
||||
|
||||
if($retval!==-1)
|
||||
{
|
||||
if($mitarbeiter!='')
|
||||
$mitarbeiter.=',';
|
||||
$mitarbeiter.=$this->mdl_user_id;
|
||||
|
||||
//Mitarbeiter ist noch nicht zugeteilt.
|
||||
$data = new stdClass();
|
||||
$data->roleid=11; // 11=Fachbereichsleiter (selbst definierte rolle)
|
||||
$data->userid=$this->mdl_user_id;
|
||||
$data->courseid=$mdl_course_id;
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
$client = new SoapClient($this->serverurl);
|
||||
$client->enrol_manual_enrol_users(array($data));
|
||||
|
||||
$this->log.="\nFachbereitsleiterIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
|
||||
$this->log_public.="\nFachbereichsleiterIn $this->mdl_user_firstname $this->mdl_user_lastname wurde zum Kurs hinzugefügt";
|
||||
$this->sync_create++;
|
||||
}
|
||||
catch (SoapFault $E)
|
||||
{
|
||||
$this->log.="Fehler beim hinzufügen von FBL: ".$E->faultstring;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->errormsg = 'Fehler beim Ermitteln der Zugeteilten Lektoren';
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -282,58 +282,24 @@ function checkZeilenUmbruch()
|
||||
// Uebungstool
|
||||
if((!defined('CIS_LEHRVERANSTALTUNG_UEBUNGSTOOL_ANZEIGEN') || CIS_LEHRVERANSTALTUNG_UEBUNGSTOOL_ANZEIGEN) && $angemeldet)
|
||||
{
|
||||
$show=false;
|
||||
$link='';
|
||||
$link_onclick='';
|
||||
$text='';
|
||||
|
||||
//wenn kein Moodle Kurs existiert dann KT anzeigen
|
||||
$qry = "SELECT 1 FROM lehre.tbl_moodle WHERE
|
||||
(lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND studiensemester_kurzbz=".$db->db_add_param($angezeigtes_stsem).")
|
||||
OR
|
||||
(lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit
|
||||
WHERE lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND
|
||||
studiensemester_kurzbz=".$db->db_add_param($angezeigtes_stsem)."))";
|
||||
if(isset($angezeigtes_stsem))
|
||||
$studiensem = '&stsem='.urlencode($angezeigtes_stsem);
|
||||
else
|
||||
$studiensem = '';
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
if($db->db_num_rows($result)==0)
|
||||
$show=true;
|
||||
|
||||
//wenn eine Kreuzerlliste existiert dann den Link immer anzeigen
|
||||
$qry = "SELECT 1 FROM campus.tbl_uebung
|
||||
WHERE lehreinheit_id IN (SELECT lehreinheit_id FROM lehre.tbl_lehreinheit
|
||||
WHERE lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)." AND
|
||||
studiensemester_kurzbz=".$db->db_add_param($angezeigtes_stsem).")";
|
||||
if($result = $db->db_query($qry))
|
||||
if($db->db_num_rows($result)>0)
|
||||
$show=true;
|
||||
|
||||
if($show)
|
||||
//Kreuzerltool
|
||||
if($is_lector)
|
||||
{
|
||||
if(isset($angezeigtes_stsem))
|
||||
$studiensem = '&stsem='.urlencode($angezeigtes_stsem);
|
||||
else
|
||||
$studiensem = '';
|
||||
|
||||
//Kreuzerltool
|
||||
if($is_lector)
|
||||
{
|
||||
$link='benotungstool/verwaltung.php?lvid='.urlencode($lvid).$studiensem;
|
||||
$text.='<a href="'.APP_ROOT.'cms/dms.php?id='.$p->t('dms_link/benotungstoolHandbuch').'" class="Item" target="_blank">'.$p->t('lehre/benotungstoolHandbuch').' [PDF]</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$link='benotungstool/studentenansicht.php?lvid='.urlencode($lvid).$studiensem;
|
||||
}
|
||||
$link='benotungstool/verwaltung.php?lvid='.urlencode($lvid).$studiensem;
|
||||
$text.='<a href="'.APP_ROOT.'cms/dms.php?id='.$p->t('dms_link/benotungstoolHandbuch').'" class="Item" target="_blank">'.$p->t('lehre/benotungstoolHandbuch').' [PDF]</a>';
|
||||
}
|
||||
else
|
||||
{
|
||||
if($is_lector)
|
||||
{
|
||||
$link='';
|
||||
$text='<a href="'.APP_ROOT.'cms/dms.php?id='.$p->t('dms_link/benotungstoolHandbuch').'" class="Item" target="_blank">'.$p->t('lehre/benotungstoolHandbuch').' [PDF]</a>';
|
||||
$link_onclick='alert(\''.$p->t('lehre/kreuzerltoolMitMoodleInfo').'\');';
|
||||
}
|
||||
$link='benotungstool/studentenansicht.php?lvid='.urlencode($lvid).$studiensem;
|
||||
}
|
||||
|
||||
$menu[]=array
|
||||
@@ -348,112 +314,6 @@ function checkZeilenUmbruch()
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
//Moodle
|
||||
$showmoodle=false;
|
||||
$link_target='';
|
||||
$link_onclick='';
|
||||
$text='';
|
||||
$link='';
|
||||
|
||||
//Schauen ob Moodle fuer diesen Studiengang freigeschaltet ist
|
||||
$qry = "SELECT moodle FROM public.tbl_studiengang JOIN lehre.tbl_lehrveranstaltung USING(studiengang_kz) WHERE lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER);
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
if($row = $db->db_fetch_object($result))
|
||||
{
|
||||
if($db->db_parse_bool($row->moodle))
|
||||
{
|
||||
$showmoodle=true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(MOODLE)
|
||||
{
|
||||
//wenn bereits eine Kreuzerlliste existiert, dann den Moodle link nicht anzeigen
|
||||
$qry = "SELECT * FROM campus.tbl_uebung WHERE
|
||||
lehreinheit_id IN(SELECT lehreinheit_id FROM lehre.tbl_lehreinheit
|
||||
WHERE lehrveranstaltung_id=".$db->db_add_param($lvid, FHC_INTEGER)."
|
||||
AND studiensemester_kurzbz=".$db->db_add_param($angezeigtes_stsem).")";
|
||||
if($result = $db->db_query($qry))
|
||||
if($db->db_num_rows($result)>0)
|
||||
$showmoodle=false;
|
||||
|
||||
$moodle = new moodle();
|
||||
$moodle->getAll($lvid, $angezeigtes_stsem);
|
||||
if(count($moodle->result)>0)
|
||||
$showmoodle=true;
|
||||
}
|
||||
else
|
||||
$showmoodle=false;
|
||||
|
||||
if($angemeldet)
|
||||
{
|
||||
if($showmoodle )
|
||||
{
|
||||
$link = "moodle_choice.php?lvid=$lvid&stsem=$angezeigtes_stsem";
|
||||
if(count($moodle->result)>0)
|
||||
{
|
||||
if(!$is_lector)
|
||||
{
|
||||
$moodle->result=array();
|
||||
$moodle->getCourse($lvid, $angezeigtes_stsem, $user);
|
||||
|
||||
if(count($moodle->result)==1)
|
||||
$link = $moodle->getPfad($moodle->result[0]->moodle_version).'course/view.php?id='.$moodle->result[0]->mdl_course_id;
|
||||
else
|
||||
$link = "moodle_choice.php?lvid=$lvid&stsem=$angezeigtes_stsem";
|
||||
}
|
||||
else
|
||||
{
|
||||
if(count($moodle->result)==1)
|
||||
{
|
||||
$link = $moodle->getPfad($moodle->result[0]->moodle_version).'course/view.php?id='.$moodle->result[0]->mdl_course_id;
|
||||
}
|
||||
else
|
||||
$link = "moodle_choice.php?lvid=$lvid&stsem=$angezeigtes_stsem";
|
||||
}
|
||||
$link_target='_blank';
|
||||
}
|
||||
else
|
||||
{
|
||||
$link='';
|
||||
}
|
||||
|
||||
if($is_lector &&
|
||||
(!defined('CIS_LEHRVERANSTALTUNG_MOODLE_LEKTOR_EDIT')
|
||||
|| (defined('CIS_LEHRVERANSTALTUNG_MOODLE_LEKTOR_EDIT') && CIS_LEHRVERANSTALTUNG_MOODLE_LEKTOR_EDIT)
|
||||
))
|
||||
{
|
||||
$text.= '<a href="moodle2_4_wartung.php?lvid='.$lvid.'&stsem='.$angezeigtes_stsem.'" class="Item">'.$p->t('lehre/moodleWartung').'</a>
|
||||
<br /><a href="'.APP_ROOT.'cms/dms.php?id='.$p->t('dms_link/moodleHandbuch24').'" class="Item" target="_blank">'.$p->t('lehre/moodleHandbuch').'</a>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if($is_lector)
|
||||
{
|
||||
$link='';
|
||||
$link_onclick='alert(\''.$p->t('lehre/moodleMitKreuzerltoolInfo').'\'); return false';
|
||||
}
|
||||
}
|
||||
}
|
||||
if (MOODLE)
|
||||
{
|
||||
$menu[]=array
|
||||
(
|
||||
'id'=>'core_menu_moodle',
|
||||
'position'=>'70',
|
||||
'name'=>$p->t('lehre/moodle'),
|
||||
'icon'=>'../../../skin/images/button_moodle.png',
|
||||
'link'=>$link,
|
||||
'link_target'=>$link_target,
|
||||
'link_onclick'=>$link_onclick,
|
||||
'text'=>$text
|
||||
);
|
||||
}
|
||||
|
||||
//Gesamtnote
|
||||
if($is_lector && ((!defined('CIS_LEHRVERANSTALTUNG_GESAMTNOTE_ANZEIGEN') || CIS_LEHRVERANSTALTUNG_GESAMTNOTE_ANZEIGEN) && $angemeldet))
|
||||
{
|
||||
|
||||
@@ -73,15 +73,6 @@ $menu=array
|
||||
'Studienordnung'=>array('name'=>'Studienordnung', 'link'=>'lehre/studienordnung.php', 'target'=>'_blank','permissions'=>array('lehre/studienordnung')),
|
||||
'StudienplanGueltigkeit'=>array('name'=>'Studienplan Gültigkeit', 'link'=>'lehre/studienplan_gueltigkeit.php', 'target'=>'main','permissions'=>array('lehre/studienordnung')),
|
||||
|
||||
'Moodle'=>array
|
||||
(
|
||||
'name'=>'Moodle', 'permissions'=>array('basis/moodle'),
|
||||
'Account'=>array('name'=>'Accountverwaltung', 'link'=>'moodle/account_verwaltung24.php', 'target'=>'main'),
|
||||
'Kursverwaltung'=>array('name'=>'Kurs entfernen', 'link'=>'moodle/kurs_verwaltung24.php', 'target'=>'main'),
|
||||
'Rollenzuteilung'=>array('name'=>'Rollenzuteilung', 'link'=>'moodle/rollenzuteilung24.php', 'target'=>'main'),
|
||||
'UserSync'=>array('name'=>'User Sync', 'link'=>'moodle/user_sync24.php', 'target'=>'main'),
|
||||
'UserMassCreate'=>array('name'=>'User Massenanlage', 'link'=>'moodle/account_masscreate24.php', 'target'=>'main'),
|
||||
),
|
||||
'Freifach'=>array
|
||||
(
|
||||
'name'=>'Freifach', 'permissions'=>array('lehre/freifach'),
|
||||
@@ -168,6 +159,8 @@ $menu=array
|
||||
'Service'=>array('name'=>'Service', 'link'=>'stammdaten/service_frameset.html', 'target'=>'main','permissions'=>array('basis/service')),
|
||||
'Dokumentvorlagen'=>array('name'=>'Dokumentvorlagen', 'link'=>'stammdaten/dokumentvorlagen_verwaltung.php', 'target'=>'main','permissions'=>array('basis/dokumente')),
|
||||
'GSProgramm'=>array('name'=>'GSProgramm', 'link'=>'stammdaten/gsprogramm.php', 'target'=>'main','permissions'=>array('inout/uebersicht')),
|
||||
'Studiensemester'=>array('name'=>'Studiensemester', 'link'=>'../index.ci.php/organisation/studiensemester/listStudiensemester', 'target'=>'main','permissions'=>array('admin')),
|
||||
'Studienjahr'=>array('name'=>'Studienjahr', 'link'=>'../index.ci.php/organisation/studienjahr/listStudienjahr', 'target'=>'main','permissions'=>array('admin')),
|
||||
'FH Ausweis'=>array
|
||||
(
|
||||
'name'=>'FH Ausweis','permissions'=>array('basis/fhausweis'),
|
||||
@@ -231,13 +224,7 @@ $menu=array
|
||||
'Cronjobs'=>array('name'=>'Cronjobs', 'link'=>'stammdaten/cronjobverwaltung.php', 'target'=>'main','permissions'=>array('basis/cronjob')),
|
||||
'Vorlagen'=>array('name'=>'Vorlagen', 'link'=>'../index.ci.php/system/Vorlage', 'target'=>'main','permissions'=>array('basis/cronjob')),
|
||||
'Phrasen'=>array('name'=>'Phrasen', 'link'=>'../index.ci.php/system/Phrases', 'target'=>'main','permissions'=>array('basis/cronjob'))
|
||||
),
|
||||
'SD-Tools'=> array
|
||||
(
|
||||
'name'=>'SD-Tools', 'opener'=>'true', 'hide'=>'true', 'permissions'=>array('sdTools'), 'image'=>'vilesci_sdtools.png',
|
||||
'link'=>'https://sdtools.technikum-wien.at', 'target'=>'_blank',
|
||||
)
|
||||
|
||||
);
|
||||
|
||||
require_once(dirname(__FILE__).'/../statistik.class.php');
|
||||
@@ -261,6 +248,8 @@ if($addon_obj->loadAddons())
|
||||
foreach($addon_obj->result as $row)
|
||||
{
|
||||
$menu['Addons'][$row->kurzbz]=array('name'=>$row->addon_name, 'link'=>'../addons/'.$row->kurzbz.'/vilesci/index.php', 'target'=>'main');
|
||||
if(file_exists('../addons/'.$row->kurzbz.'/vilesci/menu.inc.php'))
|
||||
include('../addons/'.$row->kurzbz.'/vilesci/menu.inc.php');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -173,4 +173,6 @@ $this->phrasen['benotungstool/importAnweisung']='Kopieren Sie die Spalten Person
|
||||
$this->phrasen['benotungstool/pruefung']='Prüfung';
|
||||
$this->phrasen['benotungstool/notenlisteImport']='Notenliste für den LV-Noten-Import (Excel)';
|
||||
$this->phrasen['benotungstool/bearbeitetvon']='Bearbeitet von';
|
||||
?>
|
||||
$this->phrasen['benotungstool/teilnoten']='Teilnoten';
|
||||
$this->phrasen['benotungstool/hilfeImport']='Zum Importieren der Noten markieren sie die Spalten Kennzeichen und Note im Excel-File und kopieren sie diese in die Zwischenablage. Drücken sie danach diesen Knopf erneut, um die Noten zu importieren';
|
||||
?>
|
||||
|
||||
@@ -21,12 +21,6 @@ $this->phrasen['lehre/feedback']='Feedback';
|
||||
|
||||
$this->phrasen['lehre/benotungstoolHandbuch']='Handbuch';
|
||||
$this->phrasen['lehre/kreuzerltool']='Übungstool<br>("Kreuzerl"-Tool)';
|
||||
$this->phrasen['lehre/kreuzerltoolMitMoodleInfo']='Das Übungstool kann nicht gleichzeitig mit Moodle verwendet werden.\nWenn Sie das Übungstool verwenden wollen, müssen Sie den Moodle Kurs entfernen. Wenden Sie sich hierzu bitte an den Lektorensupport';
|
||||
|
||||
$this->phrasen['lehre/moodle']='Moodle';
|
||||
$this->phrasen['lehre/moodleWartung']='Wartung';
|
||||
$this->phrasen['lehre/moodleHandbuch']='Handbuch';
|
||||
$this->phrasen['lehre/moodleMitKreuzerltoolInfo']='Moodle kann nicht gleichzeitig mit dem Übungstool verwendet werden.\nWenn Sie Moodle verwenden wollen, müssen Sie die Übungen im Übungstool entfernen';
|
||||
|
||||
$this->phrasen['lehre/gesamtnote']='Gesamtnote';
|
||||
$this->phrasen['lehre/studentenAbgabe']='Studierenden Abgabe';
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
<?php
|
||||
$this->phrasen['moodle/sieSindNichtAngemeldet']='Sie sind nicht angemeldet. Es wurde keine Benutzer UID gefunden';
|
||||
$this->phrasen['moodle/lvidMussUebergebenWerden']='lvid muss uebergeben werden';
|
||||
$this->phrasen['moodle/esWurdeKeinStudiensemesterUebergeben']='Es wurde kein Studiensemester uebergeben';
|
||||
$this->phrasen['moodle/esMussMindestensEineLehreinheitMarkiertSein']='Es muss mindestens eine Lehreinheit markiert sein';
|
||||
$this->phrasen['moodle/esWurdeKeineGueltigeIdUebergeben']='Es wurde keine oder eine ungueltige ID übergeben';
|
||||
$this->phrasen['moodle/testkursWurdeErfolgreichAngelegt']='Der Testkurs wurde erfolgreich angelegt';
|
||||
$this->phrasen['moodle/esExistiertBereitsEinTestkurs']='Es existiert bereits ein Testkurs';
|
||||
$this->phrasen['moodle/esIstBereitsEinMoodleKursVorhanden']='Es ist bereits ein Moodle Kurs für die gesamte LV vorhanden';
|
||||
$this->phrasen['moodle/moodleKursAnlegen']='Moodle Kurs anlegen';
|
||||
$this->phrasen['moodle/moodleKursAnlegen24']='Moodle 2.4 Kurs anlegen';
|
||||
$this->phrasen['moodle/kursbezeichnung']='Kursbezeichnung';
|
||||
$this->phrasen['moodle/gruppenUebernehmen']='Gruppen übernehmen';
|
||||
$this->phrasen['moodle/kursAnlegen']='Kurs anlegen';
|
||||
$this->phrasen['moodle/vorhandeneMoodleKurse']='Vorhandene Moodle Kurse für diese LV';
|
||||
$this->phrasen['moodle/testkurse']='Testkurse';
|
||||
$this->phrasen['moodle/klickenSieHierUmTestkursErstellen']='klicken Sie hier um einen Testkurs zu erstellen';
|
||||
$this->phrasen['moodle/fehlerBeimAnlegenAufgetreten']='Es ist ein Fehler beim Anlegen aufgetreten';
|
||||
$this->phrasen['moodle/artIstUnbekannt']='art ist unbekannt';
|
||||
$this->phrasen['moodle/datenWurdenAktualisiert']='Daten wurden aktualisiert';
|
||||
$this->phrasen['moodle/fehlerBeiDerLektorenZuordnung']='Fehler bei der Lektorenzuordnung';
|
||||
$this->phrasen['moodle/fehlerBeiDerStudentenZuordnung']='Fehler bei der Studentenzuordnung';
|
||||
$this->phrasen['moodle/testkurse24']='Testkurse für Moodle 2.4';
|
||||
$this->phrasen['moodle/klickenSieHierUmTestkursErstellen24']='klicken Sie hier um einen Testkurs für Moodle 2.4 zu erstellen';
|
||||
$this->phrasen['moodle/kursUebersicht']='Moodle - Kursübersicht';
|
||||
$this->phrasen['moodle/ungueltigeVersion']='Moodlekurs mit ungültiger Versionsnummer: %s';
|
||||
$this->phrasen['moodle/weiterleitung']='Sie werden automatisch weitergeleitet. Sollte die Weiterleitung nicht automatisch funktionieren klicken Sie <a href="%s">hier</a>';
|
||||
$this->phrasen['moodle/wartungschoice']='<center><br><br><b>Moodle Versionsauswahl</b>
|
||||
<br><br><br>
|
||||
Bitte wählen Sie die Moodle Version die Sie für Ihre Lehrveranstaltung verwenden möchten:
|
||||
<br><br>
|
||||
<a href="%1s">Moodle Version 1.9</a><br><br>
|
||||
<a href="%2s">Moodle Version 2.4</a><br>
|
||||
<br><br>
|
||||
Moodle befindet sich derzeit im Dualbetrieb.<br>
|
||||
Ab dem <b>Wintersemester 2014</b> wird Moodle nur noch in der <b>Version 2.4</b> angeboten.
|
||||
</center>';
|
||||
$this->phrasen['moodle/meineKurse']='Meine Kurse';
|
||||
$this->phrasen['moodle/vorhandeneKurse']='Vorhandene Kurse';
|
||||
?>
|
||||
@@ -41,4 +41,5 @@ $this->phrasen['zeitsperre/legendeGrund']='G...Grund';
|
||||
$this->phrasen['zeitsperre/legendeErreichbarkeit']='E...Erreichbarkeit (n=nicht erreichbar, t=telefonisch, e=eMail, et=eMail oder telefonisch)';
|
||||
$this->phrasen['zeitsperre/legendeVertretung']='V...Vertretung';
|
||||
$this->phrasen['zeitsperre/legendeDurchwahl']='(123)...Durchwahl';
|
||||
$this->phrasen['zeitsperre/vertretungNichtKorrekt']='Die angegebene Vertretung kann nicht gefunden werden. Bitte prüfen Sie die Vertretung und versuchen Sie es erneut.';
|
||||
?>
|
||||
|
||||
@@ -21,12 +21,6 @@ $this->phrasen['lehre/feedback']='Feedback';
|
||||
|
||||
$this->phrasen['lehre/benotungstoolHandbuch']='Manual';
|
||||
$this->phrasen['lehre/kreuzerltool']='Assignment tool<br>("Checkbox"-Tool)';
|
||||
$this->phrasen['lehre/kreuzerltoolMitMoodleInfo']='You can\'t use the assignment tool together with Moodle.\nIf you wish to use the assignment tool, you have to delete your Moodle Course. Please contact the Support';
|
||||
|
||||
$this->phrasen['lehre/moodle']='Moodle';
|
||||
$this->phrasen['lehre/moodleWartung']='Maintenance';
|
||||
$this->phrasen['lehre/moodleHandbuch']='Manual';
|
||||
$this->phrasen['lehre/moodleMitKreuzerltoolInfo']='You can\'t use Moodle together with assignment tool.\nIf you wish to use Moodle, you have to delte the exercises from the assignment tool.';
|
||||
|
||||
$this->phrasen['lehre/gesamtnote']='Final Grade';
|
||||
$this->phrasen['lehre/studentenAbgabe']='Student Uploads';
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
<?php
|
||||
$this->phrasen['moodle/sieSindNichtAngemeldet']='You are not logged in. No matching UID was found';
|
||||
$this->phrasen['moodle/lvidMussUebergebenWerden']='lvid must be provided';
|
||||
$this->phrasen['moodle/esWurdeKeinStudiensemesterUebergeben']='The study semester was not provided';
|
||||
$this->phrasen['moodle/esMussMindestensEineLehreinheitMarkiertSein']='At least one teaching unit must be selected';
|
||||
$this->phrasen['moodle/esWurdeKeineGueltigeIdUebergeben']='The ID was not provided or was invalid';
|
||||
$this->phrasen['moodle/testkursWurdeErfolgreichAngelegt']='The test course was successfully created';
|
||||
$this->phrasen['moodle/esExistiertBereitsEinTestkurs']='A test course already exists';
|
||||
$this->phrasen['moodle/esIstBereitsEinMoodleKursVorhanden']='A Moodle course already exists for the total course';
|
||||
$this->phrasen['moodle/moodleKursAnlegen']='Create Moodle course';
|
||||
$this->phrasen['moodle/moodleKursAnlegen24']='Create Moodle 2.4 course';
|
||||
$this->phrasen['moodle/kursbezeichnung']='Course Name';
|
||||
$this->phrasen['moodle/gruppenUebernehmen']='Accept groups';
|
||||
$this->phrasen['moodle/kursAnlegen']='Create course';
|
||||
$this->phrasen['moodle/vorhandeneMoodleKurse']='Existing Moodle courses for this course';
|
||||
$this->phrasen['moodle/testkurse']='Test course';
|
||||
$this->phrasen['moodle/klickenSieHierUmTestkursErstellen']='click here to create a test course';
|
||||
$this->phrasen['moodle/fehlerBeimAnlegen']='An error occurred when creating the course';
|
||||
$this->phrasen['moodle/artIstUnbekannt']='unknown "art"';
|
||||
$this->phrasen['moodle/datenWurdenAktualisiert']='The data has been updated';
|
||||
$this->phrasen['moodle/fehlerBeiDerLektorenZuordnung']='Error assigning the lecturer';
|
||||
$this->phrasen['moodle/fehlerBeiDerStudentenZuordnung']='Error assigning the student';
|
||||
$this->phrasen['moodle/testkurse24']='Test courses for Moodle 2.4';
|
||||
$this->phrasen['moodle/klickenSieHierUmTestkursErstellen24']='click here to create a test course for Moodle 2.4.';
|
||||
$this->phrasen['moodle/kursUebersicht']='Moodle - Course Overview';
|
||||
$this->phrasen['moodle/ungueltigeVersion']='Moodle course with invalid version number: %s';
|
||||
$this->phrasen['moodle/weiterleitung']='You will be forwarded automatically. If you are not forwarded automatically, click <a href="%s">here</a>';
|
||||
$this->phrasen['moodle/wartungschoice']='<center><br><br><b>Moodle version selection</b>
|
||||
<br><br><br>
|
||||
Please select the Moodle version you want to use for your course:
|
||||
<br><br>
|
||||
<a href="%1s">Moodle Version 1.9</a><br><br>
|
||||
<a href="%2s">Moodle Version 2.4</a><br>
|
||||
<br><br>
|
||||
Two versions of Moodle are currently offered.<br>
|
||||
Starting <b>Winter Semester 2014</b>, Moodle will only be available in <b>version 2.4</b>.
|
||||
</center>';
|
||||
$this->phrasen['moodle/meineKurse']='My Courses';
|
||||
$this->phrasen['moodle/vorhandeneKurse']='Available Courses';
|
||||
?>
|
||||
@@ -41,4 +41,5 @@ $this->phrasen['zeitsperre/legendeGrund']='R...Reason';
|
||||
$this->phrasen['zeitsperre/legendeErreichbarkeit']='A...Availability (n=not available, t=telephone, e=eMail, et=eMail or telephone)';
|
||||
$this->phrasen['zeitsperre/legendeVertretung']='S...Substitute';
|
||||
$this->phrasen['zeitsperre/legendeDurchwahl']='(123)...Extension';
|
||||
$this->phrasen['zeitsperre/vertretungNichtKorrekt']='The selected substitute is invalid. Please check the substitute an try again.';
|
||||
?>
|
||||
|
||||
@@ -12,15 +12,11 @@ $this->phrasen['lehre/gesamtnote']='Voto finale';
|
||||
$this->phrasen['lehre/keineLektorenZugeordnet']='Al momento non è assegnato alcun docente per questo insegnamento';
|
||||
$this->phrasen['lehre/keinMailverteiler']='Per il/i gruppo/i %s non esiste alcuna lista di destinatari! Gli studenti in questo/i gruppo/i non riceveranno alcuna mail.';
|
||||
$this->phrasen['lehre/kreuzerltool']='strumenti per esercitazioni<br>(tool con caselle da barrare)';
|
||||
$this->phrasen['lehre/moodleMitKreuzerltoolInfo']='Moodle non può essere utilizzato in contemporanea con lo strumento per esercitazioni. Se si vuole utilizzare Moodle bisogna annullare l’uso dello strumento per esercitazioni';
|
||||
$this->phrasen['lehre/lehrbeauftragter']='Docente incaricato';
|
||||
$this->phrasen['lehre/lehrveranstaltungsinformation']='Informazioni corso';
|
||||
$this->phrasen['lehre/leistungsuebersicht']='Panoramica per docenti';
|
||||
$this->phrasen['lehre/lvInfoBearbeiten']='Modificare';
|
||||
$this->phrasen['lehre/mail']='E-Mail agli studenti';
|
||||
$this->phrasen['lehre/moodle']='Moodle';
|
||||
$this->phrasen['lehre/moodleHandbuch']='Handbook';
|
||||
$this->phrasen['lehre/moodleWartung']='Attesa';
|
||||
$this->phrasen['lehre/newsgroups']='Newsgroups';
|
||||
$this->phrasen['lehre/nichtzugeteilt']='Lei non è stato/a associato/a a questo insegnamento';
|
||||
$this->phrasen['lehre/pinboard']='Bacheca';
|
||||
|
||||
@@ -1,30 +0,0 @@
|
||||
<?php
|
||||
$this->phrasen['moodle/artIstUnbekannt']='';
|
||||
$this->phrasen['moodle/datenWurdenAktualisiert']='';
|
||||
$this->phrasen['moodle/esExistiertBereitsEinTestkurs']='';
|
||||
$this->phrasen['moodle/esIstBereitsEinMoodleKursVorhanden']='';
|
||||
$this->phrasen['moodle/esMussMindestensEineLehreinheitMarkiertSein']='';
|
||||
$this->phrasen['moodle/esWurdeKeineGueltigeIdUebergeben']='';
|
||||
$this->phrasen['moodle/esWurdeKeinStudiensemesterUebergeben']='';
|
||||
$this->phrasen['moodle/fehlerBeiDerLektorenZuordnung']='errore attribuzione lettore';
|
||||
$this->phrasen['moodle/fehlerBeiDerStudentenZuordnung']='errore attribuzione studenti';
|
||||
$this->phrasen['moodle/fehlerBeimAnlegenAufgetreten']='';
|
||||
$this->phrasen['moodle/gruppenUebernehmen']='';
|
||||
$this->phrasen['moodle/klickenSieHierUmTestkursErstellen']='';
|
||||
$this->phrasen['moodle/klickenSieHierUmTestkursErstellen24']='';
|
||||
$this->phrasen['moodle/kursAnlegen']='';
|
||||
$this->phrasen['moodle/kursbezeichnung']='';
|
||||
$this->phrasen['moodle/kursUebersicht']='';
|
||||
$this->phrasen['moodle/lvidMussUebergebenWerden']='';
|
||||
$this->phrasen['moodle/moodleKursAnlegen']='';
|
||||
$this->phrasen['moodle/moodleKursAnlegen24']='';
|
||||
$this->phrasen['moodle/sieSindNichtAngemeldet']='';
|
||||
$this->phrasen['moodle/testkurse']='corsi test';
|
||||
$this->phrasen['moodle/testkurse24']='corsi test per Moodle 2.4';
|
||||
$this->phrasen['moodle/testkursWurdeErfolgreichAngelegt']='';
|
||||
$this->phrasen['moodle/ungueltigeVersion']='';
|
||||
$this->phrasen['moodle/vorhandeneMoodleKurse']='';
|
||||
$this->phrasen['moodle/wartungschoice']='';
|
||||
$this->phrasen['moodle/weiterleitung']='';
|
||||
|
||||
?>
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 2.5 KiB |
@@ -70,7 +70,6 @@ function getLehrveranstaltungFromId($lehrveranstaltung_id, $semester, $authentif
|
||||
class foo{};
|
||||
$mitarbeiterlehreinheit = array(); // uids aller mitarbeiter
|
||||
$gruppelehreinheit = array(); // objekte aller gruppen
|
||||
$moodleArray = array(); // ids aller moodle kurse
|
||||
|
||||
// wenn semester nicht übergeben wurde, gib nur bezeichnung und lehreverzeichnis aus
|
||||
if($semester != '')
|
||||
@@ -102,16 +101,11 @@ function getLehrveranstaltungFromId($lehrveranstaltung_id, $semester, $authentif
|
||||
$gruppelehreinheit[] = $grp;
|
||||
}
|
||||
}
|
||||
|
||||
// alle moodle kurse einer lv
|
||||
$moodleArray = $lv->getMoodleKurse($lehrveranstaltung_id, $semester);
|
||||
|
||||
}
|
||||
|
||||
$LvObject = new foo();
|
||||
$LvObject->bezeichnung = $lv->bezeichnung;
|
||||
$LvObject->lehreverzeichnis = $lv->lehreverzeichnis;
|
||||
$LvObject->moodle_id = $moodleArray;
|
||||
$LvObject->lektoren = $mitarbeiterlehreinheit;
|
||||
$LvObject->gruppen= $gruppelehreinheit;
|
||||
|
||||
@@ -164,7 +158,6 @@ function getLehrveranstaltungFromStudiengang($studiengang, $semester, $ausbildun
|
||||
{
|
||||
$mitarbeiterlehreinheit = array(); // uids aller mitarbeiter der lehreinheit
|
||||
$gruppelehreinheit = array(); // ids aller grupper der lehreinheit
|
||||
$moodleArray = array();
|
||||
|
||||
// hole alle Lehreinheiten von Lehrveranstaltung
|
||||
$lehreinheit = new lehreinheit();
|
||||
@@ -196,14 +189,11 @@ function getLehrveranstaltungFromStudiengang($studiengang, $semester, $ausbildun
|
||||
$gruppelehreinheit[] = $grp;
|
||||
}
|
||||
}
|
||||
// alle moodlekurse der lehrveranstaltung
|
||||
$moodleArray = $lv->getMoodleKurse($lv->lehrveranstaltung_id, $semester);
|
||||
|
||||
// LV Object für Rückgabe
|
||||
$lehrveranstaltungen = new bar();
|
||||
$lehrveranstaltungen->bezeichnung = $lv->bezeichnung;
|
||||
$lehrveranstaltungen->lehreverzeichnis = $lv->lehreverzeichnis;
|
||||
$lehrveranstaltungen->moodle_id = $moodleArray;
|
||||
$lehrveranstaltungen->lektoren = $mitarbeiterlehreinheit;
|
||||
$lehrveranstaltungen->gruppen = $gruppelehreinheit;
|
||||
|
||||
|
||||
@@ -24,7 +24,6 @@ echo "<?xml version='1.0' encoding='utf-8' ?>";
|
||||
<s:complexType name="GetLehrveranstaltungFromId">
|
||||
<s:element minOccurs="0" maxOccurs="1" name="bezeichnung" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="lehreverzeichnis" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="moodle_id" type="tns:ArrayOfMoodleItem"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="lektoren" type="tns:ArrayOfLektorenItem"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="gruppen" type="tns:ArrayOfGruppenItem"/>
|
||||
</s:complexType>
|
||||
@@ -43,7 +42,6 @@ echo "<?xml version='1.0' encoding='utf-8' ?>";
|
||||
<s:complexType name="GetLehrveranstaltungFromStudiengang">
|
||||
<s:element minOccurs="0" maxOccurs="1" name="bezeichnung" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="lehreverzeichnis" type="s:string"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="moodle_id" type="tns:ArrayOfMoodleItem"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="lektoren" type="tns:ArrayOfLektorenItem"/>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="gruppen" type="tns:ArrayOfGruppenItem"/>
|
||||
</s:complexType>
|
||||
@@ -80,16 +78,6 @@ echo "<?xml version='1.0' encoding='utf-8' ?>";
|
||||
<s:element minOccurs="0" maxOccurs="1" name="gruppe_kurzbz" type="s:string"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:complexType name="ArrayOfMoodleItem">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="unbounded" name="MoodleItem" nillable="true" type="tns:MoodleItem"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
<s:complexType name="MoodleItem">
|
||||
<s:sequence>
|
||||
<s:element minOccurs="0" maxOccurs="1" name="moodle_id" type="s:string"/>
|
||||
</s:sequence>
|
||||
</s:complexType>
|
||||
|
||||
<wsdl:portType name="ConfigPortType">
|
||||
<wsdl:operation name="getLehrveranstaltungFromId">
|
||||
|
||||
@@ -411,8 +411,6 @@ $tabellen=array(
|
||||
"lehre.tbl_lvangebot" => array("lvangebot_id","lehrveranstaltung_id","studiensemester_kurzbz","gruppe_kurzbz","incomingplaetze","gesamtplaetze","anmeldefenster_start","anmeldefenster_ende","insertamum","insertvon","updateamum","updatevon"),
|
||||
"lehre.tbl_lvregel" => array("lvregel_id","lvregeltyp_kurzbz","operator","parameter","lvregel_id_parent","lehrveranstaltung_id","studienplan_lehrveranstaltung_id","insertamum","insertvon","updateamum","updatevon"),
|
||||
"lehre.tbl_lvregeltyp" => array("lvregeltyp_kurzbz","bezeichnung"),
|
||||
"lehre.tbl_moodle" => array("lehrveranstaltung_id","lehreinheit_id","moodle_id","mdl_course_id","studiensemester_kurzbz","gruppen","insertamum","insertvon","moodle_version"),
|
||||
"lehre.tbl_moodle_version" => array("moodle_version","bezeichnung","pfad"),
|
||||
"lehre.tbl_notenschluessel" => array("notenschluessel_kurzbz","bezeichnung"),
|
||||
"lehre.tbl_notenschluesselaufteilung" => array("notenschluesselaufteilung_id","notenschluessel_kurzbz","note","punkte"),
|
||||
"lehre.tbl_notenschluesselzuordnung" => array("notenschluesselzuordnung_id","notenschluessel_kurzbz","lehrveranstaltung_id","studienplan_id","oe_kurzbz","studiensemester_kurzbz"),
|
||||
|
||||
+38
-43
@@ -73,20 +73,20 @@ echo '
|
||||
<tbody>
|
||||
';
|
||||
// Apache
|
||||
printVersion("Apache", apache_get_version());
|
||||
printValue("Apache", apache_get_version());
|
||||
|
||||
// PHP version
|
||||
printVersion("php", phpversion());
|
||||
printValue("php", version_compare(phpversion(),'5.6','>='), 'minimum php 5.6 required');
|
||||
|
||||
// PHP module
|
||||
printVersion("php-xsl", phpversion('xsl'));
|
||||
printVersion("php-gd", phpversion('gd'));
|
||||
printVersion("php-pgsql", phpversion('pgsql'));
|
||||
printVersion("php-ldap", phpversion('ldap'));
|
||||
printVersion("php-mcrypt", phpversion('mcrypt'));
|
||||
printVersion("php-mbstring", phpversion('mbstring'));
|
||||
printVersion("php-soap", phpversion('soap'));
|
||||
printVersion("php-curl", phpversion('curl'));
|
||||
printValue("php-xsl", extension_loaded('xsl'));
|
||||
printValue("php-gd", extension_loaded('gd'));
|
||||
printValue("php-pgsql", extension_loaded('pgsql'));
|
||||
printValue("php-ldap", extension_loaded('ldap'));
|
||||
printValue("php-mcrypt", extension_loaded('mcrypt'));
|
||||
printValue("php-mbstring", extension_loaded('mbstring'));
|
||||
printValue("php-soap", extension_loaded('soap'));
|
||||
printValue("php-curl", extension_loaded('curl'));
|
||||
|
||||
// Unoconv version
|
||||
$returnArray = array();
|
||||
@@ -94,50 +94,45 @@ exec('unoconv --version',$returnArray);
|
||||
if(isset($returnArray[0]))
|
||||
$unoconvVersion = explode(' ',$returnArray[0])[1];
|
||||
else
|
||||
$unoconvVersion = null;
|
||||
$unoconvVersion = false;
|
||||
|
||||
printVersion("Unoconv", $unoconvVersion, "0.7");
|
||||
printValue("Unoconv", $unoconvVersion, "0.7");
|
||||
|
||||
// Codeigniter Environment Variable CI_ENV
|
||||
$CI_ENV = getenv('CI_ENV');
|
||||
printVersion("CI_ENV", $CI_ENV);
|
||||
printValue("CI_ENV", ($CI_ENV!=''?$CI_ENV:false),'not set -> defaults to development');
|
||||
|
||||
// ZIP
|
||||
printVersion("zip", checkInstalled('zip'));
|
||||
printValue("zip", checkInstalled('zip'));
|
||||
|
||||
// Composer
|
||||
printVersion("composer", checkInstalled('composer'));
|
||||
printValue("composer", checkInstalled('composer'));
|
||||
|
||||
// Composer / Vendor
|
||||
$vendorFileExists = file_exists('../vendor/codeigniter/framework/index.php');
|
||||
printVersion("Composer Status", ($vendorFileExists?'ok':'out of date'));
|
||||
printValue("Composer Status", $vendorFileExists, 'out of date');
|
||||
|
||||
// Config Files
|
||||
$ConfigExists = file_exists('../config/cis.config.inc.php');
|
||||
if(!$ConfigExists)
|
||||
$ConfigExists = file_exists('../config/vilesci.config.inc.php');
|
||||
|
||||
printVersion("ConfigFile CIS/Vilesci", ($ConfigExists?'ok':'missing'));
|
||||
printValue("ConfigFile CIS/Vilesci", $ConfigExists);
|
||||
|
||||
$ConfigExists = file_exists('../config/global.config.inc.php');
|
||||
printVersion("ConfigFile Global", ($ConfigExists?'ok':'missing'));
|
||||
printValue("ConfigFile Global", $ConfigExists);
|
||||
|
||||
if($CI_ENV == '')
|
||||
$CI_ENV = 'production';
|
||||
$CI_ENV = 'development';
|
||||
$ConfigExists = file_exists('../application/config/'.$CI_ENV.'/config.php');
|
||||
printVersion("ConfigFile Codeigniter", ($ConfigExists?'ok':'missing'));
|
||||
printValue("ConfigFile Codeigniter", $ConfigExists);
|
||||
|
||||
// Htaccess Files
|
||||
$htaccessExists = file_exists('../cis/private/.htaccess');
|
||||
printVersion("htaccess File CIS", ($htaccessExists?'ok':'missing'));
|
||||
$htaccessExists = file_exists('../content/.htaccess');
|
||||
printVersion("htaccess File Content", ($htaccessExists?'ok':'missing'));
|
||||
$htaccessExists = file_exists('../vilesci/.htaccess');
|
||||
printVersion("htaccess File Vilesci", ($htaccessExists?'ok':'missing'));
|
||||
$htaccessExists = file_exists('../system/.htaccess');
|
||||
printVersion("htaccess File System", ($htaccessExists?'ok':'missing'));
|
||||
$htaccessExists = file_exists('../rdf/.htaccess');
|
||||
printVersion("htaccess File RDF", ($htaccessExists?'ok':'missing'));
|
||||
printValue("htaccess File CIS", file_exists('../cis/private/.htaccess'), 'missing htaccess File');
|
||||
printValue("htaccess File Content", file_exists('../content/.htaccess'), 'missing htaccess File');
|
||||
printValue("htaccess File Vilesci", file_exists('../vilesci/.htaccess'), 'missing htaccess File');
|
||||
printValue("htaccess File System", file_exists('../system/.htaccess'), 'missing htaccess File');
|
||||
printValue("htaccess File RDF", file_exists('../rdf/.htaccess'), 'missing htaccess File');
|
||||
|
||||
echo '
|
||||
</tbody>
|
||||
@@ -145,24 +140,24 @@ echo '
|
||||
</body>
|
||||
</html>';
|
||||
|
||||
function printVersion($module, $currentVersion, $expectedVersion = '')
|
||||
function printValue($module, $status_ok, $message='')
|
||||
{
|
||||
$failed = false;
|
||||
|
||||
if ($currentVersion == null)
|
||||
$failed = true;
|
||||
|
||||
if ($currentVersion == '')
|
||||
$currentVersion = 'missing';
|
||||
if ($expectedVersion != '' && $currentVersion != $expectedVersion)
|
||||
$failed = true;
|
||||
if(!is_bool($status_ok))
|
||||
{
|
||||
$output = $status_ok;
|
||||
$status_ok = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$output = ($status_ok?'ok':'failed');
|
||||
}
|
||||
|
||||
echo '
|
||||
<tr>
|
||||
<td>'.$module.'</td>
|
||||
<td><span class="'.($failed?'fail':'ok').'">'.$currentVersion.'</span>';
|
||||
if($failed && $expectedVersion != '')
|
||||
echo ' (should be '.$expectedVersion.')';
|
||||
<td><span class="'.($status_ok?'ok':'fail').'">'.$output.'</span>';
|
||||
if(!$status_ok && $message!='')
|
||||
echo ' '.$message;
|
||||
echo '</td>';
|
||||
echo '</tr>';
|
||||
}
|
||||
|
||||
@@ -1103,7 +1103,7 @@ $error_msg='';
|
||||
ob_flush();
|
||||
|
||||
$sql_query = "SELECT distinct mitarbeiter_uid uid
|
||||
from lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, lehre.tbl_moodle ,campus.vw_lehreinheit
|
||||
from lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit, addon.tbl_moodle ,campus.vw_lehreinheit
|
||||
where tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id
|
||||
and vw_lehreinheit.studiengang_kz=tbl_lehrveranstaltung.studiengang_kz
|
||||
and vw_lehreinheit.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
FHComplete Moodle 2.4 Webservice Plugin
|
||||
=======================================
|
||||
|
||||
Mit diesem Plugin wird Moodle 2.4 um zusätzliche Webservices erweitert
|
||||
die für die Syncronisation mit FHComplete benötigt werden.
|
||||
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
- ) Zur Installation des Plugins muss der gesamte Ordner fhcompletews in den
|
||||
Ordner local der Moodleinstallation kopiert werden.
|
||||
|
||||
zB: cp /var/www/fhcomplete/system/moodlePlugin/fhcompletews /var/www/moodle/local/
|
||||
|
||||
- ) Danach muss die Moodle Startseite aufgerufen werden.
|
||||
Das neue Plugin wird automatisch erkannt uns installiert.
|
||||
|
||||
Sonstiges
|
||||
=========
|
||||
|
||||
Falls Änderungen am Plugin durchgeführt werden, muss in version.php die Versionsnummer erhöht werden
|
||||
damit Moodle die Änderung an dem Plugin erkennt und ein Update durchführt.
|
||||
@@ -1,53 +0,0 @@
|
||||
<?php
|
||||
|
||||
// Moodle is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* Web service local plugin template external functions and service definitions.
|
||||
*
|
||||
* @package localwstemplate
|
||||
* @copyright 2011 Jerome Mouneyrac
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
// We defined the web service functions to install.
|
||||
$functions = array(
|
||||
'fhcomplete_get_course_grades' => array(
|
||||
'classname' => 'local_fhcompletews_external',
|
||||
'methodname' => 'get_course_grades',
|
||||
'classpath' => 'local/fhcompletews/externallib.php',
|
||||
'description' => 'Get Grades of a course',
|
||||
'type' => 'read',
|
||||
'capabilities'=> 'moodle/course:update,moodle/course:viewhiddencourses',
|
||||
),
|
||||
|
||||
'fhcomplete_courses_by_shortname' => array(
|
||||
'classname' => 'local_fhcompletews_external',
|
||||
'methodname' => 'get_courses_by_shortname',
|
||||
'classpath' => 'local/fhcompletews/externallib.php',
|
||||
'description' => 'Get course contents by Shortname',
|
||||
'type' => 'read',
|
||||
'capabilities'=> 'moodle/course:update,moodle/course:viewhiddencourses',
|
||||
),
|
||||
|
||||
'fhcomplete_user_get_users' => array(
|
||||
'classname' => 'local_fhcompletews_external',
|
||||
'methodname' => 'get_users',
|
||||
'classpath' => 'local/fhcompletews/externallib.php',
|
||||
'description' => 'get Users by Criteria',
|
||||
'type' => 'read',
|
||||
'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update',
|
||||
),
|
||||
|
||||
);
|
||||
@@ -1,642 +0,0 @@
|
||||
<?php
|
||||
// Moodle is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* External Web Service Template
|
||||
*
|
||||
* @package localwstemplate
|
||||
* @copyright 2011 Moodle Pty Ltd (http://moodle.com)
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
require_once($CFG->libdir . "/externallib.php");
|
||||
|
||||
class local_fhcompletews_external extends external_api
|
||||
{
|
||||
|
||||
/**************************************************
|
||||
* Webservice get_course_grades
|
||||
*
|
||||
* Laedt die Noten eines Kurses
|
||||
**************************************************/
|
||||
public static function get_course_grades_parameters()
|
||||
{
|
||||
return new external_function_parameters(
|
||||
array(
|
||||
'courseid' => new external_value(PARAM_INT, 'Moodle CourseID'),
|
||||
'type' => new external_value(PARAM_INT,'Type 1=Punkte, 2=Prozent, 3=Endnote lt Skala')
|
||||
), 'Get Course Grades'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get course Grades
|
||||
* @param int courseid
|
||||
* @return array
|
||||
*/
|
||||
public static function get_course_grades($courseid, $type)
|
||||
{
|
||||
global $CFG, $DB;
|
||||
require_once($CFG->dirroot . "/course/lib.php");
|
||||
require_once($CFG->dirroot.'/grade/export/lib.php');
|
||||
|
||||
//validate parameter
|
||||
$params = self::validate_parameters(self::get_course_grades_parameters(),
|
||||
array('courseid' => $courseid, 'type'=>$type));
|
||||
|
||||
$notenart = $type;
|
||||
//$notenart=3; // 1=Punkte, 2=Prozent; 3=Endnote nach Skala
|
||||
$gui=array();
|
||||
$final_id='';
|
||||
$data = array();
|
||||
|
||||
// Kursdaten Laden
|
||||
if (!$course = $DB->get_record('course', array('id'=>$courseid)))
|
||||
{
|
||||
throw new moodle_exception('Course not found', '', '', null, 'The course ' . $courseid . ' is not found');
|
||||
return false;
|
||||
}
|
||||
|
||||
$id=$course->id;
|
||||
$kursname=$course->fullname;
|
||||
$shortname=$course->shortname;
|
||||
|
||||
//ODS Notenexport starten
|
||||
require_login($course);
|
||||
$context = get_context_instance(CONTEXT_COURSE, $courseid);
|
||||
require_once($CFG->dirroot.'/grade/export/ods/grade_export_ods.php');
|
||||
|
||||
if (!$export = new grade_export_ods($course, 0, 0, false, false, $notenart, 2))
|
||||
{
|
||||
throw new moodle_exception('Fehler', '', '', null, "Moodle-Kurs ".$id." ".$shortname." - keine Export Information gefunden");
|
||||
return false;
|
||||
}
|
||||
|
||||
$grad =$export->columns;
|
||||
|
||||
// Im Export sind die Noten fuer alle Abgaben, Quiz, etc enthalten
|
||||
// Wir brauchen hier nur die Gesamtnote fuer die ganzen Kurs
|
||||
foreach ($export->columns as $key=>$grade_item)
|
||||
{
|
||||
// Gesamtnote hat den itemtype "course"
|
||||
if($grade_item->itemtype=='course')
|
||||
{
|
||||
$final_id=$key;
|
||||
$finalitem = $grade_item;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if($final_id=='')
|
||||
{
|
||||
throw new moodle_exception('Fehler', '', '', null,"Moodle-Kurs ".$id." ".$shortname." - keine Endnote gefunden");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Liste mit allen Studierenden des Kurses durchlaufen
|
||||
$geub = new grade_export_update_buffer();
|
||||
$gui = new graded_users_iterator($export->course, array($final_id=>$finalitem), $export->groupid); //$export->columns
|
||||
|
||||
$gui->init();
|
||||
$kursgrad =array();
|
||||
|
||||
while ($userdata = $gui->next_user())
|
||||
{
|
||||
$user_item=array();
|
||||
$user = $userdata->user;
|
||||
$user_item['vorname']=$user->firstname;
|
||||
$user_item['nachname']=$user->lastname;
|
||||
$user_item['idnummer']=$user->idnumber;
|
||||
$user_item['username']=$user->username;
|
||||
|
||||
// Aus den vorhanden Noten wird die Endnote fuer den Kurs herausgesucht
|
||||
if(isset($userdata->grades[$final_id]))
|
||||
{
|
||||
$gradestr = $export->format_grade($userdata->grades[$final_id]);
|
||||
$user_item['note']=$gradestr;
|
||||
|
||||
// Wenn Prozent dann Prozentzeichen entfernen
|
||||
if(strpos($user_item['note'],'%')!==false)
|
||||
$user_item['note']=trim(str_replace('%','',$user_item['note']));
|
||||
|
||||
// nur zurueckliefern wenn eine Note gefunden wurde und diese nicht '-' ist
|
||||
if($user_item['note']!='-')
|
||||
$data[]=$user_item;
|
||||
}
|
||||
}
|
||||
|
||||
$gui->close();
|
||||
$geub->close();
|
||||
|
||||
if (count($data)==0)
|
||||
{
|
||||
throw new moodle_exception('Fehler', '', '', null,"Moodle-Kurs ".$id." ".$shortname." - keine Kurs-Noten Informationen gefunden ");
|
||||
return false;
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns description of method result value
|
||||
* @return external_description
|
||||
*/
|
||||
public static function get_course_grades_returns()
|
||||
{
|
||||
return new external_multiple_structure(
|
||||
new external_single_structure(
|
||||
array(
|
||||
'vorname' => new external_value(PARAM_TEXT, 'vorname'),
|
||||
'nachname' => new external_value(PARAM_TEXT, 'nachname'),
|
||||
'idnummer' => new external_value(PARAM_TEXT, 'idnummer'),
|
||||
'username' => new external_value(PARAM_TEXT, 'username'),
|
||||
'note' => new external_value(PARAM_TEXT, 'note'),
|
||||
), 'course'
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**************************************************
|
||||
* Webservice get_courses_by_shortname
|
||||
*
|
||||
* Laedt Kurse anhand der Kurzbezeichnung
|
||||
**************************************************/
|
||||
public static function get_courses_by_shortname_parameters()
|
||||
{
|
||||
return new external_function_parameters(
|
||||
array('options' => new external_single_structure(
|
||||
array('shortnames' => new external_multiple_structure(
|
||||
new external_value(PARAM_RAW, 'Short Name')
|
||||
, 'List of short names. If empty return all courses
|
||||
except front page course.',
|
||||
VALUE_OPTIONAL)
|
||||
), 'options - operator OR is used', VALUE_DEFAULT, array())
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get courses
|
||||
* @param array $options
|
||||
* @return array
|
||||
*/
|
||||
public static function get_courses_by_shortname($options)
|
||||
{
|
||||
global $CFG, $DB;
|
||||
require_once($CFG->dirroot . "/course/lib.php");
|
||||
|
||||
//validate parameter
|
||||
$params = self::validate_parameters(self::get_courses_by_shortname_parameters(),
|
||||
array('options' => $options));
|
||||
|
||||
//retrieve courses
|
||||
if (!key_exists('shortnames', $params['options'])
|
||||
or empty($params['options']['shortnames'])) {
|
||||
$courses = $DB->get_records('course');
|
||||
} else {
|
||||
$courses = $DB->get_records_list('course', 'shortname', $params['options']['shortnames']);
|
||||
}
|
||||
|
||||
//create return value
|
||||
$coursesinfo = array();
|
||||
foreach ($courses as $course)
|
||||
{
|
||||
|
||||
// now security checks
|
||||
$context = get_context_instance(CONTEXT_COURSE, $course->id);
|
||||
try
|
||||
{
|
||||
self::validate_context($context);
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$exceptionparam = new stdClass();
|
||||
$exceptionparam->message = $e->getMessage();
|
||||
$exceptionparam->shortname = $course->shortname;
|
||||
throw new moodle_exception(
|
||||
get_string('errorcoursecontextnotvalid', 'webservice', $exceptionparam));
|
||||
}
|
||||
require_capability('moodle/course:view', $context);
|
||||
|
||||
$courseinfo = array();
|
||||
$courseinfo['id'] = $course->id;
|
||||
$courseinfo['fullname'] = $course->fullname;
|
||||
$courseinfo['shortname'] = $course->shortname;
|
||||
$courseinfo['categoryid'] = $course->category;
|
||||
$courseinfo['summary'] = $course->summary;
|
||||
$courseinfo['summaryformat'] = $course->summaryformat;
|
||||
$courseinfo['format'] = $course->format;
|
||||
$courseinfo['startdate'] = $course->startdate;
|
||||
$courseinfo['numsections'] = $course->numsections;
|
||||
|
||||
//some field should be returned only if the user has update permission
|
||||
$courseadmin = has_capability('moodle/course:update', $context);
|
||||
if ($courseadmin)
|
||||
{
|
||||
$courseinfo['categorysortorder'] = $course->sortorder;
|
||||
$courseinfo['idnumber'] = $course->idnumber;
|
||||
$courseinfo['showgrades'] = $course->showgrades;
|
||||
$courseinfo['showreports'] = $course->showreports;
|
||||
$courseinfo['newsitems'] = $course->newsitems;
|
||||
$courseinfo['visible'] = $course->visible;
|
||||
$courseinfo['maxbytes'] = $course->maxbytes;
|
||||
$courseinfo['hiddensections'] = $course->hiddensections;
|
||||
$courseinfo['groupmode'] = $course->groupmode;
|
||||
$courseinfo['groupmodeforce'] = $course->groupmodeforce;
|
||||
$courseinfo['defaultgroupingid'] = $course->defaultgroupingid;
|
||||
$courseinfo['lang'] = $course->lang;
|
||||
$courseinfo['timecreated'] = $course->timecreated;
|
||||
$courseinfo['timemodified'] = $course->timemodified;
|
||||
$courseinfo['forcetheme'] = $course->theme;
|
||||
$courseinfo['enablecompletion'] = $course->enablecompletion;
|
||||
$courseinfo['completionstartonenrol'] = $course->completionstartonenrol;
|
||||
$courseinfo['completionnotify'] = $course->completionnotify;
|
||||
}
|
||||
|
||||
if ($courseadmin or $course->visible
|
||||
or has_capability('moodle/course:viewhiddencourses', $context))
|
||||
{
|
||||
$coursesinfo[] = $courseinfo;
|
||||
}
|
||||
}
|
||||
|
||||
return $coursesinfo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns description of method result value
|
||||
* @return external_description
|
||||
*/
|
||||
public static function get_courses_by_shortname_returns()
|
||||
{
|
||||
return new external_multiple_structure(
|
||||
new external_single_structure(
|
||||
array(
|
||||
'id' => new external_value(PARAM_INT, 'course id'),
|
||||
'shortname' => new external_value(PARAM_TEXT, 'course short name'),
|
||||
'categoryid' => new external_value(PARAM_INT, 'category id'),
|
||||
'categorysortorder' => new external_value(PARAM_INT,
|
||||
'sort order into the category', VALUE_OPTIONAL),
|
||||
'fullname' => new external_value(PARAM_TEXT, 'full name'),
|
||||
'idnumber' => new external_value(PARAM_RAW, 'id number', VALUE_OPTIONAL),
|
||||
'summary' => new external_value(PARAM_RAW, 'summary'),
|
||||
'summaryformat' => new external_value(PARAM_INT,
|
||||
'the summary text Moodle format'),
|
||||
'format' => new external_value(PARAM_ALPHANUMEXT,
|
||||
'course format: weeks, topics, social, site,..'),
|
||||
'showgrades' => new external_value(PARAM_INT,
|
||||
'1 if grades are shown, otherwise 0', VALUE_OPTIONAL),
|
||||
'newsitems' => new external_value(PARAM_INT,
|
||||
'number of recent items appearing on the course page', VALUE_OPTIONAL),
|
||||
'startdate' => new external_value(PARAM_INT,
|
||||
'timestamp when the course start'),
|
||||
'numsections' => new external_value(PARAM_INT, 'number of weeks/topics'),
|
||||
'maxbytes' => new external_value(PARAM_INT,
|
||||
'largest size of file that can be uploaded into the course',
|
||||
VALUE_OPTIONAL),
|
||||
'showreports' => new external_value(PARAM_INT,
|
||||
'are activity report shown (yes = 1, no =0)', VALUE_OPTIONAL),
|
||||
'visible' => new external_value(PARAM_INT,
|
||||
'1: available to student, 0:not available', VALUE_OPTIONAL),
|
||||
'hiddensections' => new external_value(PARAM_INT,
|
||||
'How the hidden sections in the course are displayed to students',
|
||||
VALUE_OPTIONAL),
|
||||
'groupmode' => new external_value(PARAM_INT, 'no group, separate, visible',
|
||||
VALUE_OPTIONAL),
|
||||
'groupmodeforce' => new external_value(PARAM_INT, '1: yes, 0: no',
|
||||
VALUE_OPTIONAL),
|
||||
'defaultgroupingid' => new external_value(PARAM_INT, 'default grouping id',
|
||||
VALUE_OPTIONAL),
|
||||
'timecreated' => new external_value(PARAM_INT,
|
||||
'timestamp when the course have been created', VALUE_OPTIONAL),
|
||||
'timemodified' => new external_value(PARAM_INT,
|
||||
'timestamp when the course have been modified', VALUE_OPTIONAL),
|
||||
'enablecompletion' => new external_value(PARAM_INT,
|
||||
'Enabled, control via completion and activity settings. Disbaled,
|
||||
not shown in activity settings.',
|
||||
VALUE_OPTIONAL),
|
||||
'completionstartonenrol' => new external_value(PARAM_INT,
|
||||
'1: begin tracking a student\'s progress in course completion
|
||||
after course enrolment. 0: does not',
|
||||
VALUE_OPTIONAL),
|
||||
'completionnotify' => new external_value(PARAM_INT,
|
||||
'1: yes 0: no', VALUE_OPTIONAL),
|
||||
'lang' => new external_value(PARAM_ALPHANUMEXT,
|
||||
'forced course language', VALUE_OPTIONAL),
|
||||
'forcetheme' => new external_value(PARAM_ALPHANUMEXT,
|
||||
'name of the force theme', VALUE_OPTIONAL),
|
||||
), 'course'
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/***********************************************************************
|
||||
* get_users - Laedt User Anhand des Usernamens
|
||||
* Backport von Moodle 2.5
|
||||
* Ab Moodle 2.5 sollte dieses Webservice bereits integriert sein
|
||||
***********************************************************************/
|
||||
|
||||
|
||||
/**
|
||||
* Returns description of get_users() parameters.
|
||||
*
|
||||
* @return external_function_parameters
|
||||
* @since Moodle 2.5
|
||||
*/
|
||||
public static function get_users_parameters() {
|
||||
return new external_function_parameters(
|
||||
array(
|
||||
'criteria' => new external_multiple_structure(
|
||||
new external_single_structure(
|
||||
array(
|
||||
'key' => new external_value(PARAM_ALPHA, 'the user column to search, expected keys (value format) are:
|
||||
"id" (int) matching user id,
|
||||
"lastname" (string) user last name (Note: you can use % for searching but it may be considerably slower!),
|
||||
"firstname" (string) user first name (Note: you can use % for searching but it may be considerably slower!),
|
||||
"idnumber" (string) matching user idnumber,
|
||||
"username" (string) matching user username,
|
||||
"email" (string) user email (Note: you can use % for searching but it may be considerably slower!),
|
||||
"auth" (string) matching user auth plugin'),
|
||||
'value' => new external_value(PARAM_RAW, 'the value to search')
|
||||
)
|
||||
), 'the key/value pairs to be considered in user search. Values can not be empty.
|
||||
Specify different keys only once (fullname => \'user1\', auth => \'manual\', ...) -
|
||||
key occurences are forbidden.
|
||||
The search is executed with AND operator on the criterias. Invalid criterias (keys) are ignored,
|
||||
the search is still executed on the valid criterias.
|
||||
You can search without criteria, but the function is not designed for it.
|
||||
It could very slow or timeout. The function is designed to search some specific users.'
|
||||
)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve matching user.
|
||||
*
|
||||
* @param array $criteria the allowed array keys are id/lastname/firstname/idnumber/username/email/auth.
|
||||
* @return array An array of arrays containing user profiles.
|
||||
* @since Moodle 2.5
|
||||
*/
|
||||
public static function get_users($criteria = array()) {
|
||||
global $CFG, $USER, $DB;
|
||||
|
||||
require_once($CFG->dirroot . "/user/lib.php");
|
||||
|
||||
$params = self::validate_parameters(self::get_users_parameters(),
|
||||
array('criteria' => $criteria));
|
||||
|
||||
// Validate the criteria and retrieve the users.
|
||||
$users = array();
|
||||
$warnings = array();
|
||||
$sqlparams = array();
|
||||
$usedkeys = array();
|
||||
|
||||
// Do not retrieve deleted users.
|
||||
$sql = ' deleted = 0';
|
||||
|
||||
foreach ($params['criteria'] as $criteriaindex => $criteria) {
|
||||
|
||||
// Check that the criteria has never been used.
|
||||
if (array_key_exists($criteria['key'], $usedkeys)) {
|
||||
throw new moodle_exception('keyalreadyset', '', '', null, 'The key ' . $criteria['key'] . ' can only be sent once');
|
||||
} else {
|
||||
$usedkeys[$criteria['key']] = true;
|
||||
}
|
||||
|
||||
$invalidcriteria = false;
|
||||
// Clean the parameters.
|
||||
$paramtype = PARAM_RAW;
|
||||
switch ($criteria['key']) {
|
||||
case 'id':
|
||||
$paramtype = PARAM_INT;
|
||||
break;
|
||||
case 'idnumber':
|
||||
$paramtype = PARAM_RAW;
|
||||
break;
|
||||
case 'username':
|
||||
$paramtype = PARAM_RAW;
|
||||
break;
|
||||
case 'email':
|
||||
// We use PARAM_RAW to allow searches with %.
|
||||
$paramtype = PARAM_RAW;
|
||||
break;
|
||||
case 'auth':
|
||||
$paramtype = PARAM_AUTH;
|
||||
break;
|
||||
case 'lastname':
|
||||
case 'firstname':
|
||||
$paramtype = PARAM_TEXT;
|
||||
break;
|
||||
default:
|
||||
// Send back a warning that this search key is not supported in this version.
|
||||
// This warning will make the function extandable without breaking clients.
|
||||
$warnings[] = array(
|
||||
'item' => $criteria['key'],
|
||||
'warningcode' => 'invalidfieldparameter',
|
||||
'message' => 'The search key \'' . $criteria['key'] . '\' is not supported, look at the web service documentation'
|
||||
);
|
||||
// Do not add this invalid criteria to the created SQL request.
|
||||
$invalidcriteria = true;
|
||||
unset($params['criteria'][$criteriaindex]);
|
||||
break;
|
||||
}
|
||||
|
||||
if (!$invalidcriteria) {
|
||||
$cleanedvalue = clean_param($criteria['value'], $paramtype);
|
||||
|
||||
$sql .= ' AND ';
|
||||
|
||||
// Create the SQL.
|
||||
switch ($criteria['key']) {
|
||||
case 'id':
|
||||
case 'idnumber':
|
||||
case 'username':
|
||||
case 'auth':
|
||||
$sql .= $criteria['key'] . ' = :' . $criteria['key'];
|
||||
$sqlparams[$criteria['key']] = $cleanedvalue;
|
||||
break;
|
||||
case 'email':
|
||||
case 'lastname':
|
||||
case 'firstname':
|
||||
$sql .= $DB->sql_like($criteria['key'], ':' . $criteria['key'], false);
|
||||
$sqlparams[$criteria['key']] = $cleanedvalue;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$users = $DB->get_records_select('user', $sql, $sqlparams, 'id ASC');
|
||||
|
||||
// Finally retrieve each users information.
|
||||
$returnedusers = array();
|
||||
foreach ($users as $user) {
|
||||
$userdetails = user_get_user_details_courses($user);
|
||||
|
||||
// Return the user only if all the searched fields are returned.
|
||||
// Otherwise it means that the $USER was not allowed to search the returned user.
|
||||
if (!empty($userdetails)) {
|
||||
$validuser = true;
|
||||
|
||||
foreach($params['criteria'] as $criteria) {
|
||||
if (empty($userdetails[$criteria['key']])) {
|
||||
$validuser = false;
|
||||
}
|
||||
}
|
||||
|
||||
if ($validuser) {
|
||||
$returnedusers[] = $userdetails;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return array('users' => $returnedusers, 'warnings' => $warnings);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns description of get_users result value.
|
||||
*
|
||||
* @return external_description
|
||||
* @since Moodle 2.5
|
||||
*/
|
||||
public static function get_users_returns() {
|
||||
return new external_single_structure(
|
||||
array('users' => new external_multiple_structure(
|
||||
self::user_description()
|
||||
),
|
||||
'warnings' => new external_warnings('always set to \'key\'', 'faulty key name')
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Create user return value description.
|
||||
*
|
||||
* @param array $additionalfields some additional field
|
||||
* @return single_structure_description
|
||||
*/
|
||||
public static function user_description($additionalfields = array()) {
|
||||
$userfields = array(
|
||||
'id' => new external_value(PARAM_INT, 'ID of the user'),
|
||||
'username' => new external_value(PARAM_RAW, 'The username', VALUE_OPTIONAL),
|
||||
'firstname' => new external_value(PARAM_NOTAGS, 'The first name(s) of the user', VALUE_OPTIONAL),
|
||||
'lastname' => new external_value(PARAM_NOTAGS, 'The family name of the user', VALUE_OPTIONAL),
|
||||
'fullname' => new external_value(PARAM_NOTAGS, 'The fullname of the user'),
|
||||
'email' => new external_value(PARAM_TEXT, 'An email address - allow email as root@localhost', VALUE_OPTIONAL),
|
||||
'address' => new external_value(PARAM_TEXT, 'Postal address', VALUE_OPTIONAL),
|
||||
'phone1' => new external_value(PARAM_NOTAGS, 'Phone 1', VALUE_OPTIONAL),
|
||||
'phone2' => new external_value(PARAM_NOTAGS, 'Phone 2', VALUE_OPTIONAL),
|
||||
'icq' => new external_value(PARAM_NOTAGS, 'icq number', VALUE_OPTIONAL),
|
||||
'skype' => new external_value(PARAM_NOTAGS, 'skype id', VALUE_OPTIONAL),
|
||||
'yahoo' => new external_value(PARAM_NOTAGS, 'yahoo id', VALUE_OPTIONAL),
|
||||
'aim' => new external_value(PARAM_NOTAGS, 'aim id', VALUE_OPTIONAL),
|
||||
'msn' => new external_value(PARAM_NOTAGS, 'msn number', VALUE_OPTIONAL),
|
||||
'department' => new external_value(PARAM_TEXT, 'department', VALUE_OPTIONAL),
|
||||
'institution' => new external_value(PARAM_TEXT, 'institution', VALUE_OPTIONAL),
|
||||
'idnumber' => new external_value(PARAM_RAW, 'An arbitrary ID code number perhaps from the institution', VALUE_OPTIONAL),
|
||||
'interests' => new external_value(PARAM_TEXT, 'user interests (separated by commas)', VALUE_OPTIONAL),
|
||||
'firstaccess' => new external_value(PARAM_INT, 'first access to the site (0 if never)', VALUE_OPTIONAL),
|
||||
'lastaccess' => new external_value(PARAM_INT, 'last access to the site (0 if never)', VALUE_OPTIONAL),
|
||||
'auth' => new external_value(PARAM_PLUGIN, 'Auth plugins include manual, ldap, imap, etc', VALUE_OPTIONAL),
|
||||
'confirmed' => new external_value(PARAM_INT, 'Active user: 1 if confirmed, 0 otherwise', VALUE_OPTIONAL),
|
||||
'lang' => new external_value(PARAM_SAFEDIR, 'Language code such as "en", must exist on server', VALUE_OPTIONAL),
|
||||
'theme' => new external_value(PARAM_PLUGIN, 'Theme name such as "standard", must exist on server', VALUE_OPTIONAL),
|
||||
'timezone' => new external_value(PARAM_TIMEZONE, 'Timezone code such as Australia/Perth, or 99 for default', VALUE_OPTIONAL),
|
||||
'mailformat' => new external_value(PARAM_INT, 'Mail format code is 0 for plain text, 1 for HTML etc', VALUE_OPTIONAL),
|
||||
'description' => new external_value(PARAM_RAW, 'User profile description', VALUE_OPTIONAL),
|
||||
'descriptionformat' => new external_format_value('description', VALUE_OPTIONAL),
|
||||
'city' => new external_value(PARAM_NOTAGS, 'Home city of the user', VALUE_OPTIONAL),
|
||||
'url' => new external_value(PARAM_URL, 'URL of the user', VALUE_OPTIONAL),
|
||||
'country' => new external_value(PARAM_ALPHA, 'Home country code of the user, such as AU or CZ', VALUE_OPTIONAL),
|
||||
'profileimageurlsmall' => new external_value(PARAM_URL, 'User image profile URL - small version'),
|
||||
'profileimageurl' => new external_value(PARAM_URL, 'User image profile URL - big version'),
|
||||
'customfields' => new external_multiple_structure(
|
||||
new external_single_structure(
|
||||
array(
|
||||
'type' => new external_value(PARAM_ALPHANUMEXT, 'The type of the custom field - text field, checkbox...'),
|
||||
'value' => new external_value(PARAM_RAW, 'The value of the custom field'),
|
||||
'name' => new external_value(PARAM_RAW, 'The name of the custom field'),
|
||||
'shortname' => new external_value(PARAM_RAW, 'The shortname of the custom field - to be able to build the field class in the code'),
|
||||
)
|
||||
), 'User custom fields (also known as user profile fields)', VALUE_OPTIONAL),
|
||||
'preferences' => new external_multiple_structure(
|
||||
new external_single_structure(
|
||||
array(
|
||||
'name' => new external_value(PARAM_ALPHANUMEXT, 'The name of the preferences'),
|
||||
'value' => new external_value(PARAM_RAW, 'The value of the custom field'),
|
||||
)
|
||||
), 'Users preferences', VALUE_OPTIONAL)
|
||||
);
|
||||
if (!empty($additionalfields)) {
|
||||
$userfields = array_merge($userfields, $additionalfields);
|
||||
}
|
||||
return new external_single_structure($userfields);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Tries to obtain user details, either recurring directly to the user's system profile
|
||||
* or through one of the user's course enrollments (course profile).
|
||||
*
|
||||
* @param object $user The user.
|
||||
* @return array if unsuccessful or the allowed user details.
|
||||
*/
|
||||
function user_get_user_details_courses($user) {
|
||||
global $USER;
|
||||
$userdetails = null;
|
||||
|
||||
// Get the courses that the user is enrolled in (only active).
|
||||
$courses = enrol_get_users_courses($user->id, true);
|
||||
|
||||
$systemprofile = false;
|
||||
if (can_view_user_details_cap($user) || ($user->id == $USER->id) || has_coursecontact_role($user->id)) {
|
||||
$systemprofile = true;
|
||||
}
|
||||
|
||||
// Try using system profile.
|
||||
if ($systemprofile) {
|
||||
$userdetails = user_get_user_details($user, null);
|
||||
} else {
|
||||
// Try through course profile.
|
||||
foreach ($courses as $course) {
|
||||
if ($can_view_user_details_cap($user, $course) || ($user->id == $USER->id) || has_coursecontact_role($user->id)) {
|
||||
$userdetails = user_get_user_details($user, $course);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $userdetails;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Check if $USER have the necessary capabilities to obtain user details.
|
||||
*
|
||||
* @param object $user
|
||||
* @param object $course if null then only consider system profile otherwise also consider the course's profile.
|
||||
* @return bool true if $USER can view user details.
|
||||
*/
|
||||
function can_view_user_details_cap($user, $course = null) {
|
||||
// Check $USER has the capability to view the user details at user context.
|
||||
$usercontext = get_context_instance(CONTEXT_USER, $user->id);
|
||||
$result = has_capability('moodle/user:viewdetails', $usercontext);
|
||||
// Otherwise can $USER see them at course context.
|
||||
if (!$result && !empty($course)) {
|
||||
$context = get_context_instance(CONTEXT_COURSE, $course->id);
|
||||
$result = has_capability('moodle/user:viewdetails', $context);
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
<?php
|
||||
// This file is part of Moodle - http://moodle.org/
|
||||
//
|
||||
// Moodle is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* Web service template plugin related strings
|
||||
* @package localwstemplate
|
||||
* @copyright 2011 Moodle Pty Ltd (http://moodle.com)
|
||||
* @author Jerome Mouneyrac
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
$string['pluginname'] = 'FH Complete Web service Plugin';
|
||||
@@ -1,24 +0,0 @@
|
||||
<?php
|
||||
// Moodle is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
$plugin->version = 2015020401; // The (date) version of this module + 2 extra digital for daily versions
|
||||
// This version number is displayed into /admin/forms.php
|
||||
// TODO: if ever this plugin get branched, the old branch number
|
||||
// will not be updated to the current date but just incremented. We will
|
||||
// need then a $plugin->release human friendly date. For the moment, we use
|
||||
// display this version number with userdate (dev friendly)
|
||||
$plugin->requires = 2010112400; // Requires this Moodle version - at least 2.0
|
||||
$plugin->cron = 0;
|
||||
$plugin->release = '1.2 (Build: 2015020401)';
|
||||
$plugin->maturity = MATURITY_STABLE;
|
||||
@@ -1,23 +0,0 @@
|
||||
FHComplete Moodle 2.4 Webservice Plugin
|
||||
=======================================
|
||||
|
||||
Mit diesem Plugin wird Moodle 2.4 um zusätzliche Webservices erweitert
|
||||
die für die Syncronisation mit FHComplete benötigt werden.
|
||||
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
- ) Zur Installation des Plugins muss der gesamte Ordner fhcompletews in den
|
||||
Ordner local der Moodleinstallation kopiert werden.
|
||||
|
||||
zB: cp /var/www/fhcomplete/system/moodlePlugin/fhcompletews /var/www/moodle/local/
|
||||
|
||||
- ) Danach muss die Moodle Startseite aufgerufen werden.
|
||||
Das neue Plugin wird automatisch erkannt uns installiert.
|
||||
|
||||
Sonstiges
|
||||
=========
|
||||
|
||||
Falls Änderungen am Plugin durchgeführt werden, muss in version.php die Versionsnummer erhöht werden
|
||||
damit Moodle die Änderung an dem Plugin erkennt und ein Update durchführt.
|
||||
@@ -1,53 +0,0 @@
|
||||
<?php
|
||||
|
||||
// Moodle is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* Web service local plugin template external functions and service definitions.
|
||||
*
|
||||
* @package localwstemplate
|
||||
* @copyright 2011 Jerome Mouneyrac
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
// We defined the web service functions to install.
|
||||
$functions = array(
|
||||
'fhcomplete_get_course_grades' => array(
|
||||
'classname' => 'local_fhcompletews_external',
|
||||
'methodname' => 'get_course_grades',
|
||||
'classpath' => 'local/fhcompletews/externallib.php',
|
||||
'description' => 'Get Grades of a course',
|
||||
'type' => 'read',
|
||||
'capabilities'=> 'moodle/course:update,moodle/course:viewhiddencourses',
|
||||
),
|
||||
|
||||
'fhcomplete_courses_by_shortname' => array(
|
||||
'classname' => 'local_fhcompletews_external',
|
||||
'methodname' => 'get_courses_by_shortname',
|
||||
'classpath' => 'local/fhcompletews/externallib.php',
|
||||
'description' => 'Get course contents by Shortname',
|
||||
'type' => 'read',
|
||||
'capabilities'=> 'moodle/course:update,moodle/course:viewhiddencourses',
|
||||
),
|
||||
|
||||
'fhcomplete_user_get_users' => array(
|
||||
'classname' => 'core_user_external',
|
||||
'methodname' => 'get_users',
|
||||
'classpath' => 'user/externallib.php',
|
||||
'description' => 'get Users by Criteria',
|
||||
'type' => 'read',
|
||||
'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update',
|
||||
),
|
||||
|
||||
);
|
||||
@@ -1,371 +0,0 @@
|
||||
<?php
|
||||
// Moodle is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* External Web Service Template
|
||||
*
|
||||
* @package localwstemplate
|
||||
* @copyright 2011 Moodle Pty Ltd (http://moodle.com)
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
require_once($CFG->libdir . "/externallib.php");
|
||||
|
||||
class local_fhcompletews_external extends external_api
|
||||
{
|
||||
|
||||
/**************************************************
|
||||
* Webservice get_course_grades
|
||||
*
|
||||
* Laedt die Noten eines Kurses
|
||||
**************************************************/
|
||||
public static function get_course_grades_parameters()
|
||||
{
|
||||
return new external_function_parameters(
|
||||
array(
|
||||
'courseid' => new external_value(PARAM_INT, 'Moodle CourseID'),
|
||||
'type' => new external_value(PARAM_INT,'Type 1=Punkte, 2=Prozent, 3=Endnote lt Skala')
|
||||
), 'Get Course Grades'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get course Grades
|
||||
* @param int courseid
|
||||
* @return array
|
||||
*/
|
||||
public static function get_course_grades($courseid, $type)
|
||||
{
|
||||
global $CFG, $DB;
|
||||
require_once($CFG->dirroot . "/course/lib.php");
|
||||
require_once($CFG->dirroot.'/grade/export/lib.php');
|
||||
|
||||
//validate parameter
|
||||
$params = self::validate_parameters(self::get_course_grades_parameters(),
|
||||
array('courseid' => $courseid, 'type'=>$type));
|
||||
|
||||
$notenart = $type;
|
||||
//$notenart=2; // 1=Punkte; 2=Prozent; 3=Endnote nach Skala
|
||||
$gui=array();
|
||||
$final_id='';
|
||||
$data = array();
|
||||
|
||||
// Kursdaten Laden
|
||||
if (!$course = $DB->get_record('course', array('id'=>$courseid)))
|
||||
{
|
||||
throw new moodle_exception('Course not found', '', '', null, 'The course ' . $courseid . ' is not found');
|
||||
return false;
|
||||
}
|
||||
|
||||
$id=$course->id;
|
||||
$kursname=$course->fullname;
|
||||
$shortname=$course->shortname;
|
||||
|
||||
//ODS Notenexport starten
|
||||
require_login($course);
|
||||
$context = get_context_instance(CONTEXT_COURSE, $courseid);
|
||||
require_once($CFG->dirroot.'/grade/export/ods/grade_export_ods.php');
|
||||
|
||||
$moodle28=false;
|
||||
|
||||
try
|
||||
{
|
||||
$method = new ReflectionMethod('grade_export_ods','__construct');
|
||||
|
||||
if(count($method->getParameters())==3)
|
||||
$moodle28=true;
|
||||
}
|
||||
catch(ReflectionException $e)
|
||||
{
|
||||
}
|
||||
|
||||
if($moodle28)
|
||||
{
|
||||
//ab Moodle 2.8 hat grade_export_ods nur noch 3 Parameter
|
||||
$formdata = new stdClass();
|
||||
$formdata->display=$notenart;
|
||||
$formdata->itemids=0;
|
||||
$formdata->decimals=2;
|
||||
$formdata->export_feedback=false;
|
||||
if (!$export = new grade_export_ods($course, 0, $formdata))
|
||||
{
|
||||
throw new moodle_exception('Fehler', '', '', null, "Moodle-Kurs ".$id." ".$shortname." - keine Export Information gefunden");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!$export = new grade_export_ods($course, 0, 0, false, false, $notenart, 2))
|
||||
{
|
||||
throw new moodle_exception('Fehler', '', '', null, "Moodle-Kurs ".$id." ".$shortname." - keine Export Information gefunden");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
$grad =$export->columns;
|
||||
|
||||
// Im Export sind die Noten fuer alle Abgaben, Quiz, etc enthalten
|
||||
// Wir brauchen hier nur die Gesamtnote fuer die ganzen Kurs
|
||||
foreach ($export->columns as $key=>$grade_item)
|
||||
{
|
||||
// Gesamtnote hat den itemtype "course"
|
||||
if($grade_item->itemtype=='course')
|
||||
{
|
||||
$final_id=$key;
|
||||
$finalitem = $grade_item;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if($final_id=='')
|
||||
{
|
||||
throw new moodle_exception('Fehler', '', '', null,"Moodle-Kurs ".$id." ".$shortname." - keine Endnote gefunden");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Liste mit allen Studierenden des Kurses durchlaufen
|
||||
$geub = new grade_export_update_buffer();
|
||||
$gui = new graded_users_iterator($export->course, array($final_id=>$finalitem), $export->groupid); //$export->columns
|
||||
|
||||
$gui->init();
|
||||
$kursgrad =array();
|
||||
|
||||
while ($userdata = $gui->next_user())
|
||||
{
|
||||
$user_item=array();
|
||||
$user = $userdata->user;
|
||||
$user_item['vorname']=$user->firstname;
|
||||
$user_item['nachname']=$user->lastname;
|
||||
$user_item['idnummer']=$user->idnumber;
|
||||
$user_item['username']=$user->username;
|
||||
|
||||
// Aus den vorhanden Noten wird die Endnote fuer den Kurs herausgesucht
|
||||
if(isset($userdata->grades[$final_id]))
|
||||
{
|
||||
$gradestr = $export->format_grade($userdata->grades[$final_id]);
|
||||
$user_item['note']=$gradestr;
|
||||
|
||||
// Wenn Prozent dann Prozentzeichen entfernen
|
||||
if(strpos($user_item['note'],'%')!==false)
|
||||
$user_item['note']=trim(str_replace('%','',$user_item['note']));
|
||||
|
||||
// nur zurueckliefern wenn eine Note gefunden wurde und diese nicht '-' ist
|
||||
if($user_item['note']!='-')
|
||||
$data[]=$user_item;
|
||||
}
|
||||
}
|
||||
|
||||
$gui->close();
|
||||
$geub->close();
|
||||
|
||||
if (count($data)==0)
|
||||
{
|
||||
throw new moodle_exception('Fehler', '', '', null,"Moodle-Kurs ".$id." ".$shortname." - keine Kurs-Noten Informationen gefunden ");
|
||||
return false;
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns description of method result value
|
||||
* @return external_description
|
||||
*/
|
||||
public static function get_course_grades_returns()
|
||||
{
|
||||
return new external_multiple_structure(
|
||||
new external_single_structure(
|
||||
array(
|
||||
'vorname' => new external_value(PARAM_TEXT, 'vorname'),
|
||||
'nachname' => new external_value(PARAM_TEXT, 'nachname'),
|
||||
'idnummer' => new external_value(PARAM_TEXT, 'idnummer'),
|
||||
'username' => new external_value(PARAM_TEXT, 'username'),
|
||||
'note' => new external_value(PARAM_TEXT, 'note'),
|
||||
), 'course'
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**************************************************
|
||||
* Webservice get_courses_by_shortname
|
||||
*
|
||||
* Laedt Kurse anhand der Kurzbezeichnung
|
||||
**************************************************/
|
||||
public static function get_courses_by_shortname_parameters()
|
||||
{
|
||||
return new external_function_parameters(
|
||||
array('options' => new external_single_structure(
|
||||
array('shortnames' => new external_multiple_structure(
|
||||
new external_value(PARAM_RAW, 'Short Name')
|
||||
, 'List of short names. If empty return all courses
|
||||
except front page course.',
|
||||
VALUE_OPTIONAL)
|
||||
), 'options - operator OR is used', VALUE_DEFAULT, array())
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get courses
|
||||
* @param array $options
|
||||
* @return array
|
||||
*/
|
||||
public static function get_courses_by_shortname($options)
|
||||
{
|
||||
global $CFG, $DB;
|
||||
require_once($CFG->dirroot . "/course/lib.php");
|
||||
|
||||
//validate parameter
|
||||
$params = self::validate_parameters(self::get_courses_by_shortname_parameters(),
|
||||
array('options' => $options));
|
||||
|
||||
//retrieve courses
|
||||
if (!key_exists('shortnames', $params['options'])
|
||||
or empty($params['options']['shortnames'])) {
|
||||
$courses = $DB->get_records('course');
|
||||
} else {
|
||||
$courses = $DB->get_records_list('course', 'shortname', $params['options']['shortnames']);
|
||||
}
|
||||
|
||||
//create return value
|
||||
$coursesinfo = array();
|
||||
foreach ($courses as $course)
|
||||
{
|
||||
|
||||
// now security checks
|
||||
$context = get_context_instance(CONTEXT_COURSE, $course->id);
|
||||
try
|
||||
{
|
||||
self::validate_context($context);
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$exceptionparam = new stdClass();
|
||||
$exceptionparam->message = $e->getMessage();
|
||||
$exceptionparam->shortname = $course->shortname;
|
||||
throw new moodle_exception(
|
||||
get_string('errorcoursecontextnotvalid', 'webservice', $exceptionparam));
|
||||
}
|
||||
require_capability('moodle/course:view', $context);
|
||||
|
||||
$courseinfo = array();
|
||||
$courseinfo['id'] = $course->id;
|
||||
$courseinfo['fullname'] = $course->fullname;
|
||||
$courseinfo['shortname'] = $course->shortname;
|
||||
$courseinfo['categoryid'] = $course->category;
|
||||
$courseinfo['summary'] = $course->summary;
|
||||
$courseinfo['summaryformat'] = $course->summaryformat;
|
||||
$courseinfo['format'] = $course->format;
|
||||
$courseinfo['startdate'] = $course->startdate;
|
||||
$courseinfo['numsections'] = $course->numsections;
|
||||
|
||||
//some field should be returned only if the user has update permission
|
||||
$courseadmin = has_capability('moodle/course:update', $context);
|
||||
if ($courseadmin)
|
||||
{
|
||||
$courseinfo['categorysortorder'] = $course->sortorder;
|
||||
$courseinfo['idnumber'] = $course->idnumber;
|
||||
$courseinfo['showgrades'] = $course->showgrades;
|
||||
$courseinfo['showreports'] = $course->showreports;
|
||||
$courseinfo['newsitems'] = $course->newsitems;
|
||||
$courseinfo['visible'] = $course->visible;
|
||||
$courseinfo['maxbytes'] = $course->maxbytes;
|
||||
$courseinfo['hiddensections'] = $course->hiddensections;
|
||||
$courseinfo['groupmode'] = $course->groupmode;
|
||||
$courseinfo['groupmodeforce'] = $course->groupmodeforce;
|
||||
$courseinfo['defaultgroupingid'] = $course->defaultgroupingid;
|
||||
$courseinfo['lang'] = $course->lang;
|
||||
$courseinfo['timecreated'] = $course->timecreated;
|
||||
$courseinfo['timemodified'] = $course->timemodified;
|
||||
$courseinfo['forcetheme'] = $course->theme;
|
||||
$courseinfo['enablecompletion'] = $course->enablecompletion;
|
||||
$courseinfo['completionstartonenrol'] = $course->completionstartonenrol;
|
||||
$courseinfo['completionnotify'] = $course->completionnotify;
|
||||
}
|
||||
|
||||
if ($courseadmin or $course->visible
|
||||
or has_capability('moodle/course:viewhiddencourses', $context))
|
||||
{
|
||||
$coursesinfo[] = $courseinfo;
|
||||
}
|
||||
}
|
||||
|
||||
return $coursesinfo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns description of method result value
|
||||
* @return external_description
|
||||
*/
|
||||
public static function get_courses_by_shortname_returns()
|
||||
{
|
||||
return new external_multiple_structure(
|
||||
new external_single_structure(
|
||||
array(
|
||||
'id' => new external_value(PARAM_INT, 'course id'),
|
||||
'shortname' => new external_value(PARAM_TEXT, 'course short name'),
|
||||
'categoryid' => new external_value(PARAM_INT, 'category id'),
|
||||
'categorysortorder' => new external_value(PARAM_INT,
|
||||
'sort order into the category', VALUE_OPTIONAL),
|
||||
'fullname' => new external_value(PARAM_TEXT, 'full name'),
|
||||
'idnumber' => new external_value(PARAM_RAW, 'id number', VALUE_OPTIONAL),
|
||||
'summary' => new external_value(PARAM_RAW, 'summary'),
|
||||
'summaryformat' => new external_value(PARAM_INT,
|
||||
'the summary text Moodle format'),
|
||||
'format' => new external_value(PARAM_ALPHANUMEXT,
|
||||
'course format: weeks, topics, social, site,..'),
|
||||
'showgrades' => new external_value(PARAM_INT,
|
||||
'1 if grades are shown, otherwise 0', VALUE_OPTIONAL),
|
||||
'newsitems' => new external_value(PARAM_INT,
|
||||
'number of recent items appearing on the course page', VALUE_OPTIONAL),
|
||||
'startdate' => new external_value(PARAM_INT,
|
||||
'timestamp when the course start'),
|
||||
'numsections' => new external_value(PARAM_INT, 'number of weeks/topics'),
|
||||
'maxbytes' => new external_value(PARAM_INT,
|
||||
'largest size of file that can be uploaded into the course',
|
||||
VALUE_OPTIONAL),
|
||||
'showreports' => new external_value(PARAM_INT,
|
||||
'are activity report shown (yes = 1, no =0)', VALUE_OPTIONAL),
|
||||
'visible' => new external_value(PARAM_INT,
|
||||
'1: available to student, 0:not available', VALUE_OPTIONAL),
|
||||
'hiddensections' => new external_value(PARAM_INT,
|
||||
'How the hidden sections in the course are displayed to students',
|
||||
VALUE_OPTIONAL),
|
||||
'groupmode' => new external_value(PARAM_INT, 'no group, separate, visible',
|
||||
VALUE_OPTIONAL),
|
||||
'groupmodeforce' => new external_value(PARAM_INT, '1: yes, 0: no',
|
||||
VALUE_OPTIONAL),
|
||||
'defaultgroupingid' => new external_value(PARAM_INT, 'default grouping id',
|
||||
VALUE_OPTIONAL),
|
||||
'timecreated' => new external_value(PARAM_INT,
|
||||
'timestamp when the course have been created', VALUE_OPTIONAL),
|
||||
'timemodified' => new external_value(PARAM_INT,
|
||||
'timestamp when the course have been modified', VALUE_OPTIONAL),
|
||||
'enablecompletion' => new external_value(PARAM_INT,
|
||||
'Enabled, control via completion and activity settings. Disbaled,
|
||||
not shown in activity settings.',
|
||||
VALUE_OPTIONAL),
|
||||
'completionstartonenrol' => new external_value(PARAM_INT,
|
||||
'1: begin tracking a student\'s progress in course completion
|
||||
after course enrolment. 0: does not',
|
||||
VALUE_OPTIONAL),
|
||||
'completionnotify' => new external_value(PARAM_INT,
|
||||
'1: yes 0: no', VALUE_OPTIONAL),
|
||||
'lang' => new external_value(PARAM_ALPHANUMEXT,
|
||||
'forced course language', VALUE_OPTIONAL),
|
||||
'forcetheme' => new external_value(PARAM_ALPHANUMEXT,
|
||||
'name of the force theme', VALUE_OPTIONAL),
|
||||
), 'course'
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
<?php
|
||||
// This file is part of Moodle - http://moodle.org/
|
||||
//
|
||||
// Moodle is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* plugin related strings
|
||||
* @package localfhcompletws
|
||||
* @copyright 2011 Moodle Pty Ltd (http://moodle.com)
|
||||
* @author Jerome Mouneyrac
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
$string['pluginname'] = 'FH-Complete Webservice Plugin';
|
||||
@@ -1,24 +0,0 @@
|
||||
<?php
|
||||
// Moodle is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
$plugin->version = 2015020404; // The (date) version of this module + 2 extra digital for daily versions
|
||||
// This version number is displayed into /admin/forms.php
|
||||
// TODO: if ever this plugin get branched, the old branch number
|
||||
// will not be updated to the current date but just incremented. We will
|
||||
// need then a $plugin->release human friendly date. For the moment, we use
|
||||
// display this version number with userdate (dev friendly)
|
||||
$plugin->requires = 2013051400; // Requires this Moodle version - at least 2.5
|
||||
$plugin->cron = 0;
|
||||
$plugin->release = '1.2 (Build: 2015020404)';
|
||||
$plugin->maturity = MATURITY_STABLE;
|
||||
@@ -1,23 +0,0 @@
|
||||
FHComplete Moodle 3.0 Webservice Plugin
|
||||
=======================================
|
||||
|
||||
Mit diesem Plugin wird Moodle 3.0 um zusätzliche Webservices erweitert
|
||||
die für die Syncronisation mit FHComplete benötigt werden.
|
||||
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
- ) Zur Installation des Plugins muss der gesamte Ordner fhcompletews in den
|
||||
Ordner local der Moodleinstallation kopiert werden.
|
||||
|
||||
zB: cp /var/www/fhcomplete/system/moodlePlugin/fhcompletews /var/www/moodle/local/
|
||||
|
||||
- ) Danach muss die Moodle Startseite aufgerufen werden.
|
||||
Das neue Plugin wird automatisch erkannt uns installiert.
|
||||
|
||||
Sonstiges
|
||||
=========
|
||||
|
||||
Falls Änderungen am Plugin durchgeführt werden, muss in version.php die Versionsnummer erhöht werden
|
||||
damit Moodle die Änderung an dem Plugin erkennt und ein Update durchführt.
|
||||
@@ -1,53 +0,0 @@
|
||||
<?php
|
||||
|
||||
// Moodle is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* Web service local plugin template external functions and service definitions.
|
||||
*
|
||||
* @package localwstemplate
|
||||
* @copyright 2011 Jerome Mouneyrac
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
// We defined the web service functions to install.
|
||||
$functions = array(
|
||||
'fhcomplete_get_course_grades' => array(
|
||||
'classname' => 'local_fhcompletews_external',
|
||||
'methodname' => 'get_course_grades',
|
||||
'classpath' => 'local/fhcompletews/externallib.php',
|
||||
'description' => 'Get Grades of a course',
|
||||
'type' => 'read',
|
||||
'capabilities'=> 'moodle/course:update,moodle/course:viewhiddencourses',
|
||||
),
|
||||
|
||||
'fhcomplete_courses_by_shortname' => array(
|
||||
'classname' => 'local_fhcompletews_external',
|
||||
'methodname' => 'get_courses_by_shortname',
|
||||
'classpath' => 'local/fhcompletews/externallib.php',
|
||||
'description' => 'Get course contents by Shortname',
|
||||
'type' => 'read',
|
||||
'capabilities'=> 'moodle/course:update,moodle/course:viewhiddencourses',
|
||||
),
|
||||
|
||||
'fhcomplete_user_get_users' => array(
|
||||
'classname' => 'core_user_external',
|
||||
'methodname' => 'get_users',
|
||||
'classpath' => 'user/externallib.php',
|
||||
'description' => 'get Users by Criteria',
|
||||
'type' => 'read',
|
||||
'capabilities'=> 'moodle/user:viewdetails, moodle/user:viewhiddendetails, moodle/course:useremail, moodle/user:update',
|
||||
),
|
||||
|
||||
);
|
||||
@@ -1,371 +0,0 @@
|
||||
<?php
|
||||
// Moodle is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* External Web Service Template
|
||||
*
|
||||
* @package localwstemplate
|
||||
* @copyright 2011 Moodle Pty Ltd (http://moodle.com)
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
require_once($CFG->libdir . "/externallib.php");
|
||||
|
||||
class local_fhcompletews_external extends external_api
|
||||
{
|
||||
|
||||
/**************************************************
|
||||
* Webservice get_course_grades
|
||||
*
|
||||
* Laedt die Noten eines Kurses
|
||||
**************************************************/
|
||||
public static function get_course_grades_parameters()
|
||||
{
|
||||
return new external_function_parameters(
|
||||
array(
|
||||
'courseid' => new external_value(PARAM_INT, 'Moodle CourseID'),
|
||||
'type' => new external_value(PARAM_INT,'Type 1=Punkte, 2=Prozent, 3=Endnote lt Skala')
|
||||
), 'Get Course Grades'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get course Grades
|
||||
* @param int courseid
|
||||
* @return array
|
||||
*/
|
||||
public static function get_course_grades($courseid, $type)
|
||||
{
|
||||
global $CFG, $DB;
|
||||
require_once($CFG->dirroot . "/course/lib.php");
|
||||
require_once($CFG->dirroot.'/grade/export/lib.php');
|
||||
|
||||
//validate parameter
|
||||
$params = self::validate_parameters(self::get_course_grades_parameters(),
|
||||
array('courseid' => $courseid, 'type'=>$type));
|
||||
|
||||
$notenart = $type;
|
||||
//$notenart=2; // 1=Punkte; 2=Prozent; 3=Endnote nach Skala
|
||||
$gui=array();
|
||||
$final_id='';
|
||||
$data = array();
|
||||
|
||||
// Kursdaten Laden
|
||||
if (!$course = $DB->get_record('course', array('id'=>$courseid)))
|
||||
{
|
||||
throw new moodle_exception('Course not found', '', '', null, 'The course ' . $courseid . ' is not found');
|
||||
return false;
|
||||
}
|
||||
|
||||
$id=$course->id;
|
||||
$kursname=$course->fullname;
|
||||
$shortname=$course->shortname;
|
||||
|
||||
//ODS Notenexport starten
|
||||
require_login($course);
|
||||
$context = get_context_instance(CONTEXT_COURSE, $courseid);
|
||||
require_once($CFG->dirroot.'/grade/export/ods/grade_export_ods.php');
|
||||
|
||||
$moodle28=false;
|
||||
|
||||
try
|
||||
{
|
||||
$method = new ReflectionMethod('grade_export_ods','__construct');
|
||||
|
||||
if(count($method->getParameters())==3)
|
||||
$moodle28=true;
|
||||
}
|
||||
catch(ReflectionException $e)
|
||||
{
|
||||
}
|
||||
|
||||
if($moodle28)
|
||||
{
|
||||
//ab Moodle 2.8 hat grade_export_ods nur noch 3 Parameter
|
||||
$formdata = new stdClass();
|
||||
$formdata->display=$notenart;
|
||||
$formdata->itemids=0;
|
||||
$formdata->decimals=2;
|
||||
$formdata->export_feedback=false;
|
||||
if (!$export = new grade_export_ods($course, 0, $formdata))
|
||||
{
|
||||
throw new moodle_exception('Fehler', '', '', null, "Moodle-Kurs ".$id." ".$shortname." - keine Export Information gefunden");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!$export = new grade_export_ods($course, 0, 0, false, false, $notenart, 2))
|
||||
{
|
||||
throw new moodle_exception('Fehler', '', '', null, "Moodle-Kurs ".$id." ".$shortname." - keine Export Information gefunden");
|
||||
return false;
|
||||
}
|
||||
}
|
||||
$grad =$export->columns;
|
||||
|
||||
// Im Export sind die Noten fuer alle Abgaben, Quiz, etc enthalten
|
||||
// Wir brauchen hier nur die Gesamtnote fuer die ganzen Kurs
|
||||
foreach ($export->columns as $key=>$grade_item)
|
||||
{
|
||||
// Gesamtnote hat den itemtype "course"
|
||||
if($grade_item->itemtype=='course')
|
||||
{
|
||||
$final_id=$key;
|
||||
$finalitem = $grade_item;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if($final_id=='')
|
||||
{
|
||||
throw new moodle_exception('Fehler', '', '', null,"Moodle-Kurs ".$id." ".$shortname." - keine Endnote gefunden");
|
||||
return false;
|
||||
}
|
||||
|
||||
// Liste mit allen Studierenden des Kurses durchlaufen
|
||||
$geub = new grade_export_update_buffer();
|
||||
$gui = new graded_users_iterator($export->course, array($final_id=>$finalitem), $export->groupid); //$export->columns
|
||||
|
||||
$gui->init();
|
||||
$kursgrad =array();
|
||||
|
||||
while ($userdata = $gui->next_user())
|
||||
{
|
||||
$user_item=array();
|
||||
$user = $userdata->user;
|
||||
$user_item['vorname']=$user->firstname;
|
||||
$user_item['nachname']=$user->lastname;
|
||||
$user_item['idnummer']=$user->idnumber;
|
||||
$user_item['username']=$user->username;
|
||||
|
||||
// Aus den vorhanden Noten wird die Endnote fuer den Kurs herausgesucht
|
||||
if(isset($userdata->grades[$final_id]))
|
||||
{
|
||||
$gradestr = $export->format_grade($userdata->grades[$final_id]);
|
||||
$user_item['note']=$gradestr;
|
||||
|
||||
// Wenn Prozent dann Prozentzeichen entfernen
|
||||
if(strpos($user_item['note'],'%')!==false)
|
||||
$user_item['note']=trim(str_replace('%','',$user_item['note']));
|
||||
|
||||
// nur zurueckliefern wenn eine Note gefunden wurde und diese nicht '-' ist
|
||||
if($user_item['note']!='-')
|
||||
$data[]=$user_item;
|
||||
}
|
||||
}
|
||||
|
||||
$gui->close();
|
||||
$geub->close();
|
||||
|
||||
if (count($data)==0)
|
||||
{
|
||||
throw new moodle_exception('Fehler', '', '', null,"Moodle-Kurs ".$id." ".$shortname." - keine Kurs-Noten Informationen gefunden ");
|
||||
return false;
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns description of method result value
|
||||
* @return external_description
|
||||
*/
|
||||
public static function get_course_grades_returns()
|
||||
{
|
||||
return new external_multiple_structure(
|
||||
new external_single_structure(
|
||||
array(
|
||||
'vorname' => new external_value(PARAM_TEXT, 'vorname'),
|
||||
'nachname' => new external_value(PARAM_TEXT, 'nachname'),
|
||||
'idnummer' => new external_value(PARAM_TEXT, 'idnummer'),
|
||||
'username' => new external_value(PARAM_TEXT, 'username'),
|
||||
'note' => new external_value(PARAM_TEXT, 'note'),
|
||||
), 'course'
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**************************************************
|
||||
* Webservice get_courses_by_shortname
|
||||
*
|
||||
* Laedt Kurse anhand der Kurzbezeichnung
|
||||
**************************************************/
|
||||
public static function get_courses_by_shortname_parameters()
|
||||
{
|
||||
return new external_function_parameters(
|
||||
array('options' => new external_single_structure(
|
||||
array('shortnames' => new external_multiple_structure(
|
||||
new external_value(PARAM_RAW, 'Short Name')
|
||||
, 'List of short names. If empty return all courses
|
||||
except front page course.',
|
||||
VALUE_OPTIONAL)
|
||||
), 'options - operator OR is used', VALUE_DEFAULT, array())
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get courses
|
||||
* @param array $options
|
||||
* @return array
|
||||
*/
|
||||
public static function get_courses_by_shortname($options)
|
||||
{
|
||||
global $CFG, $DB;
|
||||
require_once($CFG->dirroot . "/course/lib.php");
|
||||
|
||||
//validate parameter
|
||||
$params = self::validate_parameters(self::get_courses_by_shortname_parameters(),
|
||||
array('options' => $options));
|
||||
|
||||
//retrieve courses
|
||||
if (!key_exists('shortnames', $params['options'])
|
||||
or empty($params['options']['shortnames'])) {
|
||||
$courses = $DB->get_records('course');
|
||||
} else {
|
||||
$courses = $DB->get_records_list('course', 'shortname', $params['options']['shortnames']);
|
||||
}
|
||||
|
||||
//create return value
|
||||
$coursesinfo = array();
|
||||
foreach ($courses as $course)
|
||||
{
|
||||
|
||||
// now security checks
|
||||
$context = get_context_instance(CONTEXT_COURSE, $course->id);
|
||||
try
|
||||
{
|
||||
self::validate_context($context);
|
||||
}
|
||||
catch (Exception $e)
|
||||
{
|
||||
$exceptionparam = new stdClass();
|
||||
$exceptionparam->message = $e->getMessage();
|
||||
$exceptionparam->shortname = $course->shortname;
|
||||
throw new moodle_exception(
|
||||
get_string('errorcoursecontextnotvalid', 'webservice', $exceptionparam));
|
||||
}
|
||||
require_capability('moodle/course:view', $context);
|
||||
|
||||
$courseinfo = array();
|
||||
$courseinfo['id'] = $course->id;
|
||||
$courseinfo['fullname'] = $course->fullname;
|
||||
$courseinfo['shortname'] = $course->shortname;
|
||||
$courseinfo['categoryid'] = $course->category;
|
||||
$courseinfo['summary'] = $course->summary;
|
||||
$courseinfo['summaryformat'] = $course->summaryformat;
|
||||
$courseinfo['format'] = $course->format;
|
||||
$courseinfo['startdate'] = $course->startdate;
|
||||
$courseinfo['numsections'] = $course->numsections;
|
||||
|
||||
//some field should be returned only if the user has update permission
|
||||
$courseadmin = has_capability('moodle/course:update', $context);
|
||||
if ($courseadmin)
|
||||
{
|
||||
$courseinfo['categorysortorder'] = $course->sortorder;
|
||||
$courseinfo['idnumber'] = $course->idnumber;
|
||||
$courseinfo['showgrades'] = $course->showgrades;
|
||||
$courseinfo['showreports'] = $course->showreports;
|
||||
$courseinfo['newsitems'] = $course->newsitems;
|
||||
$courseinfo['visible'] = $course->visible;
|
||||
$courseinfo['maxbytes'] = $course->maxbytes;
|
||||
$courseinfo['hiddensections'] = $course->hiddensections;
|
||||
$courseinfo['groupmode'] = $course->groupmode;
|
||||
$courseinfo['groupmodeforce'] = $course->groupmodeforce;
|
||||
$courseinfo['defaultgroupingid'] = $course->defaultgroupingid;
|
||||
$courseinfo['lang'] = $course->lang;
|
||||
$courseinfo['timecreated'] = $course->timecreated;
|
||||
$courseinfo['timemodified'] = $course->timemodified;
|
||||
$courseinfo['forcetheme'] = $course->theme;
|
||||
$courseinfo['enablecompletion'] = $course->enablecompletion;
|
||||
$courseinfo['completionstartonenrol'] = $course->completionstartonenrol;
|
||||
$courseinfo['completionnotify'] = $course->completionnotify;
|
||||
}
|
||||
|
||||
if ($courseadmin or $course->visible
|
||||
or has_capability('moodle/course:viewhiddencourses', $context))
|
||||
{
|
||||
$coursesinfo[] = $courseinfo;
|
||||
}
|
||||
}
|
||||
|
||||
return $coursesinfo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns description of method result value
|
||||
* @return external_description
|
||||
*/
|
||||
public static function get_courses_by_shortname_returns()
|
||||
{
|
||||
return new external_multiple_structure(
|
||||
new external_single_structure(
|
||||
array(
|
||||
'id' => new external_value(PARAM_INT, 'course id'),
|
||||
'shortname' => new external_value(PARAM_TEXT, 'course short name'),
|
||||
'categoryid' => new external_value(PARAM_INT, 'category id'),
|
||||
'categorysortorder' => new external_value(PARAM_INT,
|
||||
'sort order into the category', VALUE_OPTIONAL),
|
||||
'fullname' => new external_value(PARAM_TEXT, 'full name'),
|
||||
'idnumber' => new external_value(PARAM_RAW, 'id number', VALUE_OPTIONAL),
|
||||
'summary' => new external_value(PARAM_RAW, 'summary'),
|
||||
'summaryformat' => new external_value(PARAM_INT,
|
||||
'the summary text Moodle format'),
|
||||
'format' => new external_value(PARAM_ALPHANUMEXT,
|
||||
'course format: weeks, topics, social, site,..'),
|
||||
'showgrades' => new external_value(PARAM_INT,
|
||||
'1 if grades are shown, otherwise 0', VALUE_OPTIONAL),
|
||||
'newsitems' => new external_value(PARAM_INT,
|
||||
'number of recent items appearing on the course page', VALUE_OPTIONAL),
|
||||
'startdate' => new external_value(PARAM_INT,
|
||||
'timestamp when the course start'),
|
||||
'numsections' => new external_value(PARAM_INT, 'number of weeks/topics'),
|
||||
'maxbytes' => new external_value(PARAM_INT,
|
||||
'largest size of file that can be uploaded into the course',
|
||||
VALUE_OPTIONAL),
|
||||
'showreports' => new external_value(PARAM_INT,
|
||||
'are activity report shown (yes = 1, no =0)', VALUE_OPTIONAL),
|
||||
'visible' => new external_value(PARAM_INT,
|
||||
'1: available to student, 0:not available', VALUE_OPTIONAL),
|
||||
'hiddensections' => new external_value(PARAM_INT,
|
||||
'How the hidden sections in the course are displayed to students',
|
||||
VALUE_OPTIONAL),
|
||||
'groupmode' => new external_value(PARAM_INT, 'no group, separate, visible',
|
||||
VALUE_OPTIONAL),
|
||||
'groupmodeforce' => new external_value(PARAM_INT, '1: yes, 0: no',
|
||||
VALUE_OPTIONAL),
|
||||
'defaultgroupingid' => new external_value(PARAM_INT, 'default grouping id',
|
||||
VALUE_OPTIONAL),
|
||||
'timecreated' => new external_value(PARAM_INT,
|
||||
'timestamp when the course have been created', VALUE_OPTIONAL),
|
||||
'timemodified' => new external_value(PARAM_INT,
|
||||
'timestamp when the course have been modified', VALUE_OPTIONAL),
|
||||
'enablecompletion' => new external_value(PARAM_INT,
|
||||
'Enabled, control via completion and activity settings. Disbaled,
|
||||
not shown in activity settings.',
|
||||
VALUE_OPTIONAL),
|
||||
'completionstartonenrol' => new external_value(PARAM_INT,
|
||||
'1: begin tracking a student\'s progress in course completion
|
||||
after course enrolment. 0: does not',
|
||||
VALUE_OPTIONAL),
|
||||
'completionnotify' => new external_value(PARAM_INT,
|
||||
'1: yes 0: no', VALUE_OPTIONAL),
|
||||
'lang' => new external_value(PARAM_ALPHANUMEXT,
|
||||
'forced course language', VALUE_OPTIONAL),
|
||||
'forcetheme' => new external_value(PARAM_ALPHANUMEXT,
|
||||
'name of the force theme', VALUE_OPTIONAL),
|
||||
), 'course'
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
<?php
|
||||
// This file is part of Moodle - http://moodle.org/
|
||||
//
|
||||
// Moodle is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
/**
|
||||
* plugin related strings
|
||||
* @package localfhcompletws
|
||||
* @copyright 2011 Moodle Pty Ltd (http://moodle.com)
|
||||
* @author Jerome Mouneyrac
|
||||
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||
*/
|
||||
|
||||
$string['pluginname'] = 'FH-Complete Webservice Plugin';
|
||||
@@ -1,25 +0,0 @@
|
||||
<?php
|
||||
// Moodle is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation, either version 3 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// Moodle is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
$plugin->version = 2015020404; // The (date) version of this module + 2 extra digital for daily versions
|
||||
// This version number is displayed into /admin/forms.php
|
||||
// TODO: if ever this plugin get branched, the old branch number
|
||||
// will not be updated to the current date but just incremented. We will
|
||||
// need then a $plugin->release human friendly date. For the moment, we use
|
||||
// display this version number with userdate (dev friendly)
|
||||
$plugin->requires = 2013051400; // Requires this Moodle version - at least 2.5
|
||||
$plugin->cron = 0;
|
||||
$plugin->release = '1.2 (Build: 2015020404)';
|
||||
$plugin->maturity = MATURITY_STABLE;
|
||||
$plugin->component = 'local_fhcompletews';
|
||||
@@ -1,199 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2013 FH Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
*/
|
||||
/*
|
||||
* Synchronisiert die Lektoren und Studenten der aktuellen MoodleKurse
|
||||
* wenn kein aktuelles Studiensemester vorhanden ist, wird NICHT Synchronisiert
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/../../config/vilesci.config.inc.php');
|
||||
require_once(dirname(__FILE__).'/../../config/global.config.inc.php');
|
||||
require_once(dirname(__FILE__).'/../../include/moodle24_course.class.php');
|
||||
require_once(dirname(__FILE__).'/../../include/moodle24_user.class.php');
|
||||
require_once(dirname(__FILE__).'/../../include/studiensemester.class.php');
|
||||
require_once(dirname(__FILE__).'/../../include/studiengang.class.php');
|
||||
require_once(dirname(__FILE__).'/../../include/mail.class.php');
|
||||
|
||||
$db = new basis_db();
|
||||
$sync_lektoren_gesamt=0;
|
||||
$sync_studenten_gesamt=0;
|
||||
$group_updates=0;
|
||||
$fehler=0;
|
||||
$message='';
|
||||
$message_lkt='';
|
||||
$lektoren=array();
|
||||
|
||||
//ini_set('soap.wsdl_cache_enabled',0);
|
||||
//ini_set('soap.wsdl_cache_ttl',0);
|
||||
set_time_limit(1000);
|
||||
echo "-- Start ".date('Y-m-d H:i:s')."--";
|
||||
|
||||
//nur Synchronisieren wenn ein aktuelles Studiensemester existiert damit keine
|
||||
//Probleme durch die Vorrueckung entstehen
|
||||
$stsem = new studiensemester();
|
||||
if($stsem_kurzbz=$stsem->getakt())
|
||||
{
|
||||
//nur die Eintraege des aktuellen Studiensemesters syncen
|
||||
$qry = "SELECT distinct mdl_course_id FROM lehre.tbl_moodle
|
||||
WHERE studiensemester_kurzbz=".$db->db_add_param($stsem_kurzbz)."
|
||||
AND moodle_version='2.4'";
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
echo "<br>\nSync fuer Kurs $row->mdl_course_id";
|
||||
flush();
|
||||
|
||||
$course = new moodle24_course();
|
||||
if($course->load($row->mdl_course_id))
|
||||
{
|
||||
$message_lkt='';
|
||||
//Lektoren
|
||||
$mdluser = new moodle24_user();
|
||||
$mitarbeiter = $mdluser->getMitarbeiter($row->mdl_course_id);
|
||||
|
||||
echo "<br>\n-- Mitarbeiter --";
|
||||
flush();
|
||||
if($mdluser->sync_lektoren($row->mdl_course_id))
|
||||
{
|
||||
$sync_lektoren_gesamt+=$mdluser->sync_create;
|
||||
$group_updates+=$mdluser->group_update;
|
||||
if($mdluser->sync_create>0 || $mdluser->group_update>0)
|
||||
{
|
||||
$message.="\nKurs: $course->mdl_fullname ($course->mdl_shortname) $course->mdl_course_id:\n".$mdluser->log."\n";
|
||||
$message_lkt.="\nKurs: $course->mdl_fullname ($course->mdl_shortname) $course->mdl_course_id:\n".$mdluser->log_public."\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$message.="\nFehler: $mdluser->errormsg";
|
||||
$fehler++;
|
||||
}
|
||||
echo $mdluser->log;
|
||||
//Lektoren
|
||||
$mdluser = new moodle24_user();
|
||||
$mitarbeiter = $mdluser->getMitarbeiter($row->mdl_course_id);
|
||||
|
||||
if(defined('MOODLE_SYNC_FACHBEREICHSLEITUNG') && MOODLE_SYNC_FACHBEREICHSLEITUNG)
|
||||
{
|
||||
echo "<br>\n-- Fachbereichsleitung --";
|
||||
flush();
|
||||
if($mdluser->sync_fachbereichsleitung($row->mdl_course_id))
|
||||
{
|
||||
$sync_lektoren_gesamt+=$mdluser->sync_create;
|
||||
$group_updates+=$mdluser->group_update;
|
||||
if($mdluser->sync_create>0 || $mdluser->group_update>0)
|
||||
{
|
||||
$message.="\nKurs: $course->mdl_fullname ($course->mdl_shortname) $course->mdl_course_id:\n".$mdluser->log."\n";
|
||||
$message_lkt.="\nKurs: $course->mdl_fullname ($course->mdl_shortname) $course->mdl_course_id:\n".$mdluser->log_public."\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$message.="\nFehler: $mdluser->errormsg";
|
||||
$fehler++;
|
||||
}
|
||||
echo $mdluser->log;
|
||||
}
|
||||
echo "<br>\n-- Studenten --";
|
||||
flush();
|
||||
|
||||
//Studenten
|
||||
$mdluser = new moodle24_user();
|
||||
if($mdluser->sync_studenten($row->mdl_course_id))
|
||||
{
|
||||
$sync_studenten_gesamt+=$mdluser->sync_create;
|
||||
$group_updates+=$mdluser->group_update;
|
||||
if($mdluser->sync_create>0 || $mdluser->group_update>0)
|
||||
{
|
||||
$message.="\nKurs: $course->mdl_fullname ($course->mdl_shortname):\n".$mdluser->log."\n";
|
||||
$message_lkt.="\nKurs: $course->mdl_fullname ($course->mdl_shortname):\n".$mdluser->log_public."\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$message.="\nFehler: $mdluser->errormsg";
|
||||
$fehler++;
|
||||
}
|
||||
|
||||
echo $mdluser->log;
|
||||
flush();
|
||||
foreach ($mitarbeiter as $uid)
|
||||
{
|
||||
if(!isset($lektoren[$uid]))
|
||||
$lektoren[$uid]='';
|
||||
$lektoren[$uid].=$message_lkt;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$message.="\nFehler: in der Tabelle lehre.tbl_moodle wird auf den Kurs $row->mdl_course_id verwiesen, dieser existiert jedoch nicht im Moodle!";
|
||||
$fehler++;
|
||||
}
|
||||
}
|
||||
|
||||
if($sync_lektoren_gesamt>0 || $sync_studenten_gesamt>0 || $fehler>0 || $group_updates>0)
|
||||
{
|
||||
//Mail an die Lektoren
|
||||
foreach ($lektoren as $uid=>$message_lkt)
|
||||
{
|
||||
if($message_lkt!='' && $uid!='_DummyLektor')
|
||||
{
|
||||
$header = "Dies ist eine automatische Mail!\n";
|
||||
$header.= "Es wurden folgende Aktualisierungen an Ihren Moodle-Kursen durchgeführt:\n\n";
|
||||
|
||||
$to = "$uid@".DOMAIN;
|
||||
//$to = 'oesi@technikum-wien.at';
|
||||
|
||||
$mail = new mail($to, 'vilesci@'.DOMAIN,'Moodle - Aktualisierungen',$header.$message_lkt);
|
||||
if($mail->send())
|
||||
echo "Mail wurde an $to versandt<br>";
|
||||
else
|
||||
echo "Fehler beim Senden des Mails an $to<br>";
|
||||
}
|
||||
}
|
||||
//Mail an Admin
|
||||
$header = "Dies ist eine automatische Mail!\n";
|
||||
$header.= "Folgende Syncros mit den MoodleKursen wurde durchgeführt:\n\n";
|
||||
$header.= "Anzahl der aktualisierten Lektoren: $sync_lektoren_gesamt\n";
|
||||
$header.= "Anzahl der aktualisierten Studenten: $sync_studenten_gesamt\n";
|
||||
$header.= "Anzahl der Fehler: $fehler\n";
|
||||
|
||||
$to = MAIL_ADMIN;
|
||||
//$to = 'oesi@technikum-wien.at';
|
||||
|
||||
$mail = new mail($to, 'vilesci@'.DOMAIN,'Moodle Syncro',$header.$message);
|
||||
if($mail->send())
|
||||
echo "Mail wurde an $to versandt:<br>".nl2br($header.$message);
|
||||
else
|
||||
echo "Fehler beim Senden des Mails an $to:<br>".nl2br($header.$message);
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "\nAlle Zuteilungen sind auf dem neuesten Stand";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Fehler bei Select:'.$qry;
|
||||
}
|
||||
}
|
||||
else
|
||||
echo "Kein aktuelles Studiensemester vorhanden->kein Syncro";
|
||||
echo "<br>\n-- Ende ".date('Y-m-d H:i:s')." --\n";
|
||||
?>
|
||||
@@ -1,158 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2015 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
*/
|
||||
/**
|
||||
* Legt fuer jede Lehreinheit im aktuellen Semester einen Moodle Kurs an
|
||||
* falls noch keiner vorhanden ist
|
||||
* und teilt Lektoren und Studierende zu dem Kurs zu
|
||||
* Aber nur wenn die Lehrform der Lehreinheit=Lehrform der LV
|
||||
*/
|
||||
require_once(dirname(__FILE__).'/../../config/cis.config.inc.php');
|
||||
require_once(dirname(__FILE__).'/../../config/global.config.inc.php');
|
||||
require_once(dirname(__FILE__).'/../../include/studiensemester.class.php');
|
||||
require_once(dirname(__FILE__).'/../../include/moodle.class.php');
|
||||
require_once(dirname(__FILE__).'/../../include/moodle24_course.class.php');
|
||||
require_once(dirname(__FILE__).'/../../include/moodle24_user.class.php');
|
||||
require_once(dirname(__FILE__).'/../../include/studiengang.class.php');
|
||||
require_once(dirname(__FILE__).'/../../include/benutzerberechtigung.class.php');
|
||||
|
||||
// Wenn das Script nicht ueber Commandline gestartet wird, muss eine
|
||||
// Authentifizierung stattfinden
|
||||
if(php_sapi_name() != 'cli')
|
||||
{
|
||||
$uid = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($uid);
|
||||
|
||||
if(!$rechte->isBerechtigt('admin'))
|
||||
die('Sie haben keine Berechtigung fuer diese Seite');
|
||||
}
|
||||
|
||||
set_time_limit(10000);
|
||||
|
||||
$db = new basis_db();
|
||||
|
||||
$stsem_obj = new studiensemester();
|
||||
$stsem = $stsem_obj->getAktOrNext();
|
||||
$neue_kurse = 0;
|
||||
$vorhandene_kurse = 0;
|
||||
$anzahl_fehler = 0;
|
||||
|
||||
$qry = "SELECT
|
||||
distinct lehrveranstaltung_id, tbl_lehrveranstaltung.bezeichnung, tbl_lehrveranstaltung.kurzbz,
|
||||
tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.orgform_kurzbz, tbl_lehrveranstaltung.semester,
|
||||
tbl_lehreinheit.lehreinheit_id, trim(string_agg(vorname||nachname,'_')) AS lektoren
|
||||
FROM
|
||||
lehre.tbl_lehreinheit
|
||||
JOIN lehre.tbl_lehrveranstaltung USING(lehrveranstaltung_id)
|
||||
JOIN lehre.tbl_lehreinheitmitarbeiter USING (lehreinheit_id)
|
||||
JOIN public.tbl_mitarbeiter USING (mitarbeiter_uid)
|
||||
JOIN public.tbl_benutzer ON (uid=mitarbeiter_uid)
|
||||
JOIN public.tbl_person USING (person_id)
|
||||
WHERE
|
||||
studiensemester_kurzbz=".$db->db_add_param($stsem)."
|
||||
AND semester is not null
|
||||
AND semester!=0
|
||||
AND tbl_lehreinheit.lehrform_kurzbz=tbl_lehrveranstaltung.lehrform_kurzbz
|
||||
AND uid not like '_Dummy%'
|
||||
GROUP BY lehrveranstaltung_id, tbl_lehrveranstaltung.bezeichnung, tbl_lehrveranstaltung.kurzbz,
|
||||
tbl_lehrveranstaltung.studiengang_kz, tbl_lehrveranstaltung.orgform_kurzbz, tbl_lehrveranstaltung.semester,
|
||||
tbl_lehreinheit.lehreinheit_id
|
||||
";
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
$mdl_course = new moodle24_course();
|
||||
$mdl = new moodle();
|
||||
|
||||
if(!$mdl->course_exists_for_le($row->lehreinheit_id))
|
||||
{
|
||||
$studiengang = new studiengang();
|
||||
$studiengang->load($row->studiengang_kz);
|
||||
|
||||
$shortname = $studiengang->kuerzel.($row->orgform_kurzbz!=''?'-'.$row->orgform_kurzbz:'').($row->semester!=''?'-'.$row->semester:'').'-'.$stsem.'-'.$row->kurzbz.'-'.$row->lehreinheit_id.'-'.$row->lektoren;
|
||||
$bezeichnung = $studiengang->kuerzel.($row->orgform_kurzbz!=''?'-'.$row->orgform_kurzbz:'').($row->semester!=''?'-'.$row->semester:'').'-'.$stsem.'-'.$row->bezeichnung.'-'.$row->lehreinheit_id.'-'.$row->lektoren;
|
||||
|
||||
// Bezeichnung kuerzen wenn zu lange
|
||||
$shortname = mb_substr($shortname,0,254);
|
||||
$bezeichnung = mb_substr($bezeichnung,0,254);
|
||||
|
||||
//$mdl_course->lehrveranstaltung_id = $row->lehrveranstaltung_id;
|
||||
$mdl_course->studiensemester_kurzbz = $stsem;
|
||||
$mdl_course->lehreinheit_id = $row->lehreinheit_id;
|
||||
$mdl_course->mdl_fullname = $bezeichnung;
|
||||
$mdl_course->mdl_shortname = $shortname;
|
||||
$mdl_course->insertamum = date('Y-m-d H:i:s');
|
||||
$mdl_course->insertvon = 'auto';
|
||||
$mdl_course->gruppen = true;
|
||||
|
||||
echo "\n<br>Create Course: $bezeichnung";
|
||||
|
||||
//Moodlekurs anlegen
|
||||
if($mdl_course->create_moodle())
|
||||
{
|
||||
$neue_kurse++;
|
||||
//Eintrag in der Vilesci DB
|
||||
$mdl_course->create_vilesci();
|
||||
|
||||
$mdl_user = new moodle24_user();
|
||||
//Lektoren Synchronisieren
|
||||
if(!$mdl_user->sync_lektoren($mdl_course->mdl_course_id))
|
||||
{
|
||||
$anzahl_fehler++;
|
||||
echo "\n<br>Lektor Sync Failed:".$mdl_user->errormsg;
|
||||
}
|
||||
|
||||
if(MOODLE_SYNC_FACHBEREICHSLEITUNG)
|
||||
{
|
||||
$mdl_user = new moodle24_user();
|
||||
//Fachbereichsleitung Synchronisieren
|
||||
if(!$mdl_user->sync_fachbereichsleitung($mdl_course->mdl_course_id))
|
||||
{
|
||||
$anzahl_fehler++;
|
||||
echo "\n<br>FBL Sync Failed:".$mdl_user->errormsg;
|
||||
}
|
||||
}
|
||||
|
||||
$mdl_user = new moodle24_user();
|
||||
//Studenten Synchronisieren
|
||||
if(!$mdl_user->sync_studenten($mdl_course->mdl_course_id))
|
||||
{
|
||||
$anzahl_fehler++;
|
||||
echo "\n<br>Student Sync Failed:".$mdl_user->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$anzahl_fehler++;
|
||||
echo "\nFailed:".$mdl_course->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$vorhandene_kurse++;
|
||||
}
|
||||
}
|
||||
}
|
||||
echo "\n<hr>Fertig";
|
||||
echo "\n<br>Neue Kurse:".$neue_kurse;
|
||||
echo "\n<br>Vorhandene Kurse:".$vorhandene_kurse;
|
||||
echo "\n<br>Anzahl Fehler:".$anzahl_fehler;
|
||||
@@ -1,159 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2008 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger <christian.paminger@technikum-wien.at>,
|
||||
* Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
* Rudolf Hangl <rudolf.hangl@technikum-wien.at>.
|
||||
*/
|
||||
/*
|
||||
* Synchronisiert die Lektoren und Studenten der aktuellen MoodleKurse
|
||||
* wenn kein aktuelles Studiensemester vorhanden ist, wird NICHT Synchronisiert
|
||||
*/
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/moodle19_course.class.php');
|
||||
require_once('../../include/moodle19_user.class.php');
|
||||
require_once('../../include/studiensemester.class.php');
|
||||
require_once('../../include/studiengang.class.php');
|
||||
require_once('../../include/mail.class.php');
|
||||
|
||||
$db = new basis_db();
|
||||
$sync_lektoren_gesamt=0;
|
||||
$sync_studenten_gesamt=0;
|
||||
$group_updates=0;
|
||||
$fehler=0;
|
||||
$message='';
|
||||
$message_lkt='';
|
||||
$lektoren=array();
|
||||
|
||||
//nur Synchronisieren wenn ein aktuelles Studiensemester existiert damit keine
|
||||
//Probleme durch die Vorrueckung entstehen
|
||||
$stsem = new studiensemester();
|
||||
if($stsem_kurzbz=$stsem->getakt())
|
||||
{
|
||||
//nur die Eintraege des aktuellen Studiensemesters syncen
|
||||
$qry = "SELECT distinct mdl_course_id FROM lehre.tbl_moodle
|
||||
WHERE studiensemester_kurzbz=".$db->db_add_param($stsem_kurzbz)."
|
||||
AND moodle_version='1.9';";
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
$course = new moodle19_course();
|
||||
if($course->load($row->mdl_course_id))
|
||||
{
|
||||
$message_lkt='';
|
||||
//Lektoren
|
||||
$mdluser = new moodle19_user();
|
||||
$mitarbeiter = $mdluser->getMitarbeiter($row->mdl_course_id);
|
||||
|
||||
if($mdluser->sync_lektoren($row->mdl_course_id))
|
||||
{
|
||||
$sync_lektoren_gesamt+=$mdluser->sync_create;
|
||||
$group_updates+=$mdluser->group_update;
|
||||
if($mdluser->sync_create>0 || $mdluser->group_update>0)
|
||||
{
|
||||
$message.="\nKurs: $course->mdl_fullname ($course->mdl_shortname):\n".$mdluser->log."\n";
|
||||
$message_lkt.="\nKurs: $course->mdl_fullname ($course->mdl_shortname):\n".$mdluser->log_public."\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$message.="\nFehler: $mdluser->errormsg";
|
||||
$fehler++;
|
||||
}
|
||||
|
||||
//Studenten
|
||||
$mdluser = new moodle19_user();
|
||||
if($mdluser->sync_studenten($row->mdl_course_id))
|
||||
{
|
||||
$sync_studenten_gesamt+=$mdluser->sync_create;
|
||||
$group_updates+=$mdluser->group_update;
|
||||
if($mdluser->sync_create>0 || $mdluser->group_update>0)
|
||||
{
|
||||
$message.="\nKurs: $course->mdl_fullname ($course->mdl_shortname):\n".$mdluser->log."\n";
|
||||
$message_lkt.="\nKurs: $course->mdl_fullname ($course->mdl_shortname):\n".$mdluser->log_public."\n";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$message.="\nFehler: $mdluser->errormsg";
|
||||
$fehler++;
|
||||
}
|
||||
|
||||
foreach ($mitarbeiter as $uid)
|
||||
{
|
||||
if(!isset($lektoren[$uid]))
|
||||
$lektoren[$uid]='';
|
||||
$lektoren[$uid].=$message_lkt;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$message.="\nFehler: in der Tabelle lehre.tbl_moodle wird auf den Kurs $row->mdl_course_id verwiesen, dieser existiert jedoch nicht im Moodle!";
|
||||
$fehler++;
|
||||
}
|
||||
}
|
||||
|
||||
if($sync_lektoren_gesamt>0 || $sync_studenten_gesamt>0 || $fehler>0 || $group_updates>0)
|
||||
{
|
||||
//Mail an die Lektoren
|
||||
foreach ($lektoren as $uid=>$message_lkt)
|
||||
{
|
||||
if($message_lkt!='')
|
||||
{
|
||||
$header = "Dies ist eine automatische Mail!\n";
|
||||
$header.= "Es wurden folgende Aktualisierungen an Ihren Moodle-Kursen durchgeführt:\n\n";
|
||||
|
||||
$to = "$uid@".DOMAIN;
|
||||
//$to = 'oesi@technikum-wien.at';
|
||||
|
||||
$mail = new mail($to, 'vilesci@'.DOMAIN,'Moodle - Aktualisierungen',$header.$message_lkt);
|
||||
if($mail->send())
|
||||
echo "Mail wurde an $to versandt<br>";
|
||||
else
|
||||
echo "Fehler beim Senden des Mails an $to<br>";
|
||||
}
|
||||
}
|
||||
//Mail an Admin
|
||||
$header = "Dies ist eine automatische Mail!\n";
|
||||
$header.= "Folgende Syncros mit den MoodleKursen wurde durchgeführt:\n\n";
|
||||
$header.= "Anzahl der aktualisierten Lektoren: $sync_lektoren_gesamt\n";
|
||||
$header.= "Anzahl der aktualisierten Studenten: $sync_studenten_gesamt\n";
|
||||
$header.= "Anzahl der Fehler: $fehler\n";
|
||||
|
||||
$to = MAIL_ADMIN;
|
||||
//$to = 'oesi@technikum-wien.at';
|
||||
|
||||
$mail = new mail($to, 'vilesci@'.DOMAIN,'Moodle Syncro',$header.$message);
|
||||
if($mail->send())
|
||||
echo "Mail wurde an $to versandt:<br>".nl2br($header.$message);
|
||||
else
|
||||
echo "Fehler beim Senden des Mails an $to:<br>".nl2br($header.$message);
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Alle Zuteilungen sind auf dem neuesten Stand';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Fehler bei Select:'.$qry;
|
||||
}
|
||||
}
|
||||
else
|
||||
echo "Kein aktuelles Studiensemester vorhanden->kein Syncro";
|
||||
?>
|
||||
@@ -1,11 +0,0 @@
|
||||
<?php
|
||||
|
||||
$I = new ApiTester($scenario);
|
||||
$I->wantTo("Test API call v1/education/Moodle/: Moodle");
|
||||
$I->amHttpAuthenticated("admin", "1q2w3");
|
||||
$I->haveHttpHeader("FHC-API-KEY", "testapikey@fhcomplete.org");
|
||||
$I->sendGET("v1/education/Moodle/Moodle", array("moodle_id" => "1"));
|
||||
$I->seeResponseCodeIs(200);
|
||||
$I->seeResponseIsJson();
|
||||
$I->seeResponseContainsJson(["error" => 0]);
|
||||
$I->wait();
|
||||
+48
-36
@@ -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);
|
||||
|
||||
@@ -1,84 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2014 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
*/
|
||||
/**
|
||||
* Script um mehrere User auf einmal im Moodle anzulegen
|
||||
* Die UID der User die angelegt werden sollen, werden in einem Textfeld uebergeben
|
||||
*/
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/basis_db.class.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/moodle24_user.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/moodle'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler bei der Datenbankverbindung');
|
||||
|
||||
$userliste = (isset($_POST['userliste'])?trim($_POST['userliste']):'');
|
||||
$messages='';
|
||||
|
||||
if($userliste!='')
|
||||
{
|
||||
$moodle = new moodle24_user();
|
||||
|
||||
$uids = explode("\n",$userliste);
|
||||
foreach($uids as $uid)
|
||||
{
|
||||
$uid=trim($uid);
|
||||
// Check ob User nicht bereits angelegt ist
|
||||
if (!$moodle->loaduser($uid))
|
||||
{
|
||||
// User ist noch nicht in Moodle angelegt => Neuanlage
|
||||
if (!$moodle->createUser($uid))
|
||||
$messages.=$moodle->errormsg.'X'.$uid.'X';
|
||||
else
|
||||
$messages.='<br>User '.$uid.' angelegt';
|
||||
}
|
||||
else
|
||||
$messages.='<br>User '.$uid.' bereits vorhanden';
|
||||
}
|
||||
}
|
||||
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Moodle 2.4 - Accountverwaltung</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
</head>
|
||||
<body>
|
||||
<h2>Moodle - User anlegen</h2>
|
||||
<form name="createuser" method="POST" action="'.$_SERVER["PHP_SELF"].'" target="_self">
|
||||
Bitte geben sie die UIDs der Personen die im Moodle angelegt werden sollen ein (ein User pro Zeile):<br>
|
||||
<textarea name="userliste" cols="32" rows="20"></textarea>
|
||||
<input type="submit" value="Anlegen">
|
||||
</form> ';
|
||||
echo $messages;
|
||||
echo '
|
||||
</body>
|
||||
</html>';
|
||||
?>
|
||||
@@ -1,204 +0,0 @@
|
||||
<?php
|
||||
//@version $Id$
|
||||
/* Copyright (C) 2008 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger < christian.paminger@technikum-wien.at >
|
||||
* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
*/
|
||||
|
||||
/*
|
||||
Dieses Programm listet nach einem Suchbegriff bestehender Benutzer auf.
|
||||
Fuer jede UserID wird geprueft ob dieser bereits einen Moodle ID besitzt.
|
||||
Bestehende Moodle IDs werden angezeigt, fuer alle anderen wird die moeglichkeit
|
||||
der neuanlage geboten.
|
||||
*/
|
||||
|
||||
// ---------------- Standart Include Dateien einbinden
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/basis_db.class.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/globals.inc.php');
|
||||
require_once('../../include/moodle19_user.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/moodle'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('<div style="text-align:center;"><br />MOODLE Datenbank zurzeit NICHT Online.<br />Bitte etwas Geduld.<br />Danke</div>');
|
||||
// ***********************************************************************************************
|
||||
// Variable Initialisieren
|
||||
// ***********************************************************************************************
|
||||
// AusgabeStream
|
||||
$content='';
|
||||
|
||||
// ***********************************************************************************************
|
||||
// POST oder GET Parameter einlesen
|
||||
// ***********************************************************************************************
|
||||
|
||||
// $cUID UserID fuer Moodelaccount anlage
|
||||
$cUID = (isset($_REQUEST['uid'])?trim($_REQUEST['uid']):'');
|
||||
// @$cMdl_user_id Moodleaccount zum loeschen
|
||||
$cMdl_user_id = (isset($_REQUEST['mdl_user_id'])?trim($_REQUEST['mdl_user_id']):'');
|
||||
// @cSearchstr Suchtext in Tabelle Benutzer
|
||||
$cSearchstr = (isset($_REQUEST['searchstr'])?trim($_REQUEST['searchstr']):'');
|
||||
// ***********************************************************************************************
|
||||
// Datenbankverbindungen zu Moodle und Vilesci und Classen
|
||||
// ***********************************************************************************************
|
||||
// Classen Instanzen
|
||||
$objMoodle = new moodle19_user();
|
||||
// ***********************************************************************************************
|
||||
// Verarbeitung einer Moodle-Account Anlageaktion
|
||||
// ***********************************************************************************************
|
||||
if ($cUID!='') // Bearbeiten User UID Anfrage
|
||||
{
|
||||
// Check ob User nicht bereits angelegt ist
|
||||
if (!$bStatus=$objMoodle->loaduser($cUID))
|
||||
{
|
||||
$objMoodle->errormsg='';
|
||||
// User ist noch nicht in Moodle angelegt => Neuanlage
|
||||
if (!$bStatus=$objMoodle->createUser($cUID))
|
||||
$content.=$objMoodle->errormsg;
|
||||
}
|
||||
}
|
||||
// ***********************************************************************************************
|
||||
// HTML Suchfeld (Teil 1)
|
||||
// ***********************************************************************************************
|
||||
$content.='
|
||||
<form accept-charset="UTF-8" name="search" method="GET" action="'.$_SERVER["PHP_SELF"].'" target="_self">
|
||||
Bitte Suchbegriff eingeben:
|
||||
<input type="text" name="searchstr" size="30" value="'.$cSearchstr.'">
|
||||
<input type="submit" value=" suchen ">
|
||||
</form>
|
||||
<hr>';
|
||||
// ***********************************************************************************************
|
||||
// HTML Listenanzeige (Teil 2)
|
||||
// ***********************************************************************************************
|
||||
if($cSearchstr!='' && $cSearchstr!='?' && $cSearchstr!='*')
|
||||
{
|
||||
// SQL Select-String
|
||||
$qry = "SELECT distinct tbl_person.person_id,tbl_person.nachname,tbl_person.vorname,tbl_person.aktiv,tbl_benutzer.uid
|
||||
FROM public.tbl_person ,public.tbl_benutzer
|
||||
|
||||
WHERE tbl_benutzer.person_id=tbl_person.person_id
|
||||
and (
|
||||
tbl_person.nachname ~* '".addslashes($cSearchstr)."' OR
|
||||
tbl_person.vorname ~* '".addslashes($cSearchstr)."' OR
|
||||
tbl_benutzer.alias ~* '".addslashes($cSearchstr)."' OR
|
||||
tbl_person.nachname || ' ' || tbl_person.vorname = '".addslashes($cSearchstr)."' OR
|
||||
tbl_person.vorname || ' ' || tbl_person.nachname = '".addslashes($cSearchstr)."' OR
|
||||
tbl_benutzer.uid ~* '".addslashes($cSearchstr)."'
|
||||
)
|
||||
ORDER BY nachname, vorname;";
|
||||
# and tbl_benutzer.uid >''
|
||||
# and tbl_benutzer.uid IS NOT NULL
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
// Header Top mit Anzahl der gelisteten Kurse
|
||||
$content.= '<a name="top">'. $db->db_num_rows($result).' Person(en) gefunden</a>';
|
||||
|
||||
$content.='<table style="border: 1px outset #F7F7F7;">';
|
||||
|
||||
// Header Teil Information der Funktion
|
||||
$content.='<tr class="liste" align="center">';
|
||||
$content.='<td colspan="6"><b>Benutzer</b></td>';
|
||||
$content.='</tr>';
|
||||
|
||||
// Headerinformation der Tabellenfelder
|
||||
$content.='<tr class="liste" align="center">';
|
||||
$content.='<th> Nachname </th>';
|
||||
$content.='<th> Vorname </th>';
|
||||
$content.='<th> UserID </th>';
|
||||
$content.='<th> Status </th>';
|
||||
$content.='<th> MoodleAccount </th>';
|
||||
# $content.='<th> Bearbeitung </th>';
|
||||
$content.='</tr>';
|
||||
|
||||
// Alle gefundenen User in einer Schleife anzeigen.
|
||||
$iTmpCounter=0;
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
// ZeilenCSS (gerade/ungerade) zur besseren Ansicht
|
||||
$iTmpCounter++;
|
||||
if ($iTmpCounter%2)
|
||||
$showCSS=' style="text-align: left;border: 1px outset #F7F7F7;padding: 1px 5px 1px 5px; background:#FEFFEC" ';
|
||||
else
|
||||
$showCSS=' style="text-align: left;border: 1px outset #F7F7F7;padding: 1px 5px 1px 5px; background:#FCFCFC" ';
|
||||
|
||||
// Listenzeile
|
||||
$content.= '<tr '.$showCSS.'>';
|
||||
$content.= '<td '.$showCSS.'><a href="../personen/personen_details.php?person_id='.$row->person_id.'">'.$row->nachname.'</a></td>';
|
||||
$content.= '<td '.$showCSS.'>'.$row->vorname.'</td>';
|
||||
$content.= '<td '.$showCSS.'>'.$row->uid.'</td>';
|
||||
$content.= '<td '.$showCSS.'>'.(!empty($row->aktiv) && mb_strtoupper($row->aktiv)!='F' && mb_strtoupper($row->aktiv)!='FALSE' ?'aktiv':'deaktiviert').'</td>';
|
||||
$arrMoodleUser=array();
|
||||
$objMoodle->errormsg='';
|
||||
$objMoodle->mdl_user_id='';
|
||||
if (!empty($row->uid))
|
||||
{
|
||||
if (!$boolReadMoodle=$objMoodle->loaduser($row->uid))
|
||||
$objMoodle->mdl_user_id='';
|
||||
}
|
||||
// Es gibt noch keinen Moodle User - Anlage ermoeglichen
|
||||
if (!isset($objMoodle->mdl_user_id) || empty($objMoodle->mdl_user_id))
|
||||
{
|
||||
$content.= '<td style="vertical-align:bottom;cursor: pointer;" onclick="document.work'.$iTmpCounter.'.submit();">';
|
||||
$content.='<form style="display: inline;border:0px;" name="work'.$iTmpCounter.'" method="GET" target="_self" action="'.$_SERVER["PHP_SELF"].'">';
|
||||
$content.= '<input style="display:none" type="text" name="uid" value="'.$row->uid.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="searchstr" value="'.$cSearchstr.'" />';
|
||||
$content.= '<img height="12" src="../../skin/images/table_row_insert.png" border="0" title="MoodleUser anlegen" alt="table_row_insert.png" />';
|
||||
$content.= '<input onclick="this.checked=false;" onblur="this.checked=false;" type="checkbox" value="" style="'.(!stristr($_SERVER['HTTP_USER_AGENT'],'OPERA') && !stristr($_SERVER['HTTP_USER_AGENT'],'Safari')?'display:none;':'').'font-size: 4px;border:0px solid transparent;text-decoration:none; background-color: transparent;" name="check_va_detail_kal'.$iTmpCounter.'" />';
|
||||
$content.= 'anlegen';
|
||||
$content.='</form>';
|
||||
$content.= '</td>';
|
||||
}
|
||||
else // Anzeige bestehende Moodle User ID
|
||||
{
|
||||
$content.= '<td '.$showCSS.'>'.((isset($objMoodle->mdl_user_id) && !empty($objMoodle->mdl_user_id))?$objMoodle->mdl_user_id:'').'</td>';
|
||||
}
|
||||
// Tastatureingabe ermoeglichen
|
||||
$content.= '</tr>';
|
||||
} // Ende Schleife der gefundenen User
|
||||
$content.= '</table>';
|
||||
$content.= '<a href="#top">zum Anfang</a>';
|
||||
} // Ende SQL Result abfrage
|
||||
} // Ende ob Suchanfrage gestellt (Submit) wurde
|
||||
$content='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Moodle - Accountverwaltung</title>
|
||||
<base target="main">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
</head>
|
||||
<body class="background_main">
|
||||
<h2>Moodle - Accountverwaltung</h2>
|
||||
<!-- MoodleAccount Content Start -->
|
||||
'.$content.'
|
||||
<!-- MoodleAccount Content Ende -->
|
||||
</body>
|
||||
</html>';
|
||||
exit($content);
|
||||
?>
|
||||
@@ -1,162 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2013 FH Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
*/
|
||||
/**
|
||||
* Dieses Programm listet nach einem Suchbegriff bestehender Benutzer auf.
|
||||
* Fuer jede UserID wird geprueft ob dieser bereits einen Moodle ID besitzt.
|
||||
* Bestehende Moodle IDs werden angezeigt, fuer alle anderen wird die Moeglichkeit
|
||||
* der Neuanlage geboten.
|
||||
*/
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/basis_db.class.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/moodle24_user.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/moodle'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler bei der Datenbankverbindung');
|
||||
|
||||
$uid = (isset($_REQUEST['uid'])?trim($_REQUEST['uid']):'');
|
||||
$mdl_user_id = (isset($_REQUEST['mdl_user_id'])?trim($_REQUEST['mdl_user_id']):'');
|
||||
$searchstr = (isset($_REQUEST['searchstr'])?trim($_REQUEST['searchstr']):'');
|
||||
$content='';
|
||||
$moodle = new moodle24_user();
|
||||
|
||||
if($uid!='')
|
||||
{
|
||||
// Check ob User nicht bereits angelegt ist
|
||||
if (!$moodle->loaduser($uid))
|
||||
{
|
||||
// User ist noch nicht in Moodle angelegt => Neuanlage
|
||||
if (!$moodle->createUser($uid))
|
||||
$content.=$moodle->errormsg;
|
||||
}
|
||||
}
|
||||
|
||||
$content.='
|
||||
<form name="search" method="GET" action="'.$_SERVER["PHP_SELF"].'" target="_self">
|
||||
Bitte Suchbegriff eingeben:
|
||||
<input type="text" name="searchstr" size="30" value="'.$db->convert_html_chars($searchstr).'">
|
||||
<input type="submit" value="Suchen">
|
||||
</form>
|
||||
<hr>';
|
||||
|
||||
if($searchstr!='' && $searchstr!='?' && $searchstr!='*')
|
||||
{
|
||||
// SQL Select-String
|
||||
$qry = "SELECT
|
||||
distinct tbl_person.person_id,tbl_person.nachname,tbl_person.vorname,
|
||||
tbl_person.aktiv,tbl_benutzer.uid
|
||||
FROM
|
||||
public.tbl_person
|
||||
JOIN public.tbl_benutzer USING(person_id)
|
||||
WHERE
|
||||
tbl_person.nachname ~* ".$db->db_add_param($searchstr)." OR
|
||||
tbl_person.vorname ~* ".$db->db_add_param($searchstr)." OR
|
||||
tbl_benutzer.alias ~* ".$db->db_add_param($searchstr)." OR
|
||||
tbl_person.nachname || ' ' || tbl_person.vorname = ".$db->db_add_param($searchstr)." OR
|
||||
tbl_person.vorname || ' ' || tbl_person.nachname = ".$db->db_add_param($searchstr)." OR
|
||||
tbl_benutzer.uid ~* ".$db->db_add_param($searchstr)."
|
||||
ORDER BY nachname, vorname;";
|
||||
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
// Header Top mit Anzahl der gelisteten Kurse
|
||||
$content.= $db->db_num_rows($result).' Person(en) gefunden';
|
||||
|
||||
$content.='<table style="border: 1px outset #F7F7F7;">';
|
||||
|
||||
// Header Teil Information der Funktion
|
||||
$content.='<tr class="liste" align="center">';
|
||||
$content.='<td colspan="6"><b>Benutzer</b></td>';
|
||||
$content.='</tr>';
|
||||
|
||||
// Headerinformation der Tabellenfelder
|
||||
$content.='<tr class="liste" align="center">';
|
||||
$content.='<th> Nachname </th>';
|
||||
$content.='<th> Vorname </th>';
|
||||
$content.='<th> UserID </th>';
|
||||
$content.='<th> Status </th>';
|
||||
$content.='<th> MoodleAccount </th>';
|
||||
$content.='</tr>';
|
||||
|
||||
// Alle gefundenen User in einer Schleife anzeigen.
|
||||
$iTmpCounter=0;
|
||||
while($row = $db->db_fetch_object($result))
|
||||
{
|
||||
// ZeilenCSS (gerade/ungerade) zur besseren Ansicht
|
||||
$iTmpCounter++;
|
||||
if ($iTmpCounter%2)
|
||||
$showCSS=' style="text-align: left;border: 1px outset #F7F7F7;padding: 1px 5px 1px 5px; background:#FEFFEC" ';
|
||||
else
|
||||
$showCSS=' style="text-align: left;border: 1px outset #F7F7F7;padding: 1px 5px 1px 5px; background:#FCFCFC" ';
|
||||
|
||||
// Listenzeile
|
||||
$content.= '<tr '.$showCSS.'>';
|
||||
$content.= '<td '.$showCSS.'><a href="../personen/personen_details.php?person_id='.$db->convert_html_chars($row->person_id).'">'.$db->convert_html_chars($row->nachname).'</a></td>';
|
||||
$content.= '<td '.$showCSS.'>'.$db->convert_html_chars($row->vorname).'</td>';
|
||||
$content.= '<td '.$showCSS.'>'.$db->convert_html_chars($row->uid).'</td>';
|
||||
$content.= '<td '.$showCSS.'>'.(!empty($row->aktiv) && mb_strtoupper($row->aktiv)!='F' && mb_strtoupper($row->aktiv)!='FALSE' ?'aktiv':'deaktiviert').'</td>';
|
||||
|
||||
if (!$moodle->loaduser($row->uid))
|
||||
$moodle->mdl_user_id='';
|
||||
|
||||
// Es gibt noch keinen Moodle User - Anlage ermoeglichen
|
||||
if (!isset($moodle->mdl_user_id) || empty($moodle->mdl_user_id))
|
||||
{
|
||||
$content.= '<td style="vertical-align:bottom;cursor: pointer;" onclick="document.work'.$iTmpCounter.'.submit();">';
|
||||
$content.='<form style="display: inline;border:0px;" name="work'.$iTmpCounter.'" method="GET" target="_self" action="'.$_SERVER["PHP_SELF"].'">';
|
||||
$content.= '<input style="display:none" type="text" name="uid" value="'.$db->convert_html_chars($row->uid).'" />';
|
||||
$content.= '<input style="display:none" type="text" name="searchstr" value="'.$db->convert_html_chars($searchstr).'" />';
|
||||
$content.= '<img height="12" src="../../skin/images/table_row_insert.png" border="0" title="MoodleUser anlegen" alt="table_row_insert.png" />';
|
||||
$content.= 'anlegen';
|
||||
$content.='</form>';
|
||||
$content.= '</td>';
|
||||
}
|
||||
else // Anzeige bestehende Moodle User ID
|
||||
{
|
||||
$content.= '<td '.$showCSS.'>'.((isset($moodle->mdl_user_id) && !empty($moodle->mdl_user_id))?$moodle->mdl_user_id:'').'</td>';
|
||||
}
|
||||
$content.= '</tr>';
|
||||
}
|
||||
$content.= '</table>';
|
||||
}
|
||||
}
|
||||
echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Moodle 2.4 - Accountverwaltung</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
</head>
|
||||
<body>
|
||||
<h2>Moodle 2.4 - Accountverwaltung</h2>
|
||||
'.$content.'
|
||||
</body>
|
||||
</html>';
|
||||
?>
|
||||
@@ -1,352 +0,0 @@
|
||||
<?php
|
||||
//@version $Id$
|
||||
/* Copyright (C) 2008 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger < christian.paminger@technikum-wien.at >
|
||||
* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
*/
|
||||
|
||||
/*
|
||||
* Dieses Programm listet nach Selektinskreterien alle Moodelkurse zu einem Studiengang auf.
|
||||
* Fuer jede MoodleID werden die Anzahl Benotungen, und erfassten sowie angelegte Zusaetze angezeigt.
|
||||
* Jeder der angezeigten Moodle IDs kann geloescht werden nach bestaetigung eines PopUp Fenster.
|
||||
*/
|
||||
|
||||
|
||||
// ***********************************************************************************************
|
||||
// Include Dateien
|
||||
// ***********************************************************************************************
|
||||
# require_once('../config.inc.php');
|
||||
// ---------------- Vilesci Include Dateien einbinden
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/globals.inc.php');
|
||||
include_once('../../include/moodle19_course.class.php');
|
||||
require_once('../../include/studiensemester.class.php');
|
||||
require_once('../../include/studiengang.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/moodle'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
|
||||
// ***********************************************************************************************
|
||||
// Variable Initialisieren
|
||||
// ***********************************************************************************************
|
||||
// AusgabeStream
|
||||
$content='';
|
||||
$errormsg=array();
|
||||
|
||||
$objMoodle = new moodle19_course();
|
||||
|
||||
// ***********************************************************************************************
|
||||
// POST oder GET Parameter einlesen
|
||||
// ***********************************************************************************************
|
||||
|
||||
#$studiensemester_kurzbz='';
|
||||
#var_dump($_REQUEST);
|
||||
|
||||
// @$bAnzeige Listenanzeige wenn Submitbottom Anzeige gedrueckt wurde
|
||||
$bAnzeige= (isset($_REQUEST['anzeige'])?True:False);
|
||||
// @cCharset Zeichensatz - Ajax mit UTF-8
|
||||
$cCharset= (isset($_REQUEST['client_encode'])?trim($_REQUEST['client_encode']):'UTF-8');
|
||||
// @debug_switch Anzeige der xml-rfc Daten moegliche Stufen sind 0,1,2,3
|
||||
$debug_switch= (isset($_REQUEST['debug'])?$_REQUEST['debug']:0);
|
||||
|
||||
|
||||
// @$studiensemester_kurzbz Studiensemester xxJJJJ - xx fuer SS Sommer oder WW Winter
|
||||
$stsem = new studiensemester();
|
||||
if (!$stsem_aktuell = $stsem->getakt())
|
||||
$stsem_aktuell = $stsem->getaktorNext();
|
||||
|
||||
$studiensemester_kurzbz=(isset($_REQUEST['studiensemester_kurzbz'])?trim($_REQUEST['studiensemester_kurzbz']):$stsem_aktuell);
|
||||
// @$studiengang_kz Studiengang
|
||||
$studiengang_kz=(isset($_REQUEST['studiengang_kz'])?trim($_REQUEST['studiengang_kz']):'');
|
||||
// @$semester Semester des Studienganges
|
||||
$semester=(isset($_REQUEST['semester'])?trim($_REQUEST['semester']):'');
|
||||
|
||||
$lehrveranstaltung_id=null;
|
||||
$lehreinheit_id=null;
|
||||
|
||||
|
||||
// @$semester Semester des Studienganges
|
||||
$kursid=(isset($_REQUEST['kursid'])?trim($_REQUEST['kursid']):'');
|
||||
if (!empty($kursid))
|
||||
{
|
||||
$bAnzeige=false;
|
||||
if(!$objMoodle->getAllMoodleVariant($kursid,'','','','','',false))
|
||||
{
|
||||
$errormsg[]='Problem beim Lehre Moodle-Kurs '.addslashes($kursid).' lesen '.$objMoodle->errormsg;
|
||||
}
|
||||
// Lehre Moodle-Kurs gefunden
|
||||
if(isset($objMoodle->result) && isset($objMoodle->result[0]))
|
||||
{
|
||||
$bAnzeige=true;
|
||||
$moodle_id=$objMoodle->result[0]->moodle_id;
|
||||
$lehrveranstaltung_id=$objMoodle->result[0]->moodle_lehrveranstaltung_id;
|
||||
$lehreinheit_id=$objMoodle->result[0]->moodle_lehreinheit_id;
|
||||
$studiensemester_kurzbz=$objMoodle->result[0]->studiensemester_kurzbz;
|
||||
}
|
||||
else if ($objMoodle->load($kursid))
|
||||
{
|
||||
$bAnzeige=true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg[]='Moodle-Kurs wurde nicht gefunden '.addslashes($kursid).' '.$objMoodle->errormsg;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
// @$mdl_course_id Moodle Kurs ID
|
||||
$mdl_course_id= (isset($_REQUEST['mdl_course_id'])?$_REQUEST['mdl_course_id']:'');
|
||||
// @$moodle_id Moodle SubKurs (Unterkat.) ID zu Moodle Kurs ID (mdl_course_id)
|
||||
$moodle_id= (isset($_REQUEST['moodle_id'])?$_REQUEST['moodle_id']:'');
|
||||
|
||||
|
||||
// ***********************************************************************************************
|
||||
// Datenbankverbindungen zu Moodle und Vilesci und Classen
|
||||
// ***********************************************************************************************
|
||||
|
||||
|
||||
// ***********************************************************************************************
|
||||
// Verarbeitung einer Moodle-Kurs Loeschaktion
|
||||
// ***********************************************************************************************
|
||||
if (!empty($mdl_course_id) && isset($_REQUEST['delete'])) // Kurs wird zum bearbeiten (loeschen) freigegeben
|
||||
{
|
||||
if ($objMoodle->deleteKurs($mdl_course_id,$moodle_id,$debug_switch))
|
||||
$errormsg[]=$objMoodle->errormsg;
|
||||
else
|
||||
$errormsg[]=$objMoodle->errormsg;
|
||||
}
|
||||
|
||||
|
||||
// ***********************************************************************************************
|
||||
// HTML Auswahlfelder (Teil 1)
|
||||
// ***********************************************************************************************
|
||||
// FormName erzeugen
|
||||
$cFormName='searchMoodleCurse'.$studiensemester_kurzbz.$studiengang_kz.$semester;
|
||||
$content.='
|
||||
<form accept-charset="UTF-8" name="'.$cFormName.'" method="GET">
|
||||
<table><tr>';
|
||||
// Studiensemester public.tbl_studiensemester_kurzbz
|
||||
$content.='<td>Studiensemester</td><td><select onchange="document.'.$cFormName.'.submit();" name="studiensemester_kurzbz">';
|
||||
$stsem->getAll();
|
||||
foreach ($stsem->studiensemester as $row)
|
||||
{
|
||||
$content.='<option value="'.$row->studiensemester_kurzbz.'" '.(("$studiensemester_kurzbz"=="$row->studiensemester_kurzbz")?' selected="selected" ':'').'> '.$row->studiensemester_kurzbz.' </option>';
|
||||
}
|
||||
$content.='</select></td>';
|
||||
|
||||
// Studiengang public.tbl_studiengang_kz
|
||||
$content.='<td>Studiengang</td><td><select onchange="document.'.$cFormName.'.submit();" name="studiengang_kz"><option value=""> Alle </option>';
|
||||
$stg = new studiengang();
|
||||
$stg->getAll('typ, kurzbz',true);
|
||||
|
||||
|
||||
#var_dump($stg->result);
|
||||
|
||||
$max_semester=0;
|
||||
foreach ($stg->result as $row)
|
||||
{
|
||||
if (!$row->moodle)
|
||||
continue;
|
||||
if (empty($studiengang_kz) && !isset($_REQUEST['studiengang_kz']) )
|
||||
$studiengang_kz=$row->studiengang_kz;
|
||||
|
||||
if ($studiengang_kz==$row->studiengang_kz)
|
||||
$max_semester=$row->max_semester;
|
||||
|
||||
$content.='<option value="'.$row->studiengang_kz.'" '.(("$studiengang_kz"=="$row->studiengang_kz")?' selected="selected" ':'').'> '.$row->kuerzel.' ('.$row->kurzbzlang.') </option>';
|
||||
}
|
||||
$content.='</select></td>';
|
||||
|
||||
// Semster public.tbl_studiengang_kz - max Semester des Selektierten Studiengangs
|
||||
$content.='<td>Semster</td><td><select onchange="document.'.$cFormName.'.submit();" name="semester"><option value=""> Alle </option>';
|
||||
if ($studiengang_kz!='')
|
||||
{
|
||||
for($i=0;$i<=$max_semester;$i++)
|
||||
{
|
||||
$content.='<option value="'.($i).'" '.(("$semester"=="$i")?' selected="selected" ':'').'> '.($i).' </option>';
|
||||
}
|
||||
}
|
||||
$content.='</select></td>';
|
||||
|
||||
$content.='<td>Kurs ID</td><td><input size="4" maxlength="8" name="kursid" value="'.$kursid.'">';
|
||||
|
||||
$content.='
|
||||
<td><input name="anzeige" type="submit" value=" anzeigen "><input style="display:none" type="text" name="debug" value="'.$debug_switch.'" /></td>
|
||||
</tr></table>
|
||||
</form>
|
||||
<hr>';
|
||||
|
||||
// ***********************************************************************************************
|
||||
// HTML Listenanzeige (Teil 2)
|
||||
// ***********************************************************************************************
|
||||
// Bedingung zur Listenanzeige : Anzeige und Datengefunden
|
||||
|
||||
$detail=true;
|
||||
$lehre=null;
|
||||
$aktiv=null;
|
||||
|
||||
// $kursid = Selektion der mdl_course_id
|
||||
if ($bAnzeige && $objMoodle && $objMoodle->getAllMoodleVariant($kursid,$lehrveranstaltung_id,$studiensemester_kurzbz,$lehreinheit_id,$studiengang_kz,$semester,$detail,$lehre,$aktiv))
|
||||
{
|
||||
// Header Top mit Anzahl der gelisteten Kurse
|
||||
$content.= '<a name="top">'. count($objMoodle->result).' Kurs(e) gefunden</a>';
|
||||
$content.='<table style="font-size:medium;border: 1px outset #F7F7F7;">';
|
||||
// Header Teil Information der Funktion
|
||||
$content.='<tr class="liste" align="center">';
|
||||
$content.='<th colspan="8">Moodlekurs</th>';
|
||||
$content.='<td colspan="2">Anzahl</td>';
|
||||
$content.='<td>Kurs</td>';
|
||||
$content.='</tr>';
|
||||
|
||||
// Headerinformation der Tabellenfelder
|
||||
$content.='<tr class="liste" align="center">';
|
||||
$content.='<th> Lehrveranstaltung </th>';
|
||||
$content.='<th> Kurzbz. </th>';
|
||||
$content.='<th> StgKz </th>';
|
||||
$content.='<th> LV </th>';
|
||||
$content.='<th> Sem </th>';
|
||||
$content.='<th> LE </th>';
|
||||
$content.='<th> Kursbezeichnung </th>';
|
||||
$content.='<th> ID </th>';
|
||||
$content.='<td> Benotungen </td>';
|
||||
$content.='<td title="Aktivitäten und Lehrmaterial"> Aktivitäten </td>';
|
||||
$content.='<td> Bearbeiten </td>';
|
||||
$content.='</tr>';
|
||||
|
||||
|
||||
|
||||
if ( (!is_array($objMoodle->result) || count($objMoodle->result)<1 || !isset($objMoodle->result[0])) && $objMoodle->load($kursid))
|
||||
{
|
||||
// ZeilenCSS (gerade/ungerade) zur besseren Ansicht
|
||||
$showCSS=' style="text-align: left;border: 1px outset #F7F7F7;padding: 1px 5px 1px 5px; background:#FEFFEC" ';
|
||||
|
||||
// Listenzeile
|
||||
$content.='<tr '.$showCSS.' align="center">';
|
||||
$content.='<td colspan="6" '.$showCSS.'><font class="error">es gibt keine Referenz zum Kurs! Moodlekurs entfernt ist möglich.</font> </td>';
|
||||
$content.='<td '.$showCSS.'>'.$objMoodle->mdl_shortname.'</td>';
|
||||
$content.='<td '.$showCSS.' title="mdl_course_id:'.$kursid.'">'.$kursid.'</td>';
|
||||
|
||||
// Anzahl Benotungen - Aktivitaeten und Lehrmaterial
|
||||
$content.='<td title="Benotungen" '.$showCSS.' colspan="2"> </td>';
|
||||
|
||||
// Bearbeitung Submit
|
||||
$content.= '<td style="cursor: pointer;" onclick="if (!window.confirm(\'Löschen Moodlekurs '.$kursid.' ? \')) {return false;}; document.'.$cFormName.'0.submit();">';
|
||||
$content.='<form style="display: inline;border:0px;" name="'.$cFormName.'0" method="GET" target="_self" action="'.$_SERVER["PHP_SELF"].'">';
|
||||
$content.= '<input style="display:none" type="text" name="mdl_course_id" value="'.$kursid.'" />';
|
||||
|
||||
$content.= '<input style="display:none" type="text" name="studiensemester_kurzbz" value="'.$studiensemester_kurzbz.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="studiengang_kz" value="'.$studiengang_kz.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="semester" value="'.$semester.'" />';
|
||||
|
||||
$content.= '<input style="display:none" type="text" name="debug" value="'.$debug_switch.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="delete" value="delete" />';
|
||||
$content.= '<img height="15" src="../../skin/images/table_row_delete.png" border="0" title="MoodleKurs entfernen" alt="table_row_delete.png" />';
|
||||
$content.= '<input onclick="this.checked=false;" onblur="this.checked=false;" type="checkbox" value="" style="'.(!stristr($_SERVER['HTTP_USER_AGENT'],'OPERA') && !stristr($_SERVER['HTTP_USER_AGENT'],'Safari')?'display:none;':'').'font-size: 4px;border:0px solid transparent;text-decoration:none; background-color: transparent;" name="check_va_detail_kal0" />';
|
||||
$content.= 'entfernen';
|
||||
$content.='</form>';
|
||||
$content.= '</td>';
|
||||
$content.='</tr>';
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// Alle Moodlekurse in einer Schleife anzeigen.
|
||||
for($i=0;$i<count($objMoodle->result);$i++)
|
||||
{
|
||||
// ZeilenCSS (gerade/ungerade) zur besseren Ansicht
|
||||
if ($i%2)
|
||||
$showCSS=' style="text-align: left;border: 1px outset #F7F7F7;padding: 1px 5px 1px 5px; background:#FEFFEC" ';
|
||||
else
|
||||
$showCSS=' style="text-align: left;border: 1px outset #F7F7F7;padding: 1px 5px 1px 5px; background:#FCFCFC" ';
|
||||
|
||||
if (!empty($kursid) && $kursid!=$objMoodle->result[$i]->mdl_course_id)
|
||||
continue;
|
||||
|
||||
# var_dump($objMoodle->result);
|
||||
|
||||
// Listenzeile
|
||||
$content.='<tr '.$showCSS.' align="center">';
|
||||
$content.='<td '.$showCSS.'>'.$objMoodle->result[$i]->lehrveranstaltung_bezeichnung.'</td>';
|
||||
$content.='<td '.$showCSS.'>'.$objMoodle->result[$i]->lehrveranstaltung_kurzbz.'</td>';
|
||||
$content.='<td "'.$showCSS.'>'.$objMoodle->result[$i]->lehrveranstaltung_studiengang_kz.'</td>';
|
||||
$content.='<td '.$showCSS.'>'.$objMoodle->result[$i]->lehrveranstaltung_id.'</td>';
|
||||
$content.='<td '.$showCSS.'>'.$objMoodle->result[$i]->lehrveranstaltung_semester.'</td>';
|
||||
$content.='<td '.$showCSS.'>'.$objMoodle->result[$i]->lehreinheit_id.'</td>';
|
||||
$content.='<td '.$showCSS.'>'.$objMoodle->result[$i]->mdl_shortname.'</td>';
|
||||
$content.='<td '.$showCSS.' title="mdl_course_id:'.$objMoodle->result[$i]->mdl_course_id.'">'.$objMoodle->result[$i]->mdl_course_id.'</td>';
|
||||
|
||||
// Anzahl Benotungen
|
||||
$content.='<td title="Benotungen" '.$showCSS.'>'.$objMoodle->result[$i]->mdl_benotungen.'</td>';
|
||||
// Anzahl Aktivitaeten und Lehrmaterial
|
||||
$content.='<td title="Resourcen:'.$objMoodle->result[$i]->mdl_resource.', Quiz:'.$objMoodle->result[$i]->mdl_quiz.', Chat:'.$objMoodle->result[$i]->mdl_chat.', Forum:'.$objMoodle->result[$i]->mdl_forum.', Choice:'.$objMoodle->result[$i]->mdl_choice.'" '.$showCSS.'>'.($objMoodle->result[$i]->mdl_resource+$objMoodle->result[$i]->mdl_quiz+$objMoodle->result[$i]->mdl_chat + $objMoodle->result[$i]->mdl_forum + $objMoodle->result[$i]->mdl_choice ).'</td>';
|
||||
|
||||
// Bearbeitung Submit
|
||||
$content.= '<td style="cursor: pointer;" onclick="if (!window.confirm(\'Löschen Moodlekurs '.$objMoodle->result[$i]->mdl_course_id.', '.$objMoodle->result[$i]->lehrveranstaltung_bezeichnung.' ? \')) {return false;}; document.'.$cFormName.'_'.$i.'.submit();">';
|
||||
$content.='<form style="display: inline;border:0px;" name="'.$cFormName.'_'.$i.'" method="GET" target="_self" action="'.$_SERVER["PHP_SELF"].'">';
|
||||
$content.= '<input style="display:none" type="text" name="mdl_course_id" value="'.$objMoodle->result[$i]->mdl_course_id.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="studiensemester_kurzbz" value="'.$studiensemester_kurzbz.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="studiengang_kz" value="'.$studiengang_kz.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="semester" value="'.$semester.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="debug" value="'.$debug_switch.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="delete" value="delete" />';
|
||||
$content.= '<input style="display:none" type="text" name="delete" value="delete" />';
|
||||
$content.= '<img height="15" src="../../skin/images/table_row_delete.png" border="0" title="MoodleKurs entfernen" alt="table_row_delete.png" />';
|
||||
$content.= '<input onclick="this.checked=false;" onblur="this.checked=false;" type="checkbox" value="" style="'.(!stristr($_SERVER['HTTP_USER_AGENT'],'OPERA') && !stristr($_SERVER['HTTP_USER_AGENT'],'Safari')?'display:none;':'').'font-size: 4px;border:0px solid transparent;text-decoration:none; background-color: transparent;" name="check_va_detail_kal'.$i.'" />';
|
||||
$content.= 'entfernen';
|
||||
$content.='</form>';
|
||||
$content.= '</td>';
|
||||
$content.='</tr>';
|
||||
} // Ende Moodlekurse in einer Schleife anzeigen.
|
||||
$content.= '</table>';
|
||||
$content.= '<a href="#top">zum Anfang</a>';
|
||||
|
||||
} // Ende IF Bedingung Anzeige + Datengefunden
|
||||
|
||||
// ***********************************************************************************************
|
||||
// HTML Header und Foot zum Content (Ausgabestring) hinzufuegen, und Anzeigen
|
||||
// ***********************************************************************************************
|
||||
$content='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Moodle - Kursverwaltung</title>
|
||||
<base target="main">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset='.$cCharset.'">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
</head>
|
||||
<body class="background_main">
|
||||
<h2>Moodle - Kursverwaltung</h2>
|
||||
<!-- MoodleKurs Content Start -->
|
||||
'.$content.'<p class="error">'.implode('<br>',$errormsg).'</p>
|
||||
<!-- MoodleKurs Content Ende -->
|
||||
</body>
|
||||
</html>';
|
||||
exit($content);
|
||||
?>
|
||||
@@ -1,213 +0,0 @@
|
||||
<?php
|
||||
//@version $Id$
|
||||
/* Copyright (C) 2008 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Karl Burkhart <burkhart@technikum-wien.at>
|
||||
*/
|
||||
|
||||
/*
|
||||
* Dieses Programm listet nach Selektinskreterien alle Moodelkurse zu einem Studiengang auf.
|
||||
* Fuer jede MoodleID werden die Anzahl Benotungen, und erfassten sowie angelegte Zusaetze angezeigt.
|
||||
* Jeder der angezeigten Moodle IDs kann geloescht werden nach bestaetigung eines PopUp Fenster.
|
||||
*/
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/globals.inc.php');
|
||||
include_once('../../include/moodle.class.php');
|
||||
require_once('../../include/studiensemester.class.php');
|
||||
require_once('../../include/studiengang.class.php');
|
||||
require_once('../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../include/lehreinheit.class.php');
|
||||
require_once('../../include/moodle24_course.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/moodle'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
$message = '';
|
||||
$stsem = new studiensemester();
|
||||
if (!$stsem_aktuell = $stsem->getakt())
|
||||
$stsem_aktuell = $stsem->getaktorNext();
|
||||
|
||||
$studiensemester_kurzbz=(isset($_REQUEST['moodle_studiensemester'])?trim($_REQUEST['moodle_studiensemester']):$stsem_aktuell);
|
||||
$studiengang_kz=(isset($_REQUEST['moodle_studiengang_kz'])?trim($_REQUEST['moodle_studiengang_kz']):'');
|
||||
$method = (isset($_REQUEST['method'])?trim($_REQUEST['method']):'');
|
||||
|
||||
if($method=='delete')
|
||||
{
|
||||
$moodle_id = isset($_REQUEST['moodle_id'])?$_REQUEST['moodle_id']:'';
|
||||
|
||||
if($moodle_id != '')
|
||||
{
|
||||
// delete
|
||||
$moodle = new moodle();
|
||||
$moodle->load($moodle_id);
|
||||
$error = false;
|
||||
|
||||
if(isset($_GET['all']))
|
||||
{
|
||||
// mittels webservice moodlekurs
|
||||
$moodle24 = new moodle24_course();
|
||||
if($moodle24->deleteKurs($moodle->mdl_course_id))
|
||||
$message = "Erfolgreich gelöscht";
|
||||
else
|
||||
{
|
||||
$message = $moodle24->errormsg;
|
||||
$error = true;
|
||||
}
|
||||
}
|
||||
// wenn webservice aufgerufen wurde und kein fehler beim löschen aufgetreten ist
|
||||
if($error == false)
|
||||
{
|
||||
// Zuordnung löschen
|
||||
if($moodle->deleteZuordnung($moodle->mdl_course_id))
|
||||
$message= "Erfolgreich gelöscht";
|
||||
else
|
||||
$message ="Fehler beim Löschen aufgetreten";
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
$message = 'Ungültige Moodle ID übergeben';
|
||||
}
|
||||
|
||||
echo '<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||
<link rel="stylesheet" href="../../skin/tablesort.css" type="text/css"/>
|
||||
<link rel="stylesheet" href="../../skin/jquery.css" type="text/css"/>
|
||||
<link rel="stylesheet" href="../../skin/fhcomplete.css" type="text/css">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
<script type="text/javascript" src="../../include/js/jquery.js"></script>
|
||||
<title>Moodle - Kursverwaltung</title>
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
<script type="text/javascript">
|
||||
|
||||
$(document).ready(function()
|
||||
{
|
||||
$("#myTable").tablesorter(
|
||||
{
|
||||
sortList: [[3,0]],
|
||||
widgets: ["zebra"]
|
||||
});
|
||||
}
|
||||
);
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body>';
|
||||
|
||||
echo' <h2>Moodle - Kursverwaltung</h2>
|
||||
<form name="moodle_verwaltung" method="POST">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Studiensemester: </td><td><select name="moodle_studiensemester">';
|
||||
|
||||
$stsem->getAll();
|
||||
foreach ($stsem->studiensemester as $row)
|
||||
{
|
||||
echo '<option value="'.$row->studiensemester_kurzbz.'" '.(("$studiensemester_kurzbz"=="$row->studiensemester_kurzbz")?' selected="selected" ':'').'> '.$row->studiensemester_kurzbz.' </option>';
|
||||
}
|
||||
echo '</select></td>';
|
||||
|
||||
echo ' <td>Studiengang: </td><td><select name="moodle_studiengang_kz"><';
|
||||
$stg = new studiengang();
|
||||
$stg->getAll('typ, kurzbz',true);
|
||||
|
||||
foreach ($stg->result as $row)
|
||||
{
|
||||
if (!$row->moodle)
|
||||
continue;
|
||||
|
||||
echo'<option value="'.$row->studiengang_kz.'" '.(("$studiengang_kz"=="$row->studiengang_kz")?' selected="selected" ':'').'> '.$row->kuerzel.' ('.$row->kurzbzlang.') </option>';
|
||||
}
|
||||
echo '</select></td>
|
||||
<td><input type="submit" value="anzeigen" name="mdl_anzeigen"></td>
|
||||
</tr></table></form>'.$message.'<hr>';
|
||||
|
||||
// Liste anzeigen nachdem der Anzeigenbutton gedrückt wurde oder nach löschen die Liste wieder neu anzeigen
|
||||
if(isset($_REQUEST ['mdl_anzeigen']) || $method!='')
|
||||
{
|
||||
$moodle = new moodle();
|
||||
$moodle->getAllMoodleForStudiengang($studiengang_kz, $studiensemester_kurzbz);
|
||||
|
||||
echo '
|
||||
<table id="myTable" class="tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Lehrveranstaltung</th>
|
||||
<th>Lehreinheit
|
||||
<th>Kurzbz</th>
|
||||
<th>Moodle ID</th>
|
||||
<th>Semester</th>
|
||||
<th>Version</th>
|
||||
<th>1)</th>
|
||||
<th>2)</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>';
|
||||
|
||||
foreach($moodle->result as $row)
|
||||
{
|
||||
$lv = new lehrveranstaltung($row->lehrveranstaltung_id);
|
||||
$lehreinheit = '';
|
||||
// wenn LE übergeben lade dazugehörige LV
|
||||
if($row->lehreinheit_id != '')
|
||||
{
|
||||
$le = new lehreinheit();
|
||||
$le->loadLE($row->lehreinheit_id);
|
||||
$lv->load($le->lehrveranstaltung_id);
|
||||
|
||||
// alle LEs von Moodlekurs holen
|
||||
$moodle_help = new moodle();
|
||||
$help = $moodle_help->getLeFromCourse($row->mdl_course_id);
|
||||
$count = 0;
|
||||
foreach($help as $h)
|
||||
{
|
||||
$count++;
|
||||
$lehreinheit .=$h;
|
||||
if($count!=count($help))
|
||||
$lehreinheit .=', ';
|
||||
}
|
||||
}
|
||||
|
||||
echo '
|
||||
<tr>
|
||||
<td>'.$lv->bezeichnung.'</td>
|
||||
<td>'.$lehreinheit.'</td>
|
||||
<td>'.$lv->kurzbz.'</td>
|
||||
<td>'.$row->mdl_course_id.'</td>
|
||||
<td>'.$lv->semester.'</td>
|
||||
<td>'.$row->moodle_version.'</td>
|
||||
<td><a href="'.$_SERVER['PHP_SELF'].'?method=delete&moodle_id='.$row->moodle_id.'&moodle_studiensemester='.$studiensemester_kurzbz.'&moodle_studiengang_kz='.$studiengang_kz.'"><img src="../../skin/images/delete.gif" title="Löscht aus Zwischentabelle"></a></td>
|
||||
<td><a href="'.$_SERVER['PHP_SELF'].'?method=delete&all&moodle_id='.$row->moodle_id.'&moodle_studiensemester='.$studiensemester_kurzbz.'&moodle_studiengang_kz='.$studiengang_kz.'"><img src="../../skin/images/cross.png" title="Löscht aus Zwischentabelle und den Moodlekurs"></a></td>
|
||||
</tr>';
|
||||
}
|
||||
echo '</tbody></table>';
|
||||
}
|
||||
|
||||
echo "<span style='font-size:12px;'>1: Löscht Eintrag nur aus Zwischentabelle <br>
|
||||
2: Löscht Eintrag in Zwischentabelle und den Moodlekurs </span>";
|
||||
|
||||
echo "</body></html>"
|
||||
|
||||
?>
|
||||
@@ -1,105 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2013 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
*/
|
||||
/**
|
||||
* Script um eine Person gleichzeitig zu mehreren Moodle Kursen zuzuteilen
|
||||
*/
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/moodle.class.php');
|
||||
require_once('../../include/moodle24_user.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/moodle'))
|
||||
die('Sie haben keine Berechtigung fuer diese Seite');
|
||||
|
||||
|
||||
echo '<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Moodle 2.4 Rollenzuteilung</title>
|
||||
<link rel="stylesheet" href="../../skin/fhcomplete.css" />
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" />
|
||||
</head>
|
||||
<body>
|
||||
<h1>Moodle Rollenzuteilung</h1>
|
||||
<form method="POST" action="'.$_SERVER['PHP_SELF'].'">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Moodle Kurs IDs getrennt mit \',\':</td>
|
||||
<td><input type="text" name="mdl_course_ids" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Rolle</td>
|
||||
<td>
|
||||
<SELECT name="role">
|
||||
<OPTION value="3">Lektor/in</OPTION>
|
||||
<OPTION value="5">Student/in</OPTION>
|
||||
<OPTION value="4">Tutor/in</OPTION>
|
||||
<OPTION value="">----</OPTION>
|
||||
<OPTION value="1">Manager</OPTION>
|
||||
<OPTION value="2">Course Creator</OPTION>
|
||||
<OPTION value="6">Guest</OPTION>
|
||||
<OPTION value="7">User</OPTION>
|
||||
<OPTION value="8">frontpage</OPTION>
|
||||
</SELECT>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>UID</td>
|
||||
<td><input type="text" name="uid" id="uid"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td><input type="submit" value="Zuteilen" name="add" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
';
|
||||
if(isset($_POST['add']))
|
||||
{
|
||||
if(isset($_POST['uid']) && $_POST['uid']!='' &&
|
||||
isset($_POST['role']) && $_POST['role']!='' &&
|
||||
isset($_POST['mdl_course_ids']) && $_POST['mdl_course_ids']!='')
|
||||
{
|
||||
$mdl_course_id_array = explode(',',$_POST['mdl_course_ids']);
|
||||
$uid = $_POST['uid'];
|
||||
$role_id=$_POST['role'];
|
||||
|
||||
$moodle = new moodle24_user();
|
||||
if($moodle->MassEnroll($uid, $mdl_course_id_array, $role_id))
|
||||
{
|
||||
echo 'Zuteilung erfolgreich';
|
||||
}
|
||||
else
|
||||
echo 'Fehler bei der Zuteilung:'.$moodle->errormsg;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Fehler: Bitte füllen Sie alle Felder aus';
|
||||
}
|
||||
}
|
||||
echo '</body>
|
||||
</html>';
|
||||
?>
|
||||
@@ -1,99 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2014 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
*/
|
||||
/**
|
||||
* Script zum manuellen synchronisieren der User in die Moodle Kurse
|
||||
*/
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/moodle.class.php');
|
||||
require_once('../../include/moodle19_course.class.php');
|
||||
require_once('../../include/moodle19_user.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/moodle'))
|
||||
die('Sie haben keine Berechtigung fuer diese Seite');
|
||||
|
||||
|
||||
echo '<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Moodle 1.9 User Sync</title>
|
||||
<link rel="stylesheet" href="../../skin/fhcomplete.css" />
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" />
|
||||
</head>
|
||||
<body>
|
||||
<h1>Moodle 1.9 User Sync</h1>
|
||||
Auf dieser Seite können die Teilnehmer eines Moodle 1.9 Kurses aktualisiert werden.
|
||||
Geben Sie dazu die ID des Moodle Kurses ein.<br><br>
|
||||
|
||||
<form method="POST" action="'.$_SERVER['PHP_SELF'].'">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Moodle Kurs ID:</td>
|
||||
<td><input type="text" size="5" name="mdl_course_id" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td><input type="submit" value="User Zuteilung aktualisieren" name="sync" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
';
|
||||
if(isset($_POST['sync']))
|
||||
{
|
||||
if(isset($_POST['mdl_course_id']) && $_POST['mdl_course_id']!='' && is_numeric($_POST['mdl_course_id']))
|
||||
{
|
||||
$mdl_course_id = $_POST['mdl_course_id'];
|
||||
|
||||
$moodle = new moodle19_user();
|
||||
echo '<br><h2>Übertrage LektorInnen</h2><br>';
|
||||
if($moodle->sync_lektoren($mdl_course_id))
|
||||
{
|
||||
echo $moodle->log;
|
||||
}
|
||||
else
|
||||
echo 'Fehler bei der Zuteilung:'.$moodle->errormsg;
|
||||
|
||||
$moodle = new moodle19_user();
|
||||
echo '<br><h2>Übertrage Studierende</h2><br>';
|
||||
if($moodle->sync_studenten($mdl_course_id))
|
||||
{
|
||||
echo $moodle->log;
|
||||
}
|
||||
else
|
||||
echo 'Fehler bei der Zuteilung:'.$moodle->errormsg;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Fehler: Bitte füllen Sie alle Felder aus';
|
||||
}
|
||||
}
|
||||
echo '</body>
|
||||
</html>';
|
||||
?>
|
||||
@@ -1,112 +0,0 @@
|
||||
<?php
|
||||
/* Copyright (C) 2014 fhcomplete.org
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Andreas Oesterreicher <andreas.oesterreicher@technikum-wien.at> and
|
||||
*/
|
||||
/**
|
||||
* Script zum manuellen synchronisieren der User in die Moodle Kurse
|
||||
*/
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../config/global.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/moodle.class.php');
|
||||
require_once('../../include/moodle24_user.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
$user = get_uid();
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/moodle'))
|
||||
die('Sie haben keine Berechtigung fuer diese Seite');
|
||||
|
||||
|
||||
echo '<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>Moodle 2.4 User Sync</title>
|
||||
<link rel="stylesheet" href="../../skin/fhcomplete.css" />
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" />
|
||||
</head>
|
||||
<body>
|
||||
<h1>Moodle 2.4 User Sync</h1>
|
||||
Auf dieser Seite können die Teilnehmer eines Moodle 2.4 Kurses aktualisiert werden.
|
||||
Geben Sie dazu die ID des Moodle Kurses ein.<br><br>
|
||||
<form method="POST" action="'.$_SERVER['PHP_SELF'].'">
|
||||
<table>
|
||||
<tr>
|
||||
<td>Moodle Kurs ID:</td>
|
||||
<td><input type="text" name="mdl_course_id" size="5" value="" /></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td><input type="submit" value="User Zuteilung aktualisieren" name="sync" /></td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
';
|
||||
if(isset($_POST['sync']))
|
||||
{
|
||||
if(isset($_POST['mdl_course_id']) && $_POST['mdl_course_id']!='' && is_numeric($_POST['mdl_course_id']))
|
||||
{
|
||||
$mdl_course_id = $_POST['mdl_course_id'];
|
||||
|
||||
$moodle = new moodle24_user();
|
||||
echo '<br><h2>Übertrage LektorInnen</h2><br>';
|
||||
if($moodle->sync_lektoren($mdl_course_id))
|
||||
{
|
||||
echo $moodle->log;
|
||||
}
|
||||
else
|
||||
echo 'Fehler bei der Zuteilung:'.$moodle->errormsg;
|
||||
|
||||
if(defined('MOODLE_SYNC_FACHBEREICHSLEITUNG') && MOODLE_SYNC_FACHBEREICHSLEITUNG)
|
||||
{
|
||||
$moodle = new moodle24_user();
|
||||
echo '<br><h2>Übertrage Fachbereichsleitung</h2><br>';
|
||||
if($moodle->sync_fachbereichsleitung($mdl_course_id))
|
||||
{
|
||||
echo $moodle->log;
|
||||
}
|
||||
else
|
||||
echo 'Fehler bei der Zuteilung:'.$moodle->errormsg;
|
||||
}
|
||||
|
||||
$moodle = new moodle24_user();
|
||||
echo '<br><h2>Übertrage Studierende</h2><br>';
|
||||
if($moodle->sync_studenten($mdl_course_id))
|
||||
{
|
||||
echo $moodle->log;
|
||||
echo '<hr>';
|
||||
echo $moodle->errormsg;
|
||||
}
|
||||
else
|
||||
echo 'Fehler bei der Zuteilung:'.$moodle->errormsg;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo 'Fehler: Bitte füllen Sie alle Felder aus';
|
||||
}
|
||||
}
|
||||
echo '</body>
|
||||
</html>';
|
||||
?>
|
||||
@@ -1,711 +0,0 @@
|
||||
<?php
|
||||
//@version $Id: kurs_verwaltung.php 2799 2009-07-16 11:56:39Z simane $
|
||||
/* Copyright (C) 2008 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger < christian.paminger@technikum-wien.at >
|
||||
* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
*/
|
||||
/*
|
||||
* Dieses Programm listet nach Selektinskreterien alle Moodelkurse zu einem Studiengang oder Lehreinheit auf.
|
||||
* Jede MoodleID kann invididuell zu einem Studiengang oder Lehreinheit zugeteilt werden.
|
||||
*/
|
||||
header('Content-Type: text/html;charset=UTF-8');
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/globals.inc.php');
|
||||
require_once('../../include/studiengang.class.php');
|
||||
require_once('../../include/studiensemester.class.php');
|
||||
require_once('../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../include/lehreinheit.class.php');
|
||||
require_once('../../include/lehreinheitgruppe.class.php');
|
||||
require_once('../../include/lehreinheitmitarbeiter.class.php');
|
||||
require_once('../../include/moodle19_course.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/moodle'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
// ***********************************************************************************************
|
||||
// Datenbankverbindungen zu Moodle und Vilesci und Classen
|
||||
// ***********************************************************************************************
|
||||
|
||||
if (!$objMoodle = new moodle19_course())
|
||||
die('Fehler beim Oeffnen der Moodleverbindung');
|
||||
|
||||
if (!$le_obj = new lehreinheit())
|
||||
die('Fehler beim Oeffnen der Lehreinheit');
|
||||
|
||||
if (!$legrp_obj = new lehreinheitgruppe())
|
||||
die('Fehler beim Oeffnen der Lehreinheitgruppe');
|
||||
|
||||
if (!$lv_obj = new lehrveranstaltung())
|
||||
die('Fehler beim Oeffnen der Lehrveranstaltung');
|
||||
|
||||
if (!$stg_obj = new studiengang())
|
||||
die('Fehler beim Oeffnen der Studiengänge');
|
||||
|
||||
if (!$stsem = new studiensemester())
|
||||
die('Fehler beim Oeffnen der Studiensemester');
|
||||
// @$studiensemester_kurzbz Studiensemester xxJJJJ - xx fuer SS Sommer oder WW Winter
|
||||
if (!$stsem_aktuell = $stsem->getakt())
|
||||
$stsem_aktuell = $stsem->getaktorNext();
|
||||
|
||||
// ***********************************************************************************************
|
||||
|
||||
// Variable Initialisieren
|
||||
|
||||
// ***********************************************************************************************
|
||||
|
||||
// AusgabeStream
|
||||
|
||||
$content='';
|
||||
$errormsg=array();
|
||||
|
||||
// @bDebug Anzeige der xml-rfc Daten moegliche Stufen sind 0,1,2,3
|
||||
$bDebug= (isset($_REQUEST['debug']) && !empty($_REQUEST['debug'])?1:0);
|
||||
// @$lehrveranstaltung_id Lehrveranstaltung
|
||||
$studiensemester_kurzbz=(isset($_REQUEST['studiensemester_kurzbz'])?trim($_REQUEST['studiensemester_kurzbz']):$stsem_aktuell);
|
||||
// @$lehreinheit_id Lehreinheit
|
||||
$lehreinheit_id=(isset($_REQUEST['leid'])?trim($_REQUEST['leid']):(isset($_REQUEST['lehreinheit_id'])?trim($_REQUEST['lehreinheit_id']):''));
|
||||
$lehrveranstaltung_id=(isset($_REQUEST['lvid'])?trim($_REQUEST['lvid']):(isset($_REQUEST['lehrveranstaltung_id'])?trim($_REQUEST['lehrveranstaltung_id']):''));
|
||||
// @$studiengang_kz Studiengang
|
||||
$studiengang_kz=(isset($_REQUEST['studiengang_kz'])?trim($_REQUEST['studiengang_kz']):227);
|
||||
// @$semester Semester des Studienganges
|
||||
$semester=(isset($_REQUEST['semester'])?trim($_REQUEST['semester']):1);
|
||||
// @$moodle_id Moodle SubKurs (Unterkat.) ID zu Moodle Kurs ID (mdl_course_id)
|
||||
$moodle_id=(isset($_REQUEST['moodle_id'])?$_REQUEST['moodle_id']:'');
|
||||
// @$mdl_course_id Moodle - ID suche
|
||||
$mdl_course_id=(isset($_REQUEST['mdl_course_id'])?trim($_REQUEST['mdl_course_id']):'');
|
||||
// @bAnzeige der xml-rfc Daten moegliche Stufen sind 0,1,2,3
|
||||
$bAnzeige=(isset($_REQUEST['anzeige'])?trim($_REQUEST['anzeige']):false);
|
||||
|
||||
// @bAnzeige der xml-rfc Daten moegliche Stufen sind 0,1,2,3
|
||||
$lehre=(isset($_REQUEST['lehre'])?true:(!$bAnzeige?true:false));
|
||||
$aktiv=(isset($_REQUEST['aktiv'])?true:(!$bAnzeige?true:false));
|
||||
|
||||
// ***********************************************************************************************
|
||||
// Datenbankabfragen
|
||||
// ***********************************************************************************************
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Check Moodle
|
||||
$mdl_course_stat='';
|
||||
if (!empty($mdl_course_id))
|
||||
{
|
||||
$bAnzeige=true;
|
||||
if(!$objMoodle->getAllMoodleVariant($mdl_course_id,'','','','','',false))
|
||||
{
|
||||
$bAnzeige=false;
|
||||
$errormsg[]='Problem beim Lehre Moodle-Kurs '.addslashes($mdl_course_id).' lesen '.$objMoodle->errormsg;
|
||||
}
|
||||
// Lehre Moodle-Kurs gefunden
|
||||
if(isset($objMoodle->result) && isset($objMoodle->result[0]))
|
||||
{
|
||||
$mdl_course_stat='*';
|
||||
$moodle_id=$objMoodle->result[0]->moodle_id;
|
||||
$lehrveranstaltung_id=$objMoodle->result[0]->moodle_lehrveranstaltung_id;
|
||||
$lehreinheit_id=$objMoodle->result[0]->moodle_lehreinheit_id;
|
||||
$studiensemester_kurzbz=$objMoodle->result[0]->studiensemester_kurzbz;
|
||||
}
|
||||
// suchen Kurs in Moodle direkt - neue Vilesci - Lehre anlage notwendig
|
||||
else
|
||||
{
|
||||
$bAnzeige=false;
|
||||
// Wenn kein Eintrag in der Lehre vorhanden ist pruefen ob ein Moodlekurs vorhanden ist
|
||||
if ($objMoodle->load($mdl_course_id))
|
||||
{
|
||||
$mdl_course_stat='+';
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg[]='Moodle-Kurs wurde nicht gefunden '.addslashes($mdl_course_id).' '.$objMoodle->errormsg;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// @$lehreinheit_id Lehreinheit
|
||||
if ($lehreinheit_id)
|
||||
{
|
||||
if ($le_obj->load($lehreinheit_id))
|
||||
{
|
||||
$lehrveranstaltung_id = $le_obj->lehrveranstaltung_id;
|
||||
$studiensemester_kurzbz = $le_obj->studiensemester_kurzbz;
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
$bAnzeige=false;
|
||||
$errormsg[]='Lehreinheit wurde nicht gefunden '.addslashes($lehreinheit_id).' '.$le_obj->errormsg;
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// @$lehrveranstaltung_id Lehrveranstaltung
|
||||
if ($lehrveranstaltung_id)
|
||||
{
|
||||
if ($lv_obj->load($lehrveranstaltung_id))
|
||||
{
|
||||
$studiengang_kz = $lv_obj->studiengang_kz;
|
||||
$semester = $lv_obj->semester;
|
||||
}
|
||||
else
|
||||
{
|
||||
$bAnzeige=false;
|
||||
$errormsg[]='Lehrveranstaltung wurde nicht gefunden '.addslashes($lehreinheit_id).' '.$lv_obj->errormsg;
|
||||
}
|
||||
}
|
||||
|
||||
// ***********************************************************************************************
|
||||
|
||||
// HTML Auswahlfelder (Teil 1)
|
||||
|
||||
// ***********************************************************************************************
|
||||
#echo "<p> $studiensemester_kurzbz.$studiengang_kz.$lehrveranstaltung_id.$lehreinheit_id.$semester </p>";
|
||||
|
||||
// FormName erzeugen
|
||||
$cFormName='searchMoodleCurse'.$studiensemester_kurzbz.$studiengang_kz.$lehrveranstaltung_id.$lehreinheit_id.$semester;
|
||||
$content.='<h2>Moodle - Kursverwaltung</h2>
|
||||
<form accept-charset="UTF-8" name="'.$cFormName.'" method="POST" target="_self" action="'.$_SERVER['PHP_SELF'].'" >
|
||||
<table class="liste">
|
||||
<tr>
|
||||
<th>Studiensem</th>
|
||||
<th>StgKz</th>
|
||||
<th>Sem</th>
|
||||
<th>Lehrveranstaltung</th>
|
||||
<th>Lehreinheiten</th>
|
||||
<th>Moodlekurs</th>
|
||||
<td> </td>
|
||||
</tr>';
|
||||
//---------------------------------------------------------------------------
|
||||
// Auswahlfelder
|
||||
$content.='<tr>';
|
||||
|
||||
// Studiensemester public.tbl_studiensemester_kurzbz
|
||||
$content.='<td valign="top"><select onchange="document.'.$cFormName.'.lehrveranstaltung_id.value=\'\';document.'.$cFormName.'.lehreinheit_id.value=\'\';document.'.$cFormName.'.mdl_course_id.value=\'\';document.'.$cFormName.'.submit();" name="studiensemester_kurzbz">';
|
||||
$content.='<option value=""> Alle </option>';
|
||||
$stsem->studiensemester=array();
|
||||
if ($stsem->getAll())
|
||||
{
|
||||
foreach ($stsem->studiensemester as $row)
|
||||
{
|
||||
$content.='<option value="'.$row->studiensemester_kurzbz.'" '.(("$studiensemester_kurzbz"=="$row->studiensemester_kurzbz")?' selected="selected" ':'').'> '.$row->studiensemester_kurzbz.' </option>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg[]='Studiensemester wurden nicht gefunden! '.$stsem->errormsg;
|
||||
}
|
||||
$content.='</select></td>';
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Studiengang public.tbl_studiengang_kz
|
||||
$content.='<td valign="top"><select onchange="document.'.$cFormName.'.lehrveranstaltung_id.value=\'\';document.'.$cFormName.'.lehreinheit_id.value=\'\';document.'.$cFormName.'.mdl_course_id.value=\'\';document.'.$cFormName.'.submit();" name="studiengang_kz">';
|
||||
if ($studiengang_kz=='*')
|
||||
{
|
||||
$studiengang_kz='';
|
||||
}
|
||||
$content.='<option value="" '.(empty($studiengang_kz)?' selected="selected" ':'').'> Alle </option>';
|
||||
|
||||
$stsem->result=array();
|
||||
if ($stg_obj->getAll('typ, kurzbz',true))
|
||||
{
|
||||
$max_semester=0;
|
||||
$arrStudiengang='';
|
||||
foreach ($stg_obj->result as $row)
|
||||
{
|
||||
if (empty($studiengang_kz) && !isset($_REQUEST['studiengang_kz']) )
|
||||
{
|
||||
$studiengang_kz=$row->studiengang_kz;
|
||||
$semester=1;
|
||||
}
|
||||
if ($studiengang_kz==$row->studiengang_kz)
|
||||
{
|
||||
$arrStudiengang=$row;
|
||||
$max_semester=$row->max_semester;
|
||||
}
|
||||
$content.='<option value="'.$row->studiengang_kz.'" '.(("$studiengang_kz"=="$row->studiengang_kz")?' selected="selected" ':'').'> '.$row->kuerzel.' ('.$row->kurzbzlang.') </option>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$content.='<option value="" '.(empty($studiengang_kz)?' selected="selected" ':'').'> '.$stg_obj->errormsg.' </option>';
|
||||
$errormsg[]='Studiengänge wurden nicht gefunden! '.$stg_obj->errormsg;
|
||||
}
|
||||
$content.='</select></td>';
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Semster public.tbl_studiengang_kz - max Semester des Selektierten Studiengangs
|
||||
$content.='<td valign="top"><select onchange="document.'.$cFormName.'.lehrveranstaltung_id.value=\'\';document.'.$cFormName.'.lehreinheit_id.value=\'\';document.'.$cFormName.'.mdl_course_id.value=\'\';document.'.$cFormName.'.submit();" name="semester">';
|
||||
$content.='<option value="" '.(empty($semester)?' selected="selected" ':'').'> Alle </option>';
|
||||
if ($studiengang_kz!='')
|
||||
{
|
||||
for($i=0;$i<=$max_semester;$i++)
|
||||
{
|
||||
$content.='<option value="'.($i).'" '.(("$semester"=="$i")?' selected="selected" ':'').'> '.($i).' </option>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for($i=0;$i<=9;$i++)
|
||||
{
|
||||
$content.='<option value="'.($i).'" '.(("$semester"=="$i")?' selected="selected" ':'').'> '.($i).' </option>';
|
||||
}
|
||||
}
|
||||
$content.='</select></td>';
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Lehrveranstaltungen
|
||||
$content.='<td valign="top"><select onchange="document.'.$cFormName.'.lehreinheit_id.value=\'\';document.'.$cFormName.'.mdl_course_id.value=\'\';document.'.$cFormName.'.submit();" name="lehrveranstaltung_id">';
|
||||
$content.='<option value="" '.(empty($lehrveranstaltung_id)?' selected="selected" ':'').'> Alle </option>';
|
||||
$lv_obj->lehrveranstaltungen=array();
|
||||
if (!empty($studiengang_kz))
|
||||
{
|
||||
if ($lv_obj->load_lva_le($studiengang_kz, $studiensemester_kurzbz, $semester,null,null,null,'bezeichnung'))
|
||||
{
|
||||
foreach ($lv_obj->lehrveranstaltungen as $row)
|
||||
{
|
||||
$content.='<option value="'.$row->lehrveranstaltung_id.'" '.(("$lehrveranstaltung_id"=="$row->lehrveranstaltung_id")?' selected="selected" ':'').'> '.CutString($row->bezeichnung, 21).' '.$row->lehrform_kurzbz.' '.$row->lehrveranstaltung_id.'</option>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$content.='<option value="" '.(empty($studiengang_kz)?' selected="selected" ':'').'> '.$stg_obj->errormsg.' </option>';
|
||||
$errormsg[]='Lehrveranstaltungen wurden nicht gefunden! '.$lv_obj->errormsg;
|
||||
}
|
||||
}
|
||||
$content.='</select><br />
|
||||
nur in Lehre <input title="nur mit Verplanter Lehreinheiten" type="Checkbox" value="1" name="lehre" '.($lehre?' checked="checked" ':'').' />
|
||||
nur aktive <input type="Checkbox" value="1" name="aktiv" '.($aktiv?' checked="checked" ':'').' />
|
||||
</td>';
|
||||
//---------------------------------------------------------------------------
|
||||
// Lehreinheit
|
||||
$content.='<td valign="top"><select onchange="document.'.$cFormName.'.mdl_course_id.value=\'\';document.'.$cFormName.'.submit();" name="lehreinheit_id">';
|
||||
$content.='<option value="" '.(empty($lehreinheit_id)?' selected="selected" ':'').'> Alle </option>';
|
||||
$le_obj->lehreinheiten=array();
|
||||
if (!empty($lehrveranstaltung_id))
|
||||
{
|
||||
$le_obj->load_lehreinheiten($lehrveranstaltung_id, $studiensemester_kurzbz);
|
||||
foreach ($le_obj->lehreinheiten as $row)
|
||||
{
|
||||
//Gruppen laden
|
||||
$gruppen = '';
|
||||
if (!$legrp_obj = new lehreinheitgruppe())
|
||||
die('Fehler beim Oeffnen der Lehreinheitgruppe');
|
||||
if ($legrp_obj->getLehreinheitgruppe($row->lehreinheit_id))
|
||||
{
|
||||
foreach ($legrp_obj->lehreinheitgruppe as $grp)
|
||||
{
|
||||
if($grp->gruppe_kurzbz=='')
|
||||
$gruppen.=' '.$grp->semester.$grp->verband.$grp->gruppe;
|
||||
else
|
||||
$gruppen.=' '.$grp->gruppe_kurzbz;
|
||||
}
|
||||
}
|
||||
$content.='<option value="'.$row->lehreinheit_id.'" '.($lehreinheit_id==$row->lehreinheit_id?' selected="selected" ':'').'> '.$row->lehrform_kurzbz.' '.$gruppen.($bDebug?' (Le ID '.$row->lehreinheit_id.')':'').'</option>';
|
||||
}
|
||||
}
|
||||
$content.='</select></td>';
|
||||
//---------------------------------------------------------------------------
|
||||
// ---- Moodle mdl_course_id
|
||||
$content.='<td valign="top"><b>oder</b> KursID <input size="4" maxlength="8" name="mdl_course_id" value="'.$mdl_course_id.'">'.$mdl_course_stat;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// ---- Submitknopf
|
||||
$content.='
|
||||
<td valign="top">
|
||||
<input style="padding: 2px 20px 2px 20px;" name="anzeigen" type="submit" value="anzeigen">
|
||||
<input style="display:none" type="text" name="anzeige" value="anzeige" />
|
||||
<input style="display:none" type="text" name="debug" value="'.$bDebug.'" />
|
||||
</td>
|
||||
</tr></table>
|
||||
</form>';
|
||||
|
||||
$content.='<hr>';
|
||||
|
||||
// ***********************************************************************************************
|
||||
// HTML Listenanzeige (Teil 2) Detailkursdaten
|
||||
// ***********************************************************************************************
|
||||
if ($bAnzeige)
|
||||
{
|
||||
// Moodle ID eingabe wurde bereits am Anfang gelesen
|
||||
if (!$mdl_course_id)
|
||||
{
|
||||
if ($lehreinheit_id)
|
||||
$lehrveranstaltung_id='';
|
||||
#echo "<hr> $mdl_course_id,$studiengang_kz,$lehreinheit_id,$lehrveranstaltung_id,$studiensemester_kurzbz,$semester <hr>";
|
||||
if(!$objMoodle->getAllMoodleVariant($mdl_course_id,$lehrveranstaltung_id,$studiensemester_kurzbz,$lehreinheit_id,$studiengang_kz,$semester,false,$lehre,$aktiv))
|
||||
$errormsg[]=$objMoodle->errormsg;
|
||||
}
|
||||
// Aufbau der Moodlekurs - Tabelle
|
||||
|
||||
if (is_array($objMoodle->result) && count($objMoodle->result)>0)
|
||||
$content.=writeMoodlekursHTML($objMoodle->result,$bDebug,$errormsg);
|
||||
}
|
||||
|
||||
// ***********************************************************************************************
|
||||
// HTML Header und Foot zum Content (Ausgabestring) hinzufuegen, und Anzeigen
|
||||
// ***********************************************************************************************
|
||||
|
||||
$content='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Moodle - Kurszuteilungverwalten</title>
|
||||
<base target="main">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
</head>
|
||||
<body>
|
||||
<!-- MoodleKurs Content Start -->
|
||||
'.$content.'
|
||||
<!-- MoodleKurs Content Ende -->
|
||||
<iframe style="height:300px;width: 100%;padding: 0px 0px 0px 0px;margin: 0px 0px 0px 0px;border: 0px;" id="zuteilung_warten" src="zuteilung_warten.php'.($mdl_course_stat=='+'?'?mdl_course_id='.$mdl_course_id:'').'" name="zuteilung_warten" frameborder="0">
|
||||
No iFrames
|
||||
</iframe>
|
||||
<p class="error">'.implode('<br>',$errormsg).'</p>
|
||||
</body>
|
||||
</html>';
|
||||
exit($content);
|
||||
|
||||
// ***********************************************************************************************
|
||||
// erzeugen HTML Output der Moodlekursdaten
|
||||
// ***********************************************************************************************
|
||||
function writeMoodlekursHTML($arrMoodlekurs,$bDebug,&$errormsg)
|
||||
{
|
||||
|
||||
$content='';
|
||||
if (!is_array($arrMoodlekurs) || count($arrMoodlekurs)<1)
|
||||
return $content;
|
||||
|
||||
if (!$objMoodle = new moodle19_course())
|
||||
die('Fehler beim Oeffnen der Moodleverbindung');
|
||||
|
||||
if (!$le_obj = new lehreinheit())
|
||||
die('Fehler beim Oeffnen der Lehreinheit');
|
||||
|
||||
if (!$legrp_obj = new lehreinheitgruppe())
|
||||
die('Fehler beim Oeffnen der Lehreinheitgruppe');
|
||||
|
||||
if (!$lv_obj = new lehrveranstaltung())
|
||||
die('Fehler beim Oeffnen der Lehrveranstaltung');
|
||||
|
||||
if (!$stg_obj = new studiengang())
|
||||
die('Fehler beim Oeffnen der Studiengänge');
|
||||
|
||||
if (!$stsem = new studiensemester())
|
||||
die('Fehler beim Oeffnen der Studiensemester');
|
||||
|
||||
#$content.=count($objMoodle->result).'<hr>';
|
||||
// Header Top mit Anzahl der gelisteten Kurse
|
||||
$content.='<div style="height:300px;overflow:auto;">';
|
||||
$content.='<table class="liste">';
|
||||
|
||||
// Header Teil Information der Funktion
|
||||
// Headerinformation der Tabellenfelder
|
||||
$content.='<tr class="liste" align="center">';
|
||||
|
||||
$content.='<th colspan="2"> StSem </th>';
|
||||
$content.='<th colspan="2"> Studiengang </th>';
|
||||
$content.='<th> Sem </th>';
|
||||
$content.='<th colspan="2"> Lehrveranstaltung </th>';
|
||||
$content.='<th colspan="2"> Lehreinheit </th>';
|
||||
$content.='<th colspan="2"> Moodle Kurs </th>';
|
||||
$content.='<td colspan="2"> bearbeiten </td>';
|
||||
$content.='</tr>';
|
||||
|
||||
// Alle Moodlekurse in einer Schleife anzeigen.
|
||||
for($i=0;$i<count($arrMoodlekurs);$i++)
|
||||
{
|
||||
|
||||
$cFormName='workMoodleCurseDetail'.$i;
|
||||
|
||||
|
||||
|
||||
// ZeilenCSS (gerade/ungerade) zur besseren Ansicht
|
||||
if ($i%2)
|
||||
$showCSS=' class="liste0" style="text-align: left;border: 1px outset #F7F7F7;padding: 1px 2px 1px 2px; background:#FEFFEC" ';
|
||||
else
|
||||
$showCSS=' class="liste1" style="text-align: left;border: 1px outset #F7F7F7;padding: 1px 2px 1px 2px; background:#FCFCFC" ';
|
||||
|
||||
// Listenzeile
|
||||
$content.='<tr '.$showCSS.' align="center">';
|
||||
$content.='<td align="left">';
|
||||
$content.='<table><tr>';
|
||||
$content.= '<td align="left" id="detail'.$i.'_on" onclick="this.className=\'ausblenden\';document.getElementById(\'detail'.$i.'_off\').className=\'einblenden\';document.getElementById(\'detail'.$i.'\').className=\'einblenden\';"><img height="15" src="../../skin/images/bullet_arrow_right.png" border="0" title="Detailansicht" alt="bullet_arrow_down.png" /> </td>';
|
||||
$content.= '<td align="left" id="detail'.$i.'_off" onclick="this.className=\'ausblenden\';document.getElementById(\'detail'.$i.'_on\').className=\'einblenden\';document.getElementById(\'detail'.$i.'\').className=\'ausblenden\';" class="ausblenden"><img height="15" src="../../skin/images/bullet_arrow_down.png" border="0" title="Detailansicht" alt="bullet_arrow_down.png" /> </td>';
|
||||
$content.='</tr></table>';
|
||||
$content.='</td>';
|
||||
|
||||
$content.='<td '.$showCSS.'>'.$arrMoodlekurs[$i]->studiensemester_kurzbz.'</td>';
|
||||
if (!$stg_obj->load($arrMoodlekurs[$i]->lehrveranstaltung_studiengang_kz))
|
||||
{
|
||||
$stg_obj->kuerzel='';
|
||||
$stg_obj->bezeichnung='Fehler Studiengang ';
|
||||
$stg_obj->kurzbzlang=$stg_obj->errormsg;
|
||||
$stg_obj->studiengang_kz=$arrMoodlekurs[$i]->lehrveranstaltung_studiengang_kz;
|
||||
}
|
||||
|
||||
$content.='<td '.$showCSS.'>'.$stg_obj->kurzbzlang.' </td>';
|
||||
$content.='<td '.$showCSS.'>'.$stg_obj->bezeichnung.($bDebug?' '.$stg_obj->studiengang_kz:'').' </td>';
|
||||
$content.='<td '.$showCSS.'>'.$arrMoodlekurs[$i]->lehrveranstaltung_semester.' </td>';
|
||||
|
||||
// Lehrveranstaltung
|
||||
if ($arrMoodlekurs[$i]->moodle_lehrveranstaltung_id)
|
||||
{
|
||||
$lvID=$arrMoodlekurs[$i]->moodle_lehrveranstaltung_id;
|
||||
$kurzbz='<b>'.$arrMoodlekurs[$i]->lehrveranstaltung_kurzbz.'</b>, '.$arrMoodlekurs[$i]->lehrveranstaltung_bezeichnung.($arrMoodlekurs[$i]->lehrveranstaltung_lehrform_kurzbz?', '.$arrMoodlekurs[$i]->lehrveranstaltung_lehrform_kurzbz:'');
|
||||
}
|
||||
else
|
||||
{
|
||||
$lvID='*'.$arrMoodlekurs[$i]->lehrveranstaltung_id;
|
||||
$kurzbz='<b>zur Lehreinheit - '.$arrMoodlekurs[$i]->lehrveranstaltung_kurzbz.'</b>, '.$arrMoodlekurs[$i]->lehrveranstaltung_bezeichnung.($arrMoodlekurs[$i]->lehrveranstaltung_lehrform_kurzbz?', '.$arrMoodlekurs[$i]->lehrveranstaltung_lehrform_kurzbz:'');;
|
||||
}
|
||||
$content.='<td colspan="2" title="'.(isset($arrMoodlekurs[$i]->lehrveranstaltung_bezeichnung)?$arrMoodlekurs[$i]->lehrveranstaltung_bezeichnung.' Kurzbz:'.$arrMoodlekurs[$i]->lehrveranstaltung_kurzbz.' LV Kurzbz:'.$arrMoodlekurs[$i]->lehrveranstaltung_lehrform_kurzbz.' ID:'.$arrMoodlekurs[$i]->lehrveranstaltung_id:'').'" '.$showCSS.'>';
|
||||
$content.=$kurzbz. ($bDebug?' '.$lvID:'').' </td>';
|
||||
|
||||
// Lehreinheit
|
||||
$leID=$arrMoodlekurs[$i]->lehreinheit_id;
|
||||
if ($arrMoodlekurs[$i]->moodle_lehreinheit_id)
|
||||
{
|
||||
if ( $le_obj->loadLE($arrMoodlekurs[$i]->moodle_lehreinheit_id))
|
||||
{
|
||||
//Gruppen laden
|
||||
$gruppen = $le_obj->lehrform_kurzbz.' ';
|
||||
if (!$legrp_obj = new lehreinheitgruppe())
|
||||
die('Fehler beim Oeffnen der Lehreinheitgruppe');
|
||||
#var_dump($le_obj);
|
||||
$legrp_obj->getLehreinheitgruppe($arrMoodlekurs[$i]->lehreinheit_id);
|
||||
foreach ($legrp_obj->lehreinheitgruppe as $grp)
|
||||
{
|
||||
if($grp->gruppe_kurzbz=='')
|
||||
$gruppen.=' '.$grp->semester.$grp->verband.$grp->gruppe;
|
||||
else
|
||||
$gruppen.=' '.$grp->gruppe_kurzbz;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$gruppen='Fehler Lehreinheit '.$legrp_obj->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$leID='-';
|
||||
$gruppen='zur kpl.LV';
|
||||
}
|
||||
$content.='<td '.$showCSS.'>'.$gruppen.' </td>';
|
||||
$content.='<td '.$showCSS.'>'.($bDebug?$leID:'').' </td>';
|
||||
|
||||
// Moodle
|
||||
if (empty($arrMoodlekurs[$i]->mdl_shortname))
|
||||
$arrMoodlekurs[$i]->mdl_shortname=$arrMoodlekurs[$i]->mdl_fullname;
|
||||
$content.='<td onclick="document.'.$cFormName.'.submit();" '.$showCSS.'>'.$arrMoodlekurs[$i]->mdl_shortname.' </td>';
|
||||
$content.='<td onclick="document.'.$cFormName.'.submit();" '.$showCSS.'>'.$arrMoodlekurs[$i]->mdl_course_id.' </td>';
|
||||
// Bearbeitung Submit
|
||||
|
||||
$cFormNameDel=$cFormName.'del';
|
||||
|
||||
if ($arrMoodlekurs[$i]->mdl_course_id)
|
||||
{
|
||||
$content.= '<td valign="top" title="Ändert den Kurs in der Lehre und auch den Moodle Kurs. Entfernt den Kurs aus der Lehre." style="cursor: pointer;" onclick="document.'.$cFormName.'.submit();">';
|
||||
$content.='<form style="display: inline;border:0px;" name="'.$cFormName.'" method="POST" target="zuteilung_warten" action="zuteilung_warten.php">';
|
||||
$content.= '<input style="display:none" type="text" name="lehrveranstaltung_id" value="'.$arrMoodlekurs[$i]->moodle_lehrveranstaltung_id.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="lehreinheit_id" value="'.$arrMoodlekurs[$i]->moodle_lehreinheit_id.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="mdl_course_id" value="'.$arrMoodlekurs[$i]->mdl_course_id.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="studiensemester_kurzbz" value="'.$arrMoodlekurs[$i]->studiensemester_kurzbz.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="wartung" value="wartung" />';
|
||||
$content.= '<input style="display:none" type="text" name="debug" value="'.$bDebug.'" />';
|
||||
$content.= '<img height="15" src="../../skin/images/edit.png" border="0" title="MoodleKurs aendern" alt="edit.png" />';
|
||||
$content.= '<input onclick="this.checked=false;" onblur="this.checked=false;" type="checkbox" value="" style="'.(!stristr($_SERVER['HTTP_USER_AGENT'],'OPERA') && !stristr($_SERVER['HTTP_USER_AGENT'],'Safari')?'display:none;':'').'font-size: 4px;border:0px solid transparent;text-decoration:none; background-color: transparent;" name="check_va_detail_kal'.$i.'" />';
|
||||
$content.= 'ändern';
|
||||
$content.='</form>';
|
||||
$content.= '</td>';
|
||||
|
||||
$content.= '<td valign="top" title="Entfernt den Kurs aus der Lehre. Der Moodle Kurs bleibt bestehen." style="cursor: pointer;" onclick="if (!window.confirm(\'Löschen Moodlekurs '.$arrMoodlekurs[$i]->mdl_course_id.', '.$arrMoodlekurs[$i]->lehrveranstaltung_bezeichnung.' ? \')) {return false;}; document.'.$cFormNameDel.'.submit();">';
|
||||
$content.='<form style="display: inline;border:0px;" name="'.$cFormNameDel.'" method="POST" target="zuteilung_warten" action="zuteilung_warten.php">';
|
||||
$content.= '<input style="display:none" type="text" name="mdl_course_id" value="'.$arrMoodlekurs[$i]->moodle_mdl_course_id.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="lehrveranstaltung_id" value="'.$arrMoodlekurs[$i]->moodle_lehrveranstaltung_id.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="lehreinheit_id" value="'.$arrMoodlekurs[$i]->moodle_lehreinheit_id.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="studiensemester_kurzbz" value="'.$arrMoodlekurs[$i]->studiensemester_kurzbz.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="entfernen" value="entfernen" />';
|
||||
$content.= '<input style="display:none" type="text" name="debug" value="'.$bDebug.'" />';
|
||||
$content.= '<img height="15" src="../../skin/images/table_row_delete.png" border="0" title="MoodleKurs entfernen" alt="table_row_delete.png" />';
|
||||
$content.= '<input onclick="this.checked=false;" onblur="this.checked=false;" type="checkbox" value="" style="'.(!stristr($_SERVER['HTTP_USER_AGENT'],'OPERA') && !stristr($_SERVER['HTTP_USER_AGENT'],'Safari')?'display:none;':'').'font-size: 4px;border:0px solid transparent;text-decoration:none; background-color: transparent;" name="check_va_detail_kal'.$i.'" />';
|
||||
$content.= 'entfernen<br /> aus Lehre';
|
||||
$content.='</form>';
|
||||
$content.= '</td>';
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
$content.= '<td valign="top" title="Entfernt den Kurs aus der Lehre." style="cursor: pointer;" onclick="if (!window.confirm(\'Löschen Moodlekurs '.$arrMoodlekurs[$i]->mdl_course_id.', '.$arrMoodlekurs[$i]->lehrveranstaltung_bezeichnung.' ? \')) {return false;}; document.'.$cFormNameDel.'.submit();">';
|
||||
$content.='<form style="display: inline;border:0px;" name="'.$cFormNameDel.'" method="POST" target="zuteilung_warten" action="zuteilung_warten.php">';
|
||||
$content.= '<input style="display:none" type="text" name="mdl_course_id" value="'.$arrMoodlekurs[$i]->moodle_mdl_course_id.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="lehrveranstaltung_id" value="'.$arrMoodlekurs[$i]->moodle_lehrveranstaltung_id.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="lehreinheit_id" value="'.$arrMoodlekurs[$i]->moodle_lehreinheit_id.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="studiensemester_kurzbz" value="'.$arrMoodlekurs[$i]->studiensemester_kurzbz.'" />';
|
||||
$content.= '<input style="display:none" type="text" name="entfernen" value="entfernen" />';
|
||||
$content.= '<input style="display:none" type="text" name="debug" value="'.$bDebug.'" />';
|
||||
$content.= '<img height="15" src="../../skin/images/table_row_delete.png" border="0" title="MoodleKurs entfernen" alt="table_row_delete.png" />';
|
||||
$content.= '<input onclick="this.checked=false;" onblur="this.checked=false;" type="checkbox" value="" style="'.(!stristr($_SERVER['HTTP_USER_AGENT'],'OPERA') && !stristr($_SERVER['HTTP_USER_AGENT'],'Safari')?'display:none;':'').'font-size: 4px;border:0px solid transparent;text-decoration:none; background-color: transparent;" name="check_va_detail_kal'.$i.'" />';
|
||||
$content.= 'entfernen';
|
||||
$content.='</form>';
|
||||
$content.= '</td>';
|
||||
}
|
||||
$content.='</tr>';
|
||||
|
||||
$content.='<tr>
|
||||
<td '.$showCSS.' colspan="19">
|
||||
<table id="detail'.$i.'" class="ausblenden" >
|
||||
<tr><td> </td></tr>';
|
||||
|
||||
$content.='<tr>
|
||||
<th colspan="3" class="topbar" colspan="2">Detailanzeige Moodelkurs '.$arrMoodlekurs[$i]->mdl_course_id.($arrMoodlekurs[$i]->moodle_lehrveranstaltung_id?' - zur Lehrveranstaltung':' - zur Lehreinheit'). '</th>
|
||||
</tr>';
|
||||
// Moodle
|
||||
$content.='<tr>';
|
||||
$content.='<td></td><th> Moodle Kurs </th><td>'.$arrMoodlekurs[$i]->mdl_fullname.'<br /> '. $arrMoodlekurs[$i]->mdl_shortname.', </td>';
|
||||
$content.='</tr>';
|
||||
|
||||
$content.='<tr>
|
||||
<td colspan="3"><hr /></td>
|
||||
</tr>';
|
||||
|
||||
$content.='<tr>';
|
||||
$content.='<td> </td><th> Studiensemester </th>';
|
||||
$content.='<td>'.$arrMoodlekurs[$i]->studiensemester_kurzbz.'</td>';
|
||||
$content.='</tr>';
|
||||
|
||||
$content.='<tr>';
|
||||
$content.='<td> </td><th> Studiengang </th>';
|
||||
$content.='<td>'.$stg_obj->kuerzel.' '.$stg_obj->bezeichnung.' ('.$stg_obj->kurzbzlang.'), '.$stg_obj->studiengang_kz.' </td>';
|
||||
$content.='</tr>';
|
||||
|
||||
$content.='<tr>';
|
||||
$content.='<td></td><th> Semester </th>';
|
||||
$content.='<td>'.$arrMoodlekurs[$i]->lehrveranstaltung_semester.' </td>';
|
||||
$content.='</tr>';
|
||||
|
||||
$content.='<tr>';
|
||||
$content.='<td></td><th> Lehrveranstaltung </th>';
|
||||
$content.='<td>'.(isset($arrMoodlekurs[$i]->lehrveranstaltung_bezeichnung)?$arrMoodlekurs[$i]->lehrveranstaltung_bezeichnung.' Kurzbz: '.$arrMoodlekurs[$i]->lehrveranstaltung_kurzbz.' , Lehrform Kurzbz:'.($arrMoodlekurs[$i]->lehrveranstaltung_lehrform_kurzbz?$arrMoodlekurs[$i]->lehrveranstaltung_lehrform_kurzbz:' - '):'').', ID '.$arrMoodlekurs[$i]->lehrveranstaltung_id.' </td>';
|
||||
$content.='</tr>';
|
||||
|
||||
$content.='<tr>';
|
||||
$content.='<td></td><th valign="top"> Lehreinheit </th>';
|
||||
|
||||
if ($arrMoodlekurs[$i]->moodle_lehrveranstaltung_id)
|
||||
{
|
||||
$content.='<td valign="top">';
|
||||
$le_obj->lehreinheiten=array(); // Init
|
||||
$le_obj->load_lehreinheiten($arrMoodlekurs[$i]->lehrveranstaltung_id, $arrMoodlekurs[$i]->studiensemester_kurzbz);
|
||||
foreach ($le_obj->lehreinheiten as $row)
|
||||
{
|
||||
//Gruppen laden
|
||||
$gruppen = '';
|
||||
if (!$legrp_obj = new lehreinheitgruppe())
|
||||
die('Fehler beim Oeffnen der Lehreinheitgruppe');
|
||||
if ($legrp_obj->getLehreinheitgruppe($row->lehreinheit_id))
|
||||
{
|
||||
foreach ($legrp_obj->lehreinheitgruppe as $grp)
|
||||
{
|
||||
if($grp->gruppe_kurzbz=='')
|
||||
$gruppen.=' '.$grp->semester.$grp->verband.$grp->gruppe;
|
||||
else
|
||||
$gruppen.=' '.$grp->gruppe_kurzbz;
|
||||
}
|
||||
}
|
||||
|
||||
//Lektoren laden
|
||||
$lektoren='';
|
||||
$lehreinheitmitarbeiter = new lehreinheitmitarbeiter();
|
||||
$lehreinheitmitarbeiter->getLehreinheitmitarbeiter($row->lehreinheit_id);
|
||||
foreach ($lehreinheitmitarbeiter->lehreinheitmitarbeiter as $ma)
|
||||
{
|
||||
$lektoren.= ($lektoren?',':'').' '.$ma->mitarbeiter_uid;
|
||||
}
|
||||
|
||||
$content.=$row->lehrform_kurzbz.' '.$gruppen.' ID '.$row->lehreinheit_id.' '.$lektoren;
|
||||
$content.='<br />';
|
||||
}
|
||||
$content.='</td>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$content.='<td>'.$gruppen.', '.($arrMoodlekurs[$i]->lehreinheit_id?$arrMoodlekurs[$i]->lehreinheit_id:'').'</td>';
|
||||
}
|
||||
|
||||
$content.='</tr>';
|
||||
$content.='<tr><td> </td></tr>';
|
||||
// Bearbeitung Submit
|
||||
$content.='<tr>';
|
||||
if ($arrMoodlekurs[$i]->mdl_course_id)
|
||||
{
|
||||
# $cFormName='workMoodleCurseDetail'.$i;
|
||||
$content.= '<th colspan="3" style="cursor: pointer;" onclick="document.'.$cFormName.'.submit();">';
|
||||
$content.= '<img height="15" src="../../skin/images/edit.png" border="0" title="MoodleKurs entfernen" alt="edit.png" />';
|
||||
$content.= '<input onclick="this.checked=false;" onblur="this.checked=false;" type="checkbox" value="" style="'.(!stristr($_SERVER['HTTP_USER_AGENT'],'OPERA') && !stristr($_SERVER['HTTP_USER_AGENT'],'Safari')?'display:none;':'').'font-size: 4px;border:0px solid transparent;text-decoration:none; background-color: transparent;" name="check_va_detail_kal'.$i.'" />';
|
||||
$content.= 'ändern';
|
||||
$content.= '</th>';
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
$content.= '<td> </td>';
|
||||
}
|
||||
$content.= '</tr>';
|
||||
$content.='</table></td></tr>';
|
||||
|
||||
} // Ende Moodlekurse in einer Schleife anzeigen.
|
||||
$content.= '</table>';
|
||||
$content.='</div>';
|
||||
return $content;
|
||||
}
|
||||
|
||||
|
||||
// ***********************************************************************************************
|
||||
|
||||
// String auf Laenge abschneiden
|
||||
|
||||
// ***********************************************************************************************
|
||||
|
||||
function CutString($strVal, $limit)
|
||||
{
|
||||
if(strlen($strVal) > $limit+3)
|
||||
{
|
||||
return substr($strVal, 0, $limit) . "...";
|
||||
}
|
||||
else
|
||||
{
|
||||
return $strVal;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
?>
|
||||
@@ -1,779 +0,0 @@
|
||||
<?php
|
||||
//@version $Id: kurs_verwaltung.php 2799 2009-07-16 11:56:39Z simane $
|
||||
/* Copyright (C) 2008 Technikum-Wien
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of the
|
||||
* License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Authors: Christian Paminger < christian.paminger@technikum-wien.at >
|
||||
* Andreas Oesterreicher < andreas.oesterreicher@technikum-wien.at >
|
||||
* Rudolf Hangl < rudolf.hangl@technikum-wien.at >
|
||||
* Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at >
|
||||
*/
|
||||
/*
|
||||
* Dieses Programm listet nach Selektinskreterien alle Moodelkurse zu einem Studiengang oder Lehreinheit auf.
|
||||
* Jede MoodleID kann invididuell zu einem Studiengang oder Lehreinheit zugeteilt werden.
|
||||
*/
|
||||
header('Content-Type: text/html;charset=UTF-8');
|
||||
// Ohne einer Moodlekurs ID hier beenden
|
||||
$mdl_course_id=(isset($_REQUEST['mdl_course_id'])?trim($_REQUEST['mdl_course_id']):'');
|
||||
$entfernen=(isset($_REQUEST['entfernen'])?trim($_REQUEST['entfernen']):'');
|
||||
if (empty($mdl_course_id) && !$entfernen)
|
||||
exit();
|
||||
|
||||
require_once('../../config/vilesci.config.inc.php');
|
||||
require_once('../../include/functions.inc.php');
|
||||
require_once('../../include/globals.inc.php');
|
||||
require_once('../../include/studiengang.class.php');
|
||||
require_once('../../include/studiensemester.class.php');
|
||||
require_once('../../include/lehrveranstaltung.class.php');
|
||||
require_once('../../include/lehreinheit.class.php');
|
||||
require_once('../../include/lehreinheitgruppe.class.php');
|
||||
require_once('../../include/lehreinheitmitarbeiter.class.php');
|
||||
require_once('../../include/moodle19_course.class.php');
|
||||
require_once('../../include/benutzerberechtigung.class.php');
|
||||
|
||||
if (!$db = new basis_db())
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
|
||||
$user = get_uid();
|
||||
|
||||
$rechte = new benutzerberechtigung();
|
||||
$rechte->getBerechtigungen($user);
|
||||
|
||||
if(!$rechte->isBerechtigt('basis/moodle'))
|
||||
die('Sie haben keine Berechtigung für diese Seite');
|
||||
|
||||
// ***********************************************************************************************
|
||||
// Datenbankverbindungen zu Moodle und Vilesci und Classen
|
||||
// ***********************************************************************************************
|
||||
if (!$objMoodle = new moodle19_course())
|
||||
die('Fehler beim Oeffnen der Moodleverbindung');
|
||||
|
||||
$entfernen=(isset($_REQUEST['entfernen'])?trim($_REQUEST['entfernen']):'');
|
||||
if (!empty($entfernen))
|
||||
{
|
||||
$lehrveranstaltung_id=(isset($_REQUEST['lehrveranstaltung_id']) && !empty($_REQUEST['lehrveranstaltung_id'])?trim($_REQUEST['lehrveranstaltung_id']):null);
|
||||
$lehreinheit_id=(isset($_REQUEST['lehreinheit_id']) && !empty($_REQUEST['lehreinheit_id'])?$_REQUEST['lehreinheit_id']:null);
|
||||
if(!$objMoodle->delete_vilesci($mdl_course_id,$lehrveranstaltung_id,$lehreinheit_id))
|
||||
{
|
||||
exit('Eintrag wurde in Lehre nicht gelöscht! '.$objMoodle->errormsg);
|
||||
}
|
||||
exit('Eintrag in Lehre gelöscht! '.$objMoodle->errormsg);
|
||||
}
|
||||
|
||||
|
||||
if (!$le_obj = new lehreinheit())
|
||||
die('Fehler beim Oeffnen der Lehreinheit');
|
||||
|
||||
if (!$legrp_obj = new lehreinheitgruppe())
|
||||
die('Fehler beim Oeffnen der Lehreinheitgruppe');
|
||||
|
||||
if (!$lv_obj = new lehrveranstaltung())
|
||||
die('Fehler beim Oeffnen der Lehrveranstaltung');
|
||||
|
||||
if (!$stg_obj = new studiengang())
|
||||
die('Fehler beim Oeffnen der Studiengänge');
|
||||
|
||||
if (!$stsem = new studiensemester())
|
||||
die('Fehler beim Oeffnen der Studiensemester');
|
||||
|
||||
|
||||
// @$studiensemester_kurzbz Studiensemester xxJJJJ - xx fuer SS Sommer oder WW Winter
|
||||
if (!$stsem_aktuell = $stsem->getakt())
|
||||
$stsem_aktuell = $stsem->getaktorNext();
|
||||
|
||||
|
||||
|
||||
// ***********************************************************************************************
|
||||
|
||||
// Variable Initialisieren
|
||||
|
||||
// ***********************************************************************************************
|
||||
#var_dump($_REQUEST);
|
||||
|
||||
// AusgabeStream
|
||||
|
||||
$content='';
|
||||
$errormsg=array();
|
||||
|
||||
// ***********************************************************************************************
|
||||
// POST oder GET Parameter einlesen
|
||||
// ***********************************************************************************************
|
||||
// @$mdl_course_id Moodle - ID suche
|
||||
$mdl_course_id=(isset($_REQUEST['mdl_course_id'])?trim($_REQUEST['mdl_course_id']):'');
|
||||
$studSem = (isset($_REQUEST['studiensemester_kurzbz'])?$_REQUEST['studiensemester_kurzbz']:'');
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Pruefen vor dem Datenlesen ob die Verarbeitung bereits erfolgen muss
|
||||
$bNeuAufbau=(isset($_REQUEST['aendern'])?trim($_REQUEST['aendern']):false);
|
||||
if ($mdl_course_id && $bNeuAufbau)
|
||||
{
|
||||
$bWartung=(isset($_REQUEST['aenderung'])?trim($_REQUEST['aenderung']):false);
|
||||
$bKopieren=(isset($_REQUEST['kopieren'])?trim($_REQUEST['kopieren']):false);
|
||||
if ($bWartung || $bKopieren)
|
||||
moodlekurswartung($mdl_course_id,$errormsg );
|
||||
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Check Moodle
|
||||
$mdl_course_stat='';
|
||||
|
||||
if(!$objMoodle->getAllMoodleVariant($mdl_course_id,'',$studSem,'','','',false,false,false))
|
||||
{
|
||||
die('Moodle-Kurs '.$objMoodle->mdl_course_id.' wurde in Lehre nicht gefunden! '.$objMoodle->errormsg);
|
||||
}
|
||||
// es wurden Vilescidaten gefunden
|
||||
if(isset($objMoodle->result) && isset($objMoodle->result[0]))
|
||||
{
|
||||
$new=false;
|
||||
$mdl_course_stat='*';
|
||||
$moodle_id=$objMoodle->result[0]->moodle_id;
|
||||
$studiengang_kz=$objMoodle->result[0]->lehrveranstaltung_studiengang_kz;
|
||||
$studiensemester_kurzbz=$objMoodle->result[0]->studiensemester_kurzbz;
|
||||
$semester=$objMoodle->result[0]->lehrveranstaltung_semester;
|
||||
#moodle_lehrveranstaltung_id
|
||||
|
||||
$lehrveranstaltung_id=$objMoodle->result[0]->lehrveranstaltung_id;
|
||||
$lehreinheit_id=$objMoodle->result[0]->lehreinheit_id;
|
||||
$gruppen=$objMoodle->result[0]->gruppen;
|
||||
$bezeichnung=$objMoodle->result[0]->mdl_fullname;
|
||||
$kurzbezeichnung=$objMoodle->result[0]->mdl_shortname;
|
||||
$lehrveranstaltung_id_moodle=$objMoodle->result[0]->moodle_lehrveranstaltung_id;
|
||||
}
|
||||
// es wurden Moodledaten gefunden
|
||||
else if ($objMoodle->load($mdl_course_id))
|
||||
{
|
||||
$objMoodle->result=array();
|
||||
$objMoodle->result[0]= new stdClass();
|
||||
$objMoodle->result[0]->fullname=$objMoodle->mdl_fullname;
|
||||
$objMoodle->result[0]->shortname=$objMoodle->mdl_shortname;
|
||||
|
||||
$new=true;
|
||||
$mdl_course_stat='+';
|
||||
$errormsg[]='Neuzuteilung zu Moodlekurs '.$objMoodle->mdl_course_id.' möglich';
|
||||
$moodle_id='?';
|
||||
$studiengang_kz=227;
|
||||
$studiensemester_kurzbz=$stsem_aktuell;
|
||||
$semester=1;
|
||||
$lehrveranstaltung_id='';
|
||||
$lehreinheit_id='';
|
||||
$gruppen=false;
|
||||
$bezeichnung=$objMoodle->result[0]->fullname;
|
||||
$kurzbezeichnung=$objMoodle->result[0]->shortname;
|
||||
$lehrveranstaltung_id_moodle=false;
|
||||
}
|
||||
else
|
||||
{
|
||||
die('Moodle-Kurs '.$objMoodle->mdl_course_id.' wurde nicht gefunden! '.$objMoodle->errormsg);
|
||||
}
|
||||
|
||||
|
||||
// ***********************************************************************************************
|
||||
// Restliche POST oder GET Parameter der Dateneingabe einlesen
|
||||
// ***********************************************************************************************
|
||||
// @bDebug Anzeige der xml-rfc Daten moegliche Stufen sind 0,1,2,3
|
||||
$bDebug= (isset($_REQUEST['debug'])?$_REQUEST['debug']:0);
|
||||
|
||||
$aendern_studiensemester_kurzbz=(isset($_REQUEST['aendern_studiensemester_kurzbz'])?trim($_REQUEST['aendern_studiensemester_kurzbz']):$studiensemester_kurzbz);
|
||||
$aendern_studiengang_kz=(isset($_REQUEST['aendern_studiengang_kz'])?trim($_REQUEST['aendern_studiengang_kz']):$studiengang_kz);
|
||||
$aendern_semester=(isset($_REQUEST['aendern_semester'])?trim($_REQUEST['aendern_semester']):$semester);
|
||||
|
||||
$sel_lehrveranstaltung_id=(isset($_REQUEST['sel_lehrveranstaltung_id'])?trim($_REQUEST['sel_lehrveranstaltung_id']):$lehrveranstaltung_id);
|
||||
$aendern_lehrveranstaltung_id=(isset($_REQUEST['aendern_lehrveranstaltung_id']) && !empty($_REQUEST['aendern_lehrveranstaltung_id'])?trim($_REQUEST['aendern_lehrveranstaltung_id']):$sel_lehrveranstaltung_id);
|
||||
|
||||
$aendern_lehreinheit_id=(isset($_REQUEST['aendern_lehreinheit_id'])?$_REQUEST['aendern_lehreinheit_id']:(isset($_REQUEST['aendern_studiensemester_kurzbz'])?'':$lehreinheit_id));
|
||||
|
||||
|
||||
$aendern_bezeichnung=(isset($_REQUEST['aendern_bezeichnung'])?trim($_REQUEST['aendern_bezeichnung']):$bezeichnung);
|
||||
$aendern_kurzbezeichnung=(isset($_REQUEST['aendern_kurzbezeichnung'])?trim($_REQUEST['aendern_kurzbezeichnung']):$kurzbezeichnung);
|
||||
$aendern_gruppen=(isset($_REQUEST['aendern_gruppen']) && !empty($_REQUEST['aendern_gruppen'])?true:(isset($_REQUEST['aendern_gruppen'])?1:$gruppen));
|
||||
|
||||
// ***********************************************************************************************
|
||||
// HTML Auswahlfelder (Teil 1)
|
||||
// ***********************************************************************************************
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Fuer bestehende Vilescidaten wird eine Detailinformation angezeigt
|
||||
if (!$new )
|
||||
{
|
||||
// Header
|
||||
$content.='<h2>Moodle Kurs '.$objMoodle->result[0]->mdl_course_id.($aendern_lehrveranstaltung_id?' zur Lehrveranstaltung ':' zu Lehreinheiten ').' - '.$objMoodle->result[0]->mdl_fullname .' - '.$objMoodle->result[0]->mdl_shortname.'</h2>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$content.='<h2>Moodle Kurs Neuzuteilung '.$mdl_course_id.' - '.$objMoodle->result[0]->fullname.' - '.$objMoodle->result[0]->shortname.'</h2>';
|
||||
}
|
||||
// ***********************************************************************************************
|
||||
// HTML Listenanzeige (Teil 2) Aenderungsdaten
|
||||
// ***********************************************************************************************
|
||||
// FormName erzeugen
|
||||
$cFormName='workMoodleCurse'.$mdl_course_id;
|
||||
$content.='
|
||||
<form accept-charset="UTF-8" name="'.$cFormName.'" method="POST" target="_self" action="'.$_SERVER['PHP_SELF'].'" >
|
||||
<table class="liste">
|
||||
<tr><td> </td></tr>
|
||||
<tr>
|
||||
<td> Studiensemester </td>
|
||||
<td> Studiengang </td>
|
||||
<td> Semster </td>
|
||||
<td> </td>
|
||||
</tr>
|
||||
<tr>';
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Studiensemester public.tbl_studiensemester_kurzbz
|
||||
$content.='<td valign="top"><select onchange="document.'.$cFormName.'.aendern_bezeichnung.value=\'\';document.'.$cFormName.'.aendern_lehrveranstaltung_id.checked=false;uncheckLE();generateLEText();document.'.$cFormName.'.submit();" name="aendern_studiensemester_kurzbz">';
|
||||
if ($stsem->getAll())
|
||||
{
|
||||
foreach ($stsem->studiensemester as $row)
|
||||
{
|
||||
$content.='<option value="'.$row->studiensemester_kurzbz.'" '.(("$aendern_studiensemester_kurzbz"=="$row->studiensemester_kurzbz")?' selected="selected" ':'').'> '.$row->studiensemester_kurzbz.' </option>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg[]='Studiensemester wurden nicht gefunden! '.$stsem->errormsg;
|
||||
}
|
||||
$content.='</select></td>';
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Studiengang public.tbl_studiengang_kz
|
||||
$content.='<td valign="top"><select onchange="document.'.$cFormName.'.aendern_bezeichnung.value=\'\';document.'.$cFormName.'.aendern_lehrveranstaltung_id.checked=false;uncheckLE();generateLEText();document.'.$cFormName.'.submit();" name="aendern_studiengang_kz">';
|
||||
$aendern_studiengang_name='';
|
||||
if ($stg_obj->getAll('typ, kurzbz',true))
|
||||
{
|
||||
$max_semester=0;
|
||||
$arrStudiengang='';
|
||||
foreach ($stg_obj->result as $row)
|
||||
{
|
||||
if (empty($aendern_studiengang_kz) )
|
||||
{
|
||||
$aendern_studiengang_kz=$row->studiengang_kz;
|
||||
$aendern_semester=1;
|
||||
}
|
||||
|
||||
if ($aendern_studiengang_kz==$row->studiengang_kz)
|
||||
{
|
||||
$aendern_studiengang_name=$row->kuerzel;
|
||||
$arrStudiengang=$row;
|
||||
$max_semester=$row->max_semester;
|
||||
}
|
||||
$content.='<option title="'.$row->kuerzel.'" value="'.$row->studiengang_kz.'" '.(("$aendern_studiengang_kz"=="$row->studiengang_kz")?' selected="selected" ':'').'> '.$row->kuerzel.' </option>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$content.='<option value="" > '.$stg_obj->errormsg.' </option>';
|
||||
$errormsg[]='Studiengang wurde nicht gefunden! '.$stg_obj->errormsg;
|
||||
}
|
||||
$content.='</select></td>';
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Semster public.tbl_studiengang_kz - max Semester des Selektierten Studiengangs
|
||||
$content.='<td valign="top"><select onchange="document.'.$cFormName.'.aendern_bezeichnung.value=\'\';document.'.$cFormName.'.aendern_lehrveranstaltung_id.checked=false;uncheckLE();generateLEText();document.'.$cFormName.'.submit();" name="aendern_semester">';
|
||||
if ($aendern_studiengang_kz!='')
|
||||
{
|
||||
for($i=0;$i<=$max_semester;$i++)
|
||||
{
|
||||
$content.='<option value="'.($i).'" '.("$aendern_semester"=="$i"?' selected="selected" ':'').'> '.($i).' </option>';
|
||||
}
|
||||
}
|
||||
$content.='</select></td>';
|
||||
$content.='<td valign="top">';
|
||||
|
||||
$content.='<table><tr>';
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Lehrveranstaltungen
|
||||
$content.='<th valign="top"> Lehrveranstaltung </th>';
|
||||
$content.='<td><select onchange="document.'.$cFormName.'.aendern_bezeichnung.value=\'\';document.'.$cFormName.'.aendern_lehrveranstaltung_id.value=this.value;document.'.$cFormName.'.aendern_lehrveranstaltung_id.checked=false;uncheckLE();generateLEText();document.'.$cFormName.'.submit();" name="sel_lehrveranstaltung_id">';
|
||||
$lv_bez='';
|
||||
$lv_kurz_bez='';
|
||||
$lv_obj->lehrveranstaltungen=array();
|
||||
if ($lv_obj->load_lva_le($aendern_studiengang_kz,$aendern_studiensemester_kurzbz, $aendern_semester,null,null,null,'bezeichnung'))
|
||||
{
|
||||
foreach ($lv_obj->lehrveranstaltungen as $row)
|
||||
{
|
||||
|
||||
if (empty($sel_lehrveranstaltung_id))
|
||||
$sel_lehrveranstaltung_id=$row->lehrveranstaltung_id;
|
||||
|
||||
if ("$sel_lehrveranstaltung_id"=="$row->lehrveranstaltung_id")
|
||||
{
|
||||
$lv_kurz_bez=trim($row->kurzbz);
|
||||
if (!$aendern_bezeichnung)
|
||||
$aendern_bezeichnung=$row->bezeichnung;
|
||||
}
|
||||
|
||||
$content.='<option value="'.$row->lehrveranstaltung_id.'" '.("$sel_lehrveranstaltung_id"=="$row->lehrveranstaltung_id"?' selected="selected" ':'').'> '.CutString($row->bezeichnung, 35).' '.($row->kurzbz?CutString($row->kurzbz,7).', ':'').' '.$row->lehrveranstaltung_id.($row->lehrform_kurzbz?CutString(', '.$row->lehrform_kurzbz,5):'').'</option>';
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$content.='<option value="" > '.$stg_obj->errormsg.' </option>';
|
||||
$errormsg[]='Lehrveranstaltung wurde nicht gefunden! '.$lv_obj->errormsg;
|
||||
}
|
||||
$content.='</select></td>';
|
||||
|
||||
$aendern_lehrveranstaltung_id=(isset($_REQUEST['aendern_lehrveranstaltung_id']) && !empty($_REQUEST['aendern_lehrveranstaltung_id'])?trim($_REQUEST['aendern_lehrveranstaltung_id']):$sel_lehrveranstaltung_id);
|
||||
|
||||
$bChecked=((!isset($_REQUEST['aendern_lehrveranstaltung_id']) && isset($objMoodle->result[0]->moodle_lehrveranstaltung_id) && $objMoodle->result[0]->moodle_lehrveranstaltung_id) || (isset($_REQUEST['aendern_lehrveranstaltung_id']) && $aendern_lehrveranstaltung_id)?true:false);
|
||||
|
||||
$content.='<th '.($bChecked?' class="error" ':'').' valign="top" title="'.$lv_kurz_bez.'" valign="top"><input onchange="if(this.checked) {uncheckLE();};generateLEText();" name="aendern_lehrveranstaltung_id" value="'.$aendern_lehrveranstaltung_id.'" type="Checkbox" '.($bChecked?' checked="checked" ':'').'> Moodle Kurs für gesamte LV</th>';
|
||||
$content.='</tr>';
|
||||
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Lehreinheit
|
||||
$content.='<tr>';
|
||||
$content.='<th valign="top"> Lehreinheiten </th>';
|
||||
$content.='<td valign="top"><table>';
|
||||
|
||||
# $content.='<tr><th>Moodlekurs zu LV '.$aendern_studiensemester_kurzbz.'/'.$aendern_lehrveranstaltung_id.' </th></tr>';
|
||||
|
||||
$le_obj->lehreinheiten=array();
|
||||
$le_obj->load_lehreinheiten($sel_lehrveranstaltung_id, $aendern_studiensemester_kurzbz);
|
||||
|
||||
if (!is_array($le_obj->lehreinheiten) || count($le_obj->lehreinheiten)<1)
|
||||
{
|
||||
$content.='<tr>';
|
||||
$content.='<td valign="top" class="error">Achtung ! Es gibt keine Lehreinheit für '.$aendern_studiensemester_kurzbz.'-'.$aendern_bezeichnung.' '.$lv_kurz_bez.'</td>';
|
||||
$content.='</tr>';
|
||||
}
|
||||
else
|
||||
{
|
||||
foreach ($le_obj->lehreinheiten as $row)
|
||||
{
|
||||
//Gruppen laden
|
||||
$gruppen = '';
|
||||
if (!$legrp_obj = new lehreinheitgruppe())
|
||||
die('Fehler beim Oeffnen der Lehreinheitgruppe');
|
||||
|
||||
if ($legrp_obj->getLehreinheitgruppe($row->lehreinheit_id))
|
||||
{
|
||||
foreach ($legrp_obj->lehreinheitgruppe as $grp)
|
||||
{
|
||||
if($grp->gruppe_kurzbz=='')
|
||||
$gruppen.=' '.$grp->semester.$grp->verband.$grp->gruppe;
|
||||
else
|
||||
$gruppen.=' '.$grp->gruppe_kurzbz;
|
||||
}
|
||||
}
|
||||
|
||||
//Lektoren laden
|
||||
$lektoren='';
|
||||
$lehreinheitmitarbeiter = new lehreinheitmitarbeiter();
|
||||
$lehreinheitmitarbeiter->getLehreinheitmitarbeiter($row->lehreinheit_id);
|
||||
foreach ($lehreinheitmitarbeiter->lehreinheitmitarbeiter as $ma)
|
||||
{
|
||||
$lektoren.= ($lektoren?',':'').' '.$ma->mitarbeiter_uid;
|
||||
}
|
||||
|
||||
$le_gefunden=false;
|
||||
# $bChecked=((!isset($_REQUEST['aendern_lehrveranstaltung_id']) && isset($objMoodle->result[0]->moodle_lehrveranstaltung_id) && $objMoodle->result[0]->moodle_lehrveranstaltung_id) || (isset($_REQUEST['aendern_lehrveranstaltung_id']) && $aendern_lehrveranstaltung_id)?false:true);
|
||||
if (isset($_REQUEST['aendern_lehrveranstaltung_id']) && !$aendern_lehrveranstaltung_id && isset($aendern_lehreinheit_id) && is_array($aendern_lehreinheit_id))
|
||||
{
|
||||
reset($aendern_lehreinheit_id);
|
||||
for ($ii=0;$ii<count($aendern_lehreinheit_id);$ii++)
|
||||
{
|
||||
if (isset($aendern_lehreinheit_id[$ii]) && $aendern_lehreinheit_id[$ii]==$row->lehreinheit_id)
|
||||
$le_gefunden=true;
|
||||
}
|
||||
}
|
||||
else if ($new || (isset($_REQUEST['aendern_lehrveranstaltung_id']) && $aendern_lehrveranstaltung_id) )
|
||||
{
|
||||
$le_gefunden=false;
|
||||
}
|
||||
else
|
||||
{
|
||||
reset($objMoodle->result);
|
||||
for ($ii=0;$ii<count($objMoodle->result);$ii++)
|
||||
{
|
||||
if ($objMoodle->result[$ii]->moodle_lehreinheit_id==$row->lehreinheit_id)
|
||||
$le_gefunden=true;
|
||||
}
|
||||
}
|
||||
|
||||
$content.='<tr '.($le_gefunden?' class="error" ':' ').' >';
|
||||
// LE Text
|
||||
$content.='<td>'.$row->lehrform_kurzbz.' </td><td>'.$gruppen.' </td><td>'.$row->lehreinheit_id.' </td>';
|
||||
// LE Checkbox
|
||||
$content.='<td><input '.($le_gefunden?' checked="checked" ':' ').' onchange="if(this.checked) {document.'.$cFormName.'.aendern_lehrveranstaltung_id.checked=false;};generateLEText();" id="aendern_lehreinheit_id[]" name="aendern_lehreinheit_id[]" value="'.$row->lehreinheit_id.'" type="Checkbox"> '.$lektoren.'</td>';
|
||||
$content.='</tr>';
|
||||
}
|
||||
}
|
||||
$bGefundenLehreinheit=(count($le_obj->lehreinheiten)?true:false);
|
||||
|
||||
$content.='<tr><td> </td></tr></table></td>';
|
||||
$content.='</tr>';
|
||||
$content.='</table></td></tr>';
|
||||
//---------------------------------------------------------------------------
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// ---- Submitknopf
|
||||
$content.='<tr><td colspan="4"><table>
|
||||
<tr>
|
||||
|
||||
<th align="left">Moodle :
|
||||
<br />Kursbez.: <input name="aendern_bezeichnung" maxlength="254" size="60" type="Text" value="'. $aendern_bezeichnung.'">
|
||||
<br />Kurzbez.: <input name="aendern_kurzbezeichnung" maxlength="254" size="60" type="Text" value="'. $aendern_kurzbezeichnung.'">
|
||||
</th>
|
||||
<td> </td>
|
||||
<th>Gruppen übernehmen: <input type="checkbox" value="1" name="aendern_gruppen" '.($aendern_gruppen?' checked="checked" ':'').' ><br /></th>
|
||||
<th>
|
||||
<input style="display:none" type="text" name="mdl_course_id" value="'.$mdl_course_id.'">
|
||||
<input style="display:none" type="text" name="aendern" value="aendern" />
|
||||
<input style="display:none" type="text" name="debug" value="'.$bDebug.'" />
|
||||
|
||||
|
||||
<input style="padding: 2px 20px 2px 20px;" name="aenderung" type="submit" value="neu zuteilen">
|
||||
<input style="padding: 2px 20px 2px 20px;" name="kopieren" type="submit" value="hinzufügen">
|
||||
</th>';
|
||||
if (!$new )
|
||||
{
|
||||
// Header
|
||||
$content.='<td><table border="0">';
|
||||
$content.='<tr id="aktuell_on" onclick="this.className=\'ausblenden\';document.getElementById(\'aktuell\').className=\'einblenden\';document.getElementById(\'aktuell_off\').className=\'einblenden\';" class="einblenden"><td><img height="15" src="../../skin/images/bullet_arrow_right.png" border="0" title="Detailansicht" alt="bullet_arrow_down.png" /></td><td><b>anzeigen</b> aktuelle '.($objMoodle->result[0]->moodle_lehrveranstaltung_id?' Lehrveranstaltung ':' Lehreinheiten').'</td></tr>';
|
||||
$content.='<tr id="aktuell_off" onclick="this.className=\'ausblenden\';document.getElementById(\'aktuell\').className=\'ausblenden\';document.getElementById(\'aktuell_on\').className=\'einblenden\';" class="ausblenden"><td><img height="15" src="../../skin/images/bullet_arrow_down.png" border="0" title="Detailansicht" alt="bullet_arrow_down.png" /></td><td><b>ausblenden</b> ktuelle '.($objMoodle->result[0]->moodle_lehrveranstaltung_id?' Lehrveranstaltung ':' Lehreinheiten').'</td></tr>';
|
||||
$content.='</table></td>';
|
||||
}
|
||||
|
||||
$content.='</tr></table></td>';
|
||||
$content.='</tr></table>
|
||||
</form>
|
||||
<hr>';
|
||||
//---------------------------------------------------------------------------
|
||||
// Fuer bestehende Vilescidaten wird eine Detailinformation angezeigt
|
||||
if (!$new )
|
||||
{
|
||||
$content.='<table border="0" id="aktuell" class="ausblenden" >';
|
||||
//---------------------------------------------------------------------------
|
||||
// @studiengang_kz Studiengang
|
||||
if ($studiengang_kz)
|
||||
{
|
||||
if ($stg_obj->load($studiengang_kz))
|
||||
{
|
||||
$content.='<tr>';
|
||||
$content.='<th>Studiengang</th>
|
||||
<td rowspan="5"> </td>
|
||||
<td>
|
||||
<table class="liste" summary="Studiengang">
|
||||
<tr>
|
||||
<td>'.(isset($objMoodle->result[0]) && isset($objMoodle->result[0]->studiensemester_kurzbz)?$objMoodle->result[0]->studiensemester_kurzbz:'').' </td>
|
||||
<td>'.$stg_obj->kuerzel.' </td>
|
||||
<td>'.$stg_obj->bezeichnung.' </td>
|
||||
<td>('.$stg_obj->kurzbzlang.') </td>
|
||||
<td>ID '.$studiengang_kz.' </td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>';
|
||||
$content.='</tr>';
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg[]='Studieng '.$studiengang_kz.' wurden nicht gefunden! '.$stg_obj->errormsg;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$content.='<tr><td>-</td></tr>';
|
||||
}
|
||||
$content.='<tr>';
|
||||
$content.='<th valign="top">Lehrveranstaltung</th>
|
||||
<td valign="top">'.(isset($objMoodle->result[0]) && isset($objMoodle->result[0]->lehrveranstaltung_bezeichnung)?$objMoodle->result[0]->lehrveranstaltung_bezeichnung.' Kurzbz: '.$objMoodle->result[0]->lehrveranstaltung_kurzbz.' , Lehrform Kurzbz:'.($objMoodle->result[0]->lehrveranstaltung_lehrform_kurzbz?$objMoodle->result[0]->lehrveranstaltung_lehrform_kurzbz:' - ').', ID '.$objMoodle->result[0]->lehrveranstaltung_id.' ':' - ').'</td>
|
||||
<td valign="top" '.($objMoodle->result[0]->moodle_lehrveranstaltung_id?' class="error" ':'').'><input disabled name="lehrveranstaltung_id" value="'.$objMoodle->result[0]->lehrveranstaltung_id.'" type="Checkbox" '.($objMoodle->result[0]->moodle_lehrveranstaltung_id?' checked="checked" ':'').'> </td>
|
||||
';
|
||||
$content.='<th valign="top">Lehreinheiten</th>';
|
||||
$content.='<td><table>';
|
||||
|
||||
$le_obj->lehreinheiten=array(); // Init
|
||||
$le_obj->load_lehreinheiten($lehrveranstaltung_id, $studiensemester_kurzbz);
|
||||
foreach ($le_obj->lehreinheiten as $row)
|
||||
{
|
||||
//Gruppen laden
|
||||
$gruppen = '';
|
||||
if (!$legrp_obj = new lehreinheitgruppe())
|
||||
die('Fehler beim Oeffnen der Lehreinheitgruppe');
|
||||
if ($legrp_obj->getLehreinheitgruppe($row->lehreinheit_id))
|
||||
{
|
||||
foreach ($legrp_obj->lehreinheitgruppe as $grp)
|
||||
{
|
||||
if($grp->gruppe_kurzbz=='')
|
||||
$gruppen.=' '.$grp->semester.$grp->verband.$grp->gruppe;
|
||||
else
|
||||
$gruppen.=' '.$grp->gruppe_kurzbz;
|
||||
}
|
||||
|
||||
}
|
||||
//Lektoren laden
|
||||
$lektoren='';
|
||||
$lehreinheitmitarbeiter = new lehreinheitmitarbeiter();
|
||||
$lehreinheitmitarbeiter->getLehreinheitmitarbeiter($row->lehreinheit_id);
|
||||
foreach ($lehreinheitmitarbeiter->lehreinheitmitarbeiter as $ma)
|
||||
{
|
||||
$lektoren.= ($lektoren?',':'').' '.$ma->mitarbeiter_uid;
|
||||
}
|
||||
$le_gefunden=false;
|
||||
reset($objMoodle->result);
|
||||
for ($ii=0;$ii<count($objMoodle->result);$ii++)
|
||||
{
|
||||
if ($objMoodle->result[$ii]->moodle_lehreinheit_id==$row->lehreinheit_id)
|
||||
$le_gefunden=true;
|
||||
}
|
||||
$content.='<tr '.($le_gefunden?' class="error" ':' ').'>';
|
||||
$content.='<td>'.$row->lehrform_kurzbz.' </td><td>'.$gruppen.' </td><td>ID '.$row->lehreinheit_id.' </td>';
|
||||
$content.='<td valign="top"><input '.($le_gefunden?' checked="checked" ':'').' id="lehreinheit_id" disabled name="lehreinheit_id[]" value="'.$row->lehreinheit_id.'" type="Checkbox" > '.$lektoren.'</td>';
|
||||
$content.='</tr>';
|
||||
}
|
||||
$content.='</table></td>';
|
||||
$content.='</tr>';
|
||||
$content.='</table>';
|
||||
}
|
||||
|
||||
// ***********************************************************************************************
|
||||
// HTML Header und Foot zum Content (Ausgabestring) hinzufuegen, und wartung
|
||||
// ***********************************************************************************************
|
||||
$content='<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<title>Moodle - Kurszuteilungverwalten</title>
|
||||
<base target="main">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<link rel="stylesheet" href="../../skin/vilesci.css" type="text/css">
|
||||
|
||||
<script type="text/javascript" language="JavaScript">
|
||||
<!-- Begin
|
||||
function generateLEText()
|
||||
{
|
||||
document.'.$cFormName.'.aendern_kurzbezeichnung.value=document.'.$cFormName.'.aendern_studiensemester_kurzbz.value+"-'.(isset($aendern_studiengang_name)?$aendern_studiengang_name:'???').'-"+document.'.$cFormName.'.aendern_semester.value+"'.($lv_kurz_bez?'-'.$lv_kurz_bez:'').'";
|
||||
if ("'.($bGefundenLehreinheit?'X':'').'"=="" || document.'.$cFormName.'.aendern_lehrveranstaltung_id.checked==true)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var bez="";
|
||||
document.'.$cFormName.'.aendern_kurzbezeichnung.bez;
|
||||
|
||||
var no;
|
||||
var m=document.'.$cFormName.';
|
||||
if (no=m.elements["aendern_lehreinheit_id[]"].length)
|
||||
{
|
||||
for(i=0;i<no;i++)
|
||||
{
|
||||
if (m.elements["aendern_lehreinheit_id[]"][i].checked==true)
|
||||
{
|
||||
if (bez!="")
|
||||
{
|
||||
bez=bez+"/";
|
||||
}
|
||||
bez=bez+m.elements["aendern_lehreinheit_id[]"][i].value;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (bez!="")
|
||||
{
|
||||
document.'.$cFormName.'.aendern_kurzbezeichnung.value=document.'.$cFormName.'.aendern_studiensemester_kurzbz.value+"-'.(isset($aendern_studiengang_name)?$aendern_studiengang_name:'???').'-"+document.'.$cFormName.'.aendern_semester.value+"-"+bez;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function uncheckLE()
|
||||
{
|
||||
'.($bGefundenLehreinheit?'':' return; '). '
|
||||
|
||||
var no;
|
||||
var m=document.'.$cFormName.';
|
||||
if (no=m.elements["aendern_lehreinheit_id[]"].length)
|
||||
{
|
||||
for(i=0;i<no;i++)
|
||||
{
|
||||
m.elements["aendern_lehreinheit_id[]"][i].checked=false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//-->
|
||||
</script>
|
||||
</head>
|
||||
<body class="background_main">
|
||||
<!-- MoodleKurs Content Start -->
|
||||
'.$content.'<p class="error">'.implode('<br>',$errormsg).'</p>
|
||||
<br />
|
||||
</body>
|
||||
</html>';
|
||||
echo $content;
|
||||
exit;
|
||||
|
||||
// ***********************************************************************************************
|
||||
// Submit - Datenverarbeiten
|
||||
// ***********************************************************************************************
|
||||
function moodlekurswartung($mdl_course_id,&$errormsg)
|
||||
{
|
||||
if (!$user=get_uid())
|
||||
{
|
||||
$errormsg[]='Sie sind nicht angemeldet. Es wurde keine Benutzer UID gefunden !';
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!$objMoodle = new moodle19_course())
|
||||
die('Fehler beim Oeffnen der Moodleverbindung');
|
||||
|
||||
if (!$le_obj = new lehreinheit())
|
||||
die('Fehler beim Oeffnen der Lehreinheit');
|
||||
|
||||
if (!$legrp_obj = new lehreinheitgruppe())
|
||||
die('Fehler beim Oeffnen der Lehreinheitgruppe');
|
||||
|
||||
if (!$lv_obj = new lehrveranstaltung())
|
||||
die('Fehler beim Oeffnen der Lehrveranstaltung');
|
||||
|
||||
if (!$stg_obj = new studiengang())
|
||||
die('Fehler beim Oeffnen der Studiengänge');
|
||||
|
||||
if (!$stsem = new studiensemester())
|
||||
die('Fehler beim Oeffnen der Studiensemester');
|
||||
|
||||
// alter Pfad des Moodle Kurses
|
||||
$oldPath = $objMoodle->getPath($mdl_course_id);
|
||||
|
||||
$bWartung=(isset($_REQUEST['aenderung']) && !empty($_REQUEST['aenderung'])?true:false);
|
||||
$bKopieren=(isset($_REQUEST['kopieren']) && !empty($_REQUEST['kopieren'])?true:false);
|
||||
$aendern_studiensemester_kurzbz=(isset($_REQUEST['aendern_studiensemester_kurzbz'])?trim($_REQUEST['aendern_studiensemester_kurzbz']):'');
|
||||
$aendern_studiengang_kz=(isset($_REQUEST['aendern_studiengang_kz'])?trim($_REQUEST['aendern_studiengang_kz']):'');
|
||||
$aendern_semester=(isset($_REQUEST['aendern_semester'])?trim($_REQUEST['aendern_semester']):'');
|
||||
|
||||
$sel_lehrveranstaltung_id=(isset($_REQUEST['sel_lehrveranstaltung_id'])?trim($_REQUEST['sel_lehrveranstaltung_id']):$lehrveranstaltung_id);
|
||||
$aendern_lehrveranstaltung_id=(isset($_REQUEST['aendern_lehrveranstaltung_id']) && !empty($_REQUEST['aendern_lehrveranstaltung_id'])?trim($_REQUEST['aendern_lehrveranstaltung_id']):$sel_lehrveranstaltung_id);
|
||||
|
||||
$aendern_lehreinheit_id=(isset($_REQUEST['aendern_lehreinheit_id'])?$_REQUEST['aendern_lehreinheit_id']:(isset($_REQUEST['aendern_studiensemester_kurzbz'])?'':''));
|
||||
|
||||
$aendern_bezeichnung=(isset($_REQUEST['aendern_bezeichnung'])?trim($_REQUEST['aendern_bezeichnung']):'');
|
||||
$aendern_kurzbezeichnung=(isset($_REQUEST['aendern_kurzbezeichnung'])?trim($_REQUEST['aendern_kurzbezeichnung']):'');
|
||||
$aendern_gruppen=(isset($_REQUEST['aendern_gruppen']) && !empty($_REQUEST['aendern_gruppen'])?true:(isset($_REQUEST['aendern_gruppen'])?1:0));
|
||||
|
||||
|
||||
// Original Moodlekurs lesen
|
||||
if(!$objMoodle->getAllMoodleVariant($mdl_course_id,'','','','','',false,false,false))
|
||||
{
|
||||
die('Moodle-Kurs '.$objMoodle->mdl_course_id.' wurde in Lehre nicht gefunden! '.$objMoodle->errormsg);
|
||||
}
|
||||
// Kurs wurde gefunden
|
||||
if(isset($objMoodle->result) && isset($objMoodle->result[0]))
|
||||
{
|
||||
$new_lehre_moodle_kurs=false;
|
||||
$objMoodle->new=false;
|
||||
}
|
||||
// Es gibt im Moodle den Kurs
|
||||
else if ($objMoodle->load($mdl_course_id) && !$bKopieren)
|
||||
{
|
||||
$new_lehre_moodle_kurs=true;
|
||||
$objMoodle->new=true; // Datensatz anlegen
|
||||
}
|
||||
else
|
||||
{
|
||||
die('Moodle-Kurs '.$mdl_course_id.' wurde nicht gefunden! '.$objMoodle->errormsg);
|
||||
}
|
||||
|
||||
|
||||
if ($bKopieren)
|
||||
{
|
||||
if ($new_lehre_moodle_kurs)
|
||||
{
|
||||
die('nur bestehende Moodle-Kurse können kopiert werden ');
|
||||
}
|
||||
$objMoodle->new=true; // Datensatz anlegen
|
||||
}
|
||||
|
||||
#echo $aendern_lehrveranstaltung_id;
|
||||
#var_dump($aendern_lehreinheit_id);
|
||||
|
||||
// Lehreinheiten
|
||||
if ((!is_array($aendern_lehreinheit_id) && !empty($aendern_lehreinheit_id))
|
||||
|| (is_array($aendern_lehreinheit_id) && count($aendern_lehreinheit_id)>0) )
|
||||
{
|
||||
$objMoodle->lehrveranstaltung_id=null;
|
||||
$objMoodle->lehreinheit_id=$aendern_lehreinheit_id;
|
||||
}
|
||||
// Lehrveranstaltung
|
||||
else if ($aendern_lehrveranstaltung_id)
|
||||
{
|
||||
$objMoodle->lehrveranstaltung_id=$aendern_lehrveranstaltung_id;
|
||||
$objMoodle->lehreinheit_id=null;
|
||||
}
|
||||
else
|
||||
{
|
||||
$errormsg[]='LV oder LE wurde nicht ausgewählt!';
|
||||
return false;
|
||||
}
|
||||
|
||||
$objMoodle->mdl_course_id=$mdl_course_id;
|
||||
|
||||
$objMoodle->studiensemester_kurzbz=$aendern_studiensemester_kurzbz;
|
||||
|
||||
// Kurztext des Moodlekurses neu ermitteln
|
||||
$objMoodle->mdl_fullname=$aendern_bezeichnung;
|
||||
$objMoodle->mdl_shortname=$aendern_kurzbezeichnung;
|
||||
$objMoodle->insertamum=(!$new_lehre_moodle_kurs && isset($objMoodle->result[0]->insertamum)?$objMoodle->result[0]->insertamum:date('Y-m-d H:i:s'));
|
||||
$objMoodle->insertvon=(!$new_lehre_moodle_kurs && isset($objMoodle->result[0]->insertvon)?$objMoodle->result[0]->insertvon:$user);
|
||||
$objMoodle->gruppen=($aendern_gruppen?1:0);
|
||||
|
||||
|
||||
if (!$objMoodle->update_vilesci())
|
||||
{
|
||||
$errormsg[]='Fehler Vilesci Moodle-Kurs '.$mdl_course_id.' '.$objMoodle->result[0]->mdl_fullname.' zugeordnet '.$objMoodle->errormsg;
|
||||
return false;
|
||||
}
|
||||
|
||||
$errormsg[]='Vilesci Moodle-Kurs '.$mdl_course_id.' '.$aendern_bezeichnung.' '.$aendern_kurzbezeichnung.($objMoodle->new?' angelegt ':' geaendert ').$objMoodle->errormsg;
|
||||
if ($bKopieren || $new_lehre_moodle_kurs)
|
||||
return true;
|
||||
|
||||
// Moodle aenderungen nur bei Wechsel der LV
|
||||
|
||||
|
||||
|
||||
if ( (($aendern_lehrveranstaltung_id && isset($objMoodle->result[0]->lehrveranstaltung_id) && $objMoodle->result[0]->lehrveranstaltung_id!=$aendern_lehrveranstaltung_id)
|
||||
|| ( $aendern_bezeichnung!=$objMoodle->result[0]->mdl_fullname || $aendern_kurzbezeichnung!=$objMoodle->result[0]->mdl_shortname )))
|
||||
{
|
||||
if (is_array($objMoodle->lehreinheit_id))
|
||||
$objMoodle->lehreinheit_id=$objMoodle->lehreinheit_id[0];
|
||||
|
||||
if (!$objMoodle->update_moodle($oldPath))
|
||||
{
|
||||
$errormsg[]='Fehler Moodle-Kurs aendern '.$mdl_course_id.' '.$aendern_bezeichnung.' '.$aendern_kurzbezeichnung.' '.$objMoodle->errormsg;
|
||||
return false;
|
||||
}
|
||||
$errormsg[]='Moodle-Kurs '.$mdl_course_id.' geaendert auf '.$aendern_bezeichnung.' '.$aendern_kurzbezeichnung.' '.$objMoodle->errormsg;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
// ***********************************************************************************************
|
||||
// String auf Laenge abschneiden
|
||||
// ***********************************************************************************************
|
||||
function CutString($strVal, $limit)
|
||||
{
|
||||
if(strlen($strVal) > $limit+3)
|
||||
{
|
||||
return substr($strVal, 0, $limit) . "...";
|
||||
}
|
||||
else
|
||||
{
|
||||
return $strVal;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -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 = '
|
||||
|
||||
Reference in New Issue
Block a user