From 42960ffe20a78aae2a85ad1eb010d1b030f5f65a Mon Sep 17 00:00:00 2001 From: Andreas Oesterreicher Date: Wed, 2 Aug 2017 14:05:31 +0200 Subject: [PATCH] =?UTF-8?q?Moodle-Integration=20aus=20FHComplete=20Core=20?= =?UTF-8?q?entfernt=20und=20in=20eigenes=20Addon=20ausgelagert.=20Support?= =?UTF-8?q?=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).')

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