From 4603befefc68d6ce6e9f94f5c094322120091807 Mon Sep 17 00:00:00 2001 From: Andreas Oesterreicher Date: Tue, 18 Jul 2017 17:19:53 +0200 Subject: [PATCH 01/19] Added API calls to get Prestudents according to its status --- .../controllers/api/v1/crm/Prestudent.php | 105 ++++++++++++------ .../api/v1/crm/Prestudentstatus.php | 49 ++++++-- application/models/crm/Prestudent_model.php | 44 ++++---- .../models/crm/Prestudentstatus_model.php | 65 +++++++++-- application/models/person/Person_model.php | 61 ++++++++-- 5 files changed, 235 insertions(+), 89 deletions(-) diff --git a/application/controllers/api/v1/crm/Prestudent.php b/application/controllers/api/v1/crm/Prestudent.php index 6ee24463a..3bc18849b 100644 --- a/application/controllers/api/v1/crm/Prestudent.php +++ b/application/controllers/api/v1/crm/Prestudent.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)) + { + $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; } -} \ No newline at end of file +} diff --git a/application/controllers/api/v1/crm/Prestudentstatus.php b/application/controllers/api/v1/crm/Prestudentstatus.php index 93ad9aeb1..814bf0617 100644 --- a/application/controllers/api/v1/crm/Prestudentstatus.php +++ b/application/controllers/api/v1/crm/Prestudentstatus.php @@ -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(); + } + } + } diff --git a/application/models/crm/Prestudent_model.php b/application/models/crm/Prestudent_model.php index ee21dec11..39ad17da5 100644 --- a/application/models/crm/Prestudent_model.php +++ b/application/models/crm/Prestudent_model.php @@ -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); } -} \ No newline at end of file +} diff --git a/application/models/crm/Prestudentstatus_model.php b/application/models/crm/Prestudentstatus_model.php index 48619645b..beb5eb845 100644 --- a/application/models/crm/Prestudentstatus_model.php +++ b/application/models/crm/Prestudentstatus_model.php @@ -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 ) ); } -} \ No newline at end of file + + /** + * 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); + } +} diff --git a/application/models/person/Person_model.php b/application/models/person/Person_model.php index 5192cc316..8298c0d1e 100644 --- a/application/models/person/Person_model.php +++ b/application/models/person/Person_model.php @@ -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); } -} \ No newline at end of file + + /** + * @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; + } + +} From 88befdee6cfce6c2d4e314d6a24c58990db28661 Mon Sep 17 00:00:00 2001 From: Andreas Oesterreicher Date: Tue, 18 Jul 2017 17:23:06 +0200 Subject: [PATCH 02/19] Added google.php to gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index def2813f7..cf35d4eea 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,4 @@ tests/codeception/tests/unit.suite.yml bin /application/logs/ /sparks/* +/webdav/google.php From b8b5b9525187e7c82df032b93cf1cf5ec52c3493 Mon Sep 17 00:00:00 2001 From: Andreas Oesterreicher Date: Wed, 19 Jul 2017 15:25:17 +0200 Subject: [PATCH 03/19] Added additional parameter checks --- application/controllers/api/v1/crm/Prestudent.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/controllers/api/v1/crm/Prestudent.php b/application/controllers/api/v1/crm/Prestudent.php index 3bc18849b..5d5ff063b 100644 --- a/application/controllers/api/v1/crm/Prestudent.php +++ b/application/controllers/api/v1/crm/Prestudent.php @@ -130,7 +130,7 @@ class Prestudent extends APIv1_Controller $von = $this->get('von'); $bis = $this->get('bis'); - if (isset($status_kurzbz)) + if (isset($status_kurzbz) && isset($von) && isset($bis)) { $result = $this->PersonModel->getPersonFromStatus( $status_kurzbz, From 6957051c3b9ef07215e0873cb31a41751d586c1a Mon Sep 17 00:00:00 2001 From: Andreas Oesterreicher Date: Wed, 19 Jul 2017 15:28:15 +0200 Subject: [PATCH 04/19] =?UTF-8?q?Infoscreen=20umbenannt=20auf=20Informatio?= =?UTF-8?q?nsbildschirm=20da=20es=20sich=20um=20einen=20gesch=C3=BCtzten?= =?UTF-8?q?=20Begriff=20handelt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 3 +++ ...oscreen.php => informationsbildschirm.php} | 24 +++++++++---------- 2 files changed, 15 insertions(+), 12 deletions(-) rename cis/infoterminal/{infoscreen.php => informationsbildschirm.php} (92%) diff --git a/CHANGELOG.md b/CHANGELOG.md index dc04db97e..d359ea3de 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,9 @@ ### CHANGED - **[CORE]** Berechtigungsprüfung wurde angepasst damit deaktiverte Benutzer keine Berechtigungen mehr haben +### Updateinfo +- **[CORE]** Infoscreen wurde umbenannt (informationsbildschirm.php) + ## [3.2] ### Added diff --git a/cis/infoterminal/infoscreen.php b/cis/infoterminal/informationsbildschirm.php similarity index 92% rename from cis/infoterminal/infoscreen.php rename to cis/infoterminal/informationsbildschirm.php index b776510ea..bd3abbe50 100644 --- a/cis/infoterminal/infoscreen.php +++ b/cis/infoterminal/informationsbildschirm.php @@ -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) } - + window.onload=initialize '; $scroll= " - loadAddons(); foreach($addon_obj->result as $addon) { if(file_exists('../../../addons/'.$addon->kurzbz.'/cis/init.js.php')) - echo ''; + { + echo ' + '; + } } // Wenn Seite fertig geladen ist Addons aufrufen echo ' -'; + if(typeof addon !== \'undefined\') + { + for(i in addon) + { + addon[i].init("cis/private/profile/urlaubstool.php", {uid:\''.$uid.'\'}); + } + } + }); + '; ?> + + diff --git a/application/views/organisation/studiensemester.php b/application/views/organisation/studiensemester.php new file mode 100644 index 000000000..3e12df906 --- /dev/null +++ b/application/views/organisation/studiensemester.php @@ -0,0 +1,55 @@ +load->view('templates/header', array('title' => 'StudiensemesterList', 'tablesort' => true, 'tableid' => 't1', 'headers' => '7:{sorter:false}, 8:{sorter:false}', 'sortList' =>'4,1')); +?> + +
+
+

Studiensemester

+ + Neues Studiensemester anlegen + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
KurzbezBezeichnungStartEndeStudienjahrBeschreibungOnlinebewerbung
studiensemester_kurzbz; ?>bezeichnung; ?>start), "d.m.Y"); ?>ende), "d.m.Y"); ?>studienjahr_kurzbz; ?>beschreibung; ?>onlinebewerbung) ? "Ja" : "Nein"; ?> + + Bearbeiten + + + + Löschen + +
+
+
+ + + + + diff --git a/application/views/organisation/studiensemesterEdit.php b/application/views/organisation/studiensemesterEdit.php new file mode 100644 index 000000000..2a8c36902 --- /dev/null +++ b/application/views/organisation/studiensemesterEdit.php @@ -0,0 +1,19 @@ +load->view('templates/header', array('title' => 'StudiensemesterEdit', 'datepicker' => true, 'datepickerclass' => 'dateinput')); +?> + +
+
+
+

Studiensemester bearbeiten: studiensemester_kurzbz; ?>

+
"> + + + + + + + + + diff --git a/application/views/organisation/studiensemesterForm.php b/application/views/organisation/studiensemesterForm.php new file mode 100644 index 000000000..193e3d4d2 --- /dev/null +++ b/application/views/organisation/studiensemesterForm.php @@ -0,0 +1,103 @@ +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 : ""); +?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Bezeichnung:

+
+
+   +
+ Datum start:

+
+
+   +
+ Datum ende:

+
+
+   +
+ Studienjahr:

+ + + + +
+   +
+ Beschreibung:

+ +
+
+   +
+ Onlinebewerbung +
+
+ /> +
+   +
+ + + + + +
+
+
+
\ No newline at end of file diff --git a/application/views/organisation/studiensemesterNew.php b/application/views/organisation/studiensemesterNew.php new file mode 100644 index 000000000..dfda83df9 --- /dev/null +++ b/application/views/organisation/studiensemesterNew.php @@ -0,0 +1,79 @@ +load->view('templates/header', array('title' => 'StudiensemesterNew', 'jqueryComposer' => true, 'datepicker' => true, 'datepickerclass' => 'dateinput')); +?> + + +
+
+
+

Neues Studiensemester anlegen

+
" + id="newSemesterForm"> + + + + + + + + + + + + + + + diff --git a/application/views/templates/header.php b/application/views/templates/header.php index 97d280585..b5bdda896 100644 --- a/application/views/templates/header.php +++ b/application/views/templates/header.php @@ -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"); + ?> @@ -32,6 +45,15 @@ if ($tablesort || $jquery_checkboxes || $jquery_custom) + + + + + + + + + @@ -53,6 +75,19 @@ if ($tablesort || $jquery_checkboxes || $jquery_custom) }); + + + + + diff --git a/composer.json b/composer.json index 6d58e01df..c2fdfe1f7 100755 --- a/composer.json +++ b/composer.json @@ -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", diff --git a/composer.lock b/composer.lock index 02d54eab8..69144179c 100644 --- a/composer.lock +++ b/composer.lock @@ -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": [], diff --git a/include/tw/vilesci_menu_main.inc.php b/include/tw/vilesci_menu_main.inc.php index ba82a46e5..b6c21764a 100755 --- a/include/tw/vilesci_menu_main.inc.php +++ b/include/tw/vilesci_menu_main.inc.php @@ -168,6 +168,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'), From 5d0dcb6e4a79b7980f4cf6ea1e2c53ec27a69945 Mon Sep 17 00:00:00 2001 From: Andreas Oesterreicher Date: Tue, 1 Aug 2017 16:54:43 +0200 Subject: [PATCH 17/19] =?UTF-8?q?Kommentar=20erg=C3=A4nzt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/global.config-default.inc.php | 1 + 1 file changed, 1 insertion(+) diff --git a/config/global.config-default.inc.php b/config/global.config-default.inc.php index ba24752e3..ac130e593 100644 --- a/config/global.config-default.inc.php +++ b/config/global.config-default.inc.php @@ -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 From 42960ffe20a78aae2a85ad1eb010d1b030f5f65a Mon Sep 17 00:00:00 2001 From: Andreas Oesterreicher Date: Wed, 2 Aug 2017 14:05:31 +0200 Subject: [PATCH 18/19] =?UTF-8?q?Moodle-Integration=20aus=20FHComplete=20C?= =?UTF-8?q?ore=20entfernt=20und=20in=20eigenes=20Addon=20ausgelagert.=20Su?= =?UTF-8?q?pport=20f=C3=BCr=20Moodle=201.9=20entfernt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 5 +- application/config/fhcomplete.php | 9 +- .../controllers/api/v1/education/Moodle.php | 76 - application/models/education/Moodle_model.php | 14 - .../benotungstool/lvgesamtnoteverwalten.php | 1633 ++++++------ cis/private/lehre/lesson.php | 1 - cis/private/lehre/moodle2_4_wartung.php | 407 --- cis/private/lehre/moodle_choice.php | 127 - cis/private/lehre/moodle_wartung.php | 476 ---- cis/private/lehre/moodle_wartung_choice.php | 109 - config/cis.config-default.inc.php | 6 - config/global.config-default.inc.php | 9 - config/vilesci.config-default.inc.php | 5 - content/lvplanung/lehrveranstaltungDBDML.php | 27 +- include/lehrveranstaltung.class.php | 36 - include/moodle.class.php | 402 --- include/moodle19_course.class.php | 2205 ----------------- include/moodle19_user.class.php | 788 ------ include/moodle24_course.class.php | 837 ------- include/moodle24_user.class.php | 922 ------- include/tw/cis_menu_lv.inc.php | 158 +- include/tw/vilesci_menu_main.inc.php | 9 - locale/de-AT/benotungstool.php | 4 +- locale/de-AT/lehre.php | 6 - locale/de-AT/moodle.php | 40 - locale/en-US/lehre.php | 6 - locale/en-US/moodle.php | 40 - locale/it-IT/lehre.php | 4 - locale/it-IT/moodle.php | 30 - soap/lehrveranstaltung.soap.php | 10 - soap/lehrveranstaltung.wsdl.php | 12 - system/dbupdate_3.3.php | 2 - system/mlists/mlists_generate.php | 2 +- system/moodlePlugin/fhcompletews/README | 23 - .../moodlePlugin/fhcompletews/db/services.php | 53 - .../moodlePlugin/fhcompletews/externallib.php | 642 ----- .../lang/en/local_fhcompletews.php | 25 - system/moodlePlugin/fhcompletews/version.php | 24 - system/moodlePlugin/fhcompletews25/README | 23 - .../fhcompletews25/db/services.php | 53 - .../fhcompletews25/externallib.php | 371 --- .../lang/en/local_fhcompletews.php | 25 - .../moodlePlugin/fhcompletews25/version.php | 24 - system/moodlePlugin/fhcompletews30/README | 23 - .../fhcompletews30/db/services.php | 53 - .../fhcompletews30/externallib.php | 371 --- .../lang/en/local_fhcompletews.php | 25 - .../moodlePlugin/fhcompletews30/version.php | 25 - system/sync/sync_moodle24_user.php | 199 -- system/sync/sync_moodle_kurse.php | 158 -- system/sync/sync_moodle_user.php | 159 -- .../tests/api/v1/EducationMoodleCept.php | 11 - vilesci/lehre/lv_merge.php | 84 +- vilesci/moodle/account_masscreate24.php | 84 - vilesci/moodle/account_verwaltung.php | 204 -- vilesci/moodle/account_verwaltung24.php | 162 -- vilesci/moodle/kurs_verwaltung.php | 352 --- vilesci/moodle/kurs_verwaltung24.php | 213 -- vilesci/moodle/rollenzuteilung24.php | 105 - vilesci/moodle/user_sync.php | 99 - vilesci/moodle/user_sync24.php | 112 - vilesci/moodle/zuteilung_verwaltung.php | 711 ------ vilesci/moodle/zuteilung_warten.php | 779 ------ vilesci/personen/suche.php | 31 +- 64 files changed, 899 insertions(+), 12741 deletions(-) delete mode 100644 application/controllers/api/v1/education/Moodle.php delete mode 100644 application/models/education/Moodle_model.php delete mode 100644 cis/private/lehre/moodle2_4_wartung.php delete mode 100644 cis/private/lehre/moodle_choice.php delete mode 100644 cis/private/lehre/moodle_wartung.php delete mode 100644 cis/private/lehre/moodle_wartung_choice.php delete mode 100644 include/moodle.class.php delete mode 100644 include/moodle19_course.class.php delete mode 100644 include/moodle19_user.class.php delete mode 100644 include/moodle24_course.class.php delete mode 100644 include/moodle24_user.class.php delete mode 100644 locale/de-AT/moodle.php delete mode 100644 locale/en-US/moodle.php delete mode 100755 locale/it-IT/moodle.php delete mode 100644 system/moodlePlugin/fhcompletews/README delete mode 100644 system/moodlePlugin/fhcompletews/db/services.php delete mode 100644 system/moodlePlugin/fhcompletews/externallib.php delete mode 100644 system/moodlePlugin/fhcompletews/lang/en/local_fhcompletews.php delete mode 100644 system/moodlePlugin/fhcompletews/version.php delete mode 100644 system/moodlePlugin/fhcompletews25/README delete mode 100644 system/moodlePlugin/fhcompletews25/db/services.php delete mode 100644 system/moodlePlugin/fhcompletews25/externallib.php delete mode 100644 system/moodlePlugin/fhcompletews25/lang/en/local_fhcompletews.php delete mode 100644 system/moodlePlugin/fhcompletews25/version.php delete mode 100644 system/moodlePlugin/fhcompletews30/README delete mode 100644 system/moodlePlugin/fhcompletews30/db/services.php delete mode 100644 system/moodlePlugin/fhcompletews30/externallib.php delete mode 100644 system/moodlePlugin/fhcompletews30/lang/en/local_fhcompletews.php delete mode 100644 system/moodlePlugin/fhcompletews30/version.php delete mode 100644 system/sync/sync_moodle24_user.php delete mode 100644 system/sync/sync_moodle_kurse.php delete mode 100644 system/sync/sync_moodle_user.php delete mode 100644 tests/codeception/tests/api/v1/EducationMoodleCept.php delete mode 100644 vilesci/moodle/account_masscreate24.php delete mode 100644 vilesci/moodle/account_verwaltung.php delete mode 100644 vilesci/moodle/account_verwaltung24.php delete mode 100644 vilesci/moodle/kurs_verwaltung.php delete mode 100644 vilesci/moodle/kurs_verwaltung24.php delete mode 100644 vilesci/moodle/rollenzuteilung24.php delete mode 100755 vilesci/moodle/user_sync.php delete mode 100755 vilesci/moodle/user_sync24.php delete mode 100644 vilesci/moodle/zuteilung_verwaltung.php delete mode 100644 vilesci/moodle/zuteilung_warten.php diff --git a/CHANGELOG.md b/CHANGELOG.md index d359ea3de..73a56f5dd 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,12 +11,15 @@ - **[FAS]** Verwaltung von Rechnungsadressen - **[CIS]** Mitarbeiter und Studierende können nach dem Login im CIS zur Passwortänderung umgeleitet werden wenn dieses seit über einem Jahr nicht geändert wurde - **[FAS]** Bei Statuswechsel von Studierenden können Gründe für den Statuswechsel angegeben werden +- **[ADDONS]** Addons können Menüpunkte im Vilesci anpassen +- **[ADDONS]** Addons können Noten für die Gesamtnote vorschlagen ### CHANGED -- **[CORE]** Berechtigungsprüfung wurde angepasst damit deaktiverte Benutzer keine Berechtigungen mehr haben +- **[CORE]** Berechtigungsprüfung wurde angepasst damit deaktivierte Benutzer keine Berechtigungen mehr haben ### Updateinfo - **[CORE]** Infoscreen wurde umbenannt (informationsbildschirm.php) +- **[CORE]** Moodle Schnittstelle wurde aus dem Core entfernt und in ein eigenes Addon verschoben. Moodle Versionen < 2.4 werden nicht mehr unterstützt ## [3.2] diff --git a/application/config/fhcomplete.php b/application/config/fhcomplete.php index f51185a2d..251887d5c 100755 --- a/application/config/fhcomplete.php +++ b/application/config/fhcomplete.php @@ -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'; \ No newline at end of file +$config['addons_aufnahme_url'] = 'http://debian.dev/build/addons/aufnahme/cis/index.php'; diff --git a/application/controllers/api/v1/education/Moodle.php b/application/controllers/api/v1/education/Moodle.php deleted file mode 100644 index c76706534..000000000 --- a/application/controllers/api/v1/education/Moodle.php +++ /dev/null @@ -1,76 +0,0 @@ -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; - } -} \ No newline at end of file diff --git a/application/models/education/Moodle_model.php b/application/models/education/Moodle_model.php deleted file mode 100644 index d28026ef9..000000000 --- a/application/models/education/Moodle_model.php +++ /dev/null @@ -1,14 +0,0 @@ -dbTable = 'lehre.tbl_moodle'; - $this->pk = 'moodle_id'; - } -} diff --git a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php index 83ac2c599..2b62094f1 100644 --- a/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php +++ b/cis/private/lehre/benotungstool/lvgesamtnoteverwalten.php @@ -16,9 +16,9 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * * Authors: Christian Paminger , - * Andreas Oesterreicher and - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > + * Andreas Oesterreicher and + * 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('../../../../config/global.config.inc.php'); @@ -39,18 +39,17 @@ require_once('../../../../include/pruefung.class.php'); require_once('../../../../include/person.class.php'); require_once('../../../../include/benutzer.class.php'); require_once('../../../../include/mitarbeiter.class.php'); -require_once('../../../../include/moodle19_course.class.php'); -require_once('../../../../include/moodle24_course.class.php'); require_once('../../../../include/mail.class.php'); require_once('../../../../include/phrasen.class.php'); require_once('../../../../include/note.class.php'); require_once('../../../../include/notenschluessel.class.php'); require_once('../../../../include/studienplan.class.php'); +require_once('../../../../include/addon.class.php'); -$summe_stud=0; -$summe_t2=0; -$summe_komm=0; -$summe_ng=0; +$summe_stud = 0; +$summe_t2 = 0; +$summe_komm = 0; +$summe_ng = 0; $sprache = getSprache(); $p = new phrasen($sprache); @@ -58,26 +57,24 @@ $p = new phrasen($sprache); if (!$db = new basis_db()) die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung')); -$debg=(isset($_REQUEST['debug'])?$_REQUEST['debug']:''); - $user = get_uid(); -if(!check_lektor($user)) +if (!check_lektor($user)) die($p->t('global/keineBerechtigungFuerDieseSeite')); $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); -if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) //Lehrveranstaltung_id +if (isset($_GET['lvid']) && is_numeric($_GET['lvid'])) //Lehrveranstaltung_id $lvid = $_GET['lvid']; else die($p->t('global/fehlerBeiDerParameteruebergabe')); -if(isset($_GET['lehreinheit_id']) && is_numeric($_GET['lehreinheit_id'])) //Lehreinheit_id +if (isset($_GET['lehreinheit_id']) && is_numeric($_GET['lehreinheit_id'])) //Lehreinheit_id $lehreinheit_id = $_GET['lehreinheit_id']; else $lehreinheit_id = ''; //Laden der Lehrveranstaltung $lv_obj = new lehrveranstaltung(); -if(!$lv_obj->load($lvid)) +if (!$lv_obj->load($lvid)) die($lv_obj->errormsg); //Studiengang laden @@ -85,31 +82,28 @@ $stg_obj = new studiengang($lv_obj->studiengang_kz); $datum_obj = new datum(); -if(isset($_GET['stsem'])) +if (isset($_GET['stsem'])) $stsem = $_GET['stsem']; else $stsem = ''; -if($stsem!='' && !check_stsem($stsem)) +if ($stsem != '' && !check_stsem($stsem)) die($p->t('anwesenheitsliste/studiensemesterIstUngueltig')); $datum_obj = new datum(); -$uebung_id = (isset($_GET['uebung_id'])?$_GET['uebung_id']:''); -$uid = (isset($_GET['uid'])?$_GET['uid']:''); - $noten_obj = new note(); $noten_obj->getAll(); echo ' - - + Gesamtnote - - - + + + + - - -

'.$db->convert_html_chars($lv->bezeichnung).' ('.$db->convert_html_chars($stsem).')

-
+ Kurzbezeichnung:

+
+
+   +
- -'; - -echo '
'; - -if(isset($_POST['neu'])) -{ - if($_POST['bezeichnung']=='') - { - echo ''.$p->t('benotungstool/bezeichnungMussEingegebenWerden').'
'; - } - 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 '
'.$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 ''.$p->t('moodle/esMussMindestensEineLehreinheitMarkiertSein').'
'; - } - } - 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 ''.$p->t('moodle/datenWurdenAktualisiert').'
'; - else - echo ''.$p->t('global/fehlerBeimAktualisierenDerDaten').''; - } - else - { - echo ''.$p->t('moodle/esWurdeKeineGueltigeIdUebergeben').''; - } -} - -//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.'
'; - //Teststudenten zuweisen - if(!$mdl_user->createTestStudentenZuordnung($id)) - $errormsg.=$p->t('moodle/fehlerBeiDerStudentenZuordnung').':'.$mdl_user->errormsg.'
'; - - if($errormsg!='') - echo $errormsg; - else - echo ''.$p->t('moodle/testkursWurdeErfolgreichAngelegt').'
'; - } - } - else - { - echo ''.$p->t('moodle/esExistiertBereitsEinTestkurs').'
'; - } -} - -$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 ''.$p->t('moodle/moodleKursAnlegen').':

-
- einen Moodle Kurs für die gesamte LV anlegen
- einen Moodle Kurs für einzelne Lehreinheiten anlegen - '; - - $le = new lehreinheit(); - $le->load_lehreinheiten($lv->lehrveranstaltung_id, $stsem); - echo ''; - - $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 '
'.$p->t('moodle/kursbezeichnung').': '; - echo '
'.$p->t('moodle/gruppenUebernehmen').': '; - echo '

-
'; -} -echo '
'; -echo ''.$p->t('moodle/vorhandeneMoodleKurse').''; -if(!$moodle->getAll($lvid, $stsem)) - echo $moodle->errormsg; -echo ''; -foreach ($moodle->result as $course) -{ - - switch($course->moodle_version) - { - case '2.4': - $mdlcourse = new moodle24_course(); - $mdlcourse->load($course->mdl_course_id); - echo ''; - echo ''; -// echo ""; - break; - case '1.9': - $moodlecourse = new moodle19_course(); - $moodlecourse->load($course->mdl_course_id); - echo ''; - echo ''; -// echo ""; - echo ''; - break; - default: - echo ''; - break; - } -} -echo '
'.$mdlcourse->mdl_fullname.'
gruppen?'checked':'').">Gruppen übernehmen
'.$moodlecourse->mdl_fullname.' (v1.9)
gruppen?'checked':'').">Gruppen übernehmen
Moodle v'.$course->moodle_version.' - '.$course->mdl_course_id.'
'; -echo '
'; - -echo '


'; -echo ''.$p->t('moodle/testkurse').'

'; -$mdlcourse = new moodle24_course(); -if($mdlcourse->loadTestkurs($lvid, $stsem)) -{ - echo ''.$db->convert_html_chars($mdlcourse->mdl_fullname).''; -} -else -{ - echo "".$p->t('moodle/klickenSieHierUmTestkursErstellen').""; -} -echo ' - -'; -?> diff --git a/cis/private/lehre/moodle_choice.php b/cis/private/lehre/moodle_choice.php deleted file mode 100644 index 3ff9ce425..000000000 --- a/cis/private/lehre/moodle_choice.php +++ /dev/null @@ -1,127 +0,0 @@ -, - * Andreas Oesterreicher - * 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 ' - - - - - - -

'.$p->t('moodle/kursUebersicht').'

-'; - -$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 = "$bezeichnung
"; - 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 = "$bezeichnung
"; - break; - - default: - $kurs = $p->t('moodle/ungueltigeVersion',array($row->moodle_version)).'
'; - 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 '

'.$p->t('moodle/meineKurse').'

'; - echo $meinekurse; -} - -echo '

'.$p->t('moodle/vorhandeneKurse').'

'; - -echo $allgemeinekurse; - -echo ' -'; -?> diff --git a/cis/private/lehre/moodle_wartung.php b/cis/private/lehre/moodle_wartung.php deleted file mode 100644 index 72b324776..000000000 --- a/cis/private/lehre/moodle_wartung.php +++ /dev/null @@ -1,476 +0,0 @@ -, - * Andreas Oesterreicher - * Rudolf Hangl < rudolf.hangl@technikum-wien.at > - * Gerald Simane-Sequens < gerald.simane-sequens@technikum-wien.at > - */ -/* - * Verwaltungsseite zum Anlegen von Moodle Kursen - */ -require_once('../../../config/cis.config.inc.php'); -require_once('../../../include/basis_db.class.php'); -require_once('../../../include/functions.inc.php'); -require_once('../../../include/benutzerberechtigung.class.php'); -require_once('../../../include/lehrveranstaltung.class.php'); -require_once('../../../include/lehreinheit.class.php'); -require_once('../../../include/lehreinheitgruppe.class.php'); -require_once('../../../include/lehreinheitmitarbeiter.class.php'); -require_once('../../../include/studiengang.class.php'); -require_once('../../../include/phrasen.class.php'); -require_once('../../../include/moodle.class.php'); -require_once('../../../include/moodle19_course.class.php'); -require_once('../../../include/moodle19_user.class.php'); -require_once('../../../include/moodle24_course.class.php'); -require_once('../../../include/moodle24_user.class.php'); - -$sprache = getSprache(); -$p = new phrasen($sprache); - -if (!$db = new basis_db()) - die($p->t('global/fehlerBeimOeffnenDerDatenbankverbindung')); - -if (!$user=get_uid()) - die($p->t('moodle/sieSindNichtAngemeldet').' !'); - -if(isset($_GET['lvid']) && is_numeric($_GET['lvid'])) - $lvid=$_GET['lvid']; -else - die($p->t('moodle/lvidMussUebergebenWerden')); - -if(isset($_GET['stsem']) && check_stsem($_GET['stsem'])) - $stsem = $_GET['stsem']; -else - die($p->t('moodle/esWurdeKeinStudiensemesterUebergeben')); - -$art = (isset($_POST['art'])?$_POST['art']:'lv'); - -$berechtigt = false; - -//Pruefen ob Rechte fuer diese LV vorhanden sind -$qry = "SELECT distinct vorname, nachname, tbl_benutzer.uid as uid FROM lehre.tbl_lehreinheit, lehre.tbl_lehreinheitmitarbeiter, public.tbl_benutzer, public.tbl_person WHERE tbl_lehreinheit.lehreinheit_id=tbl_lehreinheitmitarbeiter.lehreinheit_id AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid=tbl_benutzer.uid AND tbl_person.person_id=tbl_benutzer.person_id AND lehrveranstaltung_id='$lvid' AND tbl_lehreinheitmitarbeiter.mitarbeiter_uid NOT like '_Dummy%' AND tbl_person.aktiv=true AND studiensemester_kurzbz='$stsem' ORDER BY nachname, vorname"; -if($result = $db->db_query($qry)) -{ - while($row_lector = $db->db_fetch_object($result)) - { - if($user==$row_lector->uid) - $berechtigt=true; - } -} - -$rechte = new benutzerberechtigung(); -$rechte->getBerechtigungen($user); - -if($rechte->isBerechtigt('admin')) - $berechtigt=true; - -if(!$berechtigt) - die('Sie haben keine Berechtigung für diese Seite'); - -$lv = new lehrveranstaltung(); -$lv->load($lvid); - -echo ' - - - - - - - -

'.$lv->bezeichnung.' ('.$stsem.')

- - - '; - -echo '
'; - -if(isset($_POST['neu'])) -{ - if($_POST['bezeichnung']=='') - { - echo ''.$p->t('benotungstool/bezeichnungMussEingegebenWerden').'
'; - } - 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 '
'.$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 ''.$p->t('moodle/esMussMindestensEineLehreinheitMarkiertSein').'
'; - } - } - 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 ''.$p->t('moodle/datenWurdenAktualisiert').'
'; - else - echo ''.$p->t('global/fehlerBeimAktualisierenDerDaten').''; - } - else - { - echo ''.$p->t('moodle/esWurdeKeineGueltigeIdUebergeben').''; - } -} - -//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.'
'; - //Teststudenten zuweisen - if(!$mdl_user->createTestStudentenZuordnung($id)) - $errormsg.=$p->t('moodle/fehlerBeiDerStudentenZuordnung').':'.$mdl_user->errormsg.'
'; - - if($errormsg!='') - echo $errormsg; - else - echo ''.$p->t('moodle/testkursWurdeErfolgreichAngelegt').'
'; - } - } - else - { - echo ''.$p->t('moodle/esExistiertBereitsEinTestkurs').'
'; - } -} - -//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.'
'; - //Teststudenten zuweisen - if(!$mdl_user24->createTestStudentenZuordnung($id)) - $errormsg.=$p->t('moodle/fehlerBeiDerStudentenZuordnung').':'.$mdl_user24->errormsg.'
'; - - if($errormsg!='') - echo $errormsg; - else - echo ''.$p->t('moodle/testkursWurdeErfolgreichAngelegt').'
'; - } - } - else - { - echo ''.$p->t('moodle/esExistiertBereitsEinTestkurs').'
'; - } -} - -$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 ''.$p->t('moodle/moodleKursAnlegen').':

-
- einen Moodle Kurs für die gesamte LV anlegen
- einen Moodle Kurs für einzelne Lehreinheiten anlegen - '; - - $le = new lehreinheit(); - $le->load_lehreinheiten($lv->lehrveranstaltung_id, $stsem); - echo ''; - - $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 '
'.$p->t('moodle/kursbezeichnung').': '; - echo '
'.$p->t('moodle/gruppenUebernehmen').': '; - echo '

-
'; -} -echo '
'; -echo ''.$p->t('moodle/vorhandeneMoodleKurse').''; -if(!$moodle->getAll($lvid, $stsem)) - echo $moodle->errormsg; -echo ''; -foreach ($moodle->result as $course) -{ - switch($course->moodle_version) - { - case '1.9': - $moodlecourse = new moodle19_course(); - $moodlecourse->load($course->mdl_course_id); - echo ''; - echo ''; -// echo ""; - echo ''; - break; - - case '2.4': - $moodlecourse = new moodle24_course(); - $moodlecourse->load($course->mdl_course_id); - echo ''; - echo ''; - echo ''; - break; - - default: - // andere Moodle Version - echo ''; - } -} -echo '
'.$moodlecourse->mdl_fullname.'
gruppen?'checked':'').">Gruppen übernehmen
'.$moodlecourse->mdl_fullname.' (v2.4)
Unknown Moodle Version - ID '.$course->mdl_course_id.'
'; -echo '
'; - -echo '


'; -echo ''.$p->t('moodle/testkurse').'

'; -$mdlcourse = new moodle19_course(); -if($mdlcourse->loadTestkurs($lvid, $stsem)) -{ - echo ''.$mdlcourse->mdl_fullname.''; -} -else -{ - echo "".$p->t('moodle/klickenSieHierUmTestkursErstellen').""; -} - -echo '


'.$p->t('moodle/testkurse24').'

'; -$mdlcourse24 = new moodle24_course(); -if($mdlcourse24->loadTestkurs($lvid, $stsem)) -{ - echo ''.$mdlcourse24->mdl_fullname.''; -} -else -{ - echo "".$p->t('moodle/klickenSieHierUmTestkursErstellen24').""; -} -echo ' - -'; -?> diff --git a/cis/private/lehre/moodle_wartung_choice.php b/cis/private/lehre/moodle_wartung_choice.php deleted file mode 100644 index 373defb27..000000000 --- a/cis/private/lehre/moodle_wartung_choice.php +++ /dev/null @@ -1,109 +0,0 @@ -, - * Andreas Oesterreicher - * 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 ' - - - - - - -

Moodle Versionswahl

'; -$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 ''; - 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 ''; -?> diff --git a/config/cis.config-default.inc.php b/config/cis.config-default.inc.php index 48a2c091b..e3c4931db 100755 --- a/config/cis.config-default.inc.php +++ b/config/cis.config-default.inc.php @@ -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'); diff --git a/config/global.config-default.inc.php b/config/global.config-default.inc.php index ac130e593..8c01b235b 100644 --- a/config/global.config-default.inc.php +++ b/config/global.config-default.inc.php @@ -147,15 +147,6 @@ define('REIHUNGSTEST_CHECK', true); // Bei Statuswechsel auf Bewerber bzw. Student -> soll ZGV brücksichtigt werden define('ZGV_CHECK', true); -/* Schema zur Erstellung der Kurs Kategorien im Moodle - * Leer oder nicht gesetzt: STSEM -> STG -> Ausbsemester (WS2014 -> BEL -> 1) - * DEP-STG-JG-STSEM: Department -> STG -> Jahrgang -> StSem (Informationstechnologie und Informationsmanagement -> BIMK -> Jahrgang 2014 -> WS2014) - */ -define('MOODLE_COURSE_SCHEMA',''); - -// Legt fst ob Fachbereichsleiter zu Moodle Kursen zugeteilt werden (mit Benutzerdefinierter Rolle 11) -define('MOODLE_SYNC_FACHBEREICHSLEITUNG',false); - // Bei Statuswechsel auf Bewerber -> bei true wird email (INFOMAIL_BEWERBER) an den Bewerber geschickt define('SEND_BEWERBER_INFOMAIL', false); diff --git a/config/vilesci.config-default.inc.php b/config/vilesci.config-default.inc.php index c7c240589..e0f2147e6 100644 --- a/config/vilesci.config-default.inc.php +++ b/config/vilesci.config-default.inc.php @@ -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',''); diff --git a/content/lvplanung/lehrveranstaltungDBDML.php b/content/lvplanung/lehrveranstaltungDBDML.php index 6b3394ae2..4125e73b2 100644 --- a/content/lvplanung/lehrveranstaltungDBDML.php +++ b/content/lvplanung/lehrveranstaltungDBDML.php @@ -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; } } } diff --git a/include/lehrveranstaltung.class.php b/include/lehrveranstaltung.class.php index b67f121db..0baa14a48 100755 --- a/include/lehrveranstaltung.class.php +++ b/include/lehrveranstaltung.class.php @@ -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 diff --git a/include/moodle.class.php b/include/moodle.class.php deleted file mode 100644 index 7c61930db..000000000 --- a/include/moodle.class.php +++ /dev/null @@ -1,402 +0,0 @@ - - * Karl Burkhart - */ -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; - } -} diff --git a/include/moodle19_course.class.php b/include/moodle19_course.class.php deleted file mode 100644 index d486407f8..000000000 --- a/include/moodle19_course.class.php +++ /dev/null @@ -1,2205 +0,0 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ -/* - * Moodle 1.9 Kurs Verwaltung - */ -require_once(dirname(__FILE__).'/basis_db.class.php'); -require_once(dirname(__FILE__).'/moodle.class.php'); - -if (!function_exists('xu_load_extension')) - include_once(dirname(__FILE__)."/xmlrpcutils/utils.php"); - -class moodle19_course extends basis_db -{ - private $conn_moodle; - public $result = array(); - - //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 $mdl_context_id; - public $mdl_context_level; - public $mdl_context_instanceid; - public $mdl_context_path; - public $mdl_context_depth; - - 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($conn_moodle=null) - { - if(is_null($conn_moodle)) - { - if(!$this->conn_moodle = pg_pconnect(CONN_STRING_MOODLE)) - { - $this->errormsg = 'Fehler beim Herstellen der Moodle Connection'; - return false; - } - else - return true; - } - else - $this->conn_moodle = $conn_moodle; - - 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=null) - { - $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; - } - - $qry = "SELECT * FROM public.mdl_course WHERE id='".addslashes($mdl_course_id)."'"; - if($result = pg_query($this->conn_moodle, $qry)) - { - if($row = pg_fetch_object($result)) - { - $this->mdl_fullname = $row->fullname; - $this->mdl_shortname = $row->shortname; - $this->mdl_course_id = $row->id; - return true; - } - else - { - $this->errormsg = 'Kurs wurde nicht gefunden'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Laden des Kurses'; - return false; - } - } - - /** - * Laedt einen MoodleKurs - * @param mdl_course_id ID des Moodle Kurses - * @return true wenn ok, false im Fehlerfall - */ - public function loadMoodle($mdl_course_id=null) - { - $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; - } - - // Variable Daten Initialisieren - $args=array(); - $args['CourseID']=$this->mdl_course_id; - $method = "ReadCourseByID"; - $bServerinfo=false; // Debug - $result=$this->callMoodleXMLRPC($method,$args,$bServerinfo); - if (!$result || !is_array($result) || count($result)<1 || !isset($result[0])) - { - $this->errormsg='Fehler xmlrpc Aufruf.'; - return false; - } - if (isset($result[1])) - $this->errormsg=$result[1]; - if (!isset($result[0]) || empty($result[0])) // Methodenaufruf nicht erfolgreich - return false; - if (isset($result[2]) && is_array($result[2]) ) // Methodenaufruf erfolgreich - { - - $this->result[]=(object)$result[2]; - $this->result[0]->mdl_fullname=(isset($this->result[0]->fullname)?$this->result[0]->fullname:'Fehler ID '.$this->mdl_course_id); - $this->result[0]->mdl_shortname=(isset($this->result[0]->shortname)?$this->result[0]->shortname:'Fehler'); - - $this->mdl_fullname=(isset($this->result[0]->fullname)?$this->result[0]->fullname:'Fehler ID '.$this->mdl_course_id); - $this->mdl_shortname=(isset($this->result[0]->shortname)?$this->result[0]->shortname:'Fehler'); - - } - else // Result = 0 ein Fehler im RFC wurde festgestellt - { - $this->errormsg=(isset($result[1])?$result[1]:" - Fehler beim Kurs ".$this->mdl_course_id." lesen "); - return false; - } -# return $this->result; - return true; -} - /** - * Laedt alle MoodleKurse die zu einer LV/Stsem - * plus die MoodleKurse die auf dessen LE haengen - * @param lehrveranstaltung_id - * 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 = '".addslashes($lehrveranstaltung_id)."' AND - tbl_lehreinheit.studiensemester_kurzbz='".addslashes($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 moodle19_course($this->conn_moodle); - - $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 = ($row->gruppen=='t'?true:false); - $obj->moodle_version = $row->moodle_version; - - if($obj->moodle_version=='1.9') - { - $qry_mdl = "SELECT * FROM public.mdl_course WHERE id='".addslashes($row->mdl_course_id)."'"; - if($result_mdl = pg_query($this->conn_moodle, $qry_mdl)) - { - if($row_mdl = pg_fetch_object($result_mdl)) - { - $obj->mdl_fullname = $row_mdl->fullname; - $obj->mdl_shortname = $row_mdl->shortname; - } - } - } - else - { - $obj->mdl_fullname = 'ID '.$obj->mdl_course_id.' Moodle v'.$obj->moodle_version; - $obj->mdl_shortname = 'ID '.$obj->mdl_course_id.' Moodle v'.$obj->moodle_version; - } - $this->result[] = $obj; - } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - - } - - - /** - * Laedt alle MoodleKurse die zu einer LV/Stsem - * plus die MoodleKurse die auf dessen LE haengen - * @param lehrveranstaltung_id - * studiensemester_kurzbz - * @return true wenn ok, false im Fehlerfall - */ - public function getAllVariant($lehrveranstaltung_id='',$studiensemester_kurzbz='',$studiengang='',$semester='',$detail=false) - { - // Initialisierung - $this->errormsg = ''; - $this->result=array(); - - $qry = "SELECT distinct tbl_lehreinheit.studiensemester_kurzbz,tbl_lehrveranstaltung.semester - ,tbl_lehrveranstaltung.bezeichnung,tbl_lehrveranstaltung.kurzbz,tbl_lehrveranstaltung.lehrveranstaltung_id,tbl_lehrveranstaltung.studiengang_kz,tbl_lehrveranstaltung.semester - ,tbl_moodle.mdl_course_id - FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit,lehre.tbl_moodle - where tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id - and ((tbl_moodle.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id - and tbl_moodle.studiensemester_kurzbz=lehre.tbl_lehreinheit.studiensemester_kurzbz) - OR - (tbl_moodle.lehreinheit_id=tbl_lehreinheit.lehreinheit_id))"; - - if ($lehrveranstaltung_id!='') - $qry.=" and tbl_lehrveranstaltung.lehrveranstaltung_id='".addslashes($lehrveranstaltung_id)."' "; - - if ($studiensemester_kurzbz!='') - $qry.=" and tbl_lehreinheit.studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' "; - - if ($studiengang!='') - $qry.=" and tbl_lehrveranstaltung.studiengang_kz='".addslashes($studiengang)."' "; - - if ($semester!='') - $qry.=" and tbl_lehrveranstaltung.semester='".addslashes($semester)."' "; - - $qry.=";"; - - if(!$result = $this->db_query($qry)) - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - - while($row = $this->db_fetch_object($result)) - { - $obj = new moodle19_course($this->conn_moodle); - - $obj->mdl_course_id = $row->mdl_course_id; - $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; - $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; - $obj->lehrveranstaltung_kurzbz=$row->kurzbz; - - $obj->lehrveranstaltung_bezeichnung=$row->bezeichnung; - $obj->lehrveranstaltung_semester=$row->semester; - $obj->lehrveranstaltung_studiengang_kz=$row->studiengang_kz; - - $obj->mdl_fullname = 'DB fehler ID '.$obj->mdl_course_id; - $obj->mdl_shortname =$obj->mdl_fullname; - - // Anzahl Benotungen - $obj->mdl_benotungen = 0; - // Anzahl Aktivitaeten und Lehrmaterial - $obj->mdl_resource = 0; - $obj->mdl_quiz = 0; - $obj->mdl_chat = 0; - $obj->mdl_forum = 0; - $obj->mdl_choice= 0; - - $moddle= new moodle19_course(); - if ($moddle->load($obj->mdl_course_id)) - { - $obj->mdl_fullname = $moddle->mdl_fullname; - $obj->mdl_shortname = $moddle->mdl_shortname; - } - else - { - $obj->mdl_fullname =$moddle->errormsg; - $obj->mdl_course_id = 0; - $this->result[] = $obj; - continue; - } - - if(!$detail) - { - $this->result[] = $obj; - continue; - } - - // Anzahl Noten je Kurs und User - $qry_mdl = "SELECT count(*) as anz - FROM mdl_grade_grades , mdl_grade_items - WHERE mdl_grade_items.itemtype='course' - AND mdl_grade_grades.finalgrade IS NOT NULL - AND mdl_grade_grades.itemid=mdl_grade_items.id - AND mdl_grade_items.courseid ='".addslashes($row->mdl_course_id)."'; "; - - if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl)) - { - if($row_mdl = pg_fetch_object($result_mdl)) - { - $obj->mdl_benotungen = (empty($row_mdl->anz)?0:$row_mdl->anz); - } - } - - - $qry_mdl = "SELECT count(course) as anz FROM public.mdl_chat WHERE mdl_chat.course='".addslashes($row->mdl_course_id)."'; "; - if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl)) - { - if($row_mdl = pg_fetch_object($result_mdl)) - { - $obj->mdl_chat = (empty($row_mdl->anz)?0:$row_mdl->anz); - } - } - - $qry_mdl = "SELECT count(course) as anz FROM public.mdl_resource WHERE mdl_resource.course='".addslashes($row->mdl_course_id)."'; "; - if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl)) - { - if($row_mdl = pg_fetch_object($result_mdl)) - { - $obj->mdl_resource = (empty($row_mdl->anz)?0:$row_mdl->anz); - } - } - - - $qry_mdl = "SELECT count(course) as anz FROM public.mdl_quiz WHERE mdl_quiz.course='".addslashes($row->mdl_course_id)."'; "; - if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl)) - { - if($row_mdl = pg_fetch_object($result_mdl)) - { - $obj->mdl_quiz = (empty($row_mdl->anz)?0:$row_mdl->anz); - } - } - - $qry_mdl = "SELECT count(course) as anz FROM public.mdl_forum WHERE mdl_forum.course='".addslashes($row->mdl_course_id)."'; "; - if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl)) - { - if($row_mdl = pg_fetch_object($result_mdl)) - { - $obj->mdl_forum = (empty($row_mdl->anz)?0:$row_mdl->anz); - } - } - - $qry_mdl = "SELECT count(course) as anz FROM public.mdl_choice WHERE mdl_choice.course='".addslashes($row->mdl_course_id)."'; "; - if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl)) - { - if($row_mdl = pg_fetch_object($result_mdl)) - { - $obj->mdl_choice = (empty($row_mdl->anz)?0:$row_mdl->anz); - } - } - - - $this->result[] = $obj; - } - return true; - } - -// ---------------------------------------------------------------------------------------------------------------- - /** - * Laedt alle MoodleKurse die zu einer LV/Stsem - * plus die MoodleKurse die auf dessen LE haengen - * @param lehrveranstaltung_id - * studiensemester_kurzbz - * @return true wenn ok, false im Fehlerfall - */ - public function getAllMoodleVariant($mdl_course_id='',$lehrveranstaltung_id='',$studiensemester_kurzbz='',$lehreinheit_id='',$studiengang='',$semester='',$detail=false,$lehre=true,$aktiv=true) - { - // Initialisierung - $this->errormsg = ''; - $this->result=array(); - -/* $qry = "SELECT distinct tbl_moodle.lehrveranstaltung_id as moodle_lehrveranstaltung_id,tbl_moodle.lehreinheit_id as moodle_lehreinheit_id, tbl_moodle.studiensemester_kurzbz,tbl_lehrveranstaltung.semester - ,tbl_lehrveranstaltung.bezeichnung,tbl_lehrveranstaltung.kurzbz,tbl_lehrveranstaltung.lehrveranstaltung_id,tbl_lehrveranstaltung.studiengang_kz,tbl_lehrveranstaltung.semester - ,tbl_moodle.mdl_course_id,tbl_moodle.lehreinheit_id,tbl_moodle.gruppen - FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit,lehre.tbl_moodle - where tbl_lehreinheit.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id - and ((tbl_moodle.lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id - and tbl_moodle.studiensemester_kurzbz=lehre.tbl_lehreinheit.studiensemester_kurzbz) - OR - (tbl_moodle.lehreinheit_id=tbl_lehreinheit.lehreinheit_id))"; -*/ - $where=''; - if ($mdl_course_id!='') - $where.=" and tbl_moodle.mdl_course_id='".addslashes($mdl_course_id)."' "; - - if ($lehreinheit_id!='') - $where.=" and tbl_lehreinheit.lehreinheit_id='".addslashes($lehreinheit_id)."' "; - - if ($lehrveranstaltung_id!='') - $where.=" and tbl_lehrveranstaltung.lehrveranstaltung_id='".addslashes($lehrveranstaltung_id)."' "; - - if ($studiensemester_kurzbz!='') - $where.=" and tbl_lehreinheit.studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."' "; - - if ($studiengang!='') - $where.=" and tbl_lehrveranstaltung.studiengang_kz='".addslashes($studiengang)."' "; - - if ($semester!='') - $where.=" and tbl_lehrveranstaltung.semester='".addslashes($semester)."' "; - - if ($lehre) - $where.=" and tbl_lehrveranstaltung.lehre "; - - if ($aktiv) - $where.=" and tbl_lehrveranstaltung.aktiv "; - - $qry =''; - $qry.=' SELECT distinct tbl_moodle.studiensemester_kurzbz - ,tbl_lehrveranstaltung.studiengang_kz - ,tbl_lehrveranstaltung.semester - ,tbl_moodle.mdl_course_id - ,tbl_lehrveranstaltung.lehrveranstaltung_id - ,tbl_moodle.lehreinheit_id as moodle_lehreinheit_id - ,tbl_moodle.lehrveranstaltung_id as moodle_lehrveranstaltung_id - ,tbl_moodle.lehreinheit_id as lehreinheit_id,tbl_lehrveranstaltung.bezeichnung,tbl_lehrveranstaltung.kurzbz,tbl_moodle.gruppen - ,tbl_lehrveranstaltung.lehrform_kurzbz,tbl_lehrveranstaltung.orgform_kurzbz - ,tbl_moodle.moodle_id - FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit,lehre.tbl_moodle - - where tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_moodle.lehrveranstaltung_id - and tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_moodle.lehrveranstaltung_id - and tbl_moodle.studiensemester_kurzbz=tbl_lehreinheit.studiensemester_kurzbz - and tbl_moodle.lehreinheit_id is null - '; - $qry.=$where; - - $qry.=' UNION '; - $qry.=' SELECT distinct tbl_moodle.studiensemester_kurzbz - ,tbl_lehrveranstaltung.studiengang_kz - ,tbl_lehrveranstaltung.semester - ,tbl_moodle.mdl_course_id - ,tbl_lehrveranstaltung.lehrveranstaltung_id - ,tbl_moodle.lehreinheit_id as moodle_lehreinheit_id - ,tbl_moodle.lehrveranstaltung_id as moodle_lehrveranstaltung_id - ,tbl_moodle.lehreinheit_id as lehreinheit_id,tbl_lehrveranstaltung.bezeichnung,tbl_lehrveranstaltung.kurzbz,tbl_moodle.gruppen - ,tbl_lehrveranstaltung.lehrform_kurzbz,tbl_lehrveranstaltung.orgform_kurzbz - ,tbl_moodle.moodle_id - FROM lehre.tbl_lehrveranstaltung, lehre.tbl_lehreinheit,lehre.tbl_moodle - - where tbl_lehrveranstaltung.lehrveranstaltung_id=tbl_lehreinheit.lehrveranstaltung_id - and tbl_moodle.lehreinheit_id=tbl_lehreinheit.lehreinheit_id - and tbl_moodle.lehrveranstaltung_id is null - '; - $qry.=$where; - - $qry.=' order by 1,2,3,4,5,6,7; '; - - -#echo "
$qry
"; - - if(!$result = $this->db_query($qry)) - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - - while($row = $this->db_fetch_object($result)) - { - - $obj = new moodle19_course($this->conn_moodle); - - $obj->mdl_course_id = $row->mdl_course_id; - $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; - $obj->lehreinheit_id = $row->lehreinheit_id; - $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; - $obj->lehrveranstaltung_kurzbz=$row->kurzbz; - $obj->lehrveranstaltung_bezeichnung=$row->bezeichnung; - $obj->lehrveranstaltung_semester=$row->semester; - $obj->lehrveranstaltung_studiengang_kz=$row->studiengang_kz; - $obj->lehrveranstaltung_lehrform_kurzbz=$row->lehrform_kurzbz; - - $obj->lehrveranstaltung_orgform_kurzbz=$row->orgform_kurzbz; - - $obj->moodle_lehrveranstaltung_id=$row->moodle_lehrveranstaltung_id; - $obj->moodle_lehreinheit_id=$row->moodle_lehreinheit_id; - $obj->moodle_mdl_course_id = $row->mdl_course_id; - $obj->mdl_fullname = 'Moodle Kurs nicht vorhanden ID '.$obj->mdl_course_id; - $obj->mdl_shortname =$obj->mdl_fullname; - $obj->gruppen=($row->gruppen=='t'?true:false);; - - // Anzahl Benotungen - $obj->mdl_benotungen = 0; - // Anzahl Aktivitaeten und Lehrmaterial - $obj->mdl_resource = 0; - $obj->mdl_quiz = 0; - $obj->mdl_chat = 0; - $obj->mdl_forum = 0; - $obj->mdl_choice= 0; - - $moddle= new moodle19_course(); - if ($moddle->load($obj->mdl_course_id)) - { - $obj->mdl_fullname = $moddle->mdl_fullname; - $obj->mdl_shortname = $moddle->mdl_shortname; - } - else - { - $obj->mdl_course_id = 0; - $obj->mdl_fullname =$moddle->errormsg; - $this->result[] = $obj; - continue; - } - - if(!$detail) - { - $this->result[] = $obj; - continue; - } - - - // Anzahl Noten je Kurs und User - $qry_mdl = "SELECT count(*) as anz - FROM mdl_grade_grades , mdl_grade_items - WHERE mdl_grade_items.itemtype='course' - AND mdl_grade_grades.finalgrade IS NOT NULL - AND mdl_grade_grades.itemid=mdl_grade_items.id - AND mdl_grade_items.courseid ='".addslashes($row->mdl_course_id)."'; "; - - if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl)) - { - if($row_mdl = pg_fetch_object($result_mdl)) - { - $obj->mdl_benotungen = (empty($row_mdl->anz)?0:$row_mdl->anz); - } - } - - $qry_mdl = "SELECT count(course) as anz FROM public.mdl_chat WHERE mdl_chat.course='".addslashes($row->mdl_course_id)."'; "; - if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl)) - { - if($row_mdl = pg_fetch_object($result_mdl)) - { - $obj->mdl_chat = (empty($row_mdl->anz)?0:$row_mdl->anz); - } - } - - $qry_mdl = "SELECT count(course) as anz FROM public.mdl_resource WHERE mdl_resource.course='".addslashes($row->mdl_course_id)."'; "; - if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl)) - { - if($row_mdl = pg_fetch_object($result_mdl)) - { - $obj->mdl_resource = (empty($row_mdl->anz)?0:$row_mdl->anz); - } - } - - - $qry_mdl = "SELECT count(course) as anz FROM public.mdl_quiz WHERE mdl_quiz.course='".addslashes($row->mdl_course_id)."'; "; - if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl)) - { - if($row_mdl = pg_fetch_object($result_mdl)) - { - $obj->mdl_quiz = (empty($row_mdl->anz)?0:$row_mdl->anz); - } - } - - $qry_mdl = "SELECT count(course) as anz FROM public.mdl_forum WHERE mdl_forum.course='".addslashes($row->mdl_course_id)."'; "; - if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl)) - { - if($row_mdl = pg_fetch_object($result_mdl)) - { - $obj->mdl_forum = (empty($row_mdl->anz)?0:$row_mdl->anz); - } - } - - $qry_mdl = "SELECT count(course) as anz FROM public.mdl_choice WHERE mdl_choice.course='".addslashes($row->mdl_course_id)."'; "; - if($detail && $result_mdl = pg_query($this->conn_moodle, $qry_mdl)) - { - if($row_mdl = pg_fetch_object($result_mdl)) - { - $obj->mdl_choice = (empty($row_mdl->anz)?0:$row_mdl->anz); - } - } - $this->result[] = $obj; - } - return true; - - } - - /** - * Schaut ob fuer diese LV/StSem schon ein - * Moodle Kurs existiert - * @param lehrveranstaltung_id - * 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='".addslashes($lehrveranstaltung_id)."' AND studiensemester_kurzbz='".addslashes($studiensemester_kurzbz)."'"; - if($this->db_query($qry)) - { - if($this->db_num_rows()>0) - return true; - else - return false; - } - else - { - $this->errormsg = 'Fehler bei SELECT Abfrage in moodle_course.class.php / course_exists_for_lv'; - 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='".addslashes($lehreinheit_id)."'"; - if($this->db_query($qry)) - { - if($this->db_num_rows()>0) - return true; - else - return false; - } - else - { - $this->errormsg = 'Fehler bei SELECT Abfrage in moodle_course.class.php / course_exists_for_le'; - return false; - } - } - - /** - * Schaut ob fuer diese LV/StSem schon ein - * Moodle Kurs existiert - * @param lehrveranstaltung_id - * 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='".addslashes($lehrveranstaltung_id)."' - AND studiensemester_kurzbz='".addslashes($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 SELECT Abfrage in moodle_course.class.php / course_exists_for_allLE'; - 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->addslashes($this->mdl_course_id).','. - $this->addslashes($this->lehreinheit_id).','. - $this->addslashes($this->lehrveranstaltung_id).','. - $this->addslashes($this->studiensemester_kurzbz).','. - $this->addslashes($this->insertamum).','. - $this->addslashes($this->insertvon).','. - ($this->gruppen?'true':'false').", '1.9');"; - - 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; - } - } - - /** - * Entfernt einen Eintrag in der tbl_moodle an - * @return true wenn ok, false im Fehlerfall - */ - public function delete_vilesci($mdl_course_id=null,$lehrveranstaltung_id=null,$lehreinheit_id=null) - { - $this->errormsg = ''; - if (!is_null($mdl_course_id) && !empty($mdl_course_id)) - $this->mdl_course_id=$mdl_course_id; - if (!is_null($lehrveranstaltung_id) && !empty($lehrveranstaltung_id)) - $this->lehrveranstaltung_id=$lehrveranstaltung_id; - if (!is_null($lehreinheit_id) && !empty($lehreinheit_id)) - $this->lehreinheit_id=$lehreinheit_id; - $where=''; - if (!is_null($this->mdl_course_id) && !empty($this->mdl_course_id)) - $where.=($where?' and ':' where '). ' mdl_course_id='.$this->addslashes($this->mdl_course_id); - else - $where.=($where?' and ':' where '). ' mdl_course_id=0'; - if (!is_null($this->lehrveranstaltung_id) && !empty($this->lehrveranstaltung_id)) - $where.=($where?' and ':' where '). ' lehrveranstaltung_id='.$this->addslashes($this->lehrveranstaltung_id); - if (!is_null($this->lehreinheit_id) && !empty($this->lehreinheit_id)) - $where.=($where?' and ':' where '). ' lehreinheit_id='.$this->addslashes($this->lehreinheit_id); - if (empty($where)) - { - $this->errormsg='mdl_course_id oder LV oder LE muss angegeben sein'; - return false; - } - - $qry='DELETE FROM lehre.tbl_moodle '.$where; - if(!$this->db_query($qry)) - { - $this->errormsg = 'Fehler beim loeschen Moodle Lehrveranstaltung ! '.$qry.' '. $this->db_last_error().' in File:='.__FILE__.' Line:='.__LINE__; - return false; - } - - return true; - } - - /** - * Aendert einen Eintrag in der tbl_moodle an - * @return true wenn ok, false im Fehlerfall - */ - public function update_vilesci() - { - if($this->mdl_course_id=='') - { - $this->errormsg='mdl_course_id muss angegeben sein'; - return false; - } - if (is_null($this->new) || empty($this->new)) - $this->new=false; - - $this->db_query('BEGIN;'); - $qry = ''; - $res=0; - - if (!$this->new) - { - $qrySel = 'SELECT 1 FROM lehre.tbl_moodle WHERE mdl_course_id='.$this->addslashes($this->mdl_course_id); - if(!$res=$this->db_query($qrySel)) - { - $this->errormsg = 'Fehler bei SELECT Abfrage! '. $this->db_last_error().' in File:='.__FILE__.' Line:='.__LINE__; - return false; - } - if($this->db_num_rows($res)>0) - { - if ($this->lehrveranstaltung_id!='' && !is_null($this->lehrveranstaltung_id)) - { - $qry.= 'DELETE from lehre.tbl_moodle where mdl_course_id='.$this->addslashes($this->mdl_course_id).' and not lehreinheit_id = '.$this->addslashes($this->lehrveranstaltung_id) .' ; '; - } - else - { - $qry.= 'DELETE from lehre.tbl_moodle where mdl_course_id='.$this->addslashes($this->mdl_course_id).' and not lehreinheit_id in ('. (is_array($this->lehreinheit_id)? implode(',',$this->lehreinheit_id) :$this->lehreinheit_id) .') ; '; - } - } - } - - if ( ($this->lehrveranstaltung_id!='' && !is_null($this->lehrveranstaltung_id)) - OR !is_array($this->lehreinheit_id) ) - { - $qrySel = 'SELECT 1 FROM lehre.tbl_moodle WHERE mdl_course_id='.$this->addslashes($this->mdl_course_id); - if ($this->new) - { - if ( $this->lehrveranstaltung_id!='' && !is_null($this->lehrveranstaltung_id) ) - $qrySel.= ' and lehrveranstaltung_id='.$this->addslashes($this->lehrveranstaltung_id); - else - $qrySel.= ' and lehreinheit_id='.$this->addslashes($this->lehreinheit_id); - } - - if(!$res=$this->db_query($qrySel)) - { - $this->errormsg = 'Fehler beim Select Moodle Lehrveranstaltung ! '.$qrySel.' '. $this->db_last_error().' in File:='.__FILE__.' Line:='.__LINE__; - $this->db_query('ROLLBACK'); - return false; - - } - if($this->db_num_rows($res)>0) - { - $qry.= 'UPDATE lehre.tbl_moodle set - lehreinheit_id='.$this->addslashes($this->lehreinheit_id).', - lehrveranstaltung_id='.$this->addslashes($this->lehrveranstaltung_id).', - studiensemester_kurzbz='.$this->addslashes($this->studiensemester_kurzbz).' - '; - if (!is_null($this->gruppen)) - $qry.= ',gruppen='.($this->gruppen?'true':'false'); - $qry.= ' where mdl_course_id='.$this->addslashes($this->mdl_course_id).'; '; - } - else - { - $qry.= 'INSERT INTO lehre.tbl_moodle(mdl_course_id, lehreinheit_id, lehrveranstaltung_id, - studiensemester_kurzbz, insertamum, insertvon, gruppen, moodle_version) - VALUES('. - $this->addslashes($this->mdl_course_id).','. - $this->addslashes($this->lehreinheit_id).','. - $this->addslashes($this->lehrveranstaltung_id).','. - $this->addslashes($this->studiensemester_kurzbz).','. - $this->addslashes($this->insertamum).','. - $this->addslashes($this->insertvon).','. - ($this->gruppen?'true':'false').",'1.9'); "; - } - } - // Lehreinheiten anlegen - Array - else - { - foreach ($this->lehreinheit_id as $key=>$value) - { - $qrySel = 'SELECT 1 FROM lehre.tbl_moodle WHERE mdl_course_id='.$this->addslashes($this->mdl_course_id). ' and lehreinheit_id='.$this->addslashes($value); - if(!$res=$this->db_query($qrySel)) - { - $this->errormsg = 'Fehler beim Select Moodle Lehreinheit ! '. $this->db_last_error().' in File:='.__FILE__.' Line:='.__LINE__; - $this->db_query('ROLLBACK'); - return false; - } - if($this->db_num_rows($res)>0) - { - $qry.= 'UPDATE lehre.tbl_moodle set - lehrveranstaltung_id='.$this->addslashes($this->lehrveranstaltung_id).', - studiensemester_kurzbz='.$this->addslashes($this->studiensemester_kurzbz).' - '; - if (!is_null($this->gruppen)) - $qry.= ',gruppen='.($this->gruppen?'true':'false'); - $qry.= ' where mdl_course_id='.$this->addslashes($this->mdl_course_id); - $qry.= ' and lehreinheit_id='.$this->addslashes($value).'; '; - - } - else - { - $qry.= 'INSERT INTO lehre.tbl_moodle(mdl_course_id, lehreinheit_id, lehrveranstaltung_id, - studiensemester_kurzbz, insertamum, insertvon, gruppen, moodle_version) - VALUES('. - $this->addslashes($this->mdl_course_id).','. - $this->addslashes($value).','. - $this->addslashes($this->lehrveranstaltung_id).','. - $this->addslashes($this->studiensemester_kurzbz).','. - $this->addslashes($this->insertamum).','. - $this->addslashes($this->insertvon).','. - ($this->gruppen?'true':'false').",'1.9'); "; - } - } - } - - if(!$this->db_query($qry)) - { - $this->db_query('ROLLBACK'); - $this->errormsg = 'Fehler beim aendern des Datensatzes! '. $this->db_last_error().' in File:='.__FILE__.' Line:='.__LINE__; - return false; - } - -#echo $qry; - $this->db_query('COMMIT;'); - return true; - - } - - /** - * Aendert einen Kurs im Moodle an - * @return true wenn ok, false im Fehlerfall - */ - public function update_moodle($oldPath = null) - { - if($this->mdl_course_id=='') - { - $this->errormsg='mdl_course_id muss angegeben sein'; - return false; - } - - if( (is_null($this->lehrveranstaltung_id) || $this->lehrveranstaltung_id=='') - && (is_null($this->lehreinheit_id) && $this->lehreinheit_id=='')) - { - $this->errormsg='LvID oder LeID muss uebergeben werden'; - return false; - } - - pg_query($this->conn_moodle, 'BEGIN;'); - - //CourseCategorie ermitteln - - //lehrveranstalung ID holen falls die nur die lehreinheit_id angegeben wurde - if($this->lehrveranstaltung_id=='' || is_null($this->lehrveranstaltung_id)) - { - $qry = "SELECT lehrveranstaltung_id FROM lehre.tbl_lehreinheit - WHERE lehreinheit_id='".addslashes($this->lehreinheit_id)."'"; - if($res=$this->db_query($qry)) - { - if($row = $this->db_fetch_object($res)) - { - $lvid = $row->lehrveranstaltung_id; - } - else - { - pg_query($this->conn_moodle, 'ROLLBACK'); - $this->errormsg = 'Fehler beim Ermitteln der LehrveranstaltungID'; - return false; - } - } - else - { - pg_query($this->conn_moodle, 'ROLLBACK'); - $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 - FROM lehre.tbl_lehrveranstaltung JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE lehrveranstaltung_id='$lvid'"; - - if($res=$this->db_query($qry)) - { - if($row = $this->db_fetch_object($res)) - { - $semester = $row->semester; - $stg = $row->stg; - } - else - { - pg_query($this->conn_moodle, 'ROLLBACK'); - $this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester'; - return false; - } - } - else - { - pg_query($this->conn_moodle, 'ROLLBACK'); - $this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester'; - return false; - } - - //Studiensemester Categorie holen - if(!$id_stsem = $this->getCategorie($this->studiensemester_kurzbz, '0')) - { - if(!$id_stsem = $this->createCategorie($this->studiensemester_kurzbz, '0')) - echo "
Fehler beim Anlegen des Studiensemesters"; - } - - //Studiengang Categorie holen - if(!$id_stg = $this->getCategorie($stg, $id_stsem)) - { - if(!$id_stg = $this->createCategorie($stg, $id_stsem)) - echo "
$this->errormsg"; - } - - //Semester Categorie holen - if(!$id_sem = $this->getCategorie($semester, $id_stg)) - { - if(!$id_sem = $this->createCategorie($semester, $id_stg)) - echo "
$this->errormsg"; - } - - //CourseCategorie Context holen - $this->getContext(40, $id_sem); - - - $qry = 'UPDATE public.mdl_course set - category='.$this->addslashes($id_sem).', - fullname='. $this->addslashes($this->mdl_fullname) .', - shortname='.$this->addslashes($this->mdl_shortname).' - '; - $qry.= " WHERE id='".addslashes($this->mdl_course_id)."'; "; - -#echo $qry; -#return true; - - if(!$result = pg_query($this->conn_moodle, $qry)) - { - pg_query($this->conn_moodle, 'ROLLBACK'); - $this->errormsg = 'Fehler beim Update'; - return false; - } - - /* - $qry = "DELETE FROM public.mdl_context where contextlevel='50' and instanceid=".$this->addslashes($this->mdl_course_id)." ;"; - if(!pg_query($this->conn_moodle, $qry)) - { - pg_query($this->conn_moodle, 'ROLLBACK'); - $this->errormsg = 'Fehler beim Entfernen des Context eintrages. '. pg_last_error(); - return false; - } - */ - - $update=false; - $qry = "SELECT id FROM public.mdl_context WHERE contextlevel='50' and instanceid=".$this->addslashes($this->mdl_course_id)." ;"; - if($result = pg_query($this->conn_moodle, $qry)) - { - if($row = pg_fetch_object($result)) - { - $this->mdl_context_id = $row->id; - $update=true; - } - } - - if($update) - { - //zum vorherigen Pfad die aktuelle id hinzufuegen - $path = $this->mdl_context_path.'/'.$this->mdl_context_id; - //vorherige tiefe um 1 erhoehen - $depth = $this->mdl_context_depth+1; - - $qry = "UPDATE public.mdl_context SET - contextlevel=50, - instanceid=".$this->addslashes($this->mdl_course_id).", - path=".$this->addslashes($path).", - depth=".$this->addslashes($depth)." - WHERE id='".addslashes($this->mdl_context_id)."';"; - if(!pg_query($this->conn_moodle, $qry)) - { - pg_query($this->conn_moodle, 'ROLLBACK'); - $this->errormsg = 'Fehler beim Update des Contexts'; - return false; - } - - $qry = "UPDATE public.mdl_context SET - path=".$this->addslashes($path)."|| '/' || mdl_context.id - WHERE path LIKE '".$oldPath."%';"; - if(!pg_query($this->conn_moodle, $qry)) - { - pg_query($this->conn_moodle, 'ROLLBACK'); - $this->errormsg = 'Fehler beim Update des Contexts'; - return false; - } - } - else - { - $qry ="SELECT nextval('mdl_context_id_seq') as nextId"; - if($result = pg_query($this->conn_moodle, $qry)) - { - if($row=pg_fetch_object($result)) - { - // nächste id herausfinden -> wegen insert - $path = $this->mdl_context_path.'/'.$row->nextId; - // tiefe um 1 erhoehen - $depth = $this->mdl_context_depth+1; - } - else - { - $this->errormsg = 'Fehler beim Select der Sequence :'. pg_last_error(); - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Select der Sequence :'. pg_last_error(); - return false; - } - - //Context eintragen - $qry = "INSERT INTO public.mdl_context(contextlevel, instanceid, path, depth) VALUES('50', ". - $this->addslashes($this->mdl_course_id).",'".$this->addslashes($path)."',".$this->addslashes($depth).");"; - if(pg_query($this->conn_moodle, $qry)) - { - $qry = "SELECT currval('mdl_context_id_seq') as id"; - if($result = pg_query($this->conn_moodle, $qry)) - { - if($row = pg_fetch_object($result)) - { - $this->mdl_context_id = $row->id; - } - else - { - pg_query($this->conn_moodle, 'ROLLBACK'); - $this->errormsg = 'Fehler beim Auslesen der Sequence ::'. pg_last_error($result).' '. pg_last_error(); - return false; - } - } - else - { - pg_query($this->conn_moodle, 'ROLLBACK'); - $this->errormsg = 'Fehler beim Select der Sequence :'. pg_last_error(); - return false; - } - } - else - { - pg_query($this->conn_moodle, 'ROLLBACK'); - $this->errormsg = 'Fehler beim INSERT'; - return false; - } - } - - - pg_query($this->conn_moodle, 'COMMIT;'); - return true; - } - - - - /** - * Legt einen Kurs im Moodle an - * @return true wenn ok, false im Fehlerfall - */ - public function create_moodle() - { - pg_query($this->conn_moodle, 'BEGIN;'); - - //CourseCategorie ermitteln - - //lehrveranstalung ID holen falls die nur die lehreinheit_id angegeben wurde - if($this->lehrveranstaltung_id=='') - { - $qry = "SELECT lehrveranstaltung_id FROM lehre.tbl_lehreinheit - WHERE lehreinheit_id='".addslashes($this->lehreinheit_id)."'"; - if($res=$this->db_query($qry)) - { - if($row = $this->db_fetch_object($res)) - { - $lvid = $row->lehrveranstaltung_id; - } - else - { - pg_query($this->conn_moodle, 'ROLLBACK'); - $this->errormsg = 'Fehler beim Ermitteln der LehrveranstaltungID'; - return false; - } - } - else - { - pg_query($this->conn_moodle, 'ROLLBACK'); - $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 - FROM lehre.tbl_lehrveranstaltung JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE lehrveranstaltung_id='$lvid'"; - - if($res=$this->db_query($qry)) - { - if($row = $this->db_fetch_object($res)) - { - $semester = $row->semester; - $stg = $row->stg; - } - else - { - pg_query($this->conn_moodle, 'ROLLBACK'); - $this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester'; - return false; - } - } - else - { - pg_query($this->conn_moodle, 'ROLLBACK'); - $this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester'; - return false; - } - - //Studiensemester Categorie holen - if(!$id_stsem = $this->getCategorie($this->studiensemester_kurzbz, '0')) - { - if(!$id_stsem = $this->createCategorie($this->studiensemester_kurzbz, '0')) - echo "
Fehler beim Anlegen des Studiensemesters"; - } - //Studiengang Categorie holen - if(!$id_stg = $this->getCategorie($stg, $id_stsem)) - { - if(!$id_stg = $this->createCategorie($stg, $id_stsem)) - echo "
$this->errormsg"; - } - //Semester Categorie holen - if(!$id_sem = $this->getCategorie($semester, $id_stg)) - { - if(!$id_sem = $this->createCategorie($semester, $id_stg)) - echo "
$this->errormsg"; - } - - //CourseCategorie Context holen - $this->getContext(40, $id_sem); - - //Eintrag in tbl_mdl_course - $qry = "INSERT INTO public.mdl_course(category, sortorder, fullname, shortname, format, showgrades, newsitems, enrollable, guest) - VALUES (".$this->addslashes($id_sem).", (SELECT max(sortorder)+1 FROM public.mdl_course), ".$this->addslashes($this->mdl_fullname).", ". - $this->addslashes($this->mdl_shortname).",'topics', 1, 5, 0, 1);"; - - if($result = pg_query($this->conn_moodle, $qry)) - { - $qry = "SELECT currval('mdl_course_id_seq') as id"; - if($result = pg_query($this->conn_moodle, $qry)) - { - if($row = pg_fetch_object($result)) - { - $this->mdl_course_id = $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 - { - pg_query($this->conn_moodle, 'ROLLBACK'); - $this->errormsg = 'Fehler beim INSERT'; - return false; - } - - //zum vorherigen Pfad die aktuelle id hinzufuegen - $path = "(SELECT '$this->mdl_context_path' || '/' || currval('mdl_context_id_seq'))"; - //vorherige tiefe um 1 erhoehen - $depth = $this->mdl_context_depth+1; - - //Context eintragen - $qry = "INSERT INTO public.mdl_context(contextlevel, instanceid, path, depth) VALUES('50', ". - $this->addslashes($this->mdl_course_id).",".$path.",".$this->addslashes($depth).");"; - - if(pg_query($this->conn_moodle, $qry)) - { - $qry = "SELECT currval('mdl_context_id_seq') as id"; - if($result = pg_query($this->conn_moodle, $qry)) - { - if($row = pg_fetch_object($result)) - { - $this->mdl_context_id = $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 - { - pg_query($this->conn_moodle, 'ROLLBACK'); - $this->errormsg = 'Fehler beim INSERT'; - return false; - } - - //Bloecke hinzufuegen - $qry = - "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(20, $this->mdl_course_id, 'course-view', 'l', 0, 1);". //Teilnehmer - "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(1, $this->mdl_course_id, 'course-view', 'l', 1, 1);". //Aktivit�ten - "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(25, $this->mdl_course_id, 'course-view', 'l', 2, 1);". //Forumssuche - "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(2, $this->mdl_course_id, 'course-view', 'l', 3, 1);". //Admin - "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(9, $this->mdl_course_id, 'course-view', 'l', 4, 1);". //Kursliste - "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(18, $this->mdl_course_id, 'course-view', 'r', 0, 1);". //Neueste Nachrichten - "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(8, $this->mdl_course_id, 'course-view', 'r', 1, 1);". //Kalender / Bald aktuell... - "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(22, $this->mdl_course_id, 'course-view', 'r', 2, 1);"; //Neueste Aktivit�ten - if(!pg_query($this->conn_moodle, $qry)) - { - pg_query($this->conn_moodle, 'ROLLBACK'); - $this->errormsg = 'Fehler beim INSERT der bloecke'; - return false; - } - else - { - pg_query($this->conn_moodle, 'COMMIT'); - return true; - } - - } - - - /** - * Laedt eine CourseCategorie anhand der Bezeichnung und der - * ParentID - */ - public function deleteCategorie($bezeichnung, $parent) - { - if($bezeichnung=='') - { - $this->errormsg = 'Bezeichnung muss angegeben werden'; - return false; - } - if($parent=='') - { - $this->errormsg = 'getCategorie: parent wurde nicht uebergeben'; - return false; - } - $qry = "DELETE FROM public.mdl_course_categories WHERE name='".addslashes($bezeichnung)."' AND parent='".addslashes($parent)."'"; - - if($result = pg_query($this->conn_moodle, $qry)) - { - return true; - } - else - { - $this->errormsg = 'Fehler beim loeschen der KursKategorie'; - return false; - } - } - - /** - * Laedt eine CourseCategorie anhand der Bezeichnung und der - * ParentID - */ - 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; - } - $qry = "SELECT id FROM public.mdl_course_categories WHERE name='".addslashes($bezeichnung)."' AND parent='".addslashes($parent)."'"; - - if($result = pg_query($this->conn_moodle, $qry)) - { - if($row = pg_fetch_object($result)) - { - return $row->id; - } - else - { - $this->errormsg = 'Fehler beim Laden der KursKategorie'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Laden der KursKategorie'; - return false; - } - } - - /** - * Erzeugt eine CourseCategorie anhand der Bezeichnung und der - * ParentID - */ - public function createCategorie($bezeichnung, $parent) - { - if($bezeichnung=='') - { - $this->errormsg = 'Bezeichnung muss angegeben werden'; - return false; - } - if($parent=='') - { - $this->errormsg = 'createCategorie: parent wurde nicht uebergeben: '.$bezeichnung.' '.$parent; - return false; - } - if($parent!='0') - { - //Parent laden - $qry = "SELECT * FROM public.mdl_course_categories WHERE id='".addslashes($parent)."'"; - //echo $qry; - if($result = pg_query($this->conn_moodle, $qry)) - { - if($row = pg_fetch_object($result)) - { - $depth = $row->depth; - $path = $row->path; - } - else - { - $this->errormsg = 'Fehler beim Laden der KursKategorie'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Laden der KursKategorie'; - return false; - } - } - else - { - $depth=0; - $path=''; - } - - //KursKategorie anlegen - $qry = "BEGIN; INSERT INTO public.mdl_course_categories(name, parent, sortorder, - coursecount, visible, timemodified, depth, path, theme) - VALUES(".$this->addslashes($bezeichnung).",".$this->addslashes($parent).",". - "'999',0,1,0,".$this->addslashes($depth+1). - ", (SELECT ".$this->addslashes($path.'/')." || currval('mdl_course_categories_id_seq')), null);"; - - if($res=pg_query($this->conn_moodle, $qry)) - { - $qry = "SELECT currval('mdl_course_categories_id_seq') as id"; - if($result = pg_query($this->conn_moodle, $qry)) - { - if($row = pg_fetch_object($result)) - { - $coursecatid = $row->id; - - //Context anlegen - //wenn Parent 0 ist, dann den SYSTEM Eintrag holen - if($parent!='0') - $qry = "SELECT path, depth FROM public.mdl_context WHERE contextlevel='40' AND instanceid='".addslashes($parent)."'"; - else - $qry = "SELECT path, depth FROM public.mdl_context WHERE contextlevel='10' AND instanceid='".addslashes($parent)."'"; - if($result = pg_query($this->conn_moodle, $qry)) - { - if($row = pg_fetch_object($result)) - { - $path = $row->path; - $depth = $row->depth; - - //zum vorherigen Pfad die aktuelle id hinzufuegen - $path = "(SELECT '$path' || '/' || currval('mdl_context_id_seq'))"; - //vorherige tiefe um 1 erhoehen - $depth=$depth+1; - - //Context eintragen - $qry = "INSERT INTO public.mdl_context(contextlevel, instanceid, path, depth) VALUES('40', ". - $this->addslashes($coursecatid).",".$path.",".$this->addslashes($depth).");"; - - if(pg_query($this->conn_moodle, $qry)) - { - $qry = "SELECT currval('mdl_context_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 $coursecatid; - } - 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 - { - pg_query($this->conn_moodle, 'ROLLBACK'); - $this->errormsg = 'Fehler beim INSERT'; - return false; - } - } - else - { - pg_query($this->conn_moodle, 'ROLLBACK;'); - $this->errormsg = 'Fehler beim Auslesen des Contextes'.$qry; - return false; - } - } - else - { - pg_query($this->conn_moodle, 'ROLLBACK;'); - $this->errormsg = 'Fehler beim Auslesen des Contextes'; - return false; - } - } - 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 - { - pg_query($this->conn_moodle, 'ROLLBACK'); - $this->errormsg = 'Fehler beim Speichern der KursKategorie'; - return false; - } - } - - /** - * Laedt einen Context anhand des contextlevels und der instanceid - */ - public function getContext($contextlevel, $instanceid) - { - - $qry ="SELECT * FROM public.mdl_context WHERE contextlevel='".addslashes($contextlevel)."' - AND instanceid='".addslashes($instanceid)."'"; - - if($result = pg_query($this->conn_moodle, $qry)) - { - if($row = pg_fetch_object($result)) - { - $this->mdl_context_id = $row->id; - $this->mdl_context_contextlevelid = $row->id; - $this->mdl_context_instanceid = $row->instanceid; - $this->mdl_context_path = $row->path; - $this->mdl_context_depth = $row->depth; - - return true; - } - else - { - $this->errormsg = 'Eintrag wurde nicht gefunden'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Auslesen des Contexts'; - 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 - */ - 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=".($gruppen?'true':'false')." WHERE moodle_id='".addslashes($moodle_id)."'"; - - if($this->db_query($qry)) - { - return true; - } - else - { - $this->errormsg = 'Fehler beim Update'; - return false; - } - } - - - - /** - * Liefert den Path zur Übergebenen InstanceId und Contextlevel zurück - * @param instanceId Kurs ID - * @param contextLevel Integer - * @return path wenn ok, false im Fehlerfall - */ - public function getPath($instanceId, $contextLevel = '50') - { - if(!is_numeric($instanceId)) - { - $this->errormsg = 'Moodle_id muss eine gueltige Zahl sein'; - return false; - } - - $qry = "SELECT * FROM public.mdl_context WHERE - instanceid=".$this->addslashes($instanceId)." AND - contextlevel = ".$this->addslashes($contextLevel).";"; - - if($result = pg_query($this->conn_moodle, $qry)) - { - if($row = pg_fetch_object($result)) - { - return $row->path; - } - } - else - { - $this->errormsg = 'Fehler bei der Abfrage aufgetreten'; - return false; - } - } - - - - /** - * Legt einen Testkurs an - */ - public function createTestkurs($lehrveranstaltung_id, $studiensemester_kurzbz) - { - pg_query($this->conn_moodle, 'BEGIN;'); - - //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='$lehrveranstaltung_id'"; - - if($this->db_query($qry)) - { - if($row = $this->db_fetch_object()) - { - $semester = $row->semester; - $stg = $row->stg; - } - else - { - pg_query($this->conn_moodle, 'ROLLBACK'); - $this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester'; - return false; - } - } - else - { - pg_query($this->conn_moodle, 'ROLLBACK'); - $this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester'; - return false; - } - - //Testkurs Categorie holen - if(!$id_testkurs = $this->getCategorie('Testkurse', '0')) - { - if(!$id_testkurs = $this->createCategorie('Testkurse', '0')) - echo "
Fehler beim Anlegen der Testkurskategorie"; - } - //StSem Categorie holen - if(!$id_stsem = $this->getCategorie($studiensemester_kurzbz, $id_testkurs)) - { - if(!$id_stsem = $this->createCategorie($studiensemester_kurzbz, $id_testkurs)) - echo "
$this->errormsg"; - } - - //CourseCategorie Context holen - $this->getContext(40, $id_stsem); - - //Eintrag in tbl_mdl_course - $qry = "INSERT INTO public.mdl_course(category, sortorder, fullname, shortname, format, showgrades, newsitems, enrollable, guest) - VALUES (".$this->addslashes($id_stsem).", (SELECT max(sortorder)+1 FROM public.mdl_course), ".$this->addslashes($this->mdl_fullname).", ". - $this->addslashes($this->mdl_shortname).",'topics', 1, 5, 0, 1);"; - - if($result = pg_query($this->conn_moodle, $qry)) - { - $qry = "SELECT currval('mdl_course_id_seq') as id"; - if($result = pg_query($this->conn_moodle, $qry)) - { - if($row = pg_fetch_object($result)) - { - $this->mdl_course_id = $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 - { - pg_query($this->conn_moodle, 'ROLLBACK'); - $this->errormsg = 'Fehler beim INSERT'; - return false; - } - - //zum vorherigen Pfad die aktuelle id hinzufuegen - $path = "(SELECT '$this->mdl_context_path' || '/' || currval('mdl_context_id_seq'))"; - //vorherige tiefe um 1 erhoehen - $depth = $this->mdl_context_depth+1; - - //Context eintragen - $qry = "INSERT INTO public.mdl_context(contextlevel, instanceid, path, depth) VALUES('50', ". - $this->addslashes($this->mdl_course_id).",".$path.",".$this->addslashes($depth).");"; - - if(pg_query($this->conn_moodle, $qry)) - { - $qry = "SELECT currval('mdl_context_id_seq') as id"; - if($result = pg_query($this->conn_moodle, $qry)) - { - if($row = pg_fetch_object($result)) - { - $this->mdl_context_id = $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 - { - pg_query($this->conn_moodle, 'ROLLBACK'); - $this->errormsg = 'Fehler beim INSERT'; - return false; - } - - //Bloecke hinzufuegen - $qry = - "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(20, $this->mdl_course_id, 'course-view', 'l', 0, 1);". //Teilnehmer - "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(1, $this->mdl_course_id, 'course-view', 'l', 1, 1);". //Aktivit�ten - "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(25, $this->mdl_course_id, 'course-view', 'l', 2, 1);". //Forumssuche - "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(2, $this->mdl_course_id, 'course-view', 'l', 3, 1);". //Admin - "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(9, $this->mdl_course_id, 'course-view', 'l', 4, 1);". //Kursliste - "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(18, $this->mdl_course_id, 'course-view', 'r', 0, 1);". //Neueste Nachrichten - "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(8, $this->mdl_course_id, 'course-view', 'r', 1, 1);". //Kalender / Bald aktuell... - "INSERT INTO public.mdl_block_instance(blockid, pageid, pagetype, position, weight, visible) VALUES(22, $this->mdl_course_id, 'course-view', 'r', 2, 1);"; //Neueste Aktivit�ten - - if(!pg_query($this->conn_moodle, $qry)) - { - pg_query($this->conn_moodle, 'ROLLBACK'); - $this->errormsg = 'Fehler beim INSERT der Bloecke'; - return false; - } - else - { - pg_query($this->conn_moodle, 'COMMIT'); - return true; - } - } - - /** - * 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='".addslashes($lehrveranstaltung_id)."'"; - - 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 - if(!$id_testkurs = $this->getCategorie('Testkurse', '0')) - { - $this->errormsg = 'Categorie nicht gefunden'; - return false; - } - - //StSem Categorie holen - if(!$id_stsem = $this->getCategorie($studiensemester_kurzbz, $id_testkurs)) - { - $this->errormsg = 'Categorie nicht gefunden'; - return false; - } - - $qry = "SELECT id, fullname, shortname FROM public.mdl_course WHERE shortname='".addslashes($shortname)."' AND category='$id_stsem' LIMIT 1"; - - if($result = pg_query($this->conn_moodle, $qry)) - { - if($row = pg_fetch_object($result)) - { - $this->mdl_fullname = $row->fullname; - $this->mdl_shortname = $row->shortname; - $this->mdl_course_id = $row->id; - return true; - } - else - { - $this->errormsg = 'Es wurde kein Testkurs gefunden'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Abfragen der Kurse'; - return false; - } - } - - - /** - * Laedt die Noten zu einem Moodle Course ID - * @param mdl_course_id - * - * @return objekt mit den Noten der Teilnehmer dieses Kurses - */ - public function loadNoten($lehrveranstaltung_id=null, $studiensemester_kurzbz=null,$student_uid='',$bDetailinfo=false,$bServerinfo=false) - { - - - $this->errormsg=''; - $this->result=null; - - // Init - if (!is_null($lehrveranstaltung_id)) - $this->lehrveranstaltung_id=trim($lehrveranstaltung_id); - if (!is_null($studiensemester_kurzbz)) - $this->studiensemester_kurzbz=trim($studiensemester_kurzbz); - $student_uid=trim($student_uid); - - - - // plausib - if (empty($this->lehrveranstaltung_id) - || empty($this->studiensemester_kurzbz) ) - { - $this->errormsg = 'Es fehlt die Eingabe von '; - $this->errormsg.=(empty($this->lehrveranstaltung_id)?' Lehrveranstaltung ':$this->lehrveranstaltung_id); - $this->errormsg.=(empty($this->studiensemester_kurzbz)?' Semester (Kurzbz.) ':$this->studiensemester_kurzbz); - return false; - } - - // -------------------------------------------------------------------- - // Ermitteln die Lehreinheiten und Moodle ID - // mit dem studiensemester_kurzbz ( bsp WS2008 ) - // und der lehrveranstaltung_id aus FAS ( bsp 23802 ) - // -------------------------------------------------------------------- - - $qry = " - SELECT tbl_lehreinheit.lehreinheit_id, mdl_course_id,tbl_lehreinheit.studiensemester_kurzbz,tbl_lehreinheit.lehrveranstaltung_id - FROM lehre.tbl_moodle - JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id, studiensemester_kurzbz) - WHERE - moodle_version='1.9' AND - tbl_moodle.lehrveranstaltung_id > 0 "; - if ($this->lehrveranstaltung_id) - $qry.= " and tbl_moodle.lehrveranstaltung_id ='".addslashes($this->lehrveranstaltung_id)."' "; - if ($this->studiensemester_kurzbz) - $qry.= " and tbl_moodle.studiensemester_kurzbz ='".addslashes($this->studiensemester_kurzbz)."' "; - $qry.= " - UNION - SELECT tbl_lehreinheit.lehreinheit_id, mdl_course_id,tbl_lehreinheit.studiensemester_kurzbz,tbl_lehreinheit.lehrveranstaltung_id - FROM lehre.tbl_moodle - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - WHERE moodle_version='1.9' AND tbl_lehreinheit.lehrveranstaltung_id > 0 "; - if ($this->lehrveranstaltung_id) - $qry.= " and tbl_lehreinheit.lehrveranstaltung_id ='".addslashes($this->lehrveranstaltung_id)."' "; - if ($this->studiensemester_kurzbz) - $qry.= " and tbl_moodle.studiensemester_kurzbz ='".addslashes($this->studiensemester_kurzbz)."' "; - - if(!$result_moodle=$this->db_query($qry)) - { - $this->errormsg = 'Fehler beim Lesen der Moodle Kurse , '.$this->errormsg; - return false; - } - - - // init - $_lehreinheit=array(); // Lehreinheiten zum lesen Studenten im Campus (Student und LE im FAS) - $_lehrveranstaltung = array(); // Gesamte Information der Lehreinheit und Moodle IDs - $_studiensemester_kurzbz=array(); - $_lehreinheit_kpl=array(); - while($row = $this->db_fetch_object($result_moodle)) - { - - $row->lehreinheit_id=trim($row->lehreinheit_id); - $_lehreinheit_kpl[$row->lehreinheit_id]=$row; - - $_lehreinheit[$row->lehreinheit_id]=$row->lehreinheit_id; // Fuer Select Campus - - $row->lehrveranstaltung_id=trim($row->lehrveranstaltung_id); - $_lehrveranstaltung[$row->lehrveranstaltung_id]=$row->lehrveranstaltung_id; // Fuer Select Campus - - $row->studiensemester_kurzbz=trim($row->studiensemester_kurzbz); - $_studiensemester_kurzbz[$row->studiensemester_kurzbz]=$row->studiensemester_kurzbz; // Fuer Select Campus - - } - if (count($_lehreinheit)<1) // Es gibt keine Lehreinheiten - { - $this->errormsg='Es wurde kein passender Moodle-Kurs gefunden'; - return false; - } - - // -------------------------------------------------------------------- - // - // Suchen Studenten Lehreinheiten zu Moodle - LE - // Fuer die Notenermittlung sind nur Studenten wichtig - // die einen Moodlekurs besuchen der auch eine Lehrveranstaltung ist - // Als Ergebnis sind alle Studenten mit gemeinsame Moodle und FAS LV - // -------------------------------------------------------------------- - $qry = "SELECT distinct vw_student_lehrveranstaltung.lehreinheit_id,lehrveranstaltung_id,studiensemester_kurzbz,kurzbz,bezeichnung,semester,studiengang_kz - FROM campus.vw_student_lehrveranstaltung - "; - $qry.= " WHERE vw_student_lehrveranstaltung.lehreinheit_id in (".implode(",",$_lehreinheit).") "; - $qry.= " AND lehrveranstaltung_id in (".implode(",",$_lehrveranstaltung).") "; - $qry.= " AND vw_student_lehrveranstaltung.studiensemester_kurzbz in ('".implode("','",$_studiensemester_kurzbz)."') "; - if (!empty($student_uid)) - $qry.= " AND uid ='".addslashes($student_uid)."' "; - - if(!$result_moodle=$this->db_query($qry)) - { - $this->errormsg = 'Fehler beim Lesen der Studenten mit Lehreinheit(en) '; - return false; - } - - if (!$anz=$this->db_num_rows($result_moodle)) - { - $this->errormsg ="keine Lehrveranstaltung (Lehreinheit) fuer Moodle Kursdaten gefunden!"; - return false; - } - - $last_moodle_id=false; - while($row = $this->db_fetch_object($result_moodle)) - { - - // Von der Lehreinheit kann der Moodle-Kurs ermittelt werden - $this->mdl_course_id=trim($_lehreinheit_kpl[$row->lehreinheit_id]->mdl_course_id); - if ($last_moodle_id==$this->mdl_course_id) - continue; - $last_moodle_id=$this->mdl_course_id; - - // XML RPC - Call - $method = "NotenCourseByID"; - - $m_user=array(); - $m_user['CourseID']=$this->mdl_course_id; - $mdl_username=trim($student_uid); - $m_user['UserId']=$mdl_username; - - if (!$result=$this->callMoodleXMLRPC($method,$m_user,$bServerinfo)) - return false; - - if ($result[0]==1) - { - - $error=(isset($result[1])?$result[1]:"Kurs Info "); - $kursArr=(isset($result[2])?$result[2]:array()); - $kursasObj=(isset($result[3])?$result[3]:array()); - $userArr=(isset($result[4])?$result[4]:array()); - $userasObj=(isset($result[5])?$result[5]:array()); - $id=(isset($result[6])?$result[6]:''); - $kursname=(isset($result[7])?$result[7]:''); - $shortname=(isset($result[8])?$result[8]:''); - $courseArr=(isset($result[9])?$result[9]:array()); - - if (!empty($student_uid)) - $note=(isset($userArr) && isset($userArr[6])?$userArr[6]:'?'); - else - $note=0; - - $obj = new moodle19_course($this->conn_moodle); - - $obj->mdl_course_id = $this->mdl_course_id; - $obj->lehreinheit_id=$row->lehreinheit_id; - - $obj->lehrveranstaltung_id = $row->lehrveranstaltung_id; - $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; - - $obj->lehrveranstaltung_kurzbz=$row->kurzbz; - $obj->lehrveranstaltung_bezeichnung=$row->bezeichnung; - $obj->lehrveranstaltung_semester=$row->semester; - $obj->lehrveranstaltung_studiengang_kz=$row->studiengang_kz; - - $obj->mdl_fullname=$kursname; - $obj->mdl_shortname=$shortname; - $obj->note=$note; - - $obj->errormsg=(isset($result[1])?$result[1]:""); - $obj->note=$note; - - if ($bDetailinfo || empty($student_uid)) - $obj->result=$result; - else - $obj->result=$userArr; - - $this->errormsg.=(!empty($this->errormsg)?", \n":"").$obj->errormsg; - $this->result[]=$obj; - - } - else - { - $this->errormsg.=(!empty($this->errormsg)?", \n":"").(isset($result[1])?$result[1]:"Fehler Kurs Info ".$this->moodle_id); - } - - } - return $this->result; - } // Ende moodle Noten - - - /** - * Loescht einen Moodle Course im Moodel und in der DB - * @param mdl_course_id - * @param bServerinfo Detail xmlrpc Debug informationen - * - * @return objekt mit den Noten der Teilnehmer dieses Kurses - */ - public function deleteKurs($mdl_course_id=null,$moodle_id=null,$bServerinfo=false) - { - $this->errormsg=''; - $this->result=array(); - - if (!is_null($mdl_course_id)) - $this->mdl_course_id=$mdl_course_id; - - - if (!is_null($moodle_id)) - $this->moodle_id=$moodle_id; - - if (is_null($this->mdl_course_id) || empty($this->mdl_course_id) || !is_numeric($this->mdl_course_id)) - { - $this->errormsg='Moodle Kurs ID fehlt'; - return false; - } - - // Variable Daten Initialisieren - $args=array(); - $args['CourseID']=$this->mdl_course_id; - $method = "DeleteCourseByID"; - - if (!$result=$this->callMoodleXMLRPC($method,$args,$bServerinfo)) - return false; - - if (isset($result[1])) - $this->errormsg=$result[1]; - - if ($result[0]==1 || !$this->load($this->mdl_course_id)) // Methodenaufruf erfolgreich - { - $qry = "DELETE FROM lehre.tbl_moodle WHERE moodle_version='1.9' AND mdl_course_id='". addslashes($this->mdl_course_id) ."' "; - if (!is_null($this->moodle_id) && $this->moodle_id!='') - $qry.= " and moodle_id='".addslashes($this->moodle_id)."'"; - if(!$this->db_query($qry)) - { - $this->errormsg=$this->errormsg." Moodlekurs $mdl_course_id wurde NICHT gelöscht in Lehre. "; - return false; - } - } - else // Result = 0 ein Fehler im RFC wurde festgestellt - { - $this->errormsg=(isset($result[1])?$result[1]:" - Fehler beim Kurs ".$this->mdl_course_id." löschen "); - return false; - } - - if (empty($this->errormsg)) - $this->errormsg.="Moodlekurs ".$this->mdl_course_id." wurde gelöscht."; - return true; - - } - - /** - * ruft eine XMLRPC Methode im Moodle auf - * @param methode - * @param argumente - parameter - * @param server debug informationen - * - * @return objekt mit den Noten der Teilnehmer dieses Kurses - */ - public function callMoodleXMLRPC($method=null,$args=null,$debug=false) - { - if (is_null($method) || empty($method)) - { - $this->errormsg ="Fehler xmlrpc call - Methode fehlt"; - return false; - } - - $moodle = new moodle(); - $moodlepfad = $moodle->getPfad('1.9'); - - $host = parse_url($moodlepfad, PHP_URL_HOST); - $path = parse_url($moodlepfad, PHP_URL_PATH); - - $port = ''; - $uri = $path."xmlrpc/xmlrpc.php"; - - // Ausgabeeinstellungen - $output=array('encoding' => 'UTF-8' ); - - - - $result=false; - $callspec = array( - 'user' => (isset($_SERVER['PHP_AUTH_USER'])?$_SERVER['PHP_AUTH_USER']:'') , - 'pass' => (isset($_SERVER['PHP_AUTH_PW'])?$_SERVER['PHP_AUTH_PW']:''), - 'method' => $method, - 'host' => $host, - 'port' => $port, - 'uri' => $uri, - 'secure' => false, - 'debug' => $debug, - 'args' => (!is_null($args)?$args:''), - 'output'=>$output); - - $result = xu_rpc_http_concise($callspec); - if (!is_array($result)) - { - $this->errormsg ="Fehler xmlrpc call "; - return false; - } - return $result; - } - -} // Ende moodle_course class diff --git a/include/moodle19_user.class.php b/include/moodle19_user.class.php deleted file mode 100644 index 6a87040c1..000000000 --- a/include/moodle19_user.class.php +++ /dev/null @@ -1,788 +0,0 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ -/* - * 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; - } -} diff --git a/include/moodle24_course.class.php b/include/moodle24_course.class.php deleted file mode 100644 index 9b012ef11..000000000 --- a/include/moodle24_course.class.php +++ /dev/null @@ -1,837 +0,0 @@ - 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 "
$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 "
$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 "
$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 "
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 "
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 "
$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 "
$this->errormsg"; - return false; - } - } - $categoryid=$id_sem; - } - - try - { - $client = new SoapClient($this->serverurl); - - $data = new stdClass(); - $data->fullname=$this->mdl_fullname; - $data->shortname=$this->mdl_shortname; - $data->categoryid=$categoryid; - $data->format='topics'; - - $stsem = new studiensemester(); - $stsem->load($this->studiensemester_kurzbz); - $datum_obj = new datum(); - $data->startdate=$datum_obj->mktime_fromdate($stsem->start); - $data->enddate=$datum_obj->mktime_fromdate($stsem->ende); - - $response = $client->core_course_create_courses(array($data)); - if(isset($response[0])) - { - $this->mdl_course_id=$response[0]['id']; - return true; - } - else - { - $this->errormsg = 'Fehler beim Anlegen des Kurses'; - return false; - } - } - catch (SoapFault $E) - { - $this->errormsg.="SOAP Fehler beim Anlegen des Kurses: ".$E->faultstring; - return false; - } - return true; - } - - /** - * Laedt die ID einer Kurskategorie anhand der Bezeichnung und der ParentID - * - * @param bezeichnung Bezeichnung der Kategorie - * @param parent ID der uebergeordneten Kurskategorie - * - * @return id der Kategorie, -1 wenn Kategorie nicht existiert, false im Fehlerfall - */ - public function getCategorie($bezeichnung, $parent) - { - if($bezeichnung=='') - { - $this->errormsg = 'Bezeichnung muss angegeben werden'; - return false; - } - if($parent=='') - { - $this->errormsg = 'getCategorie: parent wurde nicht uebergeben'; - return false; - } - - try - { - $client = new SoapClient($this->serverurl); - $response = $client->core_course_get_categories(array(array('key'=>'name','value'=>$bezeichnung),array('key'=>'parent','value'=>$parent))); - - if(isset($response[0])) - { - return $response[0]['id']; - } - else - { - $this->errormsg = 'Fehler beim Laden der Kurskategorie'; - return -1; - } - } - catch (SoapFault $E) - { - $this->errormsg.="SOAP Fehler beim Laden der Kurskategorie: ".$E->faultstring; - return false; - } - } - - /** - * Erzeugt eine Kurskategorie anhand der Bezeichnung und der ParentID - * @param bezeichnung Bezeichnung der Kategorie - * @param parent ID der uebergeordneten Kategorie, false im Fehlerfall - */ - public function createCategorie($bezeichnung, $parent) - { - if($bezeichnung=='') - { - $this->errormsg = 'Bezeichnung muss angegeben werden'; - return false; - } - if($parent=='') - { - $this->errormsg = 'createCategorie: parent wurde nicht uebergeben'; - return false; - } - - try - { - $client = new SoapClient($this->serverurl); - $response = $client->core_course_create_categories(array(array('name'=>$bezeichnung,'parent'=>$parent))); - - if(isset($response[0])) - { - return $response[0]['id']; - } - else - { - $this->errormsg = 'Fehler beim Anlegen der Kategorie'; - return false; - } - } - catch (SoapFault $E) - { - $this->errormsg.="SOAP Fehler beim Anlegen der Kategorie: ".$E->faultstring; - return false; - } - } - - - /** - * Aktualisiert die Spalte gruppen in der tbl_moodle - * @param moodle_id ID der MoodleZuteilung - * gruppen boolean true wenn syncronisiert - * werden soll, false wenn nicht - * @return true wenn ok, false im Fehlerfall - * - * TODO eventuell auslagern in moodle.class oder ganz loeschen - */ - public function updateGruppenSync($moodle_id, $gruppen) - { - if(!is_numeric($moodle_id)) - { - $this->errormsg = 'Moodle_id muss eine gueltige Zahl sein'; - return false; - } - - $qry = "UPDATE lehre.tbl_moodle SET gruppen=".$this->db_add_param($gruppen, FHC_BOOLEAN)." - WHERE moodle_id=".$this->db_add_param($moodle_id, FHC_INTEGER); - - if($this->db_query($qry)) - { - return true; - } - else - { - $this->errormsg = 'Fehler beim Update'; - return false; - } - } - - /** - * Legt einen Testkurs an - */ - public function createTestkurs($lehrveranstaltung_id, $studiensemester_kurzbz) - { - //CourseCategorie ermitteln - - //Studiengang und Semester holen - - $qry = "SELECT - tbl_lehrveranstaltung.semester, - UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as stg - FROM - lehre.tbl_lehrveranstaltung - JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE - lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER); - - if($this->db_query($qry)) - { - if($row = $this->db_fetch_object()) - { - $semester = $row->semester; - $stg = $row->stg; - } - else - { - $this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Ermitteln von Studiengang und Semester'; - return false; - } - - //Testkurs Categorie holen - $id_testkurs = $this->getCategorie('Testkurse', '0'); - if ($id_testkurs === false) - return false; - if ($id_testkurs === -1) - { - if(!$id_testkurs = $this->createCategorie('Testkurse', '0')) - { - $this->errormsg= "Fehler beim Anlegen der Testkurskategorie"; - return false; - } - } - //StSem Categorie holen - $id_stsem = $this->getCategorie($studiensemester_kurzbz, $id_testkurs); - if ($id_stsem === false) - return false; - if ($id_stsem === -1) - { - if(!$id_stsem = $this->createCategorie($studiensemester_kurzbz, $id_testkurs)) - { - $this->errormsg = 'Fehler beim Anlegen der Studiensemester Kategorie'; - return false; - } - } - - $client = new SoapClient($this->serverurl); - - $data = new stdClass(); - $data->fullname=$this->mdl_fullname; - $data->shortname=$this->mdl_shortname; - $data->categoryid=$id_stsem; - $data->format='topics'; - - $response = $client->core_course_create_courses(array($data)); - if(isset($response[0])) - { - $this->mdl_course_id=$response[0]['id']; - return true; - } - else - { - $this->errormsg = 'Fehler beim Anlegen des Testkurses'; - return false; - } - } - - /** - * Laedt den Testkurs zu dieser Lehrveranstaltung - * @param lehrveranstaltung_id - * studiensemester_kurzbz - * @return ID wenn gefunden, false wenn nicht vorhanden - */ - public function loadTestkurs($lehrveranstaltung_id, $studiensemester_kurzbz) - { - $qry = "SELECT - UPPER(tbl_studiengang.typ::varchar(1) || tbl_studiengang.kurzbz) as kuerzel, - tbl_lehrveranstaltung.semester, tbl_lehrveranstaltung.kurzbz - FROM - lehre.tbl_lehrveranstaltung JOIN public.tbl_studiengang USING(studiengang_kz) - WHERE - lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER, false); - - if($this->db_query($qry)) - { - if($row = $this->db_fetch_object()) - { - $shortname = mb_strtoupper('TK-'.$studiensemester_kurzbz.'-'.$row->kuerzel.'-'.$row->semester.'-'.$row->kurzbz); - } - else - { - $this->errormsg = 'Fehler beim Laden des Testkurses'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Laden des Testkurses'; - return false; - } - - //Testkurs Categorie holen - $id_testkurs = $this->getCategorie('Testkurse', '0'); - if ($id_testkurs === false) - return false; - if ($id_testkurs === -1) - { - $this->errormsg = 'Categorie nicht gefunden'; - return false; - } - - //StSem Categorie holen - $id_stsem = $this->getCategorie($studiensemester_kurzbz, $id_testkurs); - if($id_stsem === false) - return false; - if ($id_stsem === -1) - { - $this->errormsg = 'Categorie nicht gefunden'; - return false; - } - - $client = new SoapClient($this->serverurl); - $response = $client->fhcomplete_courses_by_shortname(array('shortnames'=>array($shortname))); - - if(isset($response[0])) - { - $this->mdl_fullname = $response[0]['fullname']; - $this->mdl_shortname = $response[0]['shortname']; - $this->mdl_course_id = $response[0]['id']; - return true; - } - else - { - $this->errormsg='Es wurde kein Testkurs gefunden'; - return false; - } - } - - - /** - * Laedt die Moodle Noten zu allen Moodlekursen einer Lehrveranstaltung - * @param lehrveranstaltung_id - * @param $studiensemester_kurzbz - * - * @return objekt mit den Noten der Teilnehmer dieses Kurses - */ - public function loadNoten($lehrveranstaltung_id, $studiensemester_kurzbz) - { - $this->errormsg=''; - $this->result=null; - - if($lehrveranstaltung_id=='' || $studiensemester_kurzbz=='') - { - $this->errormsg = 'LehrveranstaltungID und Studiensemester_kurzbz muss uebergeben werden'; - return false; - } - - // Ermitteln die Lehreinheiten und Moodle ID - $qry = " - SELECT - distinct mdl_course_id - FROM - lehre.tbl_moodle - JOIN lehre.tbl_lehreinheit USING(lehrveranstaltung_id, studiensemester_kurzbz) - WHERE - tbl_moodle.lehrveranstaltung_id > 0 - AND moodle_version='2.4' - AND tbl_moodle.lehrveranstaltung_id =".$this->db_add_param($lehrveranstaltung_id)." - AND tbl_moodle.studiensemester_kurzbz =".$this->db_add_param($studiensemester_kurzbz)." - UNION - SELECT - distinct mdl_course_id - FROM - lehre.tbl_moodle - JOIN lehre.tbl_lehreinheit USING(lehreinheit_id) - WHERE - tbl_lehreinheit.lehrveranstaltung_id > 0 - AND moodle_version='2.4' - AND tbl_lehreinheit.lehrveranstaltung_id =".$this->db_add_param($lehrveranstaltung_id)." - AND tbl_moodle.studiensemester_kurzbz =".$this->db_add_param($studiensemester_kurzbz).";"; - - if(!$result_moodle=$this->db_query($qry)) - { - $this->errormsg = 'Fehler beim Lesen der Moodle Kurse , '.$this->errormsg; - return false; - } - - - while($row_moodle = $this->db_fetch_object($result_moodle)) - { - try - { - $client = new SoapClient($this->serverurl); - if(CIS_GESAMTNOTE_PUNKTE) - $type=2; // Prozentpunkte - else - $type=3; // Noten aufgrund Skala - // 1 = Punkte, 2 = Prozentpunkte, 3 = Note laut Skala - - $response = $client->fhcomplete_get_course_grades($row_moodle->mdl_course_id, $type); - - if (count($response)>0) - { - - foreach($response as $row) - { - if($row['note']!='-') - { - $userobj = new stdClass(); - $userobj->mdl_course_id = $row_moodle->mdl_course_id; - $userobj->vorname = $row['vorname']; - $userobj->nachname = $row['nachname']; - $userobj->idnummer = $row['idnummer']; - $userobj->uid = $row['username']; - $userobj->note = $row['note']; - $this->result[]=$userobj; - } - } - } - } - catch(SoapFault $e) - { - //echo print_r($e, true); - //return false; - } - - } - return true; - } - - - /** - * Loescht einen Moodle Course im Moodel - * Wenn erfolgreich gelöscht wird kein Wert in response zurückgegeben - * @param mdl_course_id - * - */ - public function deleteKurs($mdl_course_id) - { - $client = new SoapClient($this->serverurl); - - $data = array($mdl_course_id); - - $response = $client->core_course_delete_courses(array($mdl_course_id)); - - if(is_object($response)) - { - $response_obj = $response; - unset($response); - if(isset($response_obj->warnings) && isset($response_obj->warnings->message)) - $response[0] = $response_obj->warnings->message; - } - - if(isset($response[0])) - { - $this->errormsg = $response[0]; - return false; - } - - return true; - - } - - /** - * gibt alle LE Ids der Übergebenen Moodle_Course_ID zurück - */ - public function getLeFromCourse($moodle_course_id) - { - $qry = "SELECT lehreinheit_id FROM lehre.tbl_moodle WHERE moodle_version='2.4' AND mdl_course_id =".$this->db_add_param($moodle_course_id, FHC_INTEGER).';'; - $le = array(); - if($result = $this->db_query($qry)) - { - while($row = $this->db_fetch_object()) - { - $le[] = $row->lehreinheit_id; - } - } - return $le; - } - -} diff --git a/include/moodle24_user.class.php b/include/moodle24_user.class.php deleted file mode 100644 index ab23873e7..000000000 --- a/include/moodle24_user.class.php +++ /dev/null @@ -1,922 +0,0 @@ - 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; - } - } -} diff --git a/include/tw/cis_menu_lv.inc.php b/include/tw/cis_menu_lv.inc.php index f35b51824..610d85de4 100644 --- a/include/tw/cis_menu_lv.inc.php +++ b/include/tw/cis_menu_lv.inc.php @@ -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.=''.$p->t('lehre/benotungstoolHandbuch').' [PDF]'; - } - else - { - $link='benotungstool/studentenansicht.php?lvid='.urlencode($lvid).$studiensem; - } + $link='benotungstool/verwaltung.php?lvid='.urlencode($lvid).$studiensem; + $text.=''.$p->t('lehre/benotungstoolHandbuch').' [PDF]'; } else { - if($is_lector) - { - $link=''; - $text=''.$p->t('lehre/benotungstoolHandbuch').' [PDF]'; - $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.= ''.$p->t('lehre/moodleWartung').' -
'.$p->t('lehre/moodleHandbuch').''; - } - } - 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)) { diff --git a/include/tw/vilesci_menu_main.inc.php b/include/tw/vilesci_menu_main.inc.php index b6c21764a..841cffed6 100755 --- a/include/tw/vilesci_menu_main.inc.php +++ b/include/tw/vilesci_menu_main.inc.php @@ -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'), diff --git a/locale/de-AT/benotungstool.php b/locale/de-AT/benotungstool.php index 78d32cd1c..ebf597933 100644 --- a/locale/de-AT/benotungstool.php +++ b/locale/de-AT/benotungstool.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'; -?> \ No newline at end of file +$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'; +?> diff --git a/locale/de-AT/lehre.php b/locale/de-AT/lehre.php index 4304da9d8..654937482 100755 --- a/locale/de-AT/lehre.php +++ b/locale/de-AT/lehre.php @@ -21,12 +21,6 @@ $this->phrasen['lehre/feedback']='Feedback'; $this->phrasen['lehre/benotungstoolHandbuch']='Handbuch'; $this->phrasen['lehre/kreuzerltool']='Übungstool
("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'; diff --git a/locale/de-AT/moodle.php b/locale/de-AT/moodle.php deleted file mode 100644 index 3f9b6d09b..000000000 --- a/locale/de-AT/moodle.php +++ /dev/null @@ -1,40 +0,0 @@ -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 hier'; -$this->phrasen['moodle/wartungschoice']='


Moodle Versionsauswahl -


-Bitte wählen Sie die Moodle Version die Sie für Ihre Lehrveranstaltung verwenden möchten: -

-Moodle Version 1.9

-Moodle Version 2.4
-

-Moodle befindet sich derzeit im Dualbetrieb.
-Ab dem Wintersemester 2014 wird Moodle nur noch in der Version 2.4 angeboten. -
'; -$this->phrasen['moodle/meineKurse']='Meine Kurse'; -$this->phrasen['moodle/vorhandeneKurse']='Vorhandene Kurse'; -?> diff --git a/locale/en-US/lehre.php b/locale/en-US/lehre.php index 2a7557bda..092ca3381 100755 --- a/locale/en-US/lehre.php +++ b/locale/en-US/lehre.php @@ -21,12 +21,6 @@ $this->phrasen['lehre/feedback']='Feedback'; $this->phrasen['lehre/benotungstoolHandbuch']='Manual'; $this->phrasen['lehre/kreuzerltool']='Assignment tool
("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'; diff --git a/locale/en-US/moodle.php b/locale/en-US/moodle.php deleted file mode 100644 index bd6120637..000000000 --- a/locale/en-US/moodle.php +++ /dev/null @@ -1,40 +0,0 @@ -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 here'; -$this->phrasen['moodle/wartungschoice']='


Moodle version selection -


-Please select the Moodle version you want to use for your course: -

-Moodle Version 1.9

-Moodle Version 2.4
-

-Two versions of Moodle are currently offered.
-Starting Winter Semester 2014, Moodle will only be available in version 2.4. -
'; -$this->phrasen['moodle/meineKurse']='My Courses'; -$this->phrasen['moodle/vorhandeneKurse']='Available Courses'; -?> \ No newline at end of file diff --git a/locale/it-IT/lehre.php b/locale/it-IT/lehre.php index 1ae92d09a..c4741a14d 100755 --- a/locale/it-IT/lehre.php +++ b/locale/it-IT/lehre.php @@ -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
(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'; diff --git a/locale/it-IT/moodle.php b/locale/it-IT/moodle.php deleted file mode 100755 index 1cfc8fb3f..000000000 --- a/locale/it-IT/moodle.php +++ /dev/null @@ -1,30 +0,0 @@ -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']=''; - -?> diff --git a/soap/lehrveranstaltung.soap.php b/soap/lehrveranstaltung.soap.php index 074ab569b..2bb3939b3 100755 --- a/soap/lehrveranstaltung.soap.php +++ b/soap/lehrveranstaltung.soap.php @@ -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; diff --git a/soap/lehrveranstaltung.wsdl.php b/soap/lehrveranstaltung.wsdl.php index 3e8ba1d92..dd9b64f55 100755 --- a/soap/lehrveranstaltung.wsdl.php +++ b/soap/lehrveranstaltung.wsdl.php @@ -24,7 +24,6 @@ echo ""; - @@ -43,7 +42,6 @@ echo ""; - @@ -80,16 +78,6 @@ echo ""; - - - - - - - - - - diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 255506ab7..d2ec00b67 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -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"), diff --git a/system/mlists/mlists_generate.php b/system/mlists/mlists_generate.php index a23296ea8..b13acc3dc 100644 --- a/system/mlists/mlists_generate.php +++ b/system/mlists/mlists_generate.php @@ -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 diff --git a/system/moodlePlugin/fhcompletews/README b/system/moodlePlugin/fhcompletews/README deleted file mode 100644 index f2dde879c..000000000 --- a/system/moodlePlugin/fhcompletews/README +++ /dev/null @@ -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. diff --git a/system/moodlePlugin/fhcompletews/db/services.php b/system/moodlePlugin/fhcompletews/db/services.php deleted file mode 100644 index a454c724e..000000000 --- a/system/moodlePlugin/fhcompletews/db/services.php +++ /dev/null @@ -1,53 +0,0 @@ -. - -/** - * 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', - ), - -); diff --git a/system/moodlePlugin/fhcompletews/externallib.php b/system/moodlePlugin/fhcompletews/externallib.php deleted file mode 100644 index c43c520c3..000000000 --- a/system/moodlePlugin/fhcompletews/externallib.php +++ /dev/null @@ -1,642 +0,0 @@ -. - -/** - * 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; -} diff --git a/system/moodlePlugin/fhcompletews/lang/en/local_fhcompletews.php b/system/moodlePlugin/fhcompletews/lang/en/local_fhcompletews.php deleted file mode 100644 index 1d8ddd42e..000000000 --- a/system/moodlePlugin/fhcompletews/lang/en/local_fhcompletews.php +++ /dev/null @@ -1,25 +0,0 @@ -. - -/** - * 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'; diff --git a/system/moodlePlugin/fhcompletews/version.php b/system/moodlePlugin/fhcompletews/version.php deleted file mode 100644 index 39a6f7084..000000000 --- a/system/moodlePlugin/fhcompletews/version.php +++ /dev/null @@ -1,24 +0,0 @@ -. - -$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; diff --git a/system/moodlePlugin/fhcompletews25/README b/system/moodlePlugin/fhcompletews25/README deleted file mode 100644 index f2dde879c..000000000 --- a/system/moodlePlugin/fhcompletews25/README +++ /dev/null @@ -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. diff --git a/system/moodlePlugin/fhcompletews25/db/services.php b/system/moodlePlugin/fhcompletews25/db/services.php deleted file mode 100644 index f272cbb7a..000000000 --- a/system/moodlePlugin/fhcompletews25/db/services.php +++ /dev/null @@ -1,53 +0,0 @@ -. - -/** - * 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', - ), - -); diff --git a/system/moodlePlugin/fhcompletews25/externallib.php b/system/moodlePlugin/fhcompletews25/externallib.php deleted file mode 100644 index 000607454..000000000 --- a/system/moodlePlugin/fhcompletews25/externallib.php +++ /dev/null @@ -1,371 +0,0 @@ -. - -/** - * 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' - ) - ); - } -} diff --git a/system/moodlePlugin/fhcompletews25/lang/en/local_fhcompletews.php b/system/moodlePlugin/fhcompletews25/lang/en/local_fhcompletews.php deleted file mode 100644 index 4c72c54e4..000000000 --- a/system/moodlePlugin/fhcompletews25/lang/en/local_fhcompletews.php +++ /dev/null @@ -1,25 +0,0 @@ -. - -/** - * 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'; diff --git a/system/moodlePlugin/fhcompletews25/version.php b/system/moodlePlugin/fhcompletews25/version.php deleted file mode 100644 index a30f1b594..000000000 --- a/system/moodlePlugin/fhcompletews25/version.php +++ /dev/null @@ -1,24 +0,0 @@ -. - -$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; diff --git a/system/moodlePlugin/fhcompletews30/README b/system/moodlePlugin/fhcompletews30/README deleted file mode 100644 index c18543606..000000000 --- a/system/moodlePlugin/fhcompletews30/README +++ /dev/null @@ -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. diff --git a/system/moodlePlugin/fhcompletews30/db/services.php b/system/moodlePlugin/fhcompletews30/db/services.php deleted file mode 100644 index f272cbb7a..000000000 --- a/system/moodlePlugin/fhcompletews30/db/services.php +++ /dev/null @@ -1,53 +0,0 @@ -. - -/** - * 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', - ), - -); diff --git a/system/moodlePlugin/fhcompletews30/externallib.php b/system/moodlePlugin/fhcompletews30/externallib.php deleted file mode 100644 index 000607454..000000000 --- a/system/moodlePlugin/fhcompletews30/externallib.php +++ /dev/null @@ -1,371 +0,0 @@ -. - -/** - * 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' - ) - ); - } -} diff --git a/system/moodlePlugin/fhcompletews30/lang/en/local_fhcompletews.php b/system/moodlePlugin/fhcompletews30/lang/en/local_fhcompletews.php deleted file mode 100644 index 4c72c54e4..000000000 --- a/system/moodlePlugin/fhcompletews30/lang/en/local_fhcompletews.php +++ /dev/null @@ -1,25 +0,0 @@ -. - -/** - * 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'; diff --git a/system/moodlePlugin/fhcompletews30/version.php b/system/moodlePlugin/fhcompletews30/version.php deleted file mode 100644 index 6fd689c4e..000000000 --- a/system/moodlePlugin/fhcompletews30/version.php +++ /dev/null @@ -1,25 +0,0 @@ -. - -$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'; diff --git a/system/sync/sync_moodle24_user.php b/system/sync/sync_moodle24_user.php deleted file mode 100644 index 9478bcd08..000000000 --- a/system/sync/sync_moodle24_user.php +++ /dev/null @@ -1,199 +0,0 @@ - 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 "
\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 "
\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 "
\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 "
\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
"; - else - echo "Fehler beim Senden des Mails an $to
"; - } - } - //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:
".nl2br($header.$message); - else - echo "Fehler beim Senden des Mails an $to:
".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 "
\n-- Ende ".date('Y-m-d H:i:s')." --\n"; -?> diff --git a/system/sync/sync_moodle_kurse.php b/system/sync/sync_moodle_kurse.php deleted file mode 100644 index 51d4c9d2e..000000000 --- a/system/sync/sync_moodle_kurse.php +++ /dev/null @@ -1,158 +0,0 @@ - - */ -/** - * 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
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
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
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
Student Sync Failed:".$mdl_user->errormsg; - } - } - else - { - $anzahl_fehler++; - echo "\nFailed:".$mdl_course->errormsg; - } - } - else - { - $vorhandene_kurse++; - } - } -} -echo "\n
Fertig"; -echo "\n
Neue Kurse:".$neue_kurse; -echo "\n
Vorhandene Kurse:".$vorhandene_kurse; -echo "\n
Anzahl Fehler:".$anzahl_fehler; diff --git a/system/sync/sync_moodle_user.php b/system/sync/sync_moodle_user.php deleted file mode 100644 index e076747fa..000000000 --- a/system/sync/sync_moodle_user.php +++ /dev/null @@ -1,159 +0,0 @@ -, - * Andreas Oesterreicher and - * Rudolf Hangl . - */ -/* - * 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
"; - else - echo "Fehler beim Senden des Mails an $to
"; - } - } - //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:
".nl2br($header.$message); - else - echo "Fehler beim Senden des Mails an $to:
".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"; -?> diff --git a/tests/codeception/tests/api/v1/EducationMoodleCept.php b/tests/codeception/tests/api/v1/EducationMoodleCept.php deleted file mode 100644 index 26ec9ddd7..000000000 --- a/tests/codeception/tests/api/v1/EducationMoodleCept.php +++ /dev/null @@ -1,11 +0,0 @@ -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(); diff --git a/vilesci/lehre/lv_merge.php b/vilesci/lehre/lv_merge.php index 327240d79..db4c34228 100644 --- a/vilesci/lehre/lv_merge.php +++ b/vilesci/lehre/lv_merge.php @@ -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 = 'Differences in courses (only columns with differences are shown)'; $msg .= ''; foreach ($lv_diff1 as $key => $value) @@ -131,7 +131,7 @@ if (isset($_REQUEST['compare'])) } $msg .= '
'; } - 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.="/*
*/"; $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.="/*
Addons
*/"; - + //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
"; //$msg .= "
".mb_eregi_replace(';',';
',$update_qry); - + if($db->db_query($update_qry)) { $msg = "Merged successfully
"; @@ -276,10 +288,10 @@ if((isset($_REQUEST['transfer']) || isset($_REQUEST['mergeDelete'])) && isset($c $msg_qry = str_replace('*/', '', $msg_qry); $msg .= "
".$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 .= "Error while writing log-file
"; @@ -408,11 +420,11 @@ foreach ($studiengang->result as $stg) echo ''; echo ''; } - + echo ''; $maxsemester[$stg->studiengang_kz] = $stg->max_semester; $typ = $stg->typ; -} +} echo '
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 ''; $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 ''; } @@ -489,7 +501,7 @@ echo ''; } echo '
'; @@ -523,11 +535,11 @@ foreach ($studiengang->result as $stg) echo '
'; echo ''; } - + echo ''; $maxsemester[$stg->studiengang_kz] = $stg->max_semester; $typ = $stg->typ; -} +} echo '
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 ''; $stp_arr[] = $plan->orgform_kurzbz; } @@ -602,7 +614,7 @@ echo '
'; echo ' Type
'; @@ -642,7 +654,7 @@ echo ''; - + echo ' - - '; -echo $messages; -echo ' - - '; -?> diff --git a/vilesci/moodle/account_verwaltung.php b/vilesci/moodle/account_verwaltung.php deleted file mode 100644 index d3c31d1c8..000000000 --- a/vilesci/moodle/account_verwaltung.php +++ /dev/null @@ -1,204 +0,0 @@ - - * 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('

MOODLE Datenbank zurzeit NICHT Online.
Bitte etwas Geduld.
Danke
'); -// *********************************************************************************************** -// 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.=' -
- Bitte Suchbegriff eingeben: - - -
-
'; -// *********************************************************************************************** -// 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.= ''. $db->db_num_rows($result).' Person(en) gefunden'; - - $content.=''; - - // Header Teil Information der Funktion - $content.=''; - $content.=''; - $content.=''; - - // Headerinformation der Tabellenfelder - $content.=''; - $content.=''; - $content.=''; - $content.=''; - $content.=''; - $content.=''; -# $content.=''; - $content.=''; - - // 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.= ''; - $content.= ''; - $content.= ''; - $content.= ''; - $content.= ''; - $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.= ''; - } - else // Anzeige bestehende Moodle User ID - { - $content.= ''; - } - // Tastatureingabe ermoeglichen - $content.= ''; - } // Ende Schleife der gefundenen User - $content.= '
Benutzer
 Nachname  Vorname  UserID  Status  MoodleAccount  Bearbeitung 
'.$row->nachname.''.$row->vorname.''.$row->uid.''.(!empty($row->aktiv) && mb_strtoupper($row->aktiv)!='F' && mb_strtoupper($row->aktiv)!='FALSE' ?'aktiv':'deaktiviert').''; - $content.='
'; - $content.= ''; - $content.= ''; - $content.= 'table_row_insert.png'; - $content.= ''; - $content.= 'anlegen'; - $content.='
'; - $content.= '
'.((isset($objMoodle->mdl_user_id) && !empty($objMoodle->mdl_user_id))?$objMoodle->mdl_user_id:'').'
'; - $content.= 'zum Anfang'; - } // Ende SQL Result abfrage - } // Ende ob Suchanfrage gestellt (Submit) wurde - $content=' - - - Moodle - Accountverwaltung - - - - - -

Moodle - Accountverwaltung

- - '.$content.' - - - '; - exit($content); -?> diff --git a/vilesci/moodle/account_verwaltung24.php b/vilesci/moodle/account_verwaltung24.php deleted file mode 100644 index db116686c..000000000 --- a/vilesci/moodle/account_verwaltung24.php +++ /dev/null @@ -1,162 +0,0 @@ - - */ -/** - * 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.=' -
- Bitte Suchbegriff eingeben: - - -
-
'; - -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.=''; - - // Header Teil Information der Funktion - $content.=''; - $content.=''; - $content.=''; - - // Headerinformation der Tabellenfelder - $content.=''; - $content.=''; - $content.=''; - $content.=''; - $content.=''; - $content.=''; - $content.=''; - - // 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.= ''; - $content.= ''; - $content.= ''; - $content.= ''; - $content.= ''; - - 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.= ''; - } - else // Anzeige bestehende Moodle User ID - { - $content.= ''; - } - $content.= ''; - } - $content.= '
Benutzer
 Nachname  Vorname  UserID  Status  MoodleAccount 
'.$db->convert_html_chars($row->nachname).''.$db->convert_html_chars($row->vorname).''.$db->convert_html_chars($row->uid).''.(!empty($row->aktiv) && mb_strtoupper($row->aktiv)!='F' && mb_strtoupper($row->aktiv)!='FALSE' ?'aktiv':'deaktiviert').''; - $content.='
'; - $content.= ''; - $content.= ''; - $content.= 'table_row_insert.png'; - $content.= 'anlegen'; - $content.='
'; - $content.= '
'.((isset($moodle->mdl_user_id) && !empty($moodle->mdl_user_id))?$moodle->mdl_user_id:'').'
'; - } -} -echo ' - - - Moodle 2.4 - Accountverwaltung - - - - -

Moodle 2.4 - Accountverwaltung

-'.$content.' - - '; -?> diff --git a/vilesci/moodle/kurs_verwaltung.php b/vilesci/moodle/kurs_verwaltung.php deleted file mode 100644 index acf98fd9c..000000000 --- a/vilesci/moodle/kurs_verwaltung.php +++ /dev/null @@ -1,352 +0,0 @@ - - * 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.=' -
- '; - // Studiensemester public.tbl_studiensemester_kurzbz - $content.=''; - - // Studiengang public.tbl_studiengang_kz - $content.=''; - - // Semster public.tbl_studiengang_kz - max Semester des Selektierten Studiengangs - $content.=''; - - $content.=' -
StudiensemesterStudiengangSemsterKurs ID'; - - $content.=' -
-
-
'; - -// *********************************************************************************************** -// 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.= ''. count($objMoodle->result).' Kurs(e) gefunden'; - $content.=''; - // Header Teil Information der Funktion - $content.=''; - $content.=''; - $content.=''; - $content.=''; - $content.=''; - - // Headerinformation der Tabellenfelder - $content.=''; - $content.=''; - $content.=''; - $content.=''; - $content.=''; - $content.=''; - $content.=''; - $content.=''; - $content.=''; - $content.=''; - $content.=''; - $content.=''; - $content.=''; - - - - 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.=''; - $content.=''; - $content.=''; - $content.=''; - - // Anzahl Benotungen - Aktivitaeten und Lehrmaterial - $content.=''; - - // Bearbeitung Submit - $content.= ''; - $content.=''; - - } - - - - - // Alle Moodlekurse in einer Schleife anzeigen. - for($i=0;$iresult);$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.=''; - $content.=''; - $content.=''; - $content.=''; - $content.=''; - $content.=''; - $content.=''; - $content.=''; - $content.=''; - - // Anzahl Benotungen - $content.=''; - // Anzahl Aktivitaeten und Lehrmaterial - $content.=''; - - // Bearbeitung Submit - $content.= ''; - $content.=''; - } // Ende Moodlekurse in einer Schleife anzeigen. - $content.= '
MoodlekursAnzahlKurs
 Lehrveranstaltung  Kurzbz.  StgKz  LV  Sem  LE  Kursbezeichnung  ID  Benotungen  Aktivitäten  Bearbeiten 
es gibt keine Referenz zum Kurs! Moodlekurs entfernt ist möglich. '.$objMoodle->mdl_shortname.''.$kursid.' '; - $content.='
'; - $content.= ''; - - $content.= ''; - $content.= ''; - $content.= ''; - - $content.= ''; - $content.= ''; - $content.= 'table_row_delete.png'; - $content.= ''; - $content.= 'entfernen'; - $content.='
'; - $content.= '
'.$objMoodle->result[$i]->lehrveranstaltung_bezeichnung.''.$objMoodle->result[$i]->lehrveranstaltung_kurzbz.''.$objMoodle->result[$i]->lehrveranstaltung_studiengang_kz.''.$objMoodle->result[$i]->lehrveranstaltung_id.''.$objMoodle->result[$i]->lehrveranstaltung_semester.''.$objMoodle->result[$i]->lehreinheit_id.''.$objMoodle->result[$i]->mdl_shortname.''.$objMoodle->result[$i]->mdl_course_id.''.$objMoodle->result[$i]->mdl_benotungen.''.($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 ).''; - $content.='
'; - $content.= ''; - $content.= ''; - $content.= ''; - $content.= ''; - $content.= ''; - $content.= ''; - $content.= ''; - $content.= 'table_row_delete.png'; - $content.= ''; - $content.= 'entfernen'; - $content.='
'; - $content.= '
'; - $content.= 'zum Anfang'; - - } // Ende IF Bedingung Anzeige + Datengefunden - -// *********************************************************************************************** -// HTML Header und Foot zum Content (Ausgabestring) hinzufuegen, und Anzeigen -// *********************************************************************************************** - $content=' - - - Moodle - Kursverwaltung - - - - - -

Moodle - Kursverwaltung

- - '.$content.'

'.implode('
',$errormsg).'

- - - '; - exit($content); -?> diff --git a/vilesci/moodle/kurs_verwaltung24.php b/vilesci/moodle/kurs_verwaltung24.php deleted file mode 100644 index 4c28784e4..000000000 --- a/vilesci/moodle/kurs_verwaltung24.php +++ /dev/null @@ -1,213 +0,0 @@ - - */ - -/* -* 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 ' - - - - - - - - Moodle - Kursverwaltung - - - - '; - - echo'

Moodle - Kursverwaltung

-
- - - '; - - echo ' - -
Studiensemester: Studiengang:
'.$message.'
'; - - // 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 ' - - - - - - - - - - - - - '; - - 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 ' - - - - - - - - - - '; - } - echo '
LehrveranstaltungLehreinheit - KurzbzMoodle IDSemesterVersion1)2)
'.$lv->bezeichnung.''.$lehreinheit.''.$lv->kurzbz.''.$row->mdl_course_id.''.$lv->semester.''.$row->moodle_version.'
'; - } - - echo "1: Löscht Eintrag nur aus Zwischentabelle
- 2: Löscht Eintrag in Zwischentabelle und den Moodlekurs
"; - - echo "" - -?> diff --git a/vilesci/moodle/rollenzuteilung24.php b/vilesci/moodle/rollenzuteilung24.php deleted file mode 100644 index a0561caa5..000000000 --- a/vilesci/moodle/rollenzuteilung24.php +++ /dev/null @@ -1,105 +0,0 @@ - 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 ' - - - - Moodle 2.4 Rollenzuteilung - - - - -

Moodle Rollenzuteilung

-
- - - - - - - - - - - - - - - - - -
Moodle Kurs IDs getrennt mit \',\':
Rolle - -
UID
-
-'; -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 ' -'; -?> diff --git a/vilesci/moodle/user_sync.php b/vilesci/moodle/user_sync.php deleted file mode 100755 index 898f58d06..000000000 --- a/vilesci/moodle/user_sync.php +++ /dev/null @@ -1,99 +0,0 @@ - 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 ' - - - - Moodle 1.9 User Sync - - - - -

Moodle 1.9 User Sync

- Auf dieser Seite können die Teilnehmer eines Moodle 1.9 Kurses aktualisiert werden. - Geben Sie dazu die ID des Moodle Kurses ein.

- -
- - - - - - - - - - - - - -
Moodle Kurs ID:
  
-
-'; -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 '

Übertrage LektorInnen


'; - if($moodle->sync_lektoren($mdl_course_id)) - { - echo $moodle->log; - } - else - echo 'Fehler bei der Zuteilung:'.$moodle->errormsg; - - $moodle = new moodle19_user(); - echo '

Übertrage Studierende


'; - 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 ' -'; -?> diff --git a/vilesci/moodle/user_sync24.php b/vilesci/moodle/user_sync24.php deleted file mode 100755 index dbddfae76..000000000 --- a/vilesci/moodle/user_sync24.php +++ /dev/null @@ -1,112 +0,0 @@ - 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 ' - - - - Moodle 2.4 User Sync - - - - -

Moodle 2.4 User Sync

- Auf dieser Seite können die Teilnehmer eines Moodle 2.4 Kurses aktualisiert werden. - Geben Sie dazu die ID des Moodle Kurses ein.

-
- - - - - - - - - - - - - -
Moodle Kurs ID:
  
-
-'; -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 '

Übertrage LektorInnen


'; - 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 '

Übertrage Fachbereichsleitung


'; - if($moodle->sync_fachbereichsleitung($mdl_course_id)) - { - echo $moodle->log; - } - else - echo 'Fehler bei der Zuteilung:'.$moodle->errormsg; - } - - $moodle = new moodle24_user(); - echo '

Übertrage Studierende


'; - if($moodle->sync_studenten($mdl_course_id)) - { - echo $moodle->log; - echo '
'; - echo $moodle->errormsg; - } - else - echo 'Fehler bei der Zuteilung:'.$moodle->errormsg; - } - else - { - echo 'Fehler: Bitte füllen Sie alle Felder aus'; - } -} -echo ' -'; -?> diff --git a/vilesci/moodle/zuteilung_verwaltung.php b/vilesci/moodle/zuteilung_verwaltung.php deleted file mode 100644 index 64ff1799c..000000000 --- a/vilesci/moodle/zuteilung_verwaltung.php +++ /dev/null @@ -1,711 +0,0 @@ - - * 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 "

$studiensemester_kurzbz.$studiengang_kz.$lehrveranstaltung_id.$lehreinheit_id.$semester

"; - - // FormName erzeugen - $cFormName='searchMoodleCurse'.$studiensemester_kurzbz.$studiengang_kz.$lehrveranstaltung_id.$lehreinheit_id.$semester; - $content.='

Moodle - Kursverwaltung

-
- - - - - - - - - - '; - //--------------------------------------------------------------------------- - // Auswahlfelder - $content.=''; - - // Studiensemester public.tbl_studiensemester_kurzbz - $content.=''; - - //--------------------------------------------------------------------------- - // Studiengang public.tbl_studiengang_kz - $content.=''; - - //--------------------------------------------------------------------------- - // Semster public.tbl_studiengang_kz - max Semester des Selektierten Studiengangs - $content.=''; - - //--------------------------------------------------------------------------- - // Lehrveranstaltungen - $content.=''; - //--------------------------------------------------------------------------- - // Lehreinheit - $content.=''; - //--------------------------------------------------------------------------- - // ---- Moodle mdl_course_id - $content.=' -
StudiensemStgKzSemLehrveranstaltungLehreinheitenMoodlekurs 

-  nur in Lehre  -  nur aktive  -
oder KursID '.$mdl_course_stat; - - //--------------------------------------------------------------------------- - // ---- Submitknopf - $content.=' - - - - -
-
'; - - $content.='
'; - -// *********************************************************************************************** -// 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 "
$mdl_course_id,$studiengang_kz,$lehreinheit_id,$lehrveranstaltung_id,$studiensemester_kurzbz,$semester
"; - 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=' - - - Moodle - Kurszuteilungverwalten - - - - - - - '.$content.' - - -

'.implode('
',$errormsg).'

- - '; - 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).'
'; - // Header Top mit Anzahl der gelisteten Kurse - $content.='
'; - $content.=''; - - // Header Teil Information der Funktion - // Headerinformation der Tabellenfelder - $content.=''; - - $content.=''; - $content.=''; - $content.=''; - $content.=''; - $content.=''; - $content.=''; - $content.=''; - $content.=''; - - // Alle Moodlekurse in einer Schleife anzeigen. - for($i=0;$i'; - $content.=''; - - $content.=''; - 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.=''; - $content.=''; - $content.=''; - - // Lehrveranstaltung - if ($arrMoodlekurs[$i]->moodle_lehrveranstaltung_id) - { - $lvID=$arrMoodlekurs[$i]->moodle_lehrveranstaltung_id; - $kurzbz=''.$arrMoodlekurs[$i]->lehrveranstaltung_kurzbz.', '.$arrMoodlekurs[$i]->lehrveranstaltung_bezeichnung.($arrMoodlekurs[$i]->lehrveranstaltung_lehrform_kurzbz?', '.$arrMoodlekurs[$i]->lehrveranstaltung_lehrform_kurzbz:''); - } - else - { - $lvID='*'.$arrMoodlekurs[$i]->lehrveranstaltung_id; - $kurzbz='zur Lehreinheit - '.$arrMoodlekurs[$i]->lehrveranstaltung_kurzbz.', '.$arrMoodlekurs[$i]->lehrveranstaltung_bezeichnung.($arrMoodlekurs[$i]->lehrveranstaltung_lehrform_kurzbz?', '.$arrMoodlekurs[$i]->lehrveranstaltung_lehrform_kurzbz:'');; - } - $content.=''; - - // 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.=''; - $content.=''; - - // Moodle - if (empty($arrMoodlekurs[$i]->mdl_shortname)) - $arrMoodlekurs[$i]->mdl_shortname=$arrMoodlekurs[$i]->mdl_fullname; - $content.=''; - $content.=''; - // Bearbeitung Submit - - $cFormNameDel=$cFormName.'del'; - - if ($arrMoodlekurs[$i]->mdl_course_id) - { - $content.= ''; - - $content.= ''; - - } - else - { - $content.= ''; - } - $content.=''; - - $content.=' - '; - - } // Ende Moodlekurse in einer Schleife anzeigen. - $content.= '
 StSem  Studiengang  Sem  Lehrveranstaltung  Lehreinheit  Moodle Kurs  bearbeiten 
'; - $content.=''; - $content.= ''; - $content.= ''; - $content.='
bullet_arrow_down.png bullet_arrow_down.png 
'; - $content.='
'.$arrMoodlekurs[$i]->studiensemester_kurzbz.''.$stg_obj->kurzbzlang.' '.$stg_obj->bezeichnung.($bDebug?' '.$stg_obj->studiengang_kz:'').' '.$arrMoodlekurs[$i]->lehrveranstaltung_semester.' '; - $content.=$kurzbz. ($bDebug?' '.$lvID:'').' '.$gruppen.' '.($bDebug?$leID:'').' '.$arrMoodlekurs[$i]->mdl_shortname.' '.$arrMoodlekurs[$i]->mdl_course_id.' '; - $content.='
'; - $content.= ''; - $content.= ''; - $content.= ''; - $content.= ''; - $content.= ''; - $content.= ''; - $content.= 'edit.png'; - $content.= ''; - $content.= 'ändern'; - $content.='
'; - $content.= '
'; - $content.='
'; - $content.= ''; - $content.= ''; - $content.= ''; - $content.= ''; - $content.= ''; - $content.= ''; - $content.= 'table_row_delete.png'; - $content.= ''; - $content.= 'entfernen
aus Lehre'; - $content.='
'; - $content.= '
'; - $content.='
'; - $content.= ''; - $content.= ''; - $content.= ''; - $content.= ''; - $content.= ''; - $content.= ''; - $content.= 'table_row_delete.png'; - $content.= ''; - $content.= 'entfernen'; - $content.='
'; - $content.= '
- - '; - - $content.=' - - '; - // Moodle - $content.=''; - $content.=''; - $content.=''; - - $content.=' - - '; - - $content.=''; - $content.=''; - $content.=''; - $content.=''; - - $content.=''; - $content.=''; - $content.=''; - $content.=''; - - $content.=''; - $content.=''; - $content.=''; - $content.=''; - - $content.=''; - $content.=''; - $content.=''; - $content.=''; - - $content.=''; - $content.=''; - - if ($arrMoodlekurs[$i]->moodle_lehrveranstaltung_id) - { - $content.=''; - } - else - { - $content.=''; - } - - $content.=''; - $content.=''; - // Bearbeitung Submit - $content.=''; - if ($arrMoodlekurs[$i]->mdl_course_id) - { - # $cFormName='workMoodleCurseDetail'.$i; - $content.= ''; - - } - else - { - $content.= ''; - } - $content.= ''; - $content.='
 
Detailanzeige Moodelkurs '.$arrMoodlekurs[$i]->mdl_course_id.($arrMoodlekurs[$i]->moodle_lehrveranstaltung_id?' - zur Lehrveranstaltung':' - zur Lehreinheit'). '
 Moodle Kurs '.$arrMoodlekurs[$i]->mdl_fullname.'
 '. $arrMoodlekurs[$i]->mdl_shortname.', 

  Studiensemester '.$arrMoodlekurs[$i]->studiensemester_kurzbz.'
  Studiengang '.$stg_obj->kuerzel.' '.$stg_obj->bezeichnung.' ('.$stg_obj->kurzbzlang.'), '.$stg_obj->studiengang_kz.' 
 Semester '.$arrMoodlekurs[$i]->lehrveranstaltung_semester.' 
 Lehrveranstaltung '.(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.' 
 Lehreinheit '; - $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.='
'; - } - $content.='
'.$gruppen.', '.($arrMoodlekurs[$i]->lehreinheit_id?$arrMoodlekurs[$i]->lehreinheit_id:'').'
 
'; - $content.= 'edit.png'; - $content.= ''; - $content.= 'ändern'; - $content.= ' 
'; - $content.='
'; - return $content; - } - - -// *********************************************************************************************** - -// String auf Laenge abschneiden - -// *********************************************************************************************** - - function CutString($strVal, $limit) - { - if(strlen($strVal) > $limit+3) - { - return substr($strVal, 0, $limit) . "..."; - } - else - { - return $strVal; - } - } - - - -?> diff --git a/vilesci/moodle/zuteilung_warten.php b/vilesci/moodle/zuteilung_warten.php deleted file mode 100644 index 448ad236b..000000000 --- a/vilesci/moodle/zuteilung_warten.php +++ /dev/null @@ -1,779 +0,0 @@ - - * 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.='

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.'

'; - } - else - { - $content.='

Moodle Kurs Neuzuteilung '.$mdl_course_id.' - '.$objMoodle->result[0]->fullname.' - '.$objMoodle->result[0]->shortname.'

'; - } -// *********************************************************************************************** -// HTML Listenanzeige (Teil 2) Aenderungsdaten -// *********************************************************************************************** - // FormName erzeugen - $cFormName='workMoodleCurse'.$mdl_course_id; - $content.=' -
- - - - - - - - - '; - - //--------------------------------------------------------------------------- - // Studiensemester public.tbl_studiensemester_kurzbz - $content.=''; - - //--------------------------------------------------------------------------- - // Studiengang public.tbl_studiengang_kz - $content.=''; - - //--------------------------------------------------------------------------- - // Semster public.tbl_studiengang_kz - max Semester des Selektierten Studiengangs - $content.=''; - $content.=''; - //--------------------------------------------------------------------------- - - //--------------------------------------------------------------------------- - // ---- Submitknopf - $content.=''; - $content.='
 
 Studiensemester  Studiengang  Semster  
'; - - $content.=''; - - //--------------------------------------------------------------------------- - // Lehrveranstaltungen - $content.=''; - $content.=''; - - $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.=''; - $content.=''; - - - - //--------------------------------------------------------------------------- - // Lehreinheit - $content.=''; - $content.=''; - $content.=''; - $content.=''; - $content.='
 Lehrveranstaltung  Moodle Kurs für gesamte LV
 Lehreinheiten '; - - # $content.=''; - - $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.=''; - $content.=''; - $content.=''; - } - 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;$iilehreinheit_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;$iiresult);$ii++) - { - if ($objMoodle->result[$ii]->moodle_lehreinheit_id==$row->lehreinheit_id) - $le_gefunden=true; - } - } - - $content.=''; - // LE Text - $content.=''; - // LE Checkbox - $content.=''; - $content.=''; - } - } - $bGefundenLehreinheit=(count($le_obj->lehreinheiten)?true:false); - - $content.='
Moodlekurs zu LV '.$aendern_studiensemester_kurzbz.'/'.$aendern_lehrveranstaltung_id.'
Achtung ! Es gibt keine Lehreinheit für '.$aendern_studiensemester_kurzbz.'-'.$aendern_bezeichnung.' '.$lv_kurz_bez.'
'.$row->lehrform_kurzbz.' '.$gruppen.' '.$row->lehreinheit_id.'  '.$lektoren.'
 
- - - - - - '; - if (!$new ) - { - // Header - $content.=''; - } - - $content.='
Moodle : -
Kursbez.:  -
Kurzbez.:  -
 Gruppen übernehmen:
- - - - - - - - '; - $content.=''; - $content.=''; - $content.='
bullet_arrow_down.pnganzeigen aktuelle '.($objMoodle->result[0]->moodle_lehrveranstaltung_id?' Lehrveranstaltung ':' Lehreinheiten').'
bullet_arrow_down.pngausblenden ktuelle '.($objMoodle->result[0]->moodle_lehrveranstaltung_id?' Lehrveranstaltung ':' Lehreinheiten').'
-
-
'; - //--------------------------------------------------------------------------- - // Fuer bestehende Vilescidaten wird eine Detailinformation angezeigt - if (!$new ) - { - $content.=''; - //--------------------------------------------------------------------------- - // @studiengang_kz Studiengang - if ($studiengang_kz) - { - if ($stg_obj->load($studiengang_kz)) - { - $content.=''; - $content.=' - - '; - $content.=''; - } - else - { - $errormsg[]='Studieng '.$studiengang_kz.' wurden nicht gefunden! '.$stg_obj->errormsg; - } - } - else - { - $content.=''; - } - $content.=''; - $content.=' - - - '; - $content.=''; - $content.=''; - $content.=''; - $content.='
Studiengang    - - - - - - - - -
'.(isset($objMoodle->result[0]) && isset($objMoodle->result[0]->studiensemester_kurzbz)?$objMoodle->result[0]->studiensemester_kurzbz:'').'  '.$stg_obj->kuerzel.' '.$stg_obj->bezeichnung.' ('.$stg_obj->kurzbzlang.') ID '.$studiengang_kz.' 
-
-
Lehrveranstaltung'.(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.' ':' - ').'result[0]->moodle_lehrveranstaltung_id?' class="error" ':'').'>result[0]->moodle_lehrveranstaltung_id?' checked="checked" ':'').'> Lehreinheiten'; - - $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;$iiresult);$ii++) - { - if ($objMoodle->result[$ii]->moodle_lehreinheit_id==$row->lehreinheit_id) - $le_gefunden=true; - } - $content.=''; - $content.=''; - $content.=''; - $content.=''; - } - $content.='
'.$row->lehrform_kurzbz.' '.$gruppen.' ID '.$row->lehreinheit_id.'  '.$lektoren.'
'; - } - -// *********************************************************************************************** -// HTML Header und Foot zum Content (Ausgabestring) hinzufuegen, und wartung -// *********************************************************************************************** - $content=' - - - Moodle - Kurszuteilungverwalten - - - - - - - - - '.$content.'

'.implode('
',$errormsg).'

-
- - '; - 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; - } - } - -?> diff --git a/vilesci/personen/suche.php b/vilesci/personen/suche.php index c19b21039..b0a174eaa 100644 --- a/vilesci/personen/suche.php +++ b/vilesci/personen/suche.php @@ -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 = ' From 9e14e39b661adb7b7c437a5672c55d79f03aec64 Mon Sep 17 00:00:00 2001 From: alex Date: Thu, 3 Aug 2017 13:48:10 +0200 Subject: [PATCH 19/19] Added Comments in Controllers called html_escape function for all textfields before saving (against html injection) Reformatted Fixed Studienjahr Dropdown prefill in Studiensemester view --- .../controllers/organisation/Studienjahr.php | 79 +++++++++++++++++-- .../organisation/Studiensemester.php | 62 ++++++++++++--- .../views/organisation/studienjahr.php | 4 +- .../views/organisation/studienjahrEdit.php | 2 +- .../views/organisation/studienjahrForm.php | 4 +- .../views/organisation/studienjahrNew.php | 23 ++++-- .../views/organisation/studiensemester.php | 2 +- .../organisation/studiensemesterEdit.php | 5 +- .../views/organisation/studiensemesterNew.php | 50 ++++++++++-- 9 files changed, 195 insertions(+), 36 deletions(-) diff --git a/application/controllers/organisation/Studienjahr.php b/application/controllers/organisation/Studienjahr.php index 46f6145ba..8c98a4c8b 100644 --- a/application/controllers/organisation/Studienjahr.php +++ b/application/controllers/organisation/Studienjahr.php @@ -2,20 +2,33 @@ if (!defined("BASEPATH")) exit("No direct script access allowed"); +/** + * Studienjahr controller for listing, editing and removing a Studienjahr + */ class Studienjahr extends VileSci_Controller { + /** + * Studienjahr constructor. + * loads model for Studienjahr + */ public function __construct() { parent::__construct(); $this->load->model("organisation/Studienjahr_model", "StudienjahrModel"); } - public function index() - { - $this->listStudienjahr(); - } + /** + * by default, Studienjahre are listed by calling the listStudienjahr function + */ + /* public function index() + { + $this->listStudienjahr(); + }*/ + /** + * lists all Studienjahre + */ public function listStudienjahr() { $studienjahr = $this->StudienjahrModel->load(); @@ -30,6 +43,13 @@ class Studienjahr extends VileSci_Controller $this->load->view("organisation/studienjahr.php", $data); } + /** + * shows view for editing a Studienjahr with a given Kurzbezeichnung + * replaces slash in Kurzbezeichnung with underscore, + * otherwise the Kurzbezeichnung is treated as part of url navigation + * e.g. organisation/studienjahr/editStudienjahr/2017/18 + * @param $studienjahr_kurzbez Studienjahrkurzbezeichnung, e.g. 2017/18 + */ public function editStudienjahr($studienjahr_kurzbez) { $studienjahr_kurzbez = str_replace("_", "/", $studienjahr_kurzbez); @@ -44,6 +64,12 @@ class Studienjahr extends VileSci_Controller $this->load->view("organisation/studienjahrEdit.php", $data); } + /** + * shows view for adding a Studienjahr + * retrieves all Studienjahre, increases last Studienjahr in database by 1 to get current Studienjahr + * sends current Studienjahrkurzbezeichnung to view + * So view can prefill fields with current Studienjahr + */ public function newStudienjahr() { $this->StudienjahrModel->addOrder('studienjahr_kurzbz', "DESC"); @@ -60,6 +86,11 @@ class Studienjahr extends VileSci_Controller $this->load->view("organisation/studienjahrNew.php", $data); } + /** + * helper function for extracting the two years from Studienjahrkurzbezeichnung + * @param $studienjahr_kurzbez Studienjahrkurzbezeichnung, e.g. 2017/18 + * @return array contains the two years, e.g. [0] - 2017, [1] - 18 + */ private function __getYearsFromStudienjahr($studienjahr_kurzbez) { $firstyear = intval(substr($studienjahr_kurzbez, 0, 4)); @@ -67,6 +98,12 @@ class Studienjahr extends VileSci_Controller return array($firstyear, $secondyear); } + /** + * inserts a Studienjahr + * replaces slash in Kurzbezeichnung with underscore, + * redirects to edit page after inserting. + * saved=true is a GET parameter passed for showing save message + */ public function insStudienjahr() { $data = $this->__retrieveStudienjahrData(); @@ -80,13 +117,20 @@ class Studienjahr extends VileSci_Controller redirect("/organisation/studienjahr/editStudienjahr/".str_replace("/", "_", $data['studienjahr_kurzbz']."?saved=true")); } - private function __retrieveStudienjahrData(){ + /** + * gets Studienjahr data from input fields (POST request) + * escapes html characters for all texts coming from text input fields + * validates the Studienjahr data before returning it or throwing an error + * @return array contains all data for a Studienjahr + */ + private function __retrieveStudienjahrData() + { $studienjahr_kurzbz = $this->input->post("studienjahrkurzbz"); $bezeichnung = $this->input->post("studienjahrbz"); $data = array( "studienjahr_kurzbz" => $studienjahr_kurzbz, - "bezeichnung" => $bezeichnung, + "bezeichnung" => html_escape($bezeichnung) ); $validation = $this->_validate($data); @@ -99,17 +143,30 @@ class Studienjahr extends VileSci_Controller } } + /** + * runs checks on Studienjahr data + * checks if Studienjahr Kurzbezeichnung has the correct form e.g. 2017/18 + * checks if second year in Studienjahr is exactly one year after first + * @param $data contains all data for a Studienjahr + * @return array errorarray with error text if a check failed or success-array if all checks succeeded + */ private function _validate($data) { $studienjahr_kurzbz = $data['studienjahr_kurzbz']; $years = $this->__getYearsFromStudienjahr($studienjahr_kurzbz); - //if not desired form or second year comes not right after the first + //if wrong form or second year comes not right after the first $correctyears = $years[0] % 100 == $years[1] - 1; if (!preg_match("/^\d{4}\/\d{2}$/", $studienjahr_kurzbz) || !$correctyears) return error("Studienjahrbezeichnung muss folgende Form haben: Jahreszahl/letzeZweiZahlenDesNächstenJahres, z.B. 2017/18"); - return success("Semesterdaten sind valide"); + return success("Studienjahrdaten sind valide"); } + /** + * updates a Studienjahr + * redirects to edit page after inserting + * replaces slash in Kurzbezeichnung with underscore + * saved=true is a GET parameter passed for showing save message + */ public function saveStudienjahr() { $data = $this->__retrieveStudienjahrData(); @@ -123,6 +180,12 @@ class Studienjahr extends VileSci_Controller redirect("/organisation/studienjahr/editStudienjahr/".str_replace("/", "_", $data['studienjahr_kurzbz']."?saved=true")); } + /** + * deletes a Studienjahr + * redirects to list Studienjahr view after deleting + * replaces slash in Kurzbezeichnung with underscore + * @param $studienjahr_kurzbez Studienjahrkurzbezeichnung, e.g. SS2017 + */ public function deleteStudienjahr($studienjahr_kurzbez) { $studienjahr_kurzbez = str_replace("_", "/", $studienjahr_kurzbez); diff --git a/application/controllers/organisation/Studiensemester.php b/application/controllers/organisation/Studiensemester.php index 242335bc7..5707bba4a 100644 --- a/application/controllers/organisation/Studiensemester.php +++ b/application/controllers/organisation/Studiensemester.php @@ -3,13 +3,15 @@ if (!defined("BASEPATH")) exit("No direct script access allowed"); /** - * Description of Semester - * - * @author root + * Studiensemester controller for listing, editing and removing a Studiensemester */ class Studiensemester extends VileSci_Controller { + /** + * Studiensemester constructor. + * loads model for Studiensemester and Studienjahr (Studienjahr needed for dropdown) + */ public function __construct() { parent::__construct(); @@ -17,11 +19,17 @@ class Studiensemester extends VileSci_Controller $this->load->model("organisation/Studienjahr_model", "StudienjahrModel"); } - public function index() - { - $this->listStudiensemester(); - } + /** + * by default, Studiensemesters are listed by calling the listStudiensemester function + */ + /* public function index() + { + $this->listStudiensemester(); + }*/ + /** + * lists all Studiensemesters + */ public function listStudiensemester() { $semester = $this->StudiensemesterModel->load(); @@ -36,6 +44,11 @@ class Studiensemester extends VileSci_Controller $this->load->view("organisation/studiensemester.php", $data); } + /** + * shows view for editing a Studiensemester with a given Kurzbezeichnung + * retrieves Studienjahre for showing in a dropdown in descending order + * @param $semester_kurzbez Semesterkurzbezeichnung, e.g. SS2017 + */ public function editStudiensemester($semester_kurzbez) { $semester = $this->StudiensemesterModel->load($semester_kurzbez); @@ -57,6 +70,10 @@ class Studiensemester extends VileSci_Controller $this->load->view("organisation/studiensemesterEdit.php", $data); } + /** + * shows view for adding a Studiensemester + * retrieves Studienjahre for showing in a dropdown in descending order + */ public function newStudiensemester() { $this->StudienjahrModel->addOrder('studienjahr_kurzbz', "DESC"); @@ -75,7 +92,8 @@ class Studiensemester extends VileSci_Controller /** * inserts a Studiensemester - * formats dates in english as required by database + * redirects to edit page after inserting. + * saved=true is a GET parameter passed for showing save message */ public function insStudiensemester() { @@ -91,6 +109,13 @@ class Studiensemester extends VileSci_Controller } + /** + * gets Studiensemester data from input fields (POST request) + * formats Studiensemester begin and end date as required by the database (english format) + * escapes html characters for all texts coming from text input fields + * validates the Studiensemester data before returning it or throwing an error + * @return array contains all data for a Studiensemester + */ private function __retrieveStudiensemesterData() { $studiensemester_kurzbz = $this->input->post("semkurzbz"); @@ -104,11 +129,11 @@ class Studiensemester extends VileSci_Controller $data = array( "studiensemester_kurzbz" => $studiensemester_kurzbz, - "bezeichnung" => $bezeichnung, + "bezeichnung" => html_escape($bezeichnung), "start" => $start, "ende" => $ende, "studienjahr_kurzbz" => $studienjahr_kurzbz, - "beschreibung" => $beschreibung, + "beschreibung" => html_escape($beschreibung), "onlinebewerbung" => $onlinebewerbung ); @@ -125,6 +150,13 @@ class Studiensemester extends VileSci_Controller } } + /** + * runs checks on Studiensemester data + * checks if Studiensemester Kurzbezeichnung has the correct form e.g. SS2017 + * checks if date was given in the correct format dd.mm.yyyy (german format) + * @param $data contains all data for a Studiensemester + * @return array errorarray with error text if a check failed or success-array if all checks succeeded + */ private function _validate($data) { $datepattern = "/^\d{2}.\d{2}.\d{4}$/"; @@ -138,6 +170,11 @@ class Studiensemester extends VileSci_Controller return success("Semesterdaten sind valide"); } + /** + * updates a Studiensemester + * redirects to edit page after inserting + * saved=true is a GET parameter passed for showing save message + */ public function saveStudiensemester() { $data = $this->__retrieveStudiensemesterData(); @@ -151,6 +188,11 @@ class Studiensemester extends VileSci_Controller redirect("/organisation/studiensemester/editStudiensemester/".$data['studiensemester_kurzbz']."?saved=true"); } + /** + * deletes a Studiensemester + * redirects to list Studiensemester view after deleting + * @param $semester_kurzbez Semesterkurzbezeichnung, e.g. SS2017 + */ public function deleteStudiensemester($semester_kurzbez) { $semester = $this->StudiensemesterModel->delete($semester_kurzbez); diff --git a/application/views/organisation/studienjahr.php b/application/views/organisation/studienjahr.php index c57761e6f..8cef4634d 100644 --- a/application/views/organisation/studienjahr.php +++ b/application/views/organisation/studienjahr.php @@ -1,5 +1,5 @@ load->view('templates/header', array('title' => 'StudienjahrList', 'tablesort' => true, 'tableid' => 't1', 'headers' => '2:{sorter:false}, 3:{sorter:false}', 'sortList' =>'0,1')); +$this->load->view('templates/header', array('title' => 'StudienjahrList', 'tablesort' => true, 'tableid' => 't1', 'headers' => '2:{sorter:false}, 3:{sorter:false}', 'sortList' => '0,1')); ?>
@@ -20,7 +20,7 @@ $this->load->view('templates/header', array('title' => 'StudienjahrList', 'table studienjahr_kurzbz); - ?> + ?> studienjahr_kurzbz; ?> bezeichnung; ?> diff --git a/application/views/organisation/studienjahrEdit.php b/application/views/organisation/studienjahrEdit.php index 0da943d12..b8e3817d0 100644 --- a/application/views/organisation/studienjahrEdit.php +++ b/application/views/organisation/studienjahrEdit.php @@ -6,7 +6,7 @@ $this->load->view('templates/header', array('title' => 'StudienjahrEdit', 'jquer
-

Studienjahr bearbeiten: bezeichnung; ?>

+

Studienjahr bearbeiten: studienjahr_kurzbz; ?>

"> diff --git a/application/views/organisation/studienjahrForm.php b/application/views/organisation/studienjahrForm.php index 17524a4f8..c68271f16 100644 --- a/application/views/organisation/studienjahrForm.php +++ b/application/views/organisation/studienjahrForm.php @@ -1,5 +1,5 @@ bezeichnung))?$jahr->bezeichnung:(isset($studienjahrkurzbz)?"Studienjahr ".$studienjahrkurzbz:""); +$bezeichnung = (isset($jahr->bezeichnung)) ? $jahr->bezeichnung : (isset($studienjahrkurzbz) ? "Studienjahr ".$studienjahrkurzbz : ""); ?> @@ -44,6 +44,6 @@ $bezeichnung = (isset($jahr->bezeichnung))?$jahr->bezeichnung:(isset($studienjah
-
+
\ No newline at end of file diff --git a/application/views/organisation/studienjahrNew.php b/application/views/organisation/studienjahrNew.php index ccc420e70..61c11b12e 100644 --- a/application/views/organisation/studienjahrNew.php +++ b/application/views/organisation/studienjahrNew.php @@ -8,7 +8,8 @@ $this->load->view('templates/header', array('title' => 'StudienjahrNew', 'jquery

Neues Studienjahr anlegen

" id="newStudienjahrForm"> + action="" + id="newStudienjahrForm">
@@ -22,6 +23,11 @@ $this->load->view('templates/header', array('title' => 'StudienjahrNew', 'jquery diff --git a/application/views/organisation/studiensemester.php b/application/views/organisation/studiensemester.php index 3e12df906..bc40b0ca8 100644 --- a/application/views/organisation/studiensemester.php +++ b/application/views/organisation/studiensemester.php @@ -1,5 +1,5 @@ load->view('templates/header', array('title' => 'StudiensemesterList', 'tablesort' => true, 'tableid' => 't1', 'headers' => '7:{sorter:false}, 8:{sorter:false}', 'sortList' =>'4,1')); +$this->load->view('templates/header', array('title' => 'StudiensemesterList', 'tablesort' => true, 'tableid' => 't1', 'headers' => '7:{sorter:false}, 8:{sorter:false}', 'sortList' => '4,1],[0,0')); ?>
diff --git a/application/views/organisation/studiensemesterEdit.php b/application/views/organisation/studiensemesterEdit.php index 2a8c36902..5bb574c23 100644 --- a/application/views/organisation/studiensemesterEdit.php +++ b/application/views/organisation/studiensemesterEdit.php @@ -7,10 +7,11 @@ $this->load->view('templates/header', array('title' => 'StudiensemesterEdit', 'd

Studiensemester bearbeiten: studiensemester_kurzbz; ?>

- "> + "> - + diff --git a/application/views/organisation/studiensemesterNew.php b/application/views/organisation/studiensemesterNew.php index dfda83df9..15494ed98 100644 --- a/application/views/organisation/studiensemesterNew.php +++ b/application/views/organisation/studiensemesterNew.php @@ -38,6 +38,11 @@ $this->load->view('templates/header', array('title' => 'StudiensemesterNew', 'jq ); }); + /** + * prefills all date-associated input fields depending on given Semesterkurzbezeichnung + * fires when value in input field Semesterkurzbezeichnung is changed + * @param semesterkurzbez + */ function prefillYearFields(semesterkurzbez) { if (!checkSemesterkurzbez(semesterkurzbez))return; var semester = semesterkurzbez.substr(0, 2); @@ -52,7 +57,7 @@ $this->load->view('templates/header', array('title' => 'StudiensemesterNew', 'jq } else { wsssbezeichnung = "Sommersemester"; jahrbez = jahr; - studienjahr = jahr + "/" + (parseInt(jahr.substr(2, 4)) - 1); + studienjahr = (parseInt(jahr) - 1) + "/" + (parseInt(jahr.substr(2, 4))); start = "01.02." + jahr; ende = "01.08." + jahr; } @@ -60,20 +65,55 @@ $this->load->view('templates/header', array('title' => 'StudiensemesterNew', 'jq $('input[name=sembz]').val(bezeichnung); $('input[name=semstart]').val(start); $('input[name=semende]').val(ende); - $('input[name=studienjahrkurzbz]').val(studienjahr); + $('select[name=studienjahrkurzbz]').val(studienjahr); } + /** + * prevents submitting the form data if data entered incorrectly + * additional check before php check for user-friendliness (no php die) + * outputs errormessages in case of wrong inputs + */ $('#newSemesterForm').submit(function (event) { var semesterkurzbez = $('input[name=semkurzbz]').val(); - if (checkSemesterkurzbez(semesterkurzbez))return; - $('#errormessage').text("Semesterkurzbezeichnung muss mit WS oder SS beginnen und mit einer Jahreszahl enden, z.B. SS2017"); - event.preventDefault(); + var startdatum = $('input[name=semstart]').val(); + var enddatum = $('input[name=semende]').val(); + var errormessage = ""; + var error = false; + if (!checkSemesterkurzbez(semesterkurzbez)) { + errormessage = "Semesterkurzbezeichnung muss mit WS oder SS beginnen und mit einer Jahreszahl enden, z.B. SS2017"; + error = true; + } else if (!checkDate(startdatum)) { + errormessage = "Startdatum falsch eingegeben. Richtiges Format: dd.mm.yyyy, z.B. 01.01.2017"; + error = true; + } else if (!checkDate(enddatum)) { + errormessage = "Enddatum falsch eingegeben. Richtiges Format: dd.mm.yyyy, z.B. 01.01.2017"; + error = true; + } + if (error) { + event.preventDefault(); + $('#errormessage').text(errormessage); + } }); + /** + * checks correct Semesterkurzbezeichnung format with regex + * @param semesterkurzbez + * @returns {boolean} whether the Semesterkurzbezeichnung has correct format + */ function checkSemesterkurzbez(semesterkurzbez) { var pattern = /^(WS|SS)\d{4}$/; return pattern.test(semesterkurzbez); } + + /** + * checks date for right (german) format + * @param date + * @returns {boolean} whether the Semesterkurzbezeichnung has correct format + */ + function checkDate(date) { + var pattern = /^\d{2}.\d{2}.\d{4}$/; + return pattern.test(date); + }