diff --git a/.gitignore b/.gitignore index 599468937..b7cf21913 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ documents/ .settings .project .buildpath +bin diff --git a/CHANGELOG.md b/CHANGELOG.md old mode 100644 new mode 100755 index 53842565a..3e0abb406 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,15 +9,18 @@ - **[CORE]** Reihungstest Punkteübernahme oder Prozentpunkte ist konfigurierbar - **[CIS]** LVPlan Export für Excel - **[FAS]** Termine Karteireiter im FAS zeigt die Anmerkung aus dem LVPlan an +- **[CIS]** Onlinebewerbungstool greift auf mehrsprachige Statusbezeichnungen zu. ### Changed - **[FAS]** Dokumente Menü im FAS neu sortiert um den Lebenszyklus des Studierenden abzubilden - **[CORE]** LVPlan Update Mail ist nun zweisprachig Deutsch/Englisch - **[FAS]** Prüfungen im FAS werden nur noch vom aktuell ausgewählten Studiensemester angezeigt. Umschalten auf volle Ansicht möglich -- **[CIS]** LVPlan Begrenzung der 4er Blockung aufgehoben. - +- **[CIS]** LVPlan Begrenzung der 4er Blockung aufgehoben. +- **[CIS]** Im Menü 'Zeitsperren' Link zu Resturlaubsübersicht entfernt. Falls benötigt Verlinkung über CMS möglich. + ### Updateinfo -- **[FAS]** Für Lehraufträge muss eine Unoconv-Vorlage erstellt werden, da der für xsl-fo notwendige Seitenumbruch-Tag aus dem RDF entfernt wurde. +- **[FAS]** Für Lehraufträge muss eine Unoconv-Vorlage erstellt werden, da der für xsl-fo notwendige Seitenumbruch-Tag aus dem RDF entfernt wurde. +- **[FAS]** Mehrsprachigkeitsspalte tbl_status.bezeichnung_mehrsprachig wird durch das Updatescript automatisch in den ersten beiden Sprachen mit der status_kurzbz vorbefüllt. Übersetzungen sind anzupassen. ## [3.1.0] - 2015-11-12 ### Added @@ -25,7 +28,7 @@ - **[FAS]** Bei Noten können zusätzlich Punkte gespeichert werden. Notenschlüssel für Gesamtnote kann hinterlegt werden - **[FAS]** Anwesenheiten von Studierenden können erfasst werden - **[FAS]** Vertragsverwaltung bei Mitarbeiter -- **[FAS]** Dokumente im FAS können mit SHIFT bzw STRG statt als PDF auch als DOC oder ODT erstellt werden +- **[FAS]** Dokumente im FAS können mit SHIFT bzw STRG statt als PDF auch als DOC oder ODT erstellt werden - **[BERECHTIGUNG]** system/changeoutputformat Legt fest ob Dokumente als DOC/ODT exportiert werden dürfen - **[FAS]** Termine Karteireiter im FAS zeigt den LVPlan von Studierenden/Lehrveranstaltungen - **[FAS]** Bereits verplante Lektoren können vom FAS aus, aus dem LVPlan gelöscht werden. Zusätzlich wird im FAS angezeigt ob dieser Lektor bereits verplant ist @@ -37,7 +40,7 @@ - **[CORE]** Mehrsprachigkeit bei diversen Tabellen (Dokumente, ZGV, ...) hinzugefügt ### Fixed -- **[TEMPUS]** Kollisionsfreie User werden in Verbandsansicht nicht mehr als Kollision angezeigt +- **[TEMPUS]** Kollisionsfreie User werden in Verbandsansicht nicht mehr als Kollision angezeigt ### Changed - **[FAS]** Stundenobergrenze für Lektoren kann jetzt pro Organisationseinheit festgelegt werden. (warn_semesterstunden_frei/fix tbl_organisationseinheit) diff --git a/cis/private/lehre/pruefung/pruefung.js b/cis/private/lehre/pruefung/pruefung.js index 55fb18bab..a68c07d08 100644 --- a/cis/private/lehre/pruefung/pruefung.js +++ b/cis/private/lehre/pruefung/pruefung.js @@ -373,7 +373,7 @@ function showPruefungsDetails(prfId, lvId) { var p = e.pruefung; var l = e.lehrveranstaltung - $("#prfTyp").html(p.pruefungstyp_kurzbz); +// $("#prfTyp").html(p.pruefungstyp_kurzbz); $("#prfMethode").html(p.methode); $("#prfBeschreibung").html(p.beschreibung); if(p.einzeln === true) @@ -436,9 +436,10 @@ function openDialog(lehrveranstaltung_id, termin_id, lvBezeichnung, terminVon, t error: loadError }).success(function(data){ var html = ""; + html += '"; data.result.forEach(function(v, i){ - console.log(i); - console.log(v); html += '"; @@ -486,8 +487,6 @@ function saveAnmeldung(lehrveranstaltung_id, termin_id) var studienverpflichtung_id = null; if($("#studienverpflichtung").length) studienverpflichtung_id = $("#studienverpflichtung option:selected").val(); - - console.log(studienverpflichtung_id); $.ajax({ dataType: 'json', @@ -689,6 +688,7 @@ function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id) function writeAnmeldungen(data) { + console.log(data); if(data.error === 'false') { var terminId = data.result.anmeldungen[0].pruefungstermin_id; @@ -755,6 +755,7 @@ function writeAnmeldungen(data) $("#kommentar").empty(); $("#kommentarSpeichernButton").empty(); $("#raumLink").empty(); + $("#listeDrucken").empty(); messageBox("message", data.errormsg, "red", "highlight", 1000); } } @@ -1091,7 +1092,7 @@ function savePruefungstermin() unmarkMissingFormEntry(); var studiensemester_kurzbz = $("#studiensemester").val(); var pruefungsfenster_id = $("#pruefungsfenster").val(); - var pruefungstyp_kurzbz = $("#pruefungsTyp").val(); +// var pruefungstyp_kurzbz = $("#pruefungsTyp").val(); var titel = $("#titel").val(); var beschreibung = $("#beschreibung").val(); var methode = $("#methode").val(); @@ -1168,11 +1169,11 @@ function savePruefungstermin() error = true; markMissingFormEntry("pruefungsfenster"); } - if(is_null(pruefungstyp_kurzbz) || is_undefined(pruefungstyp_kurzbz) || is_empty_String(pruefungstyp_kurzbz) || (pruefungstyp_kurzbz === "undefiniert")) - { - error = true; - markMissingFormEntry("pruefungsTyp"); - } +// if(is_null(pruefungstyp_kurzbz) || is_undefined(pruefungstyp_kurzbz) || is_empty_String(pruefungstyp_kurzbz) || (pruefungstyp_kurzbz === "undefiniert")) +// { +// error = true; +// markMissingFormEntry("pruefungsTyp"); +// } if(is_null(titel) || is_undefined(titel) || is_empty_String(titel)) { error = true; @@ -1188,12 +1189,18 @@ function savePruefungstermin() error = true; markMissingFormEntry("methode"); } - + if(lehrveranstaltungen.length === 0) { error = true; markMissingFormEntry("lvDropdowns"); } + + if(is_null(termine) || is_undefined(termine) || is_empty_String(termine)) + { + error = true; + markMissingFormEntry("prfTermin"); + } if(error) { @@ -1209,7 +1216,7 @@ function savePruefungstermin() method: "savePruefungstermin", studiensemester_kurzbz: studiensemester_kurzbz, pruefungsfenster_id: pruefungsfenster_id, - pruefungstyp_kurzbz: pruefungstyp_kurzbz, +// pruefungstyp_kurzbz: pruefungstyp_kurzbz, titel: titel, beschreibung: beschreibung, methode: methode, @@ -1378,7 +1385,7 @@ function loadPruefungsDetails(prfId) $("#beschreibung").val(result.pruefung.beschreibung); $("#studiensemester").val(result.pruefung.studiensemester_kurzbz); $("#pruefungsfenster").val(result.pruefung.pruefungsfenster_id); - $("#pruefungsTyp").val(result.pruefung.pruefungstyp_kurzbz); +// $("#pruefungsTyp").val(result.pruefung.pruefungstyp_kurzbz); $("#methode").val(result.pruefung.methode); var i = 0; $("#termin1").closest("tr").remove(); @@ -1491,7 +1498,7 @@ function updatePruefung(prfId) unmarkMissingFormEntry(); var studiensemester_kurzbz = $("#studiensemester").val(); var pruefungsfenster_id = $("#pruefungsfenster").val(); - var pruefungstyp_kurzbz = $("#pruefungsTyp").val(); +// var pruefungstyp_kurzbz = $("#pruefungsTyp").val(); var titel = $("#titel").val(); var beschreibung = $("#beschreibung").val(); var methode = $("#methode").val(); @@ -1602,11 +1609,11 @@ function updatePruefung(prfId) error = true; markMissingFormEntry("pruefungsfenster"); } - if(is_null(pruefungstyp_kurzbz) || is_undefined(pruefungstyp_kurzbz) || is_empty_String(pruefungstyp_kurzbz) || (pruefungstyp_kurzbz === "undefiniert")) - { - error = true; - markMissingFormEntry("pruefungsTyp"); - } +// if(is_null(pruefungstyp_kurzbz) || is_undefined(pruefungstyp_kurzbz) || is_empty_String(pruefungstyp_kurzbz) || (pruefungstyp_kurzbz === "undefiniert")) +// { +// error = true; +// markMissingFormEntry("pruefungsTyp"); +// } if(is_null(titel) || is_undefined(titel) || is_empty_String(titel)) { error = true; @@ -1643,7 +1650,7 @@ function updatePruefung(prfId) pruefung_id: prfId, studiensemester_kurzbz: studiensemester_kurzbz, pruefungsfenster_id: pruefungsfenster_id, - pruefungstyp_kurzbz: pruefungstyp_kurzbz, +// pruefungstyp_kurzbz: pruefungstyp_kurzbz, titel: titel, beschreibung: beschreibung, methode: methode, @@ -1807,7 +1814,7 @@ function loadAllPruefungen() }); tableRow+=""; tableRow += ""+e.methode+""; - tableRow += ""+e.pruefungstyp_kurzbz+""; +// tableRow += ""+e.pruefungstyp_kurzbz+""; tableRow += ""+e.einzeln+""; tableRow += ""+e.mitarbeiter_uid+""; tableRow += ""+e.storniert+""; @@ -1896,7 +1903,7 @@ function resetPruefungsverwaltung() loadAllPruefungen(); $("#titel").val(""); $("#beschreibung").val(""); - loadPruefungstypen("false"); +// loadPruefungstypen("false"); loadStudiensemester(); $("#methode").val(""); resetLehrveranstaltungen(); diff --git a/cis/private/lehre/pruefung/pruefung.js.php b/cis/private/lehre/pruefung/pruefung.js.php new file mode 100755 index 000000000..08d718d9c --- /dev/null +++ b/cis/private/lehre/pruefung/pruefung.js.php @@ -0,0 +1,2047 @@ + + */ + +require_once('../../../../config/cis.config.inc.php'); +require_once('../../../../include/phrasen.class.php'); +require_once('../../../../include/globals.inc.php'); +require_once('../../../../include/sprache.class.php'); + +$sprache = getSprache(); +$lang = new sprache(); +$lang->load($sprache); +$p = new phrasen($sprache); +?> + +/* Copyright (C) 2013 fhcomplete.org + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. + * + * Authors: Stefan Puraner + */ + +/** + * Liest GET Variablen einer URL aus + * @returns {String|value|Element.value|document@arr;all.value} + */ +function getUrlVars() { + var vars = {}; + var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m,key,value) { + vars[key] = value; + }); + return vars; +} + +/** + * Initialisiert den Datepicker + * @param {type} ele + * @returns {undefined} + */ +function setDatePicker(ele) +{ + var start = $("#pruefungsfenster option:selected").attr("start"); + start = start.split('-'); + var ende = $("#pruefungsfenster option:selected").attr("ende"); + ende = ende.split('-'); + $("#prfTermin input[type=text]").each(function(i,v){ + $("#"+v.id).datepicker("destroy"); + $("#"+v.id).datepicker({ + minDate: new Date(start[0],start[1]-1,start[2]), + maxDate: new Date(ende[0],ende[1]-1,ende[2]) + }); + }); + $("#pruefungsfenster").attr("onchange", "setDatePicker()"); +} + +/** + * Fügt ein neunes Formularfeld für einen zusätzlichen Termin hinzu + * @param {type} htmlTag + * @returns {undefined} + */ +function terminHinzufuegen(htmlTag) +{ + htmlTag = (htmlTag===undefined ? "input" : htmlTag); + switch(htmlTag) + { + case 'input': + var count = $("#prfTermin tr").length+1; + $("#prfTermin").append(''); + setDatePicker(); + break; + case 'span': + var count = $("#prfTermin tr").length+1; + $("#prfTermin").append(''); + break; + } + +} + +/** + * Fügt ein neues Dropdownfeld zur Auswahl der Lehrveranstaltung hinzu + * @param {type} element + * @param {type} isChanged + * @returns {undefined} + */ +function lehrveranstaltungDropdownhinzufuegen(element, isChanged) +{ + if(!isChanged) + { + var newSelect = $("#lvDropdown1").clone(); + newSelect.attr("onchange", "lehrveranstaltungDropdownhinzufuegen(this, false);"); + var id = $("#lvDropdowns select").length+1; + newSelect.attr("id", "lvDropdown"+id); + element.setAttribute("onchange", "lehrveranstaltungDropdownhinzufuegen(this, true);"); + newSelect.appendTo("#lvDropdowns"); + $("#lvDropdowns").append("
"); + } + +} + +/** + * Error-Behandlung bei Ajax Requests + */ +function loadError(xhr, textStatus, errorThrown) +{ + if(xhr.status==200) + alert('Fehler:'+xhr.responseText); + else + alert('Fehler beim Laden der Daten. ErrorNr:'+xhr.status); +} + +/** + * Lädt die Prüfungstenster eines Studiensemesters + * @returns {undefined} + */ +function loadPruefungsfenster() +{ + var studiensemester_kurzbz = $("#studiensemester option:selected").val(); + $.ajax({ + dataType: 'json', + url: "./pruefungstermin.json.php", + type: "POST", + data: { + method: "getPruefungsfensterByStudiensemester", + studiensemester_kurzbz: studiensemester_kurzbz + }, + error: loadError + }).success(function(data){ + if(data.result.length === 0) + { + messageBox("message", "t('pruefung/keinFensterVorhanden'); ?>", "red", "highlight", 1000); + $("#pruefungsfenster").html(""); + } + else + { + writePruefungsfenster(data); + setDatePicker(); + } + }).complete(function(){ + + }); +} + +/** + * Schreibt die Daten des geladenen Prüfungsfensters + * @param {type} data + * @returns {undefined} + */ +function writePruefungsfenster(data) +{ + var prfFensterId = getUrlVars()["prfFensterId"]; + $("#pruefungsfenster").empty(); + $.each(data.result, function(i, v) + { + if(v.oe_kurzbz !== null) + { + var start = v.start; + var ende = v.ende; + start = start.split('-'); + ende = ende.split('-'); + start = new Date(start[0], start[1]-1,start[2]); + ende = new Date(ende[0], ende[1]-1,ende[2]); + start = start.getDate()+"."+(start.getMonth()+1)+"."+start.getFullYear(); + ende = ende.getDate()+"."+(ende.getMonth()+1)+"."+ende.getFullYear(); + if(v.pruefungsfenster_id === prfFensterId) + { + $("#pruefungsfenster").append(""); + } + else + { + $("#pruefungsfenster").append(""); + } + } + else + { + $("#pruefungsfenster").html(""); + } + + }); +} + +/** + * Lädt alle Prüfungen eines Studenten zu deren LVs er angemeldet ist + * @returns {undefined} + */ +function loadPruefungen() +{ + $.ajax({ + dataType: 'json', + url: "./pruefungsanmeldung.json.php", + type: "POST", + data: { + method: "getPruefungByLv", + studiensemester: $("#filter_studiensemester").val() + }, + error: loadError + }).success(function(data){ + $("#pruefungen").empty(); + if(data.error === 'false') + { + data.result.pruefungen.forEach(function(e){ + if(e.pruefung.storniert === false) + { + var table = writePruefungsTable(e, data, true); + $("#pruefungen").append(table); + } + }); + } + else + { + $("#pruefungen").append("t('pruefung/keineDatenVorhanden'); ?>"); + } + }).complete(function(event, xhr, settings){ + setTablesorter("table1"); + }); +} + +/** + * Lädt alle Prüfungen eines Studienganges + * @returns {undefined} + */ +function loadPruefungenOfStudiengang() +{ + $.ajax({ + dataType: 'json', + url: "./pruefungsanmeldung.json.php", + type: "POST", + data: { + method: "getPruefungByLvFromStudiengang", + studiensemester: $("#filter_studiensemester").val() + }, + error: loadError + }).success(function(data){ + if(data.error === 'false') + { + data.result.pruefungen.forEach(function(e){ + if(e.pruefung.storniert === false) + { + var table = writePruefungsTable(e, data, true); + $("#pruefungenStudiengang").append(table); + } + }); + } + else + { + $("#pruefungenStudiengang").append("t('pruefung/keineDatenVorhanden'); ?>"); + } + }).complete(function(event, xhr, settings){ + setTablesorter("table2"); + }); +} + +/** + * Lädt alle Prüfungen + * @returns {undefined} + */ +function loadPruefungenGesamt() +{ + $.ajax({ + dataType: 'json', + url: "./pruefungsanmeldung.json.php", + type: "POST", + data: { + method: "getAllPruefungen", + }, + error: loadError + }).success(function(data){ + data.result.pruefungen.forEach(function(e){ + if(e.pruefung.storniert === false) + { + var table = writePruefungsTable(e, data, false); + $("#pruefungenGesamt").append(table); + } + }); + }).complete(function(event, xhr, settings){ + setTablesorter("table3"); + }); +} + +/** + * Schreibt die Daten der Prüfungen in eine Tabelle + * @param {type} e Daten der Prüfungen + * @param {type} data Daten der Anmeldungen + * @returns {String} + */ +function writePruefungsTable(e, data, anmeldung) +{ + var row = ""; + var teilnehmer = ""; + var button = ""; + row += ""+e.organisationseinheit+""+e.lehrveranstaltung[0].bezeichnung+""; + e.pruefung.termine.forEach(function(d){ + var storno = false; + var anmeldung_id = null; + data.result.anmeldungen.forEach(function(anmeldung){ + if((anmeldung.pruefungstermin_id === d.pruefungstermin_id) && (anmeldung.lehrveranstaltung_id === e.lehrveranstaltung[0].lehrveranstaltung_id)) + { + storno = true; + anmeldung_id= anmeldung.pruefungsanmeldung_id; + } + }); + var termin = d.von.split(" "); + var time = termin[1].substring(0,5); + termin = termin[0].split("-"); + termin = new Date(termin[0], termin[1]-1,termin[2]); + var frist = termin; + termin = termin.getDate()+"."+(termin.getMonth()+1)+"."+termin.getFullYear(); + frist = frist.getTime(); + frist = frist - (3*24*60*60*1000); + var fristDate = new Date(frist); + frist = fristDate.getDate()+"."+(fristDate.getMonth()+1)+"."+fristDate.getFullYear(); + + if(fristDate < new Date()) + { + if(!storno) + button = "

t('pruefung/anmeldefristAbgelaufen'); ?>
"; + else + button = "

Storno nicht mehr möglich.
"; + } + else if(anmeldung || e.lehrveranstaltung[0].angemeldet) + { + if(storno) + { + //button = "

Stornieren (bis "+frist+"):
"; + button = "

"+frist+"'>

"; + + } + else + { + //button = "

Anmelden (bis "+frist+"):

"; + button = "

"+frist+"';>

"; + } + } + else + { + button = "

' onclick='openAnmeldung(\""+e.lehrveranstaltung[0].lehrveranstaltung_id+"\", \""+e.pruefung.studiensemester_kurzbz+"\");'>

"; + } + + row += button; + + if(d.max === null) + { + teilnehmer += "unbegrenzt
"; + } + else + { + teilnehmer += "

"+(d.max - d.teilnehmer)+"/"+d.max+"

"; + } + }); + row += ""+teilnehmer+""; + return row; +} + +/** + * Lädt die Details zu einer Prüfung + * @param {type} prfId ID einer Prüfung + * @param {type} lvId ID einer Lehrveranstaltung + * @returns {undefined} + */ +function showPruefungsDetails(prfId, lvId) +{ + var prfId = prfId; + if(prfId!=="null") + { + $.ajax({ + dataType: 'json', + url: "./pruefungsanmeldung.json.php", + type: "POST", + data: { + method: "loadPruefung", + pruefung_id: prfId + }, + error: loadError + }).success(function(data){ + data.result.forEach(function(e){ + if(e.lehrveranstaltung.lehrveranstaltung_id === lvId) + { + var p = e.pruefung; + var l = e.lehrveranstaltung +// $("#prfTyp").html(p.pruefungstyp_kurzbz); + $("#prfMethode").html(p.methode); + $("#prfBeschreibung").html(p.beschreibung); + if(p.einzeln === true) + { + $("#prfEinzeln").html("Einzelprüfung!"); + $("#prfIntervall").html(p.pruefungsintervall+" min"); + $("#prfIntervall").prev().css("visibility", "visible"); + } + else + { + $("#prfEinzeln").html(""); + $("#prfIntervall").html(""); + $("#prfIntervall").prev().css("visibility", "hidden"); + } + $("#lvBez").html(l.bezeichnung); + if(l.ects !== null) + { + $("#lvEcts").html(l.ects); + } + else + { + $("#lvEcts").html("0"); + } + } + }); + $("#details").dialog("open"); + }); + } + else + { + $("#prfTermine").attr("disabled", true); + $("#prfTermine").html(""); + clearPrfDetails(); + } +} + +/** + * Öffnet einen Dialog zur Anmeldung zu einer Prüfung + * @param {type} lehrveranstaltung_id ID einer Lehrveransaltung + * @param {type} termin_id ID des Prüfungstermines + * @param {type} lvBezeichnung Bezeichnung der Lehrveranstaltung + * @param {type} terminVon Beginn der Prüfung + * @param {type} terminBis Ende der Prüfung + * @returns {undefined} + */ +function openDialog(lehrveranstaltung_id, termin_id, lvBezeichnung, terminVon, terminBis) +{ + $("#lehrveranstaltungHidden").val(lehrveranstaltung_id); + $("#terminHidden").val(termin_id); + $("#lehrveranstaltung").html(lvBezeichnung); + + $.ajax({ + dataType: 'json', + url: "./pruefungsanmeldung.json.php", + type: "POST", + data: { + method: "getLvKompatibel", + lehrveranstaltung_id: lehrveranstaltung_id + }, + error: loadError + }).success(function(data){ + var html = ""; + html += '"; + data.result.forEach(function(v, i){ + html += '"; + }); + $("#studienverpflichtung").html(html); + }); + + var start = terminVon; + var ende = terminBis; + start = start.split(' '); + ende = ende.split(' '); + var startTime = start[1]; + var endeTime = ende[1]; + start = start[0].split('-'); + ende = ende[0].split('-'); + start = new Date(start[0], start[1]-1,start[2]); + ende = new Date(ende[0], ende[1]-1,ende[2]); + start = start.getDate()+"."+(start.getMonth()+1)+"."+start.getFullYear(); + ende = ende.getDate()+"."+(ende.getMonth()+1)+"."+ende.getFullYear(); + + start += " "+startTime.substr(0,5)+" Uhr"; + ende += " "+endeTime.substr(0,5)+" Uhr"; + $("#terminVon").html(start); + $("#terminBis").html(ende); + $("#saveDialog").dialog("open"); +} + +/** + * speichert eine Prüfungsanmeldung + * @param {type} lehrveranstaltung_id ID der Lehrveranstaltung + * @param {type} termin_id ID des Prüfungstermines + * @returns {undefined} + */ +function saveAnmeldung(lehrveranstaltung_id, termin_id) +{ + var uid = $("#anmeldung_hinzufuegen_uid").val(); + if(lehrveranstaltung_id === undefined) + lehrveranstaltung_id = $("#lehrveranstaltungHidden").val(); + if(termin_id === undefined) + termin_id = $("#terminHidden").val(); + var bemerkungen = $("#anmeldungBemerkung").val(); + if(bemerkungen === undefined) + bemerkungen = "t('pruefung/bemerkungVonLektorHinzugefuegt'); ?>"; + + var studienverpflichtung_id = null; + if($("#studienverpflichtung").length) + studienverpflichtung_id = $("#studienverpflichtung option:selected").val(); + + $.ajax({ + dataType: 'json', + url: "./pruefungsanmeldung.json.php", + type: "POST", + data: { + method: "saveAnmeldung", + termin_id: termin_id, + lehrveranstaltung_id: lehrveranstaltung_id, + bemerkung: bemerkungen, + uid: uid, + studienverpflichtung_id: studienverpflichtung_id + }, + error: loadError + }).success(function(data){ + if(data.error === 'false') + { + messageBox("message", data.result, "green", "highlight", 1000); + } + else + { + messageBox("message", data.errormsg, "red", "highlight", 1000); + } + resetForm(); + }).complete(function(event, xhr, settings){ + $("#saveDialog").dialog("close"); + + if(uid === undefined) + { + //Wenn Anmeldung durch Student + refresh(); + } + else + { + //Wenn Anmeldung durch Lektor + showAnmeldungen(termin_id, lehrveranstaltung_id); + } + }); +} + +/** + * storniert eine Prüfungsanmeldung + * @param {type} pruefungsanmeldung_id ID einer Prüfungsanmeldung + * @returns {undefined} + */ +function stornoAnmeldung(pruefungsanmeldung_id) +{ + if(confirm("Anmeldung wirklich stornieren?")) + { + $.ajax({ + dataType: 'json', + url: "./pruefungsanmeldung.json.php", + type: "POST", + data: { + method: "stornoAnmeldung", + pruefungsanmeldung_id: pruefungsanmeldung_id + }, + error: loadError + }).success(function(data){ + if(data.error === 'false') + { + messageBox("message", data.result, "green", "highlight", 1000); + } + else + { + messageBox("message", data.errormsg, "red", "highlight", 1000); + } + }).complete(function(event, xhr, settings){ + refresh(); + }); + } +} + +/** + * Leer das DIV-Element der Prüfungsdetails + * @returns {undefined} + */ +function clearPrfDetails() +{ + $("#prfTyp").empty(); + $("#prfMethode").empty(); + $("#prfBeschreibung").empty(); + $("#prfEinzeln").empty(); +} + +/** + * Setzt ein Formular auf den Urzustand zurück + * @returns {undefined} + */ +function resetForm() +{ + $("form").find("input[type=text], textarea").val(""); + clearPrfDetails(); +} + +/** + * Initialisiert den tablesorter für eine Tabelle + * @param {type} tableId ID eines "table"-Elements + * @returns {undefined} + */ +function setTablesorter(tableId) +{ + if($("#"+tableId)[0].hasInitialized !== true) + { + $("#"+tableId).tablesorter({ + widgets: ["zebra"], + sortList: [[1,0]] + }); + } + else + { + $("#"+tableId).trigger("updateAll"); + var sorting = [[1,0],[0,0]]; + $("#"+tableId).trigger("sorton",[sorting]); + } +} + +/** + * Leert die Daten eines table-bodys + * @returns {undefined} + */ +function clearAccordion() +{ + $("#accordion tbody").each(function(i, v){ + $("#"+v.id).empty(); + }); +} + +/** + * Lädt die Seite der Prüfungsanmeldung neu + * @returns {undefined} + */ +function refresh() +{ + clearAccordion(); + loadPruefungen(); + loadPruefungenOfStudiengang(); + loadPruefungenGesamt(); +} + +/** + * Konvertiert einen String im Fromat JJJJ-MM-TT hh:mm:ss zu DD.MM.JJJJ oder HH:MM + * @param {String} string Format: JJJJ-MM-TT hh:mm:ss + * @param {String} type spezifiziet die Ausgabe ("time"|"date") + * @returns {String} Format: date: DD.MM.JJJJ; time: HH:MM + */ +function convertDateTime(string, type) +{ + switch (type) + { + case 'date': + string = string.split(' '); + string = string[0].split('-'); + string = new Date(string[0], string[1]-1,string[2]); + string = string.getDate()+"."+(string.getMonth()+1)+"."+string.getFullYear(); + break; + case 'time': + string = string.split(' '); + string = string[1].split(':'); + string = string[0]+":"+string[1]; + break; + default: + string = string.split(' '); + string = string[0].split('-'); + string = new Date(string[0], string[1]-1,string[2]); + string = string.getDate()+"."+(string.getMonth()+1)+"."+string.getFullYear(); + break; + } + return string; +} + +/** + * Lädt die Anmeldungen zu einer Prüfung + * @param {type} pruefungstermin_id ID des Prüfungstermins + * @param {type} lehrveranstaltung_id ID der Lehrveranstaltung + * @returns {undefined} + */ +function showAnmeldungen(pruefungstermin_id, lehrveranstaltung_id) +{ + $("#kommentar").empty(); + $("#kommentarSpeichernButton").empty(); + $.ajax({ + dataType: 'json', + url: "./pruefungsanmeldung.json.php", + type: "POST", + data: { + method: "getAnmeldungenTermin", + pruefungstermin_id: pruefungstermin_id, + lehrveranstaltung_id: lehrveranstaltung_id + }, + error: loadError + }).success(function(data){ + writeAnmeldungen(data); + }).complete(function(event, xhr, settings){ + $("#sortable").sortable(); + $("#sortable").disableSelection(); + }); +} + +function writeAnmeldungen(data) +{ + console.log(data); + if(data.error === 'false') + { + var terminId = data.result.anmeldungen[0].pruefungstermin_id; + var pruefung_id = data.result.anmeldungen[0].pruefung_id; + var lehrveranstaltung_id = data.result.anmeldungen[0].lehrveranstaltung_id; + var ort_kurzbz = data.result.ort_kurzbz; + var liste = ""; + $("#anmeldung_hinzufuegen").html("' onclick='saveAnmeldung(\""+lehrveranstaltung_id+"\",\""+terminId+"\");'/>"); + $("#reihungSpeichernButton").html("' onclick='saveReihung(\""+terminId+"\", \""+lehrveranstaltung_id+"\");'>"); + $("#anmeldeDaten").html(liste); + $("#listeDrucken").html("t('pruefung/listeDrucken'); ?>"); + if(ort_kurzbz !== null) + { + $("#raumLink").html("t('pruefung/pruefungsraum'); ?>"+ort_kurzbz); + } + else + { + $("#raumLink").html("t('pruefung/pruefungsort'); ?>"); + } + + $(document).tooltip({ + position: { + at: "right center", + my: "left+15 center" + } + }); + } + else + { + $("#anmeldeDaten").empty(); + $("#reihungSpeichernButton").empty(); + $("#kommentar").empty(); + $("#kommentarSpeichernButton").empty(); + $("#raumLink").empty(); + $("#listeDrucken").empty(); + messageBox("message", data.errormsg, "red", "highlight", 1000); + } +} + +function openRaumDialog(terminId, lehrveranstaltung_id) +{ + getRaeume(terminId); + $("#raum").html('

t('pruefung/pruefungsraum'); ?>

t('pruefung/imBuero'); ?>
t('pruefung/raum'); ?>: '); + $("#raumSpeichernButton").html("' onclick='saveRaum(\""+terminId+"\", \""+lehrveranstaltung_id+"\");'/>"); + $("#raumDialog").dialog("open"); +} + +/** + * speichert die Reihung der Studenten einer Prüfungsanmeldung + * @param {type} terminId ID des Prüfungstermines + * @param {type} lehrveranstaltung_id ID der Lehrveranstaltung + * @returns {undefined} + */ +function saveReihung(terminId, lehrveranstaltung_id) +{ + var reihung = []; + $("#anmeldeDaten ul").children().each(function(i, v){ + var anmeldung = new Object(); + anmeldung.terminId = terminId; + anmeldung.lehrveranstaltung_id = lehrveranstaltung_id; + anmeldung.reihung = (i+1); + anmeldung.uid = v.id; + reihung.push(anmeldung); + }); + $.ajax({ + dataType: 'json', + url: "./pruefungsanmeldung.json.php", + type: "POST", + data: { + method: "saveReihung", + reihung: reihung + }, + error: loadError + }).success(function(data){ + if(data.error === 'false' && data.result === true) + { + messageBox("message", "t('pruefung/reihunghErfolgreichGeaendert'); ?>", "green", "highlight", 1000); + } + else + { + messageBox("message", data.errormsg, "red", "highlight", 1000); + } + }).complete(function(){ + showAnmeldungen(terminId, lehrveranstaltung_id); + }); +} + +/** + * Ändert den Status einer Anmeldung auf "bestätigt" + * @param {type} pruefungsanmeldung_id ID der Prüfungsanmeldung + * @param {type} termin_id ID des Prüfungstermines + * @param {type} lehrveranstaltung_id ID der Lehrveranstaltung + * @returns {undefined} + */ +function anmeldungBestaetigen(pruefungsanmeldung_id, termin_id, lehrveranstaltung_id) +{ + $.ajax({ + dataType: 'json', + url: "./pruefungsanmeldung.json.php", + type: "POST", + data: { + method: "anmeldungBestaetigen", + pruefungsanmeldung_id: pruefungsanmeldung_id + }, + error: loadError + }).success(function(data){ + if(data.error === 'false' && data.result === true) + { + if(termin_id !== 'undefined' && lehrveranstaltung_id !== 'undefined') + { + showAnmeldungen(termin_id, lehrveranstaltung_id); + } + } + else + { + messageBox("message", data.errormsg, "red", "highlight", 1000); + } + }); +} + +/** + * Anzeige eines DIVs zur Darstellung von Fehlermeldungen, etc. + * @param {type} divId ID des DIVs in dem die Meldung dargestellt werden soll + * @param {type} data Daten die angezeigt werden sollen + * @param {type} color Hintergrundfarbe des DIVs + * @param {type} effect Anzeigeeffekt (siehe jQuery UI) + * @param {type} duration Dauer des Effektes + * @returns {undefined} + */ +function messageBox(divId, data, color, effect, duration) +{ + $("#"+divId).html(data); + $("#"+divId).effect(effect, { + duration: duration, + color: color + }).delay(200).hide("clip", "fast"); +} + +/** + * Lädt alle Studiengänge + * @returns {undefined} + */ +function loadStudiengaenge() +{ + $.ajax({ + dataType: 'json', + url: "./pruefungsanmeldung.json.php", + type: "POST", + data: { + method: "getStudiengaenge" + }, + error: loadError + }).success(function(data){ + $("#stgListe").empty(); + if(data.error === 'false') + { + var liste = ""; + $("#stgListe").append(liste); + } + else + { + messageBox("message", data.errormsg, "red", "highlight", 1000); + } + }); +} + +/** + * Lädt alle Prüfungen zu einem Studiengang + * @param {type} studiengang_kz Studiengangskennzahl + * @returns {undefined} + */ +function loadPruefungStudiengang(studiengang_kz, studiensemester) +{ + if(studiengang_kz === undefined) + studiengang_kz = $("#select_studiengang option:selected").val(); + + if(studiensemester === undefined) + studiensemester = $("#filter_studiensemester option:selected").val(); + + $.ajax({ + dataType: 'json', + url: "./pruefungsanmeldung.json.php", + type: "POST", + data: { + method: "getPruefungenStudiengang", + studiengang_kz: studiengang_kz, + studiensemester: studiensemester + }, + error: loadError + }).success(function(data){ + if(data.error === 'false') + { + $("#pruefungenListe").empty(); + if(data.result.length > 0) + { + var liste = ""; + data.result.forEach(function(e){ + liste += ""; + }); + $("#pruefungenListe").append(liste); + } + else + { + $("#pruefungenListe").html("t('pruefung/keinePruefungenVorhanden'); ?>"); + } + } + else + { + messageBox("message", data.errormsg, "red", "highlight", 1000); + } + }); +} + +/** + * Zeigt das Formularfeld zur Eingabe eines Kommentars in der Anmeldungsverwaltung an. + * @param {String} vorname Vorname des Studenten + * @param {String} nachname Nachname des Studenten + * @param {int} pruefungsanmeldung_id ID der Anmeldung + * @param {String} kommentar Kommentar zur Anmeldung (wenn bereits vorhanden) + * @param {int} termin_id ID des Prüfungstermins + * @param {int} lehrveranstaltung_id ID der Lehrveranstaltung + * @returns {void} + */ +function showKommentar(vorname, nachname, pruefungsanmeldung_id, kommentar, termin_id, lehrveranstaltung_id) +{ + if(kommentar === "null") + kommentar = ""; + $("#kommentar").html("

t('pruefung/kommentarZu'); ?>"+vorname+" "+nachname+"

"); + $("#kommentarSpeichernButton").html("' onclick='saveKommentar(\""+pruefungsanmeldung_id+"\", \""+termin_id+"\", \""+lehrveranstaltung_id+"\");'>"); +} + +/** + * Speichert ein Kommentar zu einer Anmeldung + * @param {int} pruefungsanmeldung_id ID der Anmeldung + * @param {int} termin_id ID des Termins + * @param {int} lehrveranstaltung_id ID der Lehrveranstaltung + * @returns {void} + */ +function saveKommentar(pruefungsanmeldung_id, termin_id, lehrveranstaltung_id) +{ + var kommentar = $("#kommentarText").val(); + $.ajax({ + dataType: 'json', + url: "./pruefungsanmeldung.json.php", + type: "POST", + data: { + method: "saveKommentar", + pruefungsanmeldung_id: pruefungsanmeldung_id, + kommentar: kommentar + }, + error: loadError + }).success(function(data){ + messageBox("message", "t('pruefung/kommentarErfolgreichGespeichert'); ?>", "green", "highlight", 1000); + }).complete(function(){ + showAnmeldungen(termin_id, lehrveranstaltung_id); + }); +} + +/** + * lädt alle Prüfungstypen per AJAX aus der Datenbank + * @param {boolean} abschluss + * @returns {void} + */ +function loadPruefungstypen(abschluss) +{ + $.ajax({ + dataType: 'json', + url: "./pruefungstermin.json.php", + type: "POST", + data: { + method: "loadPruefungstypen", + abschluss: abschluss + }, + error: loadError + }).success(function(data){ + var selectData = ""; + data.result.forEach(function(d){ + if(d.beschreibung === null) + d.beschreibung = ""; + selectData += ""; + }); + $('#pruefungsTyp').html(selectData); + }); +} + +/** + * Lädt alle Studiensemester per AJAX aus der Datenbank + * @returns {void} + */ +function loadStudiensemester() +{ + $.ajax({ + dataType: 'json', + url: "./pruefungstermin.json.php", + type: "POST", + data: { + method: "loadStudiensemester" + }, + error: loadError + }).success(function(data){ + var selectData = ""; + data.result.forEach(function(d){ + selectData += ""; + }); + $('#studiensemester').html(selectData); + }).complete(function(){ + loadPruefungsfenster(); + loadLehrveranstaltungen(); + }); +} + +/** + * Prüft eine Variable ob diese NULL ist + * @param {type} variable + * @returns {boolean} TRUE, wenn die Variable NULL ist, ansonsten FALSE + */ +function is_null(variable) +{ + if(variable === null) + { + return true; + } + return false; +} + +/** + * Prüft eine Variable ob diese undefined ist + * @param {type} variable + * @returns {boolean} TRUE, wenn die Variable undefined ist, ansonsten FALSE + */ +function is_undefined(variable) +{ + if(variable === undefined) + { + return true; + } + return false; +} + +/** + * Prüft einen String ob dieser die Länge 0 hat + * @param {string} string + * @returns {boolean} TRUE, wenn die Länge des Strings 0 ist, ansonsten FALSE + */ +function is_empty_String(string) +{ + if(string.length === 0) + { + return true; + } + return false; +} + +/** + * Speichert einen Prüfungstermin + * @returns {void} + */ +function savePruefungstermin() +{ + unmarkMissingFormEntry(); + var studiensemester_kurzbz = $("#studiensemester").val(); + var pruefungsfenster_id = $("#pruefungsfenster").val(); +// var pruefungstyp_kurzbz = $("#pruefungsTyp").val(); + var titel = $("#titel").val(); + var beschreibung = $("#beschreibung").val(); + var methode = $("#methode").val(); + var einzeln = $("#einzeln").prop("checked"); + var termine = []; + var lehrveranstaltungen = []; + var error = false; + var mitarbeiter_uid = $("#mitarbeiter_uid").val(); + var pruefungsintervall = $("#pruefungsintervall").val(); + $("#prfTermin tr").each(function(i,v){ + var termin = {}; + $(v).find("input").each(function(j, w){ + switch (j) { + case 0: + termin.datum = $(w).val(); + break; + case 1: + termin.beginn = $(w).val(); + break; + case 2: + termin.ende = $(w).val(); + break; + case 3: + termin.min = $(w).val(); + break; + case 4: + termin.max = $(w).val(); + break; + case 5: + termin.sammelklausur = $(w).prop("checked"); + break; + } + }); + if(!checkTermin(termin)) + { + error = true; + markMissingFormEntry($(v).attr("id")); + } + if(!checkMinMaxTeilnehmer(termin.min, termin.max)) + { + error = true; + markMissingFormEntry("termin"+(i+1)+"min"); + markMissingFormEntry("termin"+(i+1)+"max"); + } + if(einzeln) + { + if(!checkPruefungsintervall(pruefungsintervall, termin)) + { + error = true; + markMissingFormEntry("pruefungsintervall"); + markMissingFormEntry($(v).attr("id")); + } + } + else + { + pruefungsintervall = false; + } + termine.push(termin); + }); + + + $("#lvDropdowns select").each(function(i,v){ + if($(v).val() !== "null") + lehrveranstaltungen.push($(v).val()); + }); + + if(is_null(studiensemester_kurzbz) || is_undefined(studiensemester_kurzbz) || is_empty_String(studiensemester_kurzbz)) + { + error = true; + markMissingFormEntry("studiensemester"); + } + if(is_null(pruefungsfenster_id) || is_undefined(pruefungsfenster_id) || is_empty_String(pruefungsfenster_id) || (pruefungsfenster_id === "null")) + { + error = true; + markMissingFormEntry("pruefungsfenster"); + } +// if(is_null(pruefungstyp_kurzbz) || is_undefined(pruefungstyp_kurzbz) || is_empty_String(pruefungstyp_kurzbz) || (pruefungstyp_kurzbz === "undefiniert")) +// { +// error = true; +// markMissingFormEntry("pruefungsTyp"); +// } + if(is_null(titel) || is_undefined(titel) || is_empty_String(titel)) + { + error = true; + markMissingFormEntry("titel"); + } + if(is_null(beschreibung) || is_undefined(beschreibung) || is_empty_String(beschreibung)) + { + error = true; + markMissingFormEntry("beschreibung"); + } + if(is_null(methode) || is_undefined(methode) || is_empty_String(methode)) + { + error = true; + markMissingFormEntry("methode"); + } + + if(lehrveranstaltungen.length === 0) + { + error = true; + markMissingFormEntry("lvDropdowns"); + } + + if(is_null(termine) || is_undefined(termine) || is_empty_String(termine)) + { + error = true; + markMissingFormEntry("prfTermin"); + } + + if(error) + { + messageBox("message", "t('pruefung/formulardatenNichtKorrekt'); ?>", "red", "highlight", 3000); + } + else + { + $.ajax({ + dataType: 'json', + url: "./pruefungstermin.json.php", + type: "POST", + data: { + method: "savePruefungstermin", + studiensemester_kurzbz: studiensemester_kurzbz, + pruefungsfenster_id: pruefungsfenster_id, +// pruefungstyp_kurzbz: pruefungstyp_kurzbz, + titel: titel, + beschreibung: beschreibung, + methode: methode, + einzeln: einzeln, + termine: termine, + lehrveranstaltungen: lehrveranstaltungen, + mitarbeiter_uid: mitarbeiter_uid, + pruefungsintervall: pruefungsintervall + }, + error: loadError + }).success(function(data){ + unmarkMissingFormEntry(); + if(data.error === "false") + { + messageBox("message", "t('pruefung/pruefungErfolgreichGespeichert'); ?>", "green", "highlight", 1000); + resetPruefungsverwaltung(); + } + else + { + messageBox("message", data.errormsg, "red", "highlight", 1000); + } + }); + } +} + +/** + * Fügt einem Element die Klasse "missingFormData" hinzu + * CSS-Klasse "missingFormData" wird benötigt + * @param {string} eleId ID des zu markierenden Formularfeldes + * @returns {void} + */ +function markMissingFormEntry(eleId) +{ + $("#"+eleId).addClass("missingFormData"); + $(".modalOverlay").each(function(i,v){ + $(v).removeClass("modalOverlay"); + }); +} + +/** + * Entfernt die Klasse "missingFormData" von einem Element. + * @param {string} eleId ID des Formularfeldes + * @returns {void} + */ +function unmarkMissingFormEntry() +{ + $(".missingFormData").each(function(i, v){ + $(v).removeClass("missingFormData"); + }); +} + +/** + * Lädt alle Lehrveranstaltungen eine Mitarbeiters + * @returns {void} + */ +function loadLehrveranstaltungen() +{ + var studiensemester_kurzbz = $("#studiensemester").val(); + var mitarbeiter_uid = $("#mitarbeiter_uid").val(); + $.ajax({ + dataType: 'json', + url: "./pruefungstermin.json.php", + type: "POST", + data: { + method: "getLehrveranstaltungenByMitarbeiter", + mitarbeiter_uid: mitarbeiter_uid, + studiensemester_kurzbz: studiensemester_kurzbz + }, + error: loadError + }).success(function(data){ + var selectData = ''; + data.result.forEach(function(d){ + selectData += ''; + }); + $("#lvDropdown1").html(selectData); + }).complete(function(){ + + }); +} + +/** + * Lädt die Details zu eine Prüfung + * @param {int} prfId ID der Prüfung + * @returns {void} + */ +function loadPruefungsDetails(prfId) +{ + unmarkMissingFormEntry(); + $("#modalOverlay").addClass("modalOverlay"); + resetLehrveranstaltungen(); + var row = $("#row1").clone(); + resetTermine(); + $("#prfTermine").append(row); + $.ajax({ + dataType: 'json', + url: "./pruefungstermin.json.php", + type: "POST", + data: { + method: "loadStudiensemester" + }, + error: loadError + }).success(function(data){ + var selectData = ""; + data.result.forEach(function(d){ + selectData += ""; + }); + $('#studiensemester').html(selectData); + }).complete(function(){ + var studiensemester_kurzbz = $("#studiensemester option:selected").val(); + $.ajax({ + dataType: 'json', + url: "./pruefungstermin.json.php", + type: "POST", + data: { + method: "getPruefungsfensterByStudiensemester", + studiensemester_kurzbz: studiensemester_kurzbz + }, + error: loadError + }).success(function(data){ + if(data.result.length === 0) + { + messageBox("message", "t('pruefung/keinePruefungsfensterGespeichert'); ?>", "red", "highlight", 1000); + $("#pruefungsfenster").html(""); + } + else + { + writePruefungsfenster(data); + setDatePicker(); + } + }).complete(function(){ + var studiensemester_kurzbz = $("#studiensemester").val(); + var mitarbeiter_uid = $("#mitarbeiter_uid").val(); + $.ajax({ + dataType: 'json', + url: "./pruefungstermin.json.php", + type: "POST", + data: { + method: "getLehrveranstaltungenByMitarbeiter", + mitarbeiter_uid: mitarbeiter_uid, + studiensemester_kurzbz: studiensemester_kurzbz + }, + error: loadError + }).success(function(data){ + var selectData = ''; + data.result.forEach(function(d){ + selectData += ''; + }); + $("#lvDropdown1").html(selectData); + }).complete(function(){ + $.ajax({ + dataType: 'json', + url: "./pruefungsanmeldung.json.php", + type: "POST", + data: { + method: "loadPruefung", + pruefung_id: prfId + }, + error: loadError + }).success(function(data){ + var copy = $("#lvDropdown1").clone(); + $("#lvDropdowns").empty(); + $("#lvDropdowns").html(copy); + $("#lvDropdowns").append("
"); + var result = data.result[0]; + $("#titel").val(result.pruefung.titel); + $("#beschreibung").val(result.pruefung.beschreibung); + $("#studiensemester").val(result.pruefung.studiensemester_kurzbz); + $("#pruefungsfenster").val(result.pruefung.pruefungsfenster_id); +// $("#pruefungsTyp").val(result.pruefung.pruefungstyp_kurzbz); + $("#methode").val(result.pruefung.methode); + var i = 0; + $("#termin1").closest("tr").remove(); + terminHinzufuegen("span"); + data.result.forEach(function(d){ + i++; + var lv = ""; + if(d.lehrveranstaltung !== undefined) + { + lv = ""+d.lehrveranstaltung.studiengang.kurzbzlang+" | "+d.lehrveranstaltung.bezeichnung+" ("+d.lehrveranstaltung.lehrform_kurzbz+") t('global/löschen'); ?>
"; + } + else + { + lv = "t('pruefung/keineLehrveranstaltungenVorhanden'); ?>
"; + } + $("#lvDropdowns").children().first().before(lv); + var j = 0; + d.pruefung.termine.forEach(function(t){ + j++; + if(i===1) + { + var date = convertDateTime(t.von, "date"); + var von = convertDateTime(t.von, "time"); + var bis = convertDateTime(t.bis, "time"); + var min = (t.min === null) ? "" : t.min; + var max = (t.max === null) ? "" : t.max; + $("#termin"+j+"Id").text(t.pruefungstermin_id); + $("#termin"+j).text(date); + $("#termin"+j+"Beginn").text(von); + $("#termin"+j+"Ende").text(bis); + $("#termin"+j+"min").text(min); + $("#termin"+j+"max").text(max); + if(t.sammelklausur) + { + $("#termin"+j+"sammelklausur").text("true"); + } + else + { + $("#termin"+j+"sammelklausur").text("false"); + } + $("#termin"+j+"Id").closest("tr").append("t('global/löschen'); ?>"); + terminHinzufuegen("span"); + } + }); + }); + var ele = document.getElementById("lvDropdowns"); + $("#prfTermin tr").last().remove(); + if(result.pruefung.einzeln) + { + $("#einzeln").prop("checked", "checked"); + $("#pruefungsintervall").parent().parent().css("visibility", "visible"); + $("#pruefungsintervall").val(result.pruefung.pruefungsintervall); + } + else + { + $("#einzeln").removeAttr("checked"); + } + }).complete(function(){ + $("#buttonSave").attr("onclick", "updatePruefung(\""+prfId+"\");"); + if($("#buttonStorno").length === 0) + { + $("#buttonSave").after("'>"); + } + else + { + $("#buttonStorno").attr("onclick", "stornoPruefung(\""+prfId+"\");"); + } + $("#modalOverlay").removeClass("modalOverlay"); + }); + }); + }); + }); +} + +/** + * Setzt den Bereich Lehrveranstaltungen in der Anmeldungsverwaltung auf den Ausgangszustand + * @returns {void} + */ +function resetLehrveranstaltungen() +{ + $("#lvDropdown1").attr("onchange", "lehrveranstaltungDropdownhinzufuegen(this, false);") + $("#lvDropdowns").children().each(function(i,v){ + $("#lvDropdown"+(i+2)).next().remove(); + $("#lvDropdown"+(i+2)).remove(); + }); + $("#lvDropdown1").prevAll().each(function(i,v){ + $(v).remove(); + }); +} + +/** + * Setzt den Bereich Termine in der Ammeldungsverwaltung auf den Ausgangszustand + * @returns {void} + */ +function resetTermine() +{ + $("#prfTermin tr").each(function(i,v){ + $(v).remove(); + }); +} + +/** + * Aktualisiert die Daten einer Prüfung in der Datenbank + * @param {int} prfId ID der Prüfung + * @returns {void} + */ +function updatePruefung(prfId) +{ + $("#modalOverlay").addClass("modalOverlay"); + unmarkMissingFormEntry(); + var studiensemester_kurzbz = $("#studiensemester").val(); + var pruefungsfenster_id = $("#pruefungsfenster").val(); +// var pruefungstyp_kurzbz = $("#pruefungsTyp").val(); + var titel = $("#titel").val(); + var beschreibung = $("#beschreibung").val(); + var methode = $("#methode").val(); + var einzeln = $("#einzeln").prop("checked"); + var termine = []; + var termineNeu = []; + var lehrveranstaltungen = []; + var mitarbeiter_uid = $("#mitarbeiter_uid").val(); + var pruefungsintervall = $("#pruefungsintervall").val(); + var error = false; + $('#prfTermin tr').has("span").each(function(i,v){ + var termin = {}; + $(v).find("span").each(function(j, w){ + switch (j) { + case 0: + termin.pruefungstermin_id = $(w).text(); + break; + case 1: + termin.datum = $(w).text(); + break; + case 2: + termin.beginn = $(w).text(); + break; + case 3: + termin.ende = $(w).text(); + break; + case 4: + termin.min = $(w).text(); + break; + case 5: + termin.max = $(w).text(); + break; + case 6: + termin.sammelklausur = $(w).prop("checked"); + break; + } + }); + if(!checkTermin(termin)) + { + error = true; + markMissingFormEntry($(v).attr("id")); + } + if(einzeln) + { + if(!checkPruefungsintervall(pruefungsintervall, termin)) + { + error = true; + markMissingFormEntry("pruefungsintervall"); + markMissingFormEntry($(v).attr("id")); + } + } + termine.push(termin); + }); + + $('#prfTermin tr').has("input").each(function(i,v){ + var termin = {}; + $(v).find("input").each(function(j, w){ + switch (j) { + case 0: + termin.datum = $(w).val(); + break; + case 1: + termin.beginn = $(w).val(); + break; + case 2: + termin.ende = $(w).val(); + break; + case 3: + termin.min = $(w).val(); + break; + case 4: + termin.max = $(w).val(); + break; + case 5: + termin.sammelklausur = $(w).prop("checked"); + break; + } + }); + if(!checkTermin(termin)) + { + error = true; + markMissingFormEntry($(v).attr("id")); + } + if(einzeln) + { + if(!checkPruefungsintervall(pruefungsintervall, termin)) + { + error = true; + markMissingFormEntry("pruefungsintervall"); + markMissingFormEntry($(v).attr("id")); + } + } + termineNeu.push(termin); + }); + + $("#lvDropdowns select").each(function(i,v){ + if($(v).val() !== "null") + lehrveranstaltungen.push($(v).val()); + }); + + if(is_null(studiensemester_kurzbz) || is_undefined(studiensemester_kurzbz) || is_empty_String(studiensemester_kurzbz)) + { + error = true; + markMissingFormEntry("studiensemester"); + } + if(is_null(pruefungsfenster_id) || is_undefined(pruefungsfenster_id) || is_empty_String(pruefungsfenster_id) || (pruefungsfenster_id === "null")) + { + error = true; + markMissingFormEntry("pruefungsfenster"); + } +// if(is_null(pruefungstyp_kurzbz) || is_undefined(pruefungstyp_kurzbz) || is_empty_String(pruefungstyp_kurzbz) || (pruefungstyp_kurzbz === "undefiniert")) +// { +// error = true; +// markMissingFormEntry("pruefungsTyp"); +// } + if(is_null(titel) || is_undefined(titel) || is_empty_String(titel)) + { + error = true; + markMissingFormEntry("titel"); + } + if(is_null(beschreibung) || is_undefined(beschreibung) || is_empty_String(beschreibung)) + { + error = true; + markMissingFormEntry("beschreibung"); + } + if(is_null(methode) || is_undefined(methode) || is_empty_String(methode)) + { + error = true; + markMissingFormEntry("methode"); + } + if(lehrveranstaltungen[0] === "null") + { + error = true; + markMissingFormEntry("lvDropdowns"); + } + + if(error) + { + messageBox("message", "t('pruefung/formulardatenNichtKorrekt'); ?>", "red", "highlight", 3000); + } + else + { + $.ajax({ + dataType: 'json', + url: "./pruefungstermin.json.php", + type: "POST", + data: { + method: "updatePruefungstermin", + pruefung_id: prfId, + studiensemester_kurzbz: studiensemester_kurzbz, + pruefungsfenster_id: pruefungsfenster_id, +// pruefungstyp_kurzbz: pruefungstyp_kurzbz, + titel: titel, + beschreibung: beschreibung, + methode: methode, + einzeln: einzeln, + termine: termine, + termineNeu: termineNeu, + lehrveranstaltungen: lehrveranstaltungen, + mitarbeiter_uid: mitarbeiter_uid, + pruefungsintervall: pruefungsintervall + }, + error: loadError + }).success(function(data){ + unmarkMissingFormEntry(); + if(data.error === "false") + { + messageBox("message", "t('pruefung/pruefungErfolgreichGespeichert'); ?>", "green", "highlight", 1000); + resetPruefungsverwaltung(); + } + else + { + messageBox("message", data.errormsg, "red", "highlight", 1000); + } + }).complete(function(){ + loadAllPruefungen(); + $("#modalOverlay").removeClass("modalOverlay"); + }); + } +} + +/** + * Löscht eine Lehrveranstaltung von einer Prüfung + * @param {int} lvId ID der Lehrveranstaltung + * @param {int} pruefung_id ID der Prüfung + * @returns {void} + */ +function deleteLehrveranstaltungFromPruefung(lvId, pruefung_id) +{ + $.ajax({ + dataType: 'json', + url: "./pruefungstermin.json.php", + type: "POST", + data: { + method: "deleteLehrveranstaltungFromPruefung", + pruefung_id: pruefung_id, + lehrveranstaltung_id: lvId + }, + error: loadError + }).success(function(data){ + if(data.error === "false") + { + messageBox("message", "t('pruefung/lvErfolgreichEntfernt'); ?>", "green", "highlight", 1000); + } + else + { + messageBox("message", data.errormsg, "red", "highlight", 1000); + } + }).complete(function(){ + loadPruefungsDetails(pruefung_id); + }); +} + +/** + * Storniert eine Prüfung + * @param {int} pruefung_id ID der Prüfung + * @returns {void} + */ +function stornoPruefung(pruefung_id) +{ + $("#modalOverlay").addClass("modalOverlay"); + $.ajax({ + dataType: 'json', + url: "./pruefungstermin.json.php", + type: "POST", + data: { + method: "stornoPruefung", + pruefung_id: pruefung_id + }, + error: loadError + }).success(function(data){ + if(data.error === "false") + { + messageBox("message", "t('pruefung/pruefungStorniert'); ?>", "green", "highlight", 1000); + } + else + { + messageBox("message", data.errormsg, "red", "highlight", 1000); + } + }).complete(function(){ + loadAllPruefungen(); + resetPruefungsverwaltung(); + }); +} + +/** + * Löscht einen Termin + * @param {int} pruefung_id ID der Prüfung + * @param {int} pruefungstermin_id ID des Prüfungstermines + * @returns {undefined} + */ +function terminLoeschen(pruefung_id, pruefungstermin_id) +{ + $.ajax({ + dataType: 'json', + url: "./pruefungstermin.json.php", + type: "POST", + data: { + method: "deleteTermin", + pruefung_id: pruefung_id, + pruefungstermin_id: pruefungstermin_id + }, + error: loadError + }).success(function(data){ + if(data.error === "false") + { + messageBox("message", "t('pruefung/terminGeloescht'); ?>", "green", "highlight", 1000); + } + else + { + messageBox("message", data.errormsg, "red", "highlight", 1000); + } + }).complete(function(){ + loadPruefungsDetails(pruefung_id); + loadAllPruefungen(); + }); +} + +/** + * Lädt alle Prüfungen + * @returns {void} + */ +function loadAllPruefungen() +{ + var uid = $("#mitarbeiter_uid").val(); + $.ajax({ + dataType: 'json', + url: "./pruefungstermin.json.php", + type: "POST", + data: { + method: "getAllPruefungen", + uid: uid + }, + error: loadError + }).success(function(data){ + if(data.error != 'true') + { + $("#prfTable tbody").first().html(""); + var tableRow = ""; + data.result.forEach(function(e){ + if(e.storniert === false) + { + tableRow = ""+e.titel+""; + tableRow += ""+e.studiensemester_kurzbz+""; + tableRow += ""; + e.lehrveranstaltungen.forEach(function(f){ + tableRow += f.bezeichnung+"
"; + }); + tableRow+=""; + tableRow+=""; + e.termine.forEach(function(f){ + tableRow += convertDateTime(f.von, "date")+" von "+convertDateTime(f.von, "time")+" bis "+convertDateTime(f.bis, "time")+"
"; + }); + tableRow+=""; + tableRow += ""+e.methode+""; +// tableRow += ""+e.pruefungstyp_kurzbz+""; + tableRow += ""+e.einzeln+""; + tableRow += ""+e.mitarbeiter_uid+""; + tableRow += ""+e.storniert+""; + tableRow += ""; + $("#prfTable tbody").first().append(tableRow); + } + }); + } + else + { + messageBox("message", data.errormsg, "red", "highlight", 1000); + } + }).complete(function(event, xhr, settings){ + if($("#prfTable")[0].hasInitialized !== true) + { + $("#prfTable").tablesorter({ + widgets: ["zebra"], + sortList: [[1,0]] + }); + } + else + { + $("#prfTable").trigger("updateAll"); + var sorting = [[1,0],[0,0]]; + $("#prfTable").trigger("sorton",[sorting]); + } + }); +} + +/** + * Prüft die Daten eines Termins auf deren Richtigkeit + * Prüft ob die Beginnzeit vor der Endzeit liegt und ob beide Daten mindestens 14 Tage in der Zukunft liegen. + * @param {Object} termin Object mit den Attributen datum (DD.MM.YYYY), beginn (HH:mm) und ende (HH:mm) + * @returns {Boolean} TRUE, wenn die Daten korrekt sind, ansonsten FALSE + */ +function checkTermin(termin) +{ + var heute = new Date(); + var aktTime = new Date(heute.getTime() + (14*24*60*60*1000)); + var vonTime = stringToDate(termin.datum, termin.beginn); + var bisTime = stringToDate(termin.datum, termin.ende); + + if(!(aktTime < vonTime)) + { + return false; + } + else if(!(vonTime < bisTime)) + { + return false; + } + return true; +} + +function checkPruefungsintervall(intervall, termin) +{ + var beginn = stringToDate(termin.datum, termin.beginn); + var ende = stringToDate(termin.datum, termin.ende); + var maxTeilnehmer = ((ende - beginn) / 1000 / 60 / intervall); + if(maxTeilnehmer < termin.max) + { + return false; + } + return true; +} + +/** + * Formatiert eine Datum von String in eine Date-Objekt + * @param {string} datum Ein Datum als String im Format "DD.MM.YYYY" + * @param {string} time eine Uhrzeit als String im Format " HH:mm:ss" + * @returns {Date} Dateobjekt + */ +function stringToDate(datum, time) +{ + datum = datum.split("."); + time = time.split(":"); + time = new Date(datum[2], (datum[1]-1), datum[0], time[0], time[1]); + return time; +} + +/** + * Setzt die Oberfläche der Prüfungsverwaltung auf den Ausgangszustand zurück + * @returns {void} + */ +function resetPruefungsverwaltung() +{ + loadAllPruefungen(); + $("#titel").val(""); + $("#beschreibung").val(""); +// loadPruefungstypen("false"); + loadStudiensemester(); + $("#methode").val(""); + resetLehrveranstaltungen(); + resetTermine(); + $("#pruefungsintervall").val("15"); + $("#einzeln").removeAttr("checked"); + $("#pruefungsintervall").closest("tr").css("visibility", "hidden"); + $("#modalOverlay").removeClass("modalOverlay"); + $("#buttonSave").attr("onclick", "savePruefungstermin();"); +} + +/** + * Prüft ob eine Zahl "min" kleiner als eine Zahl "max" ist. + * @param {String} min + * @param {String} max + * @returns {Boolean} TRUE, wenn min kleiner als max ist und beide einen positiven Wert haben + */ +function checkMinMaxTeilnehmer(min, max) +{ + if(((min !== null) && (max !== null)) && ((min !== "") && (max !== ""))) + { + min = parseInt(min); + max = parseInt(max); + if(max < min) + { + return false; + } + if(max < 0) + { + return false; + } + if(min < 0) + { + return false; + } + if(isNaN(min)) + { + return false; + } + if(isNaN(max)) + { + return false; + } + } + return true; +} + +function changeStateOfRaumDropdown() +{ + if($("#raum input[type=checkbox]").prop("checked") === true) + { + $("#raeumeDropdown").css("visibility", "hidden"); + $("#raeumeDropdown").prev().css("visibility", "hidden"); + } + else + { + $("#raeumeDropdown").css("visibility", "visible"); + $("#raeumeDropdown").prev().css("visibility", "visible"); + } +} + +function saveRaum(terminId, lehrveranstaltung_id) +{ + var ort_kurzbz; + if($("#raum input[type=checkbox]").prop("checked") === true) + { + ort_kurzbz = "buero"; + } + else + { + ort_kurzbz = $("#raeumeDropdown").val(); + } + $.ajax({ + dataType: 'json', + url: "./pruefungsanmeldung.json.php", + type: "POST", + data: { + method: "saveRaum", + ort_kurzbz: ort_kurzbz, + terminId: terminId + }, + error: loadError + }).success(function(data){ + $("#raumDialog").dialog("close"); + showAnmeldungen(terminId, lehrveranstaltung_id); + }); +} + +function getRaeume(terminId) +{ + $.ajax({ + dataType: 'json', + url: "./pruefungsanmeldung.json.php", + type: "POST", + data: { + method: "getAllFreieRaeume", + terminId: terminId + }, + error: loadError + }).success(function(data){ + var liste = ""; + data.result.forEach(function(d){ + liste += "" + }); + $("#raeumeDropdown").html(liste); + }); +} diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php old mode 100644 new mode 100755 index 89b72e837..bd093c2a5 --- a/cis/private/lehre/pruefung/pruefungsanmeldung.json.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.json.php @@ -49,7 +49,7 @@ switch($method) $data = getPruefungByLv($studiensemester, $uid); break; case 'getPruefungByLvFromStudiengang': - $studiensemester = isset($_REQUEST['studiensemester']) ? $_REQUEST['studiensemester'] : NULL; + $studiensemester = isset($_REQUEST['studiensemester']) ? $_REQUEST['studiensemester'] : NULL; $data = getPruefungByLvFromStudiengang($studiensemester, $uid); break; case 'loadPruefung': @@ -64,7 +64,7 @@ switch($method) { $uid = $student_uid; } - + if($student_uid === "") { $data['result']=""; @@ -368,19 +368,19 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) $stdsem = $studiensemester->getLastOrAktSemester(0); $lv_besucht = false; $studienverpflichtung_id = filter_input(INPUT_POST, "studienverpflichtung_id"); - + //Defaulteinstellung für Anzahlprüfungsversuche (wird durch Addon "ktu" überschrieben) $maxAnzahlVersuche = 0; - + //Defaulteinstellung für Code Note "unetnschuldigt ferngeblieben" (wird durch Addon "ktu" überschrieben) $noteCode_uef = -1; - + $addon = new addon(); foreach ($addon->aktive_addons as $a) { - if($a === "ktu") + if($a === "ku") { - require '../../../../addons/ktu/cis/prfVerwaltung_array.php'; + require '../../../../addons/'.$a.'/cis/prfVerwaltung_array.php'; switch($lehrveranstaltung->oe_kurzbz) { case $fakultaeten[0]["fakultaet"]: @@ -389,7 +389,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) case $fakultaeten[1]["fakultaet"]: $semCounter = $fakultaeten[1]["sem"]; break; - default: + default: $semCounter = 2; break; } @@ -415,17 +415,29 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) $i++; } while($i<=$semCounter && $lv_besucht === FALSE); - + if(!$lv_besucht) { $data['error']='true'; $data['errormsg']='Besuch der Lehrveranstaltung liegt zu weit in der Vergangenheit.'; return $data; } - + $pruefung->getPruefungen($uid, NULL, $lehrveranstaltung->lehrveranstaltung_id); $anmeldung_moeglich = true; $anzahlPruefungen = count($pruefung->result); + if(isset($pruefungstyp_kurzbzArray)) + { + if($anzahlPruefungen < count($pruefungstyp_kurzbzArray)) + { + $pruefungstyp_kurzbz = $pruefungstyp_kurzbzArray[$anzahlPruefungen]; + } + } + else + { + $pruefungstyp_kurzbz = null; + } + foreach($pruefung->result as $prf) { $note = new note($prf->note); @@ -456,7 +468,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) } } } - + if($anmeldung_moeglich) { if($termin->teilnehmer_max > $termin->getNumberOfParticipants() || $termin->teilnehmer_max == NULL) @@ -470,6 +482,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) $anmeldung->uid = $uid; $anmeldung->reihung = $reihung+1; $anmeldung->status_kurzbz = "angemeldet"; + $anmeldung->pruefungstyp_kurzbz = $pruefungstyp_kurzbz; $lehrveranstaltung = new lehrveranstaltung($_REQUEST["lehrveranstaltung_id"]); $konto = new konto(); @@ -514,7 +527,7 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) $data['errormsg']='Anmeldung auf Grund von Sperre nicht möglich.'; return $data; } - + $anrechnung = new anrechnung(); $lv_komp = new lehrveranstaltung($studienverpflichtung_id); $person = new person(); @@ -548,18 +561,18 @@ function saveAnmeldung($aktStudiensemester = null, $uid = null) $anrechnung->new = true; $anrechungSaveResult = $anrechnung->save(); } - else + else { $anrechungSaveResult = true; } - + if($anrechungSaveResult) { if($anrechnung->anrechnung_id == "") $anmeldung->anrechnung_id = null; else $anmeldung->anrechnung_id = $anrechnung->anrechnung_id; - + if($anmeldung->save(true)) { $pruefung = new pruefungCis($termin->pruefung_id); @@ -784,7 +797,7 @@ function anmeldungBestaetigen($uid) $datum = new datum(); $ort = new ort($termin->ort_kurzbz); $pruefung = new pruefungCis($termin->pruefung_id); - + $to = $anmeldung->uid."@".DOMAIN; $from = "noreply@".DOMAIN; $subject = "Anmeldungsbestätigung zur Prüfung"; @@ -806,11 +819,11 @@ function anmeldungBestaetigen($uid) $html .= "
"; $html .= "Link zur Anmeldung
"; $html .= "
"; - + $mail = new mail($to, $from, $subject,"Bitte sehen Sie sich die Nachricht in HTML Sicht an, um den Link vollständig darzustellen."); $mail->setHTMLContent($html); $mail->send(); - + $data['result']=true; $data['error']='false'; $data['errormsg']=''; @@ -896,18 +909,18 @@ function getPruefungenStudiengang($uid, $aktStudiensemester) } /** - * + * * @return typespeichert ein Kommentar zu einer Prüfungsanmeldung */ function saveKommentar() { $kommentar = $_REQUEST["kommentar"]; $pruefungsanmeldung_id = $_REQUEST["pruefungsanmeldung_id"]; - + $pruefungsanmeldung = new pruefungsanmeldung($pruefungsanmeldung_id); $pruefungsanmeldung->kommentar = $kommentar; if($pruefungsanmeldung->save()) - { + { $data['result']=true; $data['error']='false'; $data['errormsg']=''; @@ -933,9 +946,9 @@ function getAllFreieRaeume($terminId) $teilnehmer = $pruefungstermin->getNumberOfParticipants(); $teilnehmer = $teilnehmer !== false ? $teilnehmer : 0; $pruefungstermin->getAll($pruefungstermin->von, $pruefungstermin->bis, TRUE); - + if($ort->search($datum_von[0], $datum_von[1], $datum_bis[1], null, $teilnehmer, true)) - { + { foreach($pruefungstermin->result as $termin) { if($termin->pruefungstermin_id != $pruefungstermin->pruefungstermin_id && !is_null($termin->ort_kurzbz)) @@ -945,7 +958,7 @@ function getAllFreieRaeume($terminId) array_push($ort->result, $o); } } - + usort($ort->result, "compareRaeume"); $data['result']=$ort->result; $data['error']='false'; @@ -985,7 +998,7 @@ function saveRaum($terminId, $ort_kurzbz, $uid) $reserviert = true; } if(!$reserviert || $pruefungstermin->sammelklausur == TRUE) - { + { $pruefung = new pruefungCis($pruefungstermin->pruefung_id); $mitarbeiter = new mitarbeiter($pruefung->mitarbeiter_uid); if($ort_kurzbz === "buero") @@ -1018,7 +1031,7 @@ function saveRaum($terminId, $ort_kurzbz, $uid) $reservierung->insertamum = date('Y-m-d G:i:s'); $reservierung->insertvon = $uid; $reservierungError = false; - + foreach($stunden as $h) { $reservierung->stunde = $h; @@ -1028,7 +1041,7 @@ function saveRaum($terminId, $ort_kurzbz, $uid) } } if(!$reservierungError) - { + { $pruefungstermin->ort_kurzbz = $reservierung->ort_kurzbz; if($pruefungstermin->save(false)) { @@ -1074,4 +1087,4 @@ function getLvKompatibel($lvid) } return $data; } -?> \ No newline at end of file +?> diff --git a/cis/private/lehre/pruefung/pruefungsanmeldung.php b/cis/private/lehre/pruefung/pruefungsanmeldung.php old mode 100644 new mode 100755 index 505da7708..900e25a0a --- a/cis/private/lehre/pruefung/pruefungsanmeldung.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldung.php @@ -2,22 +2,22 @@ */ @@ -29,8 +29,15 @@ require_once('../../../../include/lehrveranstaltung.class.php'); require_once('../../../../include/konto.class.php'); require_once('../../../../include/studiensemester.class.php'); require_once('../../../../include/student.class.php'); +require_once('../../../../include/phrasen.class.php'); +require_once('../../../../include/globals.inc.php'); +require_once('../../../../include/sprache.class.php'); - +$sprache = getSprache(); +$lang = new sprache(); +$lang->load($sprache); +$p = new phrasen($sprache); +//TODO $uid = get_uid(); $db = new basis_db(); @@ -50,7 +57,7 @@ $studiensemester->getAll(); - + @@ -59,12 +66,12 @@ $studiensemester->getAll(); #pruefungen, #prfTermine { width: 50%; } - + #details { width: 50%; /* margin-left: 1.5em;*/ } - + #lvDetails, #prfDetails { min-width: 40%; margin-bottom: 1em; @@ -72,21 +79,21 @@ $studiensemester->getAll(); float:left; /*border: 1px solid black;*/ } - + /* #prfDetails { float:right; }*/ - + #accordion { width: 60%; clear: left; clear: right; } - + .titel { font-weight: bold; } - + #message { position: fixed; bottom: 0px; @@ -95,7 +102,7 @@ $studiensemester->getAll(); font-size: 1.5em; font-weight: bold; } - + .columnheader1 { width: 30%; } @@ -108,13 +115,13 @@ $studiensemester->getAll(); .columnheader4 { width: 5%; } - + #accordion p { margin: 0; height: 24px; } - + -

Prüfungsanmeldung für vorname." ".$benutzer->nachname." (".$uid.")"; ?>

+

t('pruefung/anmeldungFuer'); ?> vorname." ".$benutzer->nachname." (".$uid.")"; ?>

Filter'; - echo '

Studiensemester: '; + echo '

'.$p->t('pruefung/filter').'

'; + echo '

'.$p->t('global/studiensemester').': '; echo '

'; - + ?> -
+
-

LV-Details

- Bezeichnung:
- ECTS:
+

t('pruefung/lvDetails'); ?>

+ t('global/bezeichnung'); ?>:
+ t('global/ects'); ?>:
- +
-

Prüfungsdetails

- Typ:
- Methode:
- Beschreibung:
+

t('pruefung/pruefungsDetails'); ?>

+ t('pruefung/typ'); ?>:
+ t('pruefung/pruefungMethode'); ?>:
+ t('global/beschreibung'); ?>:

-
+
-
+
@@ -267,40 +274,40 @@ $studiensemester->getAll(); - + - + - + - + - + - +
Lehrveranstaltung: t('global/lehrveranstaltung'); ?>:
Von: t('global/von'); ?>:
Bis: t('global/bis'); ?>:
Studienverpflichtung:* t('pruefung/studienverpflichtung'); ?>:*
Bemerkung: t('global/anmerkung'); ?>:
diff --git a/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php b/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php old mode 100644 new mode 100755 index 43d750df5..bd95242d3 --- a/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php +++ b/cis/private/lehre/pruefung/pruefungsanmeldungen_liste.php @@ -2,22 +2,22 @@ */ @@ -33,6 +33,14 @@ require_once('../../../../include/lehrveranstaltung.class.php'); require_once('../../../../include/mitarbeiter.class.php'); require_once('../../../../include/student.class.php'); require_once('../../../../include/datum.class.php'); +require_once('../../../../include/phrasen.class.php'); +require_once('../../../../include/globals.inc.php'); +require_once('../../../../include/sprache.class.php'); + +$sprache = getSprache(); +$lang = new sprache(); +$lang->load($sprache); +$p = new phrasen($sprache); $uid = get_uid(); $rechte = new benutzerberechtigung(); @@ -42,17 +50,17 @@ $rechte->getBerechtigungen($uid); - @@ -225,17 +233,17 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA }); }); -

Anmeldungen Verwalten

+

t('pruefung/anmeldungenVerwalten'); ?>

-

Studiengänge

+

t('global/studiengang'); ?>

-

Studiensemester

+

t('global/studiensemester'); ?>

'; $aktuellesSemester = $studiensemester->getaktorNext(); @@ -259,7 +267,7 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
-

Prüfungen

+

t('pruefung/pruefungPruefungenTitle'); ?>

@@ -267,9 +275,9 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
-

Anmeldungen

+

t('pruefung/pruefungsbewertungAnmeldungen'); ?>

- +
@@ -278,20 +286,20 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
- +
- +
- +
- +
@@ -299,7 +307,7 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
- +
diff --git a/cis/private/lehre/pruefung/pruefungsbewertung.json.php b/cis/private/lehre/pruefung/pruefungsbewertung.json.php old mode 100644 new mode 100755 index 750628aff..0ff901e0c --- a/cis/private/lehre/pruefung/pruefungsbewertung.json.php +++ b/cis/private/lehre/pruefung/pruefungsbewertung.json.php @@ -17,6 +17,14 @@ require_once('../../../../include/pruefungsanmeldung.class.php'); require_once('../../../../include/student.class.php'); require_once('../../../../include/pruefungstermin.class.php'); require_once('../../../../include/datum.class.php'); +require_once('../../../../include/phrasen.class.php'); +require_once('../../../../include/globals.inc.php'); +require_once('../../../../include/sprache.class.php'); + +$sprache = getSprache(); +$lang = new sprache(); +$lang->load($sprache); +$p = new phrasen($sprache); $uid = get_uid(); @@ -43,7 +51,7 @@ switch($method) { $data['result']='false'; $data['error']='true'; - $data['errormsg']='Sie haben keine Berechtigung.'; + $data['errormsg']=$p->t('global/keineBerechtigung'); break; } $data = getPruefungMitarbeiter($mitarbeiter_uid); @@ -53,7 +61,7 @@ switch($method) { $data['result']='false'; $data['error']='true'; - $data['errormsg']='Sie haben keine Berechtigung.'; + $data['errormsg']=$p->t('global/keineBerechtigung'); break; } $data = getNoten(); @@ -73,7 +81,7 @@ switch($method) { $data['result']='false'; $data['error']='true'; - $data['errormsg']='Sie haben keine Berechtigung.'; + $data['errormsg']=$p->t('global/keineBerechtigung'); break; } $note = filter_input(INPUT_POST, 'note'); @@ -96,7 +104,7 @@ switch($method) { $data['result']='false'; $data['error']='true'; - $data['errormsg']='Sie haben keine Berechtigung.'; + $data['errormsg']=$p->t('global/keineBerechtigung'); break; } $pruefung_id = filter_input(INPUT_POST, 'pruefung_id'); @@ -109,7 +117,7 @@ switch($method) { $data['result']='false'; $data['error']='true'; - $data['errormsg']='Sie haben keine Berechtigung.'; + $data['errormsg']=$p->t('global/keineBerechtigung'); break; } $pruefung_id = filter_input(INPUT_POST, 'pruefung_id'); @@ -120,7 +128,7 @@ switch($method) { $data['result']='false'; $data['error']='true'; - $data['errormsg']='Sie haben keine Berechtigung.'; + $data['errormsg']=$p->t('global/keineBerechtigung'); break; } $pruefungsanmeldung_id = filter_input(INPUT_POST, 'pruefungsanmeldung_id'); @@ -131,7 +139,7 @@ switch($method) { $data['result']='false'; $data['error']='true'; - $data['errormsg']='Sie haben keine Berechtigung.'; + $data['errormsg']=$p->t('global/keineBerechtigung'); break; } $lehrveranstaltung_id = filter_input(INPUT_POST, 'lehrveranstaltung_id'); @@ -150,7 +158,8 @@ echo json_encode($data); * @return Array */ function getPruefungMitarbeiter($uid = null) -{ +{ + global $p; $lehrveranstaltung = new lehrveranstaltung(); if($uid !== null) { @@ -183,7 +192,7 @@ function getPruefungMitarbeiter($uid = null) else { $data['error']='true'; - $data['errormsg']="Keine Prüfungen vorhanden."; + $data['errormsg']=$p->t('pruefung/keinePruefungenVorhanden'); } return $data; } @@ -224,6 +233,7 @@ function getNoten() */ function saveBeurteilung($lehrveranstaltung_id, $student_uid, $mitarbeiter_uid, $note, $pruefung_id, $datum, $anmerkung, $pruefungsanmeldung_id, $uid) { + global $p; $pruefungCis = new pruefungCis($pruefung_id); $lehrveranstaltung = new lehrveranstaltung(); $lehreinheiten = $lehrveranstaltung->getLehreinheitenOfLv($lehrveranstaltung_id, $student_uid); @@ -231,20 +241,20 @@ function saveBeurteilung($lehrveranstaltung_id, $student_uid, $mitarbeiter_uid, $pruefung->new = true; if(!empty($lehreinheiten)) { + $pruefungsanmeldung = new pruefungsanmeldung($pruefungsanmeldung_id); + $pruefungstermin = new pruefungstermin($pruefungsanmeldung->pruefungstermin_id); + $pruefung->lehreinheit_id = $lehreinheiten[0]; $pruefung->student_uid = $student_uid; $pruefung->mitarbeiter_uid = $mitarbeiter_uid; $pruefung->note = $note; - $pruefung->pruefungstyp_kurzbz = $pruefungCis->pruefungstyp_kurzbz; + $pruefung->pruefungstyp_kurzbz = $pruefungsanmeldung->pruefungstyp_kurzbz; $pruefung->datum = $datum; $pruefung->anmerkung = $anmerkung; $pruefung->pruefungsanmeldung_id = $pruefungsanmeldung_id; $pruefung->insertvon = $uid; $pruefung->insertamum = date('Y-m-d H:i:s'); - $pruefungsanmeldung = new pruefungsanmeldung($pruefungsanmeldung_id); - $pruefungstermin = new pruefungstermin($pruefungsanmeldung->pruefungstermin_id); - $datum = new datum(); // var_dump(date("Y-m-d", time())); // var_dump($pruefungstermin->von); @@ -265,15 +275,16 @@ function saveBeurteilung($lehrveranstaltung_id, $student_uid, $mitarbeiter_uid, else { $data['error']='true'; - $data['errormsg']="Prüfungstermin liegt nicht in der Vergangenheit."; + $data['errormsg']=$p->t('pruefung/terminNichtInDerVergangenheit'); + //$data['errormsg']='Nicht in der Vergangenheit'; } } - else + else { $data['error']='true'; - $data['errormsg']="Keine Lehreinheiten vorhanden."; + $data['errormsg']=$p->t('pruefung/keineLehreinheitenVorhanden'); } - + return $data; } @@ -286,6 +297,7 @@ function saveBeurteilung($lehrveranstaltung_id, $student_uid, $mitarbeiter_uid, */ function updateBeurteilung($pruefung_id, $note, $uid, $anmerkung) { + global $p; $pruefung = new pruefung($pruefung_id); $pruefung->new = FALSE; $pruefung->note = $note; @@ -334,6 +346,7 @@ function getBeurteilung($pruefungsanmeldung_id) */ function getAnmeldungenTermin($lehrveranstaltung_id, $pruefungstermin_id) { + global $p; $pruefungsanmeldung = new pruefungsanmeldung(); $anmeldungen = $pruefungsanmeldung->getAnmeldungenByTermin($pruefungstermin_id, $lehrveranstaltung_id); foreach($anmeldungen as $a) @@ -363,8 +376,8 @@ function getAnmeldungenTermin($lehrveranstaltung_id, $pruefungstermin_id) } else { - $data['errormsg']= 'Keine Anmeldungen vorhanden'; + $data['errormsg']= $p->t('pruefung/keineAnmeldungenVorhanden'); } } return $data; -} \ No newline at end of file +} diff --git a/cis/private/lehre/pruefung/pruefungsbewertung.php b/cis/private/lehre/pruefung/pruefungsbewertung.php old mode 100644 new mode 100755 index 4a16ac6cd..28894e13c --- a/cis/private/lehre/pruefung/pruefungsbewertung.php +++ b/cis/private/lehre/pruefung/pruefungsbewertung.php @@ -2,22 +2,22 @@ */ @@ -33,6 +33,14 @@ require_once('../../../../include/pruefungstermin.class.php'); require_once('../../../../include/studiengang.class.php'); require_once('../../../../include/pruefungCis.class.php'); require_once('../../../../include/mitarbeiter.class.php'); +require_once('../../../../include/phrasen.class.php'); +require_once('../../../../include/globals.inc.php'); +require_once('../../../../include/sprache.class.php'); + +$sprache = getSprache(); +$lang = new sprache(); +$lang->load($sprache); +$p = new phrasen($sprache); $uid = get_uid(); $db = new basis_db(); @@ -53,7 +61,7 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA - + @@ -63,17 +71,17 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA body { padding: 10px 0 0 10px; } - + #prfWrapper { position: absolute; height: 80%; width: 300px; padding: 1.8em 1.5em 1.8em 1em; - border-radius: 25px; - /*border: 1px solid black;*/ - box-shadow: 0em 0em 2em 0.5em #888888 inset; + //border-radius: 25px; + border: 1px solid #dddddd; + /*box-shadow: 0em 0em 2em 0.5em #888888 inset;*/ } - + #pruefungen { /*border: 1px solid black;*/ width: 94%; @@ -84,7 +92,7 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA overflow: auto; overflow-x: hidden; } - + #anmWrapper { position: absolute; /*top: 45px;*/ @@ -92,21 +100,21 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA width: 600px; height: 80%; padding: 1.8em 1.5em 1.8em 1em; - border-radius: 25px; - /*border: 1px solid black;*/ - box-shadow: 0em 0em 2em 0.5em #888888 inset; + /*border-radius: 25px;*/ + border: 1px solid #dddddd; + /*box-shadow: 0em 0em 2em 0.5em #888888 inset;*/ } - + #anmeldungen { height: 100%; overflow: auto; overflow-x: hidden; } - + #anmeldungen > div, h2 { padding: 0.5em; } - + #message { position: fixed; top: 0px; @@ -116,12 +124,12 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA font-size: 1.5em; font-weight: bold; } - + .missingFormData { border: 2px solid red; outline: 2px solid red; } - + .modalOverlay { position: fixed; width: 100%; @@ -130,7 +138,7 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA left: 0px; background-color: rgba(0,0,0,0.3); /* black semi-transparent */ } - + .anmeldung { font-size: 1.2em; border-bottom: 1px solid black; @@ -142,28 +150,28 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA margin: 0 1em 0 0; float: left; } - + .anmeldung:last-child { clear: both; } - + .anmeldung div:first-child { width: 250px; height: 100%; } - + .saved { background-color: green; } - + .unsaved { background-color: red; } - + #wrapper { display: none; } - + #lektor { margin: 0 0 1em 0; } @@ -209,7 +217,7 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA });
-

Prüfungsbewertung

+

t('pruefung/pruefungsbewertungTitle'); ?>

isBerechtigt('lehre/pruefungsbeurteilungAdmin')) @@ -224,7 +232,7 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA } else { - echo 'Lektor: '; + echo ''.$p->t('pruefung/pruefungLektor').': '; echo ''; echo ''; echo ''; @@ -234,7 +242,7 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
-

Prüfungen

+

t('pruefung/pruefungPruefungenTitle'); ?>

@@ -242,14 +250,14 @@ if(empty($pruefung->result) && !$rechte->isBerechtigt('lehre/pruefungsanmeldungA
-

Anmeldungen

+

t('pruefung/pruefungsbewertungAnmeldungen'); ?>

- +
diff --git a/cis/private/lehre/pruefung/pruefungsfenster_anlegen.php b/cis/private/lehre/pruefung/pruefungsfenster_anlegen.php old mode 100644 new mode 100755 index 63a095df7..1338d3af9 --- a/cis/private/lehre/pruefung/pruefungsfenster_anlegen.php +++ b/cis/private/lehre/pruefung/pruefungsfenster_anlegen.php @@ -2,22 +2,22 @@ */ @@ -29,6 +29,14 @@ require_once('../../../../include/organisationseinheit.class.php'); require_once('../../../../include/studiensemester.class.php'); require_once('../../../../include/datum.class.php'); require_once('../../../../include/pruefungsfenster.class.php'); +require_once('../../../../include/phrasen.class.php'); +require_once('../../../../include/globals.inc.php'); +require_once('../../../../include/sprache.class.php'); + +$sprache = getSprache(); +$lang = new sprache(); +$lang->load($sprache); +$p = new phrasen($sprache); $uid = get_uid(); $db = new basis_db(); @@ -42,7 +50,7 @@ function compareOe($a, $b) { if($a->organisationseinheittyp_kurzbz == $b->organisationseinheittyp_kurzbz) return 0; - + return ($a->organisationseinheittyp_kurzbz < $b->organisationseinheittyp_kurzbz) ? -1 : 1; } @@ -50,7 +58,7 @@ function compareOe($a, $b) - Prüfungsfenster anlegen + <?php echo $p->t('pruefung/titlePruefungsfenster') ?> @@ -83,7 +91,7 @@ $oe = $rechte->getOEkurzbz("lehre/pruefungsfenster"); $studiensemester = new studiensemester(); $studiensemester->getAll(); -if (isset($_POST["method"]) && $_POST["method"] == "save") +if (isset($_POST["method"]) && $_POST["method"] == "save") { $method = $_POST["method"]; $studiensemester_selected = (isset($_POST["studiensemester"]) ? $_POST["studiensemester"] : ""); @@ -107,30 +115,30 @@ if (isset($_POST["method"]) && $_POST["method"] == "save") $pruefungsfenster->ende = $endDate; if ($pruefungsfenster->save()) { - echo "Datensatz erfolgreich gespeichert"; + echo $p->t('pruefung/erfolgreichgespeichert'); } else { - echo "Fehler: ".$pruefungsfenster->errormsg; + echo $p->t('pruefung/fehler').$pruefungsfenster->errormsg; } -// } -// else +// } +// else // { // echo "Fehler: Startdatum liegt in der Vergangenheit."; // } - } + } else { - echo "Fehler: Enddatum liegt in der Vergangenheit."; + echo $p->t('pruefung/fehlerEndDatumInDerVergangenheit'); } - } - else - { - echo "Fehler: Enddatum liegt nicht nach dem Startdatum."; } - } - else + else + { + echo $p->t('pruefung/fehlerEndDatumVorStartDatum'); + } + } + else { - echo "Fehler: Datumseingabe nicht korrekt."; + echo $p->t('pruefung/fehlerDatumNichtKorrekt'); } } else if(isset($_POST["method"]) && $_POST["method"] == "update") @@ -151,44 +159,44 @@ else if(isset($_POST["method"]) && $_POST["method"] == "update") $pruefungsfenster_id = $_POST["id"]; $pruefungsfenster = new pruefungsfenster(); $pruefungsfenster->load($pruefungsfenster_id); - + if(in_array($pruefungsfenster->oe_kurzbz, $oe)) - { + { $pruefungsfenster->studiensemester_kurzbz = $studiensemester_selected; $pruefungsfenster->oe_kurzbz = $oe_kurzbz; $pruefungsfenster->start = $startDate; $pruefungsfenster->ende = $endDate; if ($pruefungsfenster->save()) { - echo "Datensatz erfolgreich geändert."; + echo $p->t('pruefung/erfolgreichgeaendert'); } else { - echo "Fehler: ".$pruefungsfenster->errormsg; + echo $p->t('pruefung/fehler').$pruefungsfenster->errormsg; } } else { - echo "Keine Berechtigung zum Ändern dieses Datensatzes."; + echo $p->t('pruefung/keineBerechtigungZumAendernDesDatensatzes'); } -// } -// else +// } +// else // { // echo "Fehler: Startdatum liegt in der Vergangenheit."; // } - } + } else { - echo "Fehler: Enddatum liegt in der Vergangenheit."; + echo $p->t('pruefung/fehlerEndDatumInDerVergangenheit'); } - } - else - { - echo "Fehler: Enddatum liegt nicht nach dem Startdatum."; } - } - else + else + { + echo $p->t('pruefung/fehlerEndDatumVorStartDatum'); + } + } + else { - echo "Fehler: Datumseingabe nicht korrekt."; + echo $p->t('pruefung/fehlerDatumNichtKorrekt'); } } else if(isset($_GET["id"]) && $_GET["id"]!= null && isset($_GET["method"]) && $_GET["method"]=="update") @@ -198,41 +206,41 @@ else if(isset($_GET["id"]) && $_GET["id"]!= null && isset($_GET["method"]) && $_ $pruefungsfenster->load($pruefungsfenster_id); if(!in_array($pruefungsfenster->oe_kurzbz, $oe)) { - echo "Keine Berechtigung zum Anzeigen dieses Datensatzes."; + echo $p->t('pruefung/keineBerechtigungZumAnzeigenDesDatensatzes'); $pruefungsfenster = new pruefungsfenster(); } $method = $_GET["method"]; -} +} else if(isset($_GET["id"]) && $_GET["id"]!= null && isset($_GET["method"]) && $_GET["method"]=="delete") -{ +{ $pruefungsfenster_id = $_GET["id"]; $pruefungsfenster = new pruefungsfenster(); $pruefungsfenster->load($pruefungsfenster_id); - + if(in_array($pruefungsfenster->oe_kurzbz, $oe)) { if(!$pruefungsfenster->hasPruefungen($pruefungsfenster_id) && $pruefungsfenster->errormsg === null) { - + if($pruefungsfenster->delete($pruefungsfenster_id)) { - echo "Datensatz erfolgreich gelöscht."; - } + echo $p->t('pruefung/erfolgreichgeloescht'); + } else { echo "Fehler: ".$pruefungsfenster->errormsg; } - + } else { - echo "Prüfungsfenster konnte nicht gelöscht werden, da Prüfungen verknüpft sind."; + echo $p->t('pruefung/pruefungsfensterKonnteNichtGeloeschtWerdenDaPruefungen'); } $method = $_GET["method"]; } else { - echo "Keine Berechtigung zum Löschen dieses Datensatzes."; + echo $p->t('pruefung/keineBerechtigungZumLoeschenDesDatensatzes'); } } @@ -240,9 +248,9 @@ $prfFenster = new pruefungsfenster(); $prfFenster->getAll("start"); if($method != "update") { -?> -

Prüfungsfenster-Verwaltung

-

Neues Prüfungsfenster anlegen

+?> +

t('pruefung/pruefungsfensterVerwaltung'); ?>

+

t('pruefung/neuesPruefungsfensterAnlegen'); ?>

@@ -250,12 +258,12 @@ if($method != "update") - + - + - + - + - +
Studiensemester: t('global/studiensemester'); ?>:
Organisationseinheit: t('global/organisationseinheit'); ?>:
Start: t('pruefung/start'); ?>:
Ende: t('pruefung/ende'); ?>:
@@ -314,8 +322,8 @@ if($method != "update") else { ?> -

Prüfungsfenster-Verwaltung

-

Prüfungsfenster bearbeiten

+

t('pruefung/pruefungsfensterVerwaltung'); ?>

+

t('pruefung/pruefungsfensterBearbeiten'); ?>

@@ -326,11 +334,11 @@ else - + - + - + - + - - + +
Studiensemester: t('global/studiensemester'); ?>:
Organisationseinheit: t('global/organisationseinheit'); ?>:
Start: t('pruefung/start'); ?>:
Ende: t('pruefung/ende'); ?>:
@@ -390,21 +398,21 @@ else if((isset($_GET["id"]) && $method!="update") || !isset($_GET["id"])) { ?> -

Prüfungsfenster bearbeiten

+

t('pruefung/pruefungsfensterBearbeiten'); ?>

- result)){ - + ?> - - - - - - + + + + + + @@ -415,14 +423,14 @@ else if(in_array($result->oe_kurzbz, $oe)) { $organisationseinheit->load($result->oe_kurzbz); - echo + echo ' - - + + '; } } @@ -433,14 +441,14 @@ else } else { - echo + echo ' - + '; } ?> - diff --git a/cis/private/lehre/pruefung/pruefungstermin.json.php b/cis/private/lehre/pruefung/pruefungstermin.json.php old mode 100644 new mode 100755 index ee2d39f76..5960fe5c2 --- a/cis/private/lehre/pruefung/pruefungstermin.json.php +++ b/cis/private/lehre/pruefung/pruefungstermin.json.php @@ -15,6 +15,14 @@ require_once('../../../../include/datum.class.php'); require_once('../../../../include/studiensemester.class.php'); require_once('../../../../include/pruefungsfenster.class.php'); require_once('../../../../include/pruefungsanmeldung.class.php'); +require_once('../../../../include/phrasen.class.php'); +require_once('../../../../include/globals.inc.php'); +require_once('../../../../include/sprache.class.php'); + +$sprache = getSprache(); +$lang = new sprache(); +$lang->load($sprache); +$p = new phrasen($sprache); $uid = get_uid(); @@ -66,7 +74,7 @@ switch($method) { $data['result']='false'; $data['error']='true'; - $data['errormsg']='Sie haben keine Berechtigung.'; + $data['errormsg']=$p->t('global/keineBerechtigung'); break; } $data = savePruefungstermin($mitarbeiter_uid, $studiensemester_kurzbz, $pruefungsfenster_id, $pruefungstyp_kurzbz, $titel, $beschreibung, $methode, $einzeln, $lehrveranstaltungen, $termine, $pruefungsintervall); @@ -105,7 +113,7 @@ switch($method) { $data['result']='false'; $data['error']='true'; - $data['errormsg']='Sie haben keine Berechtigung.'; + $data['errormsg']=$p->t('global/keineBerechtigung'); break; } $data = updatePruefungstermin($mitarbeiter_uid, $pruefung_id, $studiensemester_kurzbz, $pruefungsfenster_id, $pruefungstyp_kurzbz, $titel, $beschreibung, $methode, $einzeln, $lehrveranstaltungen, $termine, $termineNeu, $pruefungsintervall); @@ -115,7 +123,7 @@ switch($method) { $data['result']='false'; $data['error']='true'; - $data['errormsg']='Sie haben keine Berechtigung.'; + $data['errormsg']=$p->t('global/keineBerechtigung'); break; } $lvId = $_POST["lehrveranstaltung_id"]; @@ -127,7 +135,7 @@ switch($method) { $data['result']='false'; $data['error']='true'; - $data['errormsg']='Sie haben keine Berechtigung.'; + $data['errormsg']=$p->t('global/keineBerechtigung'); break; } $pruefung_id = $_REQUEST["pruefung_id"]; @@ -138,7 +146,7 @@ switch($method) { $data['result']='false'; $data['error']='true'; - $data['errormsg']='Sie haben keine Berechtigung.'; + $data['errormsg']=$p->t('global/keineBerechtigung'); break; } $pruefung_id = $_REQUEST["pruefung_id"]; @@ -158,7 +166,7 @@ switch($method) { $data['result']='false'; $data['error']='true'; - $data['errormsg']='Sie haben keine Berechtigung.'; + $data['errormsg']=$p->t('global/keineBerechtigung'); break; } break; @@ -255,10 +263,11 @@ function getPruefungsfensterByStudiensemester($studiensemester_kurzbz) */ function savePruefungstermin($uid, $studiensemester_kurzbz, $pruefungsfenster_id, $pruefungstyp_kurzbz, $titel, $beschreibung, $methode, $einzeln, $lehrveranstaltungen, $termine, $pruefungsintervall) { + global $p; if($lehrveranstaltungen === null) { $data['error']='true'; - $data['errormsg']="Keine Lehrverantaltung angegeben."; + $data['errormsg']=$p->t('pruefung/keineLvAngegeben'); return $data; } $termineArray = array(); @@ -282,7 +291,7 @@ function savePruefungstermin($uid, $studiensemester_kurzbz, $pruefungsfenster_id else { $data['error']='true'; - $data['errormsg']="Kollision mit anderem Termin."; + $data['errormsg']=$p->t('pruefung/kollisionMitAnderemTermin'); return $data; } // } @@ -292,7 +301,7 @@ function savePruefungstermin($uid, $studiensemester_kurzbz, $pruefungsfenster_id // $data['errormsg']="Termin ist nicht innerhalb des Prüfungsfensters."; // return $data; // } - } + } $pruefung = new pruefungCis(); $pruefung->termine = $termineArray; @@ -313,7 +322,7 @@ function savePruefungstermin($uid, $studiensemester_kurzbz, $pruefungsfenster_id array_push($pruefung->lehrveranstaltungen, $lv); } } - + if($pruefung->save(true)) { $data['result']="true"; @@ -397,12 +406,13 @@ function getLehrveranstaltungenByMitarbeiter($mitarbeiter_uid, $studiensemester_ */ function updatePruefungstermin($uid, $pruefung_id, $studiensemester_kurzbz, $pruefungsfenster_id, $pruefungstyp_kurzbz, $titel, $beschreibung, $methode, $einzeln, $lehrveranstaltungen, $termine, $termineNeu, $pruefungsintervall) { + global $p; $pruefungsfenster = new pruefungsfenster(); $pruefungsfenster->load($pruefungsfenster_id); $datum = new datum(); $pruefung = new pruefungCis(); $pruefung->load($pruefung_id); - + if($termineNeu !== null) { $termineNeuArray = array(); @@ -426,7 +436,7 @@ function updatePruefungstermin($uid, $pruefung_id, $studiensemester_kurzbz, $pru else { $data['error']='true'; - $data['errormsg']="Kollision mit anderem Termin."; + $data['errormsg']=$p->t('pruefung/kollisionMitAnderemTermin'); return $data; } // } @@ -442,7 +452,7 @@ function updatePruefungstermin($uid, $pruefung_id, $studiensemester_kurzbz, $pru $pruefung->saveTerminPruefung($pruefung_id, $t->beginn, $t->ende, $t->max, $t->min, $t->sammelklausur); } } - + if($termine !== null) { $termineArray = array(); @@ -474,7 +484,7 @@ function updatePruefungstermin($uid, $pruefung_id, $studiensemester_kurzbz, $pru } $pruefung->termine = $termineArray; } - + $pruefung->mitarbeiter_uid = $uid; $pruefung->studiensemester_kurzbz = $studiensemester_kurzbz; $pruefung->pruefungsfenster_id = $pruefungsfenster_id; @@ -661,4 +671,4 @@ function checkCollision($uid, $beginn, $ende) } return false; } -?> \ No newline at end of file +?> diff --git a/cis/private/lehre/pruefung/pruefungstermin_festlegen.php b/cis/private/lehre/pruefung/pruefungstermin_festlegen.php old mode 100644 new mode 100755 index bfc11ec1f..909ea18bd --- a/cis/private/lehre/pruefung/pruefungstermin_festlegen.php +++ b/cis/private/lehre/pruefung/pruefungstermin_festlegen.php @@ -2,22 +2,22 @@ */ @@ -33,6 +33,14 @@ require_once('../../../../include/pruefungstermin.class.php'); require_once('../../../../include/studiengang.class.php'); require_once('../../../../include/pruefungCis.class.php'); require_once('../../../../include/mitarbeiter.class.php'); +require_once('../../../../include/phrasen.class.php'); +require_once('../../../../include/globals.inc.php'); +require_once('../../../../include/sprache.class.php'); + +$sprache = getSprache(); +$lang = new sprache(); +$lang->load($sprache); +$p = new phrasen($sprache); $uid = get_uid(); $db = new basis_db(); @@ -49,11 +57,11 @@ if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('leh - Prüfungstermin festlegen + <?php echo $p->t('pruefung/titlePruefungstermin'); ?> - + @@ -68,12 +76,12 @@ if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('leh font-size: 1.5em; font-weight: bold; } - + .missingFormData { border: 2px solid red; outline: 2px solid red; } - + .modalOverlay { position: fixed; width: 100%; @@ -82,7 +90,7 @@ if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('leh left: 0px; background-color: rgba(0,0,0,0.3); /* black semi-transparent */ } - + #prfDetails, #prfVerwaltung { margin: 1em; } @@ -142,7 +150,7 @@ if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('leh });
-

Prüfungen verwalten

+

t('pruefung/pruefungenVerwalten'); ?>

StudiensemesterOrganisationseinheitStartdatumEnddatumBearbeitenLöschent('global/studiensemester'); ?>t('global/organisationseinheit'); ?>t('pruefung/start'); ?>t('pruefung/ende'); ?>t('global/bearbeiten'); ?>t('global/loeschen'); ?>
'.$result->studiensemester_kurzbz.' '.$organisationseinheit->organisationseinheittyp_kurzbz." ".$organisationseinheit->bezeichnung.' '.$result->start.' '.$result->ende.'bearbeitenlöschen'.$p->t('global/bearbeiten').''. $p->t('global/loeschen').'
Keine Prüfungsfenster gespeichert.'.$p->t('pruefung/keinePruefungsfensterGespeichert').'
lehrveranstaltungen) && !$rechte->isBerechtigt('leh } else { - echo ''; + echo ''; echo ''; echo ''; echo ''; @@ -169,54 +177,54 @@ if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('leh
Lektor:'.$p->t('pruefung/pruefungLektor').':
- + - + - + - + - + - + + - + --> - + - + - + - + - + - +
Titel:t('pruefung/pruefungTitel'); ?>:
Beschreibung:t('global/beschreibung'); ?>:
Studiensemester:t('global/studiensemester'); ?>:
Prüfungsfenster:t('pruefung/pruefungsfenster'); ?>:
Methode:t('pruefung/pruefungMethode'); ?>:
Einzelprüfung:t('pruefung/pruefungEinzelpruefung'); ?>:
Prüfungsintervall:t('pruefung/pruefungIntervall'); ?>:
Lehrveranstaltungen:t('global/lehrveranstaltung'); ?>:
Termin:t('pruefung/pruefungTermin'); ?>:
- - - - - - + + + + + + @@ -278,30 +286,30 @@ if(empty($lehrveranstaltung->lehrveranstaltungen) && !$rechte->isBerechtigt('leh
DatumVonbismin. Teilnehmermax. TeilnehmerSammelklausurt('global/datum'); ?>t('global/von'); ?>t('global/bis'); ?>t('pruefung/pruefungMinTeilnehmer'); ?>t('pruefung/pruefungMaxTeilnehmer'); ?>t('pruefung/pruefungSammelklausur'); ?>
- Termin hinzufügen + t('pruefung/pruefungTerminHinzufuegen'); ?>
  
-

Prüfungen

+

t('pruefung/pruefungPruefungenTitle'); ?>

- - - - - - - - - + + + + + + + + + diff --git a/cis/private/profile/studienplan.php b/cis/private/profile/studienplan.php old mode 100644 new mode 100755 index 03a339775..100fdfbbb --- a/cis/private/profile/studienplan.php +++ b/cis/private/profile/studienplan.php @@ -431,7 +431,7 @@ function drawTree($tree, $depth) echo $icon." ".$termine." lehrveranstaltung_id&language=$sprache','Lehrveranstaltungsinformation','width=700,height=750,resizable=yes,menuebar=no,toolbar=no,status=yes,scrollbars=yes');\">".$row_tree->kurzbz.' - '.$row_tree->bezeichnung.""; else // Bezeichnung der Lehrveranstaltung - echo $icon." ".$termine." ".$row_tree->kurzbz.' - '.$row_tree->bezeichnung; + echo $icon." ".$termine." ".$row_tree->kurzbz.' - '.$row_tree->bezeichnung.'('.$row_tree->lehrveranstaltung_id.')'; echo $bende.''; // Semester @@ -445,6 +445,10 @@ function drawTree($tree, $depth) echo ' + + + + diff --git a/cms/admin.php b/cms/admin.php index 6da234e0c..0ff56de25 100644 --- a/cms/admin.php +++ b/cms/admin.php @@ -42,7 +42,75 @@ $rechte->getBerechtigungen($user); if(!$rechte->isBerechtigt('basis/cms')) die($rechte->errormsg); -$berechtigte_oe = $rechte->getOEkurzbz('basis/cms') +$berechtigte_oe = $rechte->getOEkurzbz('basis/cms'); + +// Speichern eines Contents per Ajax Request , +// daher wird nach dem Speichern mittels exit beendet +if(isset($_POST['NewContent'])) +{ + if($rechte->isBerechtigt('basis/cms', null, 'sui')) + { + $templateContentId = isset($_POST['templateContent']) && $_POST['templateContent'] != 0?$_POST['templateContent']:''; + $titel = isset($_POST['titel'])?$_POST['titel']:'Neuer Eintrag'; + + if ($templateContentId != '') + { + $templateContent = new content(); + $templateContent->getContent($templateContentId); + } + + $template = new template(); + $template->getAll(); + if(!isset($template->result[0])) + exit('Es ist kein Template vorhanden'); + + if(in_array('etw',$berechtigte_oe)) + $oe = 'etw'; + else + $oe = $berechtigte_oe[0]; + + $content = new content(); + $content->new = true; + $content->oe_kurzbz= $templateContentId != ''?$templateContent->oe_kurzbz:$oe; + $content->template_kurzbz=$templateContentId != ''?$templateContent->template_kurzbz:$template->result[0]->template_kurzbz; + $content->titel = $titel; + $content->aktiv=true; + $content->menu_open=false; + $content->content = $templateContentId != ''?$templateContent->content:''; + $content->sichtbar=true; + $content->version='1'; + $content->sprache=$templateContentId != ''?$templateContent->sprache:DEFAULT_LANGUAGE; + $content->insertvon = $user; + $content->insertamum = date('Y-m-d H:i:s'); + $content->beschreibung = $templateContentId != ''?$templateContent->beschreibung:''; + + if($content->save()) + { + if($content->saveContentSprache()) + { + if ($templateContentId!='') + { + $parent_content = new content(); + $parent_content->content_id = $templateContentId; + $parent_content->child_content_id = $content->content_id; + $parent_content->insertamum = date('Y-m-d'); + $parent_content->insertvon = $user; + $parent_content->sort=$parent_content->getMaxSort($templateContentId)+1; + + if(!$parent_content->addChild()) + exit('AddChild '.$content->errormsg); + } + exit($content->content_id); + } + else + exit('ContentSpracheSave '.$content->errormsg); + } + else + exit('ContentSave '.$content->errormsg); + } + else + exit('Sie haben keine Berechtigung fuer diese Aktion'); +} ?> diff --git a/cms/menu/menu_addon_zeitsperren.inc.php b/cms/menu/menu_addon_zeitsperren.inc.php index 4dd07e137..7fef792b8 100755 --- a/cms/menu/menu_addon_zeitsperren.inc.php +++ b/cms/menu/menu_addon_zeitsperren.inc.php @@ -31,15 +31,15 @@ class menu_addon_zeitsperren extends menu_addon public function __construct() { parent::__construct(); - + $sprache = getSprache(); $user = get_uid(); - + $rechte = new benutzerberechtigung(); $rechte->getBerechtigungen($user); - + $p = new phrasen($sprache); - + $fkt=new funktion(); $fkt->getAll($user); @@ -50,7 +50,8 @@ class menu_addon_zeitsperren extends menu_addon 'link' => 'private/profile/zeitsperre_days.php?days=12', 'name' => $p->t('menu/zeitsperren') ); - + + /* if ($rechte->isBerechtigt('admin',0) || $rechte->isBerechtigt('mitarbeiter')) { $this->items[] = array('title' => $p->t('menu/resturlaub'), @@ -59,8 +60,9 @@ class menu_addon_zeitsperren extends menu_addon 'name' => $p->t('menu/resturlaub') ); } - - if ($rechte->isBerechtigt('admin',0) || $rechte->isBerechtigt('mitarbeiter') + */ + + if ($rechte->isBerechtigt('admin',0) || $rechte->isBerechtigt('mitarbeiter') || $fkt->checkFunktion('stvLtg')|| $fkt->checkFunktion('gLtg') || $fkt->checkFunktion('Leitung') || $fkt->checkFunktion('ass')) { @@ -85,7 +87,7 @@ class menu_addon_zeitsperren extends menu_addon 'name' => $p->t('menu/assistenz') ); } - + $stg_obj = new studiengang(); $stg_obj->loadArray($rechte->getStgKz('admin'), 'typ, kurzbz', true); foreach($stg_obj->result as $row) @@ -95,11 +97,11 @@ class menu_addon_zeitsperren extends menu_addon 'link' => 'private/profile/zeitsperre.php?funktion=lkt&stg_kz='.$row->studiengang_kz, 'name' => $p->t('menu/lektoren').' '.$row->kurzbzlang ); - } + } } $this->output(); } } new menu_addon_zeitsperren(); -?> \ No newline at end of file +?> diff --git a/cms/tinymce_dms.php b/cms/tinymce_dms.php index f32c4a107..e8fa17656 100644 --- a/cms/tinymce_dms.php +++ b/cms/tinymce_dms.php @@ -270,7 +270,7 @@ if($importFile != '') if($dms->save(true)) { - echo 'File wurde erfolgreich hochgeladen. Filename:'.$filename.' ID:'.$dms->dms_id; + echo 'File wurde erfolgreich hochgeladen.
Filename:'.$filename.'
ID: '.$dms->dms_id.''; $dms_id=$dms->dms_id; if($projekt_kurzbz!='' || $projektphase_id!='') @@ -282,10 +282,10 @@ if($importFile != '') else echo 'Fehler beim Speichern der Daten'; - if(!chgrp(DMS_PATH.$filename,'dms')) - echo 'CHGRP failed'; - if(!chmod(DMS_PATH.$filename, 0774)) - echo 'CHMOD failed'; + if(!@chgrp(DMS_PATH.$filename,'dms')) + echo '
CHGRP failed'; + if(!@chmod(DMS_PATH.$filename, 0774)) + echo '
CHMOD failed'; exec('sudo chown wwwrun '.$filename); // Lösche File aus Verzeichnis nachdem es raufgeladen wurde @@ -308,10 +308,10 @@ if(isset($_POST['fileupload'])) if(move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) { - if(!chgrp($uploadfile,'dms')) - echo 'CHGRP failed
'; - if(!chmod($uploadfile, 0774)) - echo 'CHMOD failed
'; + if(!@chgrp($uploadfile,'dms')) + echo '
CHGRP failed'; + if(!@chmod($uploadfile, 0774)) + echo '
CHMOD failed'; exec('sudo chown wwwrun '.$uploadfile); $dms = new dms(); @@ -831,32 +831,43 @@ function drawFilesFromImport() if ($handle = opendir(IMPORT_PATH)) { + echo ''; echo '

Files im Import Ordner

-
TitelStudiensemesterLehrveranstaltungenTermineMethodePrüfungstypEinzelprüfungMitarbeiterstorniertt('pruefung/pruefungTitel'); ?>t('global/studiensemester'); ?>t('global/lehrveranstaltung'); ?>t('pruefung/pruefungTermin'); ?>t('pruefung/pruefungMethode'); ?>t('pruefung/pruefungTyp'); ?>t('pruefung/pruefungEinzelpruefung'); ?>t('pruefung/pruefungMitarbeiter'); ?>t('pruefung/storniert'); ?>
'; // Note zu dieser LV vorhanden? + + $lv_kompatibel = new lehrveranstaltung(); + $kompatibleLVs = $lv_kompatibel->loadLVkompatibel($row_tree->lehrveranstaltung_id); + if(isset($noten_arr[$row_tree->lehrveranstaltung_id])) { // Positive Note fuer diese LV vorhanden? @@ -460,6 +464,27 @@ function drawTree($tree, $depth) else echo ''.$p->t('studienplan/negativ').''; } + //check if compatible course has grade + elseif(count($kompatibleLVs) > 0) + { + foreach($kompatibleLVs as $komp) + { + if(isset($noten_arr[$komp])) + { + $positiv=false; + foreach($noten_arr[$komp] as $note) + { + if($note_pruef_arr[$note]->positiv) + $positiv=true; + } + + if($positiv) + echo ''.$p->t('studienplan/abgeschlossen').''; + else + echo ''.$p->t('studienplan/negativ').''; + } + } + } else { if($abgeschlossen) @@ -495,6 +520,19 @@ function drawTree($tree, $depth) else $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$row_tree->lehrveranstaltung_id][$stsem]]->anmerkung.''; } + elseif(count($kompatibleLVs) > 0) + { + foreach($kompatibleLVs as $komp) + { + if(isset($noten_arr[$komp][$stsem])) + { + if($note_pruef_arr[$noten_arr[$komp][$stsem]]->positiv) + $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$komp][$stsem]]->anmerkung.''; + else + $tdinhalt .= ''.$note_pruef_arr[$noten_arr[$komp][$stsem]]->anmerkung.''; + } + } + } else { // Angebot der LV und der Kompatiblen pruefen @@ -564,7 +602,7 @@ function drawTree($tree, $depth) $tdclass[]='angebot'; if($angemeldet) { - $tdinhalt.= ''; + $tdinhalt.= ''; } else { @@ -615,6 +653,10 @@ echo '

'.$p->t('studienplan/legende').':
'.$p->t('studienplan/Anmeldung').'
'.$p->t('studienplan/legendeAngemeldet').'
'.$p->t('studienplan/legendeLock').'
'; +
+ '; - while (false !== ($file = readdir($handle))) - { - if($file != '.' && $file != '..') - { - echo' - - - - '; - } - } - echo' - + while (false !== ($file = readdir($handle))) + { + if($file != '.' && $file != '..') + { + echo' + + + + '; + } + } + echo' + -
File
- '.$file.' - - | Upload -
+ '.$file.' + + Upload +
'; - closedir($handle); + '; + closedir($handle); } } /** @@ -1018,7 +1029,7 @@ function drawFilesList($rows)
  • Herunterladen
  • '; if($rechte->isberechtigt('basis/dms',null, 'sui', null)) { - echo '
  • dms_id.'/Upload" onclick="window.location=\'#divupload\'; updateBeschreibung(\''; $beschreibungstext = $row->beschreibung; $beschreibungstext = str_replace("'","4nführungsze1ch3n",$beschreibungstext); $beschreibungstext = str_replace('"',"D4n7ührung",$beschreibungstext); diff --git a/composer.json b/composer.json old mode 100644 new mode 100755 index 32278e8dc..a64b8607b --- a/composer.json +++ b/composer.json @@ -5,5 +5,14 @@ "components/bootstrap": "3.3.5", "michelf/php-markdown": "1.5.0" + }, + "require-dev": + { + "squizlabs/php_codesniffer": "2.*", + "fzaninotto/faker": "1.*" + }, + "config": + { + "bin-dir": "bin" } } diff --git a/content/fasoverlay.js.php b/content/fasoverlay.js.php index 41279f8c3..c87e6b586 100644 --- a/content/fasoverlay.js.php +++ b/content/fasoverlay.js.php @@ -1771,10 +1771,21 @@ function PrintZutrittskarte() function PrintStudienblatt(event) { var tree = document.getElementById('student-prestudent-tree-rolle'); + var ss = document.getElementById('statusbarpanel-semester').label; + + var items = tree.view.rowCount; try { - var studienplan_id = getTreeCellText(tree, "student-prestudent-tree-rolle-studienplan_id", 0); + var studienplan_id = ""; + for (var v=0; v < items; v++) + { + var stsem = getTreeCellText(tree, 'student-prestudent-tree-rolle-studiensemester_kurzbz', v); + if(stsem == ss) + { + studienplan_id = getTreeCellText(tree, 'student-prestudent-tree-rolle-studienplan_id', v); + } + } } catch(e) { @@ -1843,7 +1854,7 @@ function PrintStudienblatt(event) { if(error>0) alert(error+' der ausgewaehlten Personen haben keinen Account'); - action = 'content/pdfExport.php?xsl=Studienblatt&xml=studienblatt.xml.php&output='+output+'&&uid='+data; + action = 'content/pdfExport.php?xsl=Studienblatt&xml=studienblatt.xml.php&output='+output+'&&uid='+data+"&ss="+ss; window.open(action,'Studienblatt','height=520,width=500,left=350,top=350,hotkeys=0,resizable=yes,status=no,scrollbars=yes,toolbar=no,location=no,menubar=no,dependent=yes'); } else @@ -1858,10 +1869,19 @@ function PrintStudienblatt(event) function PrintStudienblattEnglisch(event) { var tree = document.getElementById('student-prestudent-tree-rolle'); + var items = tree.view.rowCount; try { - var studienplan_id = getTreeCellText(tree, "student-prestudent-tree-rolle-studienplan_id", 0); + var studienplan_id = ""; + for (var v=0; v < items; v++) + { + var stsem = getTreeCellText(tree, 'student-prestudent-tree-rolle-studiensemester_kurzbz', v); + if(stsem == ss) + { + studienplan_id = getTreeCellText(tree, 'student-prestudent-tree-rolle-studienplan_id', v); + } + } } catch(e) { diff --git a/include/anrechnung.class.php b/include/anrechnung.class.php index 1e4f6db1e..122e587fa 100644 --- a/include/anrechnung.class.php +++ b/include/anrechnung.class.php @@ -186,13 +186,25 @@ class anrechnung extends basis_db * @param $prestudent_id * @return true wenn ok, false im Fehlerfall */ - public function getAnrechnungPrestudent($prestudent_id) + public function getAnrechnungPrestudent($prestudent_id, $lehrveranstaltung_id=null, $lehrveranstaltung_id_kompatibel=null) { $qry = "SELECT anrechnung_id, prestudent_id, lehrveranstaltung_id, begruendung_id, bezeichnung AS begruendung, " . "lehrveranstaltung_id_kompatibel, genehmigt_von , insertamum, insertvon, updateamum, updatevon " . "FROM lehre.tbl_anrechnung " . "JOIN lehre.tbl_anrechnung_begruendung USING (begruendung_id) " . "WHERE prestudent_id = " . $this->db_add_param($prestudent_id); + + if($lehrveranstaltung_id != NULL) + { + $qry .= " AND lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id); + } + + if($lehrveranstaltung_id_kompatibel != NULL) + { + $qry .= " AND lehrveranstaltung_id_kompatibel=".$this->db_add_param($lehrveranstaltung_id_kompatibel); + } + + $qry .= ";"; if ($this->db_query($qry)) { diff --git a/include/globals.inc.php b/include/globals.inc.php old mode 100644 new mode 100755 index 2ba9205da..650e0601c --- a/include/globals.inc.php +++ b/include/globals.inc.php @@ -1,73 +1,92 @@ - + diff --git a/include/lehrveranstaltung.class.php b/include/lehrveranstaltung.class.php index 2173a1b23..680505ffc 100755 --- a/include/lehrveranstaltung.class.php +++ b/include/lehrveranstaltung.class.php @@ -1258,6 +1258,12 @@ class lehrveranstaltung extends basis_db if ($obj->bezeichnung_arr['English'] == '') $obj->bezeichnung_arr['English'] = $obj->bezeichnung_arr['German']; + $obj->sws = $row->sws; + $obj->lvs = $row->lvs; + $obj->alvs = $row->alvs; + $obj->lvps = $row->lvps; + $obj->las = $row->las; + $obj->stpllv_semester = $row->stpllv_semester; $obj->stpllv_pflicht = $this->db_parse_bool($row->stpllv_pflicht); $obj->stpllv_koordinator = $row->stpllv_koordinator; @@ -1299,7 +1305,7 @@ class lehrveranstaltung extends basis_db /** * Generiert die Subtrees des Lehrveranstaltungstrees */ - protected function getLehrveranstaltungTreeChilds($studienplan_lehrveranstaltung_id) + public function getLehrveranstaltungTreeChilds($studienplan_lehrveranstaltung_id) { $childs = array(); foreach ($this->lehrveranstaltungen as $row) @@ -1312,7 +1318,7 @@ class lehrveranstaltung extends basis_db } return $childs; } - + /** * Generiert die Subtrees des Lehrveranstaltungstrees */ @@ -1335,7 +1341,7 @@ class lehrveranstaltung extends basis_db { return false; } - + } /** @@ -2436,5 +2442,51 @@ class lehrveranstaltung extends basis_db return false; } } + + /** + * Prüft ob eine Lehrvernstaltung in Studienplordnungen verwendet wird die + * nicht mehr in bearbeitung sind. Diese sind fuer die bearbeitung gesperrt + * @param integer $lehrveranstaltung_id + * @return boolean true wenn gesperrt + * @return boolean false wenn nicht gesperrt + * @return boolean false und errormsg im Fehlerfall + */ + public function isGesperrt($lehrveranstaltung_id) + { + $qry = "SELECT + count(*) as anzahl + FROM + lehre.tbl_studienplan + JOIN lehre.tbl_studienplan_lehrveranstaltung USING(studienplan_id) + JOIN lehre.tbl_studienordnung USING(studienordnung_id) + WHERE + tbl_studienplan_lehrveranstaltung.lehrveranstaltung_id=".$this->db_add_param($lehrveranstaltung_id, FHC_INTEGER)." + AND tbl_studienordnung.status_kurzbz<>'development'"; + + if($result = $this->db_query($qry)) + { + if($row = $this->db_fetch_object($result)) + { + if($row->anzahl>0) + { + return true; + } + else + { + return false; + } + } + else + { + $this->errormsg='Fehler beim Laden der Daten'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } } ?> diff --git a/include/prestudent.class.php b/include/prestudent.class.php old mode 100644 new mode 100755 index 7e38d5702..ee1396f0d --- a/include/prestudent.class.php +++ b/include/prestudent.class.php @@ -973,9 +973,13 @@ class prestudent extends person return false; } - $qry = "SELECT tbl_prestudentstatus.*, bezeichnung AS studienplan_bezeichnung - FROM public.tbl_prestudentstatus LEFT JOIN lehre.tbl_studienplan USING (studienplan_id) - WHERE prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER); + $qry = "SELECT tbl_prestudentstatus.*, bezeichnung AS studienplan_bezeichnung, + tbl_status.bezeichnung_mehrsprachig + FROM public.tbl_prestudentstatus + LEFT JOIN lehre.tbl_studienplan USING (studienplan_id) + JOIN public.tbl_status USING (status_kurzbz) + WHERE tbl_status.status_kurzbz = tbl_prestudentstatus.status_kurzbz + AND prestudent_id=".$this->db_add_param($prestudent_id, FHC_INTEGER); if($studiensemester_kurzbz!='') $qry.=" AND studiensemester_kurzbz=".$this->db_add_param($studiensemester_kurzbz); @@ -990,6 +994,7 @@ class prestudent extends person { $this->prestudent_id = $row->prestudent_id; $this->status_kurzbz = $row->status_kurzbz; + $this->status_mehrsprachig = $this->db_parse_lang_array($row->bezeichnung_mehrsprachig); $this->studiensemester_kurzbz = $row->studiensemester_kurzbz; $this->ausbildungssemester = $row->ausbildungssemester; $this->datum = $row->datum; diff --git a/include/projekt.class.php b/include/projekt.class.php index eddeaafc4..06c67d865 100755 --- a/include/projekt.class.php +++ b/include/projekt.class.php @@ -1,454 +1,455 @@ -, - * Andreas Österreicher - */ -/** - * Klasse projekt - * - * Verwaltet die Projekte - */ -require_once(dirname(__FILE__).'/basis_db.class.php'); - -class projekt extends basis_db -{ - public $new; // boolean - public $result = array(); // projekt Objekt - - //Tabellenspalten - public $projekt_kurzbz; // string - public $nummer; // string - public $titel; // string - public $beschreibung; // string - public $beginn; // date - public $ende; // date - public $oe_kurzbz; // string - public $insertamum; // timestamp - public $insertvon; // string - public $updateamum; // timestamp - public $updatevon; // string - public $budget; - public $farbe; +, + * Andreas Österreicher + */ +/** + * Klasse projekt + * + * Verwaltet die Projekte + * @param string $projekt_kurzbz primary key Projektname. + */ +require_once(dirname(__FILE__).'/basis_db.class.php'); + +class projekt extends basis_db +{ + public $new; // boolean + public $result = array(); // projekt Objekt + + //Tabellenspalten + public $projekt_kurzbz; // string + public $nummer; // string + public $titel; // string + public $beschreibung; // string + public $beginn; // date + public $ende; // date + public $oe_kurzbz; // string + public $insertamum; // timestamp + public $insertvon; // string + public $updateamum; // timestamp + public $updatevon; // string + public $budget; + public $farbe; public $anzahl_ma; // integer public $aufwand_pt; // integer - - - - /** - * Konstruktor - * @param $projekt_kurzbz ID der Projektarbeit, die geladen werden soll (Default=null) - */ - public function __construct($projekt_kurzbz=null) - { - parent::__construct(); - - if($projekt_kurzbz != null) - $this->load($projekt_kurzbz); - } - - /** - * Laedt die Projek mit der Kurzbezeichnung $projekt_kurzbz - * @param $projekt_kurzbz Kurzbz des Projekts - * @return true wenn ok, false im Fehlerfall - */ - public function load($projekt_kurzbz) - { - $qry = "SELECT * FROM fue.tbl_projekt WHERE projekt_kurzbz=".$this->db_add_param($projekt_kurzbz); - - if($this->db_query($qry)) - { - if($row = $this->db_fetch_object()) - { - $this->projekt_kurzbz = $row->projekt_kurzbz; - $this->nummer= $row->nummer; - $this->titel= $row->titel; - $this->beschreibung= $row->beschreibung; - $this->beginn= $row->beginn; - $this->ende = $row->ende; - $this->oe_kurzbz= $row->oe_kurzbz; - $this->budget= $row->budget; - $this->farbe= $row->farbe; - $this->anzahl_ma = $row->anzahl_ma; - $this->aufwand_pt = $row->aufwand_pt; - - return true; - } - else - { - $this->errormsg = 'Datensatz wurde nicht gefunden'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Laedt alle aktuellen Projekte - * @param $kommend lädt auch alle zukünftigen - * @return boolean - */ - public function getProjekteAktuell($filter_kommende = false, $oe=null) - { - $qry = 'SELECT * FROM fue.tbl_projekt WHERE '; - - if($filter_kommende) - $qry.= " ((beginn < CURRENT_TIMESTAMP AND ende > CURRENT_TIMESTAMP) OR beginn > CURRENT_TIMESTAMP)"; - else - $qry.=" (beginn < CURRENT_TIMESTAMP AND ende > CURRENT_TIMESTAMP)"; - - - if(!is_null($oe)) - $qry.= ' AND oe_kurzbz='.$this->db_add_param($oe); - - $qry.= ' ORDER BY oe_kurzbz;'; - if($this->db_query($qry)) - { - while($row = $this->db_fetch_object()) - { - $obj = new projekt(); - - $obj->projekt_kurzbz = $row->projekt_kurzbz; - $obj->nummer = $row->nummer; - $obj->titel = $row->titel; - $obj->beschreibung = $row->beschreibung; - $obj->beginn = $row->beginn; - $obj->ende = $row->ende; - $obj->oe_kurzbz = $row->oe_kurzbz; - $obj->budget = $row->budget; - $obj->farbe = $row->farbe; - $obj->aufwandstyp_kurzbz = $row->aufwandstyp_kurzbz; - $obj->anzahl_ma = $row->anzahl_ma; - $obj->aufwand_pt = $row->aufwand_pt; - - $this->result[] = $obj; - } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Laedt alle Projekte die zwischen beginn und ende liegen - * @param $beginn - * @param $ende - * @param $oe - * @return boolean - */ - public function getProjekteInZeitraum($beginn, $ende, $oe=null) - { - $qry = 'select * from fue.tbl_projekt where beginn <= '.$this->db_add_param($ende).' and ende >= '.$this->db_add_param($beginn); - if (!is_null($oe)) - $qry.= " AND oe_kurzbz=".$this->db_add_param($oe); - $qry.= ' ORDER BY oe_kurzbz;'; - //echo $qry; - if($this->db_query($qry)) - { - while($row = $this->db_fetch_object()) - { - $obj = new projekt(); - - $obj->projekt_kurzbz = $row->projekt_kurzbz; - $obj->nummer = $row->nummer; - $obj->titel = $row->titel; - $obj->beschreibung = $row->beschreibung; - $obj->beginn = $row->beginn; - $obj->ende = $row->ende; - $obj->oe_kurzbz = $row->oe_kurzbz; - $obj->budget = $row->budget; - $obj->farbe = $row->farbe; - $obj->anzahl_ma = $row->anzahl_ma; - $obj->aufwand_pt = $row->aufwand_pt; - - $this->result[] = $obj; - } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - - /** - * Laedt die Projeke einer Organisationseinheit - * @param $projekt_kurzbz Kurzbezeichnung des Projekts - * @return true wenn ok, false im Fehlerfall - */ - public function getProjekte($oe=null) - { - $qry = 'SELECT * FROM fue.tbl_projekt'; - if (!is_null($oe)) - $qry.= " WHERE oe_kurzbz=".$this->db_add_param($oe); - $qry.= ' ORDER BY oe_kurzbz;'; - //echo $qry; - if($this->db_query($qry)) - { - while($row = $this->db_fetch_object()) - { - $obj = new projekt(); - - $obj->projekt_kurzbz = $row->projekt_kurzbz; - $obj->nummer = $row->nummer; - $obj->titel = $row->titel; - $obj->beschreibung = $row->beschreibung; - $obj->beginn = $row->beginn; - $obj->ende = $row->ende; - $obj->oe_kurzbz = $row->oe_kurzbz; - $obj->budget = $row->budget; - $obj->farbe = $row->farbe; - $obj->aufwandstyp_kurzbz = $row->aufwandstyp_kurzbz; - $obj->anzahl_ma = $row->anzahl_ma; - $obj->aufwand_pt = $row->aufwand_pt; - - $this->result[] = $obj; - } - return true; - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - - /** - * Prueft die Variablen auf Gueltigkeit - * @return true wenn ok, false im Fehlerfall - */ - protected function validate() - { - - //Gesamtlaenge pruefen - if ($this->projekt_kurzbz==null) - { - $this->errormsg='Projekt kurzbz darf nicht NULL sein!'; - } - if ($this->oe_kurzbz==null) - { - $this->errormsg='OE kurbz darf nicht NULL sein!'; - } - if(mb_strlen($this->projekt_kurzbz)>16) - { - $this->errormsg = 'Projektyp_kurzbz darf nicht länger als 16 Zeichen sein'; - return false; - } - if(mb_strlen($this->nummer)>8) - { - $this->errormsg = 'Nummer darf nicht länger als 8 Zeichen sein'; - return false; - } - if(mb_strlen($this->titel)>256) - { - $this->errormsg = 'Titel darf nicht länger als 256 Zeichen sein'; - return false; - } - - $this->errormsg = ''; - return true; - } - - /** - * Speichert den aktuellen Datensatz in die Datenbank - * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt - * andernfalls wird der Datensatz mit der ID in $projekt_kurzbz aktualisiert - * @return true wenn ok, false im Fehlerfall - */ - public function save($new=null) - { - //Variablen pruefen - if(!$this->validate()) - return false; - - if($new==null) - $new = $this->new; - - if($new) - { - //Neuen Datensatz einfuegen - - $qry='INSERT INTO fue.tbl_projekt (projekt_kurzbz, nummer, titel,beschreibung, beginn, ende, budget, farbe, oe_kurzbz, aufwand_pt, anzahl_ma, aufwandstyp_kurzbz) VALUES('. - $this->db_add_param($this->projekt_kurzbz).', '. - $this->db_add_param($this->nummer).', '. - $this->db_add_param($this->titel).', '. - $this->db_add_param($this->beschreibung).', '. - $this->db_add_param($this->beginn).', '. - $this->db_add_param($this->ende).', '. - $this->db_add_param($this->budget).', '. - $this->db_add_param($this->farbe).', '. + + + + /** + * Konstruktor + * @param string $projekt_kurzbz ID der Projektarbeit, die geladen werden soll (Default=null). + */ + public function __construct($projekt_kurzbz = null) + { + parent::__construct(); + + if($projekt_kurzbz != null) + $this->load($projekt_kurzbz); + } + + /** + * Laedt die Projek mit der Kurzbezeichnung $projekt_kurzbz + * @param string $projekt_kurzbz Kurzbz des Projekts. + * @return true wenn ok, false im Fehlerfall + */ + public function load($projekt_kurzbz) + { + $qry = "SELECT * FROM fue.tbl_projekt WHERE projekt_kurzbz=".$this->db_add_param($projekt_kurzbz); + + if ($this->db_query($qry)) + { + if ($row = $this->db_fetch_object()) + { + $this->projekt_kurzbz = $row->projekt_kurzbz; + $this->nummer = $row->nummer; + $this->titel = $row->titel; + $this->beschreibung = $row->beschreibung; + $this->beginn = $row->beginn; + $this->ende = $row->ende; + $this->oe_kurzbz = $row->oe_kurzbz; + $this->budget = $row->budget; + $this->farbe = $row->farbe; + $this->anzahl_ma = $row->anzahl_ma; + $this->aufwand_pt = $row->aufwand_pt; + + return true; + } + else + { + $this->errormsg = 'Datensatz wurde nicht gefunden'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Laedt alle aktuellen Projekte + * @param bool $filter_kommende Lädt auch alle zukünftigen. + * @param string $oe Organisationseinheit. + * @return bool + */ + public function getProjekteAktuell($filter_kommende = false, $oe = null) + { + $qry = 'SELECT * FROM fue.tbl_projekt WHERE '; + + if($filter_kommende) + $qry .= " ((beginn < CURRENT_TIMESTAMP AND ende > CURRENT_TIMESTAMP) OR beginn > CURRENT_TIMESTAMP)"; + else + $qry .= " (beginn < CURRENT_TIMESTAMP AND ende > CURRENT_TIMESTAMP)"; + + + if (!is_null($oe)) + $qry .= ' AND oe_kurzbz='.$this->db_add_param($oe); + + $qry .= ' ORDER BY oe_kurzbz;'; + if ($this->db_query($qry)) + { + while ($row = $this->db_fetch_object()) + { + $obj = new projekt(); + + $obj->projekt_kurzbz = $row->projekt_kurzbz; + $obj->nummer = $row->nummer; + $obj->titel = $row->titel; + $obj->beschreibung = $row->beschreibung; + $obj->beginn = $row->beginn; + $obj->ende = $row->ende; + $obj->oe_kurzbz = $row->oe_kurzbz; + $obj->budget = $row->budget; + $obj->farbe = $row->farbe; + $obj->aufwandstyp_kurzbz = $row->aufwandstyp_kurzbz; + $obj->anzahl_ma = $row->anzahl_ma; + $obj->aufwand_pt = $row->aufwand_pt; + + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Laedt alle Projekte die zwischen beginn und ende liegen + * @param date $beginn Anfang. + * @param date $ende Ende. + * @param string $oe Organisationseinheit. + * @return bool + */ + public function getProjekteInZeitraum($beginn, $ende, $oe = null) + { + $qry = 'select * from fue.tbl_projekt where beginn <= '.$this->db_add_param($ende).' and ende >= '.$this->db_add_param($beginn); + if (!is_null($oe)) + $qry .= " AND oe_kurzbz=".$this->db_add_param($oe); + $qry .= ' ORDER BY oe_kurzbz;'; + //echo $qry; + if ($this->db_query($qry)) + { + while ($row = $this->db_fetch_object()) + { + $obj = new projekt(); + + $obj->projekt_kurzbz = $row->projekt_kurzbz; + $obj->nummer = $row->nummer; + $obj->titel = $row->titel; + $obj->beschreibung = $row->beschreibung; + $obj->beginn = $row->beginn; + $obj->ende = $row->ende; + $obj->oe_kurzbz = $row->oe_kurzbz; + $obj->budget = $row->budget; + $obj->farbe = $row->farbe; + $obj->anzahl_ma = $row->anzahl_ma; + $obj->aufwand_pt = $row->aufwand_pt; + + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + + /** + * Laedt die Projeke einer Organisationseinheit + * @param string $oe Organisationseinheit. + * @return true wenn ok, false im Fehlerfall + */ + public function getProjekte($oe = null) + { + $qry = 'SELECT * FROM fue.tbl_projekt'; + if (!is_null($oe)) + $qry .= " WHERE oe_kurzbz=".$this->db_add_param($oe); + $qry .= ' ORDER BY oe_kurzbz;'; + //echo $qry; + if ($this->db_query($qry)) + { + while ($row = $this->db_fetch_object()) + { + $obj = new projekt(); + + $obj->projekt_kurzbz = $row->projekt_kurzbz; + $obj->nummer = $row->nummer; + $obj->titel = $row->titel; + $obj->beschreibung = $row->beschreibung; + $obj->beginn = $row->beginn; + $obj->ende = $row->ende; + $obj->oe_kurzbz = $row->oe_kurzbz; + $obj->budget = $row->budget; + $obj->farbe = $row->farbe; + $obj->aufwandstyp_kurzbz = $row->aufwandstyp_kurzbz; + $obj->anzahl_ma = $row->anzahl_ma; + $obj->aufwand_pt = $row->aufwand_pt; + + $this->result[] = $obj; + } + return true; + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } + + /** + * Prueft die Variablen auf Gueltigkeit + * @return true wenn ok, false im Fehlerfall + */ + protected function validate() + { + //Gesamtlaenge pruefen + if ($this->projekt_kurzbz == null) + { + $this->errormsg = 'Projekt kurzbz darf nicht NULL sein!'; + } + if ($this->oe_kurzbz == null) + { + $this->errormsg = 'OE kurbz darf nicht NULL sein!'; + } + if (mb_strlen($this->projekt_kurzbz) > 16) + { + $this->errormsg = 'Projektyp_kurzbz darf nicht länger als 16 Zeichen sein'; + return false; + } + if (mb_strlen($this->nummer) > 8) + { + $this->errormsg = 'Nummer darf nicht länger als 8 Zeichen sein'; + return false; + } + if (mb_strlen($this->titel) > 256) + { + $this->errormsg = 'Titel darf nicht länger als 256 Zeichen sein'; + return false; + } + + $this->errormsg = ''; + return true; + } + + /** + * Speichert den aktuellen Datensatz in die Datenbank + * Wenn $neu auf true gesetzt ist wird ein neuer Datensatz angelegt + * andernfalls wird der Datensatz mit der ID in $projekt_kurzbz aktualisiert + * @param bool $new Neu ja/nein. + * @return true wenn ok, false im Fehlerfall + */ + public function save($new = null) + { + //Variablen pruefen + if(!$this->validate()) + return false; + + if ($new == null) + $new = $this->new; + + if ($new) + { + //Neuen Datensatz einfuegen + + $qry = 'INSERT INTO fue.tbl_projekt (projekt_kurzbz, nummer, titel,beschreibung, beginn, ende, budget, farbe, oe_kurzbz, aufwand_pt, anzahl_ma, aufwandstyp_kurzbz) VALUES('. + $this->db_add_param($this->projekt_kurzbz).', '. + $this->db_add_param($this->nummer).', '. + $this->db_add_param($this->titel).', '. + $this->db_add_param($this->beschreibung).', '. + $this->db_add_param($this->beginn).', '. + $this->db_add_param($this->ende).', '. + $this->db_add_param($this->budget).', '. + $this->db_add_param($this->farbe).', '. $this->db_add_param($this->oe_kurzbz).','. $this->db_add_param($this->aufwand_pt).','. - $this->db_add_param($this->anzahl_ma).','. - $this->db_add_param($this->aufwandstyp_kurzbz).');'; - } - else - { - //Updaten des bestehenden Datensatzes - - $qry='UPDATE fue.tbl_projekt SET '. - 'projekt_kurzbz='.$this->db_add_param($this->projekt_kurzbz).', '. - 'nummer='.$this->db_add_param($this->nummer).', '. - 'titel='.$this->db_add_param($this->titel).', '. - 'beschreibung='.$this->db_add_param($this->beschreibung).', '. - 'beginn='.$this->db_add_param($this->beginn).', '. - 'ende='.$this->db_add_param($this->ende).', '. - 'budget='.$this->db_add_param($this->budget).', '. - 'farbe='.$this->db_add_param($this->farbe).', '. + $this->db_add_param($this->anzahl_ma).','. + $this->db_add_param($this->aufwandstyp_kurzbz).');'; + } + else + { + //Updaten des bestehenden Datensatzes + + $qry = 'UPDATE fue.tbl_projekt SET '. + 'projekt_kurzbz='.$this->db_add_param($this->projekt_kurzbz).', '. + 'nummer='.$this->db_add_param($this->nummer).', '. + 'titel='.$this->db_add_param($this->titel).', '. + 'beschreibung='.$this->db_add_param($this->beschreibung).', '. + 'beginn='.$this->db_add_param($this->beginn).', '. + 'ende='.$this->db_add_param($this->ende).', '. + 'budget='.$this->db_add_param($this->budget).', '. + 'farbe='.$this->db_add_param($this->farbe).', '. 'oe_kurzbz='.$this->db_add_param($this->oe_kurzbz).', '. 'anzahl_ma='.$this->db_add_param($this->anzahl_ma).', '. - 'aufwand_pt='.$this->db_add_param($this->aufwand_pt).', '. - 'aufwandstyp_kurzbz='.$this->db_add_param($this->aufwandstyp_kurzbz).' '. - 'WHERE projekt_kurzbz='.$this->db_add_param($this->projekt_kurzbz).';'; - } - - if($this->db_query($qry)) - { - return true; - } - else - { - $this->errormsg = 'Fehler beim Speichern der Daten'; - return false; - } - } - - /** - * Loescht den Datenensatz - * @param $projekt_kurzbz Projekt das geloescht werden soll - * @return true wenn ok, false im Fehlerfall - */ - public function delete($projekt_kurzbz) - { - - $qry = "DELETE FROM lehre.tbl_projek WHERE projekt_kurzbz=".$this->db_add_param($projekt_kurzbz); - - if($this->db_query($qry)) - { - return true; - } - else - { - $this->errormsg = 'Fehler beim Loeschen des Datensatzes'; - return false; - } - } - - /** - * Liefert die Projekte zu denen ein Mitarbeiter zugeordnet ist. - * Optional auch mit den Zuteilungen zu Projektphasen. - * @param $mitarbeiter_uid - * @param $projektphasen boolean Default false. Wenn true, werden auch Zuteilungen zu Projektphasen geliefert. - */ - function getProjekteMitarbeiter($mitarbeiter_uid, $projektphasen=false) - { - $qry = "SELECT DISTINCT - tbl_projekt.* - FROM - fue.tbl_ressource - JOIN fue.tbl_projekt_ressource USING(ressource_id) - JOIN fue.tbl_projekt USING(projekt_kurzbz) - WHERE (beginn<=now() or beginn is null) - AND (ende>=now() OR ende is null) - AND mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid); - - if ($projektphasen==true) - $qry.= "UNION - - SELECT DISTINCT - tbl_projekt.* - FROM - fue.tbl_projektphase - JOIN fue.tbl_projekt USING (projekt_kurzbz) - JOIN fue.tbl_projekt_ressource USING (projektphase_id) - JOIN fue.tbl_ressource ON (tbl_ressource.ressource_id=tbl_projekt_ressource.ressource_id) - WHERE (tbl_projekt.beginn<=now() or tbl_projekt.beginn is null) - AND (tbl_projekt.ende>=now() OR tbl_projekt.ende is null) - AND mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid); - - if($result = $this->db_query($qry)) - { - while($row = $this->db_fetch_object($result)) - { - $obj = new projekt(); - - $obj->projekt_kurzbz = $row->projekt_kurzbz; - $obj->nummer = $row->nummer; - $obj->titel = $row->titel; - $obj->beschreibung = $row->beschreibung; - $obj->beginn = $row->beginn; - $obj->ende = $row->ende; - $obj->oe_kurzbz = $row->oe_kurzbz; - - $this->result[] = $obj; - } - return true; - } - else - { - $this->erromsg = 'Fehler beim Laden der Daten'; - return false; - } - } - public function getProjektFromBestellung($bestellung_id) - { - $qry ="select * from fue.tbl_projekt - join wawi.tbl_projekt_bestellung USING (projekt_kurzbz) - where bestellung_id= ".$this->db_add_param($bestellung_id); - - if($this->db_query($qry)) - { - if($row = $this->db_fetch_object()) - { - $this->projekt_kurzbz = $row->projekt_kurzbz; - $this->nummer= $row->nummer; - $this->titel= $row->titel; - $this->beschreibung= $row->beschreibung; - $this->beginn= $row->beginn; - $this->ende = $row->ende; - $this->oe_kurzbz= $row->oe_kurzbz; - $this->budget= $row->budget; - $this->farbe= $row->farbe; - $this->anzahl_ma = $row->anzahl_ma; - $this->aufwand_pt = $row->aufwand_pt; - - return true; - } - else - { - $this->errormsg = 'Datensatz wurde nicht gefunden'; - return false; - } - } - else - { - $this->errormsg = 'Fehler beim Laden der Daten'; - return false; - } - } - -} -?> + 'aufwand_pt='.$this->db_add_param($this->aufwand_pt).', '. + 'aufwandstyp_kurzbz='.$this->db_add_param($this->aufwandstyp_kurzbz).' '. + 'WHERE projekt_kurzbz='.$this->db_add_param($this->projekt_kurzbz).';'; + } + + if ($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Speichern der Daten'; + return false; + } + } + + /** + * Loescht den Datenensatz + * @param string $projekt_kurzbz Projekt das geloescht werden soll. + * @return true wenn ok, false im Fehlerfall + */ + public function delete($projekt_kurzbz) + { + $qry = "DELETE FROM lehre.tbl_projek WHERE projekt_kurzbz=".$this->db_add_param($projekt_kurzbz); + + if ($this->db_query($qry)) + { + return true; + } + else + { + $this->errormsg = 'Fehler beim Loeschen des Datensatzes'; + return false; + } + } + + /** + * Liefert die Projekte zu denen ein Mitarbeiter zugeordnet ist. + * Optional auch mit den Zuteilungen zu Projektphasen. + * @param string $mitarbeiter_uid MitarbeiterUID. + * @param bool $projektphasen Default false. Wenn true, werden auch Zuteilungen zu Projektphasen geliefert. + * @return true wenn ok, false im Fehlerfall + */ + function getProjekteMitarbeiter($mitarbeiter_uid, $projektphasen = false) + { + $qry = "SELECT DISTINCT + tbl_projekt.* + FROM + fue.tbl_ressource + JOIN fue.tbl_projekt_ressource USING(ressource_id) + JOIN fue.tbl_projekt USING(projekt_kurzbz) + WHERE (beginn<=now() or beginn is null) + AND (ende>=now() OR ende is null) + AND mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid); + + if ($projektphasen == true) + $qry .= "UNION + + SELECT DISTINCT + tbl_projekt.* + FROM + fue.tbl_projektphase + JOIN fue.tbl_projekt USING (projekt_kurzbz) + JOIN fue.tbl_projekt_ressource USING (projektphase_id) + JOIN fue.tbl_ressource ON (tbl_ressource.ressource_id=tbl_projekt_ressource.ressource_id) + WHERE (tbl_projekt.beginn<=now() or tbl_projekt.beginn is null) + AND (tbl_projekt.ende>=now() OR tbl_projekt.ende is null OR 1=1) + AND mitarbeiter_uid=".$this->db_add_param($mitarbeiter_uid); + + if ($result = $this->db_query($qry)) + { + while ($row = $this->db_fetch_object($result)) + { + $obj = new projekt(); + + $obj->projekt_kurzbz = $row->projekt_kurzbz; + $obj->nummer = $row->nummer; + $obj->titel = $row->titel; + $obj->beschreibung = $row->beschreibung; + $obj->beginn = $row->beginn; + $obj->ende = $row->ende; + $obj->oe_kurzbz = $row->oe_kurzbz; + + $this->result[] = $obj; + } + return true; + } + else + { + $this->erromsg = 'Fehler beim Laden der Daten'; + return false; + } + } + public function getProjektFromBestellung($bestellung_id) + { + $qry = "select * from fue.tbl_projekt + join wawi.tbl_projekt_bestellung USING (projekt_kurzbz) + where bestellung_id= ".$this->db_add_param($bestellung_id); + + if ($this->db_query($qry)) + { + if ($row = $this->db_fetch_object()) + { + $this->projekt_kurzbz = $row->projekt_kurzbz; + $this->nummer = $row->nummer; + $this->titel = $row->titel; + $this->beschreibung = $row->beschreibung; + $this->beginn = $row->beginn; + $this->ende = $row->ende; + $this->oe_kurzbz = $row->oe_kurzbz; + $this->budget = $row->budget; + $this->farbe = $row->farbe; + $this->anzahl_ma = $row->anzahl_ma; + $this->aufwand_pt = $row->aufwand_pt; + + return true; + } + else + { + $this->errormsg = 'Datensatz wurde nicht gefunden'; + return false; + } + } + else + { + $this->errormsg = 'Fehler beim Laden der Daten'; + return false; + } + } +} +?> diff --git a/include/pruefung.class.php b/include/pruefung.class.php old mode 100644 new mode 100755 diff --git a/include/pruefungsanmeldung.class.php b/include/pruefungsanmeldung.class.php index a1bcf9c0a..49dd8dd54 100644 --- a/include/pruefungsanmeldung.class.php +++ b/include/pruefungsanmeldung.class.php @@ -39,6 +39,7 @@ class pruefungsanmeldung extends basis_db { public $statusupdatevon; //varchar(32) public $statusupdateamum; //timestamp public $anrechnung_id; //integer + public $pruefungstyp_kurzbz; //varchar(32) /** * Konstruktor @@ -92,7 +93,7 @@ class pruefungsanmeldung extends basis_db { if($new) { - $qry = 'INSERT INTO campus.tbl_pruefungsanmeldung (uid, pruefungstermin_id, lehrveranstaltung_id, status_kurzbz, wuensche, reihung, kommentar, anrechnung_id) VALUES (' + $qry = 'INSERT INTO campus.tbl_pruefungsanmeldung (uid, pruefungstermin_id, lehrveranstaltung_id, status_kurzbz, wuensche, reihung, kommentar, anrechnung_id, pruefungstyp_kurzbz) VALUES (' . $this->db_add_param($this->uid).', ' . $this->db_add_param($this->pruefungstermin_id).', ' . $this->db_add_param($this->lehrveranstaltung_id).', ' @@ -100,7 +101,8 @@ class pruefungsanmeldung extends basis_db { . $this->db_add_param($this->wuensche).', ' . $this->db_add_param($this->reihung).', ' . $this->db_add_param($this->kommentar).', ' - . $this->db_add_param($this->anrechnung_id).');'; + . $this->db_add_param($this->anrechnung_id).', ' + . $this->db_add_param($this->pruefungstyp_kurzbz).');'; } else { @@ -113,6 +115,7 @@ class pruefungsanmeldung extends basis_db { . 'reihung='.$this->db_add_param($this->reihung).', ' . 'kommentar='.$this->db_add_param($this->kommentar).', ' . 'anrechnung_id='.$this->db_add_param($this->anrechnung_id) + . 'pruefungstyp_kurzbz='.$this->db_add_param($this->pruefungstyp_kurzbz) . ' WHERE pruefungsanmeldung_id='.$this->db_add_param($this->pruefungsanmeldung_id).';'; } @@ -162,6 +165,7 @@ class pruefungsanmeldung extends basis_db { $this->statusupdateamum = $row->statusupdateamum; $this->statusupdatevon = $row->statusupdatevon; $this->anrechnung_id = $row->anrechnung_id; + $this->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz; } return true; } @@ -206,6 +210,7 @@ class pruefungsanmeldung extends basis_db { $anmeldung->statusupdateamum = $row->statusupdateamum; $anmeldung->statusupdatevon = $row->statusupdatevon; $anmeldung->anrechnung_id = $row->anrechnung_id; + $anmeldung->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz; array_push($anmeldungen, $anmeldung); } return $anmeldungen; @@ -264,6 +269,7 @@ class pruefungsanmeldung extends basis_db { $anmeldung->statusupdateamum = $row->statusupdateamum; $anmeldung->statusupdatevon = $row->statusupdatevon; $anmeldung->anrechnung_id = $row->anrechnung_id; + $anmeldung->pruefungstyp_kurzbz = $row->pruefungstyp_kurzbz; array_push($anmeldungen, $anmeldung); } return $anmeldungen; diff --git a/include/studienordnung.class.php b/include/studienordnung.class.php index 5a341570c..7a203568f 100644 --- a/include/studienordnung.class.php +++ b/include/studienordnung.class.php @@ -155,9 +155,10 @@ class studienordnung extends basis_db } else { - $qry = 'SELECT sto.*, s.bezeichnung as status_bezeichnung, sem.* FROM lehre.tbl_studienordnung sto + $qry = 'SELECT distinct sto.*, s.bezeichnung as status_bezeichnung, sem.* FROM lehre.tbl_studienordnung sto JOIN lehre.tbl_studienordnungstatus s USING(status_kurzbz) - LEFT JOIN lehre.tbl_studienordnung_semester sem USING (studienordnung_id) + LEFT JOIN lehre.tbl_studienplan USING(studienordnung_id) + LEFT JOIN lehre.tbl_studienplan_semester sem USING (studienplan_id) WHERE studiengang_kz='.$this->db_add_param($studiengang_kz, FHC_INTEGER, false); if (!is_null($studiensemester_kurzbz)) @@ -200,7 +201,8 @@ class studienordnung extends basis_db { $obj->studiensemester_kurzbz = $row->studiensemester_kurzbz; $obj->semester = $row->semester; - $obj->studienordnung_semester_id = $row->studienordnung_semester_id; + //$obj->studienordnung_semester_id = $row->studienordnung_semester_id; + $obj->studienplan_semester_id = $row->studienplan_semester_id; } $this->result[] = $obj; } diff --git a/include/studienplan.class.php b/include/studienplan.class.php index 17611725c..b34bae50b 100644 --- a/include/studienplan.class.php +++ b/include/studienplan.class.php @@ -609,8 +609,8 @@ class studienplan extends basis_db $this->updateamum = $row->updateamum; $this->updatevon = $row->updatevon; $this->sort = $row->sort; - $this->curriculum = $row->curriculum; - $this->export = $row->export; + $this->curriculum = $this->db_parse_bool($row->curriculum); + $this->export = $this->db_parse_bool($row->export); $this->new=false; return true; } @@ -700,7 +700,7 @@ class studienplan extends basis_db * @param $ausbuldungssemester * @param $orgform_kurzbz */ - function getStudienplaeneFromSem($studiengang_kz, $studiensemester_kurzbz, $ausbildungssemester, $orgform_kurzbz = "") + function getStudienplaeneFromSem($studiengang_kz, $studiensemester_kurzbz, $ausbildungssemester="", $orgform_kurzbz = "") { $qry = "SELECT * @@ -711,8 +711,10 @@ class studienplan extends basis_db WHERE tbl_studienplan.aktiv AND tbl_studienordnung.studiengang_kz=".$this->db_add_param($studiengang_kz, FHC_INTEGER)." - AND tbl_studienplan_semester.studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz)." - AND tbl_studienplan_semester.semester=".$this->db_add_param($ausbildungssemester); + AND tbl_studienplan_semester.studiensemester_kurzbz = ".$this->db_add_param($studiensemester_kurzbz); + + if($ausbildungssemester!='') + $qry.=" AND tbl_studienplan_semester.semester=".$this->db_add_param($ausbildungssemester); if($orgform_kurzbz!='') { @@ -896,12 +898,17 @@ class studienplan extends basis_db $this->db_add_param($key["ausbildungssemester"]) . '); '; } - if (!$this->db_query($qry)) + if($qry!='') { - $this->errormsg = 'Fehler beim Speichern des Datensatzes'; - return false; + if (!$this->db_query($qry)) + { + $this->errormsg = 'Fehler beim Speichern des Datensatzes'; + return false; + } + return true; } - return true; + else + return true; } else { diff --git a/locale/de-AT/pruefung.php b/locale/de-AT/pruefung.php new file mode 100755 index 000000000..c76ad5096 --- /dev/null +++ b/locale/de-AT/pruefung.php @@ -0,0 +1,113 @@ +phrasen['pruefung/titlePruefungsfenster'] = 'Prüfungsfenster anlegen'; +$this->phrasen['pruefung/erfolgreichgespeichert'] = 'Datensatz erfolgreich gespeichert'; +$this->phrasen['pruefung/fehler'] = 'Fehler: '; +$this->phrasen['pruefung/fehlerEndDatumInDerVergangenheit'] = 'Fehler: Enddatum liegt in der Vergangenheit.'; +$this->phrasen['pruefung/fehlerEndDatumVorStartDatum'] = 'Fehler: Enddatum liegt nicht nach dem Startdatum.'; +$this->phrasen['pruefung/fehlerDatumNichtKorrekt'] = 'Fehler: Datumseingabe nicht korrekt.'; +$this->phrasen['pruefung/erfolgreichgeaendert'] = 'Datensatz erfolgreich geändert'; +$this->phrasen['pruefung/keineBerechtigungZumAendernDesDatensatzes'] = 'Keine Berechtigung zum Ändern dieses Datensatzes.'; +$this->phrasen['pruefung/keineBerechtigungZumAnzeigenDesDatensatzes'] = 'Keine Berechtigung zum Anzeigen dieses Datensatzes.'; +$this->phrasen['pruefung/erfolgreichgeloescht'] = 'Datensatz erfolgreich gelöscht'; +$this->phrasen['pruefung/pruefungsfensterKonnteNichtGeloeschtWerdenDaPruefungen'] = 'Prüfungsfenster konnte nicht gelöscht werden, da Prüfungen verknüpft sind.'; +$this->phrasen['pruefung/keineBerechtigungZumLoeschenDesDatensatzes'] = 'Keine Berechtigung zum Löschen dieses Datensatzes.'; +$this->phrasen['pruefung/pruefungsfensterVerwaltung'] = 'Prüfungsfenster-Verwaltung'; +$this->phrasen['pruefung/neuesPruefungsfensterAnlegen'] = 'Neues Prüfungsfenster anlegen'; +$this->phrasen['pruefung/start'] = 'Startdatum'; +$this->phrasen['pruefung/ende'] = 'Enddatum'; +$this->phrasen['pruefung/pruefungsfensterBearbeiten'] = 'Prüfungsfenster bearbeiten'; +$this->phrasen['pruefung/keinePruefungsfensterGespeichert'] = 'Keine Prüfungsfenster gespeichert.'; +// Termin festlegen +$this->phrasen['pruefung/titlePruefungstermin'] = 'Prüfungstermin festlegen'; +$this->phrasen['pruefung/pruefungLektor'] = 'Lektor'; +$this->phrasen['pruefung/pruefungenVerwalten'] = 'Prüfungen verwalten'; +$this->phrasen['pruefung/pruefungTitel'] = 'Titel'; +$this->phrasen['pruefung/pruefungsfenster'] = 'Prüfungsfenster'; +$this->phrasen['pruefung/pruefungMethode'] = 'Methode'; +$this->phrasen['pruefung/pruefungEinzelpruefung'] = 'Einzelprüfung'; +$this->phrasen['pruefung/pruefungTyp'] = 'Prüfungstyp'; +$this->phrasen['pruefung/pruefungIntervall'] = 'Prüfungsintervall'; +$this->phrasen['pruefung/pruefungTermin'] = 'Termin'; +$this->phrasen['pruefung/pruefungMinTeilnehmer'] = 'min. Teilnehmer'; +$this->phrasen['pruefung/pruefungMaxTeilnehmer'] = 'max. Teilnehmer'; +$this->phrasen['pruefung/pruefungSammelklausur'] = 'Sammelklausur'; +$this->phrasen['pruefung/pruefungTerminHinzufuegen'] = 'Termin hinzufügen'; +$this->phrasen['pruefung/pruefungPruefungenTitle'] = 'Prüfungen'; +$this->phrasen['pruefung/pruefungMitarbeiter'] = 'Mitarbeiter'; +$this->phrasen['pruefung/storniert'] = 'storniert'; + +// pruefung.js.php +$this->phrasen['pruefung/keinFensterVorhanden'] = 'Keine Prüfungsfenster vorhanden'; +$this->phrasen['pruefung/keineDatenVorhanden'] = 'Keine Daten vorhanden.'; +$this->phrasen['pruefung/anmeldefristAbgelaufen'] = 'Anmeldefrist abgelaufen'; +$this->phrasen['pruefung/stornierenMoeglichBis'] = 'Stornieren möglich bis'; +$this->phrasen['pruefung/anmeldenMoeglichBis'] = 'Anmeldung möglich bis'; +$this->phrasen['pruefung/zurLvAnmeldung'] = 'zur LV-Anmeldung'; +$this->phrasen['pruefung/zuerstPruefungAuswaehlen'] = 'Zuerst Prüfung auswählen.'; +$this->phrasen['pruefung/bemerkungVonLektorHinzugefuegt'] = 'von Lektor hinzugefügt'; +$this->phrasen['pruefung/bestaetigen'] = 'Bestätigen'; +$this->phrasen['pruefung/anmerkungDesStudenten'] = 'Anmerkung des Studenten:
    '; +$this->phrasen['pruefung/bestaetigt'] = 'bestätigt'; +$this->phrasen['pruefung/statusAenderungVon'] = 'Satusänderung von'; +$this->phrasen['pruefung/reihungSpeichern'] = 'Reihung speichern'; +$this->phrasen['pruefung/listeDrucken'] = 'Liste drucken'; +$this->phrasen['pruefung/pruefungsraum'] = 'Prüfungsraum: '; +$this->phrasen['pruefung/pruefungsort'] = 'Prüfungsort '; +$this->phrasen['pruefung/imBuero'] = ' im Büro'; +$this->phrasen['pruefung/raum'] = ' Raum'; +$this->phrasen['pruefung/raumSpeichern'] = ' Raum speichern'; +$this->phrasen['pruefung/reihunghErfolgreichGeaendert'] = 'Reihung erfolgreich geändert.'; +$this->phrasen['pruefung/studiengangAuswaehlen'] = 'Studiengang auswählen'; +$this->phrasen['pruefung/keinePruefungenVorhanden'] = 'Keine Prüfungen vorhanden.'; +$this->phrasen['pruefung/kommentarZu'] = 'Kommentar zu '; +$this->phrasen['pruefung/kommentarSpeichern'] = 'Kommentar speichern'; +$this->phrasen['pruefung/kommentarErfolgreichGespeichert'] = 'Kommentar erfolgreich gespeichert.'; +$this->phrasen['pruefung/formulardatenNichtKorrekt'] = 'Formulardaten sind nicht korrekt.'; +$this->phrasen['pruefung/pruefungErfolgreichGespeichert'] = 'Prüfung erfolgreich gespeichert.'; +$this->phrasen['pruefung/lehrveranstaltungAuswaehlen'] = 'Lehrveranstaltung auswählen ...'; +$this->phrasen['pruefung/keineLehrveranstaltungenVorhanden'] = 'Keine Lehrveranstaltungen vorhanden.'; +$this->phrasen['pruefung/pruefungStornieren'] = 'Prüfung stornieren'; +$this->phrasen['pruefung/lvErfolgreichEntfernt'] = 'Lehrveranstaltung erfolgreich entfernt'; +$this->phrasen['pruefung/pruefungStorniert'] = 'Prüfung storniert'; +$this->phrasen['pruefung/terminGeloescht'] = 'Termin gelöscht'; + +// pruefungsbewertung +$this->phrasen['pruefung/pruefungsbewertungTitle'] = 'Prüfungsbewertung'; +$this->phrasen['pruefung/pruefungsbewertungAnmeldungen'] = 'Anmeldungen'; + // pruefungsanmeldung +$this->phrasen['pruefung/anmeldungFuer'] = 'Prüfungsanmeldung für'; +$this->phrasen['pruefung/filter'] = 'Filter'; +$this->phrasen['pruefung/details'] = 'Details'; +$this->phrasen['pruefung/lvDetails'] = 'LV-Details'; +$this->phrasen['pruefung/pruefungsDetails'] = 'Prüfungsdetails'; +$this->phrasen['pruefung/typ'] = 'Typ'; +$this->phrasen['pruefung/intervall'] = 'Intervall'; +$this->phrasen['pruefung/besuchteLehrveranstaltungen'] = 'Besuchte Lehrveranstaltungen'; +$this->phrasen['pruefung/freiePlaetze'] = 'freie Plätze'; +$this->phrasen['pruefung/lvVonStudiengang'] = 'Lehrveranstaltungen von Studiengang'; +$this->phrasen['pruefung/lvAlle'] = 'Alle Lehrveranstaltungen'; +$this->phrasen['pruefung/anmeldungSpeichern'] = 'Anmeldung speichern'; +$this->phrasen['pruefung/studienverpflichtung'] = 'Studienverpflichtung'; + +// liste +$this->phrasen['pruefung/anmeldungsliste'] = 'Anmeldungsliste'; +$this->phrasen['pruefung/fehlenderParam_lvid'] = 'Fehlender Parameter lehrveranstaltung_id'; +$this->phrasen['pruefung/fehlenderParam_terminid'] = 'Fehlender Parameter termin_id'; +$this->phrasen['pruefung/fehlenderParam_studiensemester'] = 'Fehlender Parameter studiensemester'; +$this->phrasen['pruefung/pruefer'] = 'Prüfer'; +$this->phrasen['pruefung/keineBestaetigtenAnmeldungenVorhanden'] = 'Keine bestätigten Anmeldungen vorhanden.'; +$this->phrasen['pruefung/keineLvAngegeben'] = 'Keine Lehrverantaltung angegeben.'; +$this->phrasen['pruefung/kollisionMitAnderemTermin'] = 'Kollision mit anderem Termin.'; +$this->phrasen['pruefung/terminNichtInDerVergangenheit'] = 'Prüfungstermin liegt nicht in der Vergangenheit.'; +$this->phrasen['pruefung/keineLehreinheitenVorhanden'] = 'Keine Lehreinheiten vorhanden.'; +$this->phrasen['pruefung/keineAnmeldungenVorhanden'] = 'Keine Anmeldungen vorhanden.'; + +// anmeldungen Verwalten +$this->phrasen['pruefung/anmeldungenVerwaltenTitle'] = 'Prüfungsanmeldung Verwaltung'; +$this->phrasen['pruefung/anmeldungenVerwalten'] = 'Anmeldungen Verwalten'; + + + + +?> diff --git a/locale/de-AT/studienplan.php b/locale/de-AT/studienplan.php old mode 100644 new mode 100755 index b43658bee..4aa7dfc90 --- a/locale/de-AT/studienplan.php +++ b/locale/de-AT/studienplan.php @@ -15,6 +15,7 @@ $this->phrasen['studienplan/legende']='Legende'; $this->phrasen['studienplan/legendeLVwirdAngeboten']='Lehrveranstaltung wird in diesem Semester angeboten'; $this->phrasen['studienplan/legendeLock']='Lehrveranstaltung für dieses Semester gesperrt'; $this->phrasen['studienplan/legendeEmpfehlung']='Empfehlung'; +$this->phrasen['studienplan/legendeAngemeldet']='angemeldet'; $this->phrasen['studienplan/LehrveranstalungWaehlen']='Bitte wählen Sie die Lehrveranstaltung zu der Sie sich anmelden möchten:'; $this->phrasen['studienplan/AnmeldungDerzeitNichtMoeglich']='Derzeit sind noch keine Anmeldungen moeglich'; $this->phrasen['studienplan/bereitsAngemeldet']='Sie sind bereits zu dieser Lehrveranstaltung angemeldet'; @@ -24,4 +25,3 @@ $this->phrasen['studienplan/einschreibungErfolgreich']='Sie wurden erfolgreich i $this->phrasen['studienplan/AnmeldungNichtMoeglich']='Keine Anmeldung moeglich'; $this->phrasen['studienplan/regelabgeschlossen']='abgeschlossen'; ?> - diff --git a/locale/en-US/pruefung.php b/locale/en-US/pruefung.php new file mode 100755 index 000000000..c76ad5096 --- /dev/null +++ b/locale/en-US/pruefung.php @@ -0,0 +1,113 @@ +phrasen['pruefung/titlePruefungsfenster'] = 'Prüfungsfenster anlegen'; +$this->phrasen['pruefung/erfolgreichgespeichert'] = 'Datensatz erfolgreich gespeichert'; +$this->phrasen['pruefung/fehler'] = 'Fehler: '; +$this->phrasen['pruefung/fehlerEndDatumInDerVergangenheit'] = 'Fehler: Enddatum liegt in der Vergangenheit.'; +$this->phrasen['pruefung/fehlerEndDatumVorStartDatum'] = 'Fehler: Enddatum liegt nicht nach dem Startdatum.'; +$this->phrasen['pruefung/fehlerDatumNichtKorrekt'] = 'Fehler: Datumseingabe nicht korrekt.'; +$this->phrasen['pruefung/erfolgreichgeaendert'] = 'Datensatz erfolgreich geändert'; +$this->phrasen['pruefung/keineBerechtigungZumAendernDesDatensatzes'] = 'Keine Berechtigung zum Ändern dieses Datensatzes.'; +$this->phrasen['pruefung/keineBerechtigungZumAnzeigenDesDatensatzes'] = 'Keine Berechtigung zum Anzeigen dieses Datensatzes.'; +$this->phrasen['pruefung/erfolgreichgeloescht'] = 'Datensatz erfolgreich gelöscht'; +$this->phrasen['pruefung/pruefungsfensterKonnteNichtGeloeschtWerdenDaPruefungen'] = 'Prüfungsfenster konnte nicht gelöscht werden, da Prüfungen verknüpft sind.'; +$this->phrasen['pruefung/keineBerechtigungZumLoeschenDesDatensatzes'] = 'Keine Berechtigung zum Löschen dieses Datensatzes.'; +$this->phrasen['pruefung/pruefungsfensterVerwaltung'] = 'Prüfungsfenster-Verwaltung'; +$this->phrasen['pruefung/neuesPruefungsfensterAnlegen'] = 'Neues Prüfungsfenster anlegen'; +$this->phrasen['pruefung/start'] = 'Startdatum'; +$this->phrasen['pruefung/ende'] = 'Enddatum'; +$this->phrasen['pruefung/pruefungsfensterBearbeiten'] = 'Prüfungsfenster bearbeiten'; +$this->phrasen['pruefung/keinePruefungsfensterGespeichert'] = 'Keine Prüfungsfenster gespeichert.'; +// Termin festlegen +$this->phrasen['pruefung/titlePruefungstermin'] = 'Prüfungstermin festlegen'; +$this->phrasen['pruefung/pruefungLektor'] = 'Lektor'; +$this->phrasen['pruefung/pruefungenVerwalten'] = 'Prüfungen verwalten'; +$this->phrasen['pruefung/pruefungTitel'] = 'Titel'; +$this->phrasen['pruefung/pruefungsfenster'] = 'Prüfungsfenster'; +$this->phrasen['pruefung/pruefungMethode'] = 'Methode'; +$this->phrasen['pruefung/pruefungEinzelpruefung'] = 'Einzelprüfung'; +$this->phrasen['pruefung/pruefungTyp'] = 'Prüfungstyp'; +$this->phrasen['pruefung/pruefungIntervall'] = 'Prüfungsintervall'; +$this->phrasen['pruefung/pruefungTermin'] = 'Termin'; +$this->phrasen['pruefung/pruefungMinTeilnehmer'] = 'min. Teilnehmer'; +$this->phrasen['pruefung/pruefungMaxTeilnehmer'] = 'max. Teilnehmer'; +$this->phrasen['pruefung/pruefungSammelklausur'] = 'Sammelklausur'; +$this->phrasen['pruefung/pruefungTerminHinzufuegen'] = 'Termin hinzufügen'; +$this->phrasen['pruefung/pruefungPruefungenTitle'] = 'Prüfungen'; +$this->phrasen['pruefung/pruefungMitarbeiter'] = 'Mitarbeiter'; +$this->phrasen['pruefung/storniert'] = 'storniert'; + +// pruefung.js.php +$this->phrasen['pruefung/keinFensterVorhanden'] = 'Keine Prüfungsfenster vorhanden'; +$this->phrasen['pruefung/keineDatenVorhanden'] = 'Keine Daten vorhanden.'; +$this->phrasen['pruefung/anmeldefristAbgelaufen'] = 'Anmeldefrist abgelaufen'; +$this->phrasen['pruefung/stornierenMoeglichBis'] = 'Stornieren möglich bis'; +$this->phrasen['pruefung/anmeldenMoeglichBis'] = 'Anmeldung möglich bis'; +$this->phrasen['pruefung/zurLvAnmeldung'] = 'zur LV-Anmeldung'; +$this->phrasen['pruefung/zuerstPruefungAuswaehlen'] = 'Zuerst Prüfung auswählen.'; +$this->phrasen['pruefung/bemerkungVonLektorHinzugefuegt'] = 'von Lektor hinzugefügt'; +$this->phrasen['pruefung/bestaetigen'] = 'Bestätigen'; +$this->phrasen['pruefung/anmerkungDesStudenten'] = 'Anmerkung des Studenten:
    '; +$this->phrasen['pruefung/bestaetigt'] = 'bestätigt'; +$this->phrasen['pruefung/statusAenderungVon'] = 'Satusänderung von'; +$this->phrasen['pruefung/reihungSpeichern'] = 'Reihung speichern'; +$this->phrasen['pruefung/listeDrucken'] = 'Liste drucken'; +$this->phrasen['pruefung/pruefungsraum'] = 'Prüfungsraum: '; +$this->phrasen['pruefung/pruefungsort'] = 'Prüfungsort '; +$this->phrasen['pruefung/imBuero'] = ' im Büro'; +$this->phrasen['pruefung/raum'] = ' Raum'; +$this->phrasen['pruefung/raumSpeichern'] = ' Raum speichern'; +$this->phrasen['pruefung/reihunghErfolgreichGeaendert'] = 'Reihung erfolgreich geändert.'; +$this->phrasen['pruefung/studiengangAuswaehlen'] = 'Studiengang auswählen'; +$this->phrasen['pruefung/keinePruefungenVorhanden'] = 'Keine Prüfungen vorhanden.'; +$this->phrasen['pruefung/kommentarZu'] = 'Kommentar zu '; +$this->phrasen['pruefung/kommentarSpeichern'] = 'Kommentar speichern'; +$this->phrasen['pruefung/kommentarErfolgreichGespeichert'] = 'Kommentar erfolgreich gespeichert.'; +$this->phrasen['pruefung/formulardatenNichtKorrekt'] = 'Formulardaten sind nicht korrekt.'; +$this->phrasen['pruefung/pruefungErfolgreichGespeichert'] = 'Prüfung erfolgreich gespeichert.'; +$this->phrasen['pruefung/lehrveranstaltungAuswaehlen'] = 'Lehrveranstaltung auswählen ...'; +$this->phrasen['pruefung/keineLehrveranstaltungenVorhanden'] = 'Keine Lehrveranstaltungen vorhanden.'; +$this->phrasen['pruefung/pruefungStornieren'] = 'Prüfung stornieren'; +$this->phrasen['pruefung/lvErfolgreichEntfernt'] = 'Lehrveranstaltung erfolgreich entfernt'; +$this->phrasen['pruefung/pruefungStorniert'] = 'Prüfung storniert'; +$this->phrasen['pruefung/terminGeloescht'] = 'Termin gelöscht'; + +// pruefungsbewertung +$this->phrasen['pruefung/pruefungsbewertungTitle'] = 'Prüfungsbewertung'; +$this->phrasen['pruefung/pruefungsbewertungAnmeldungen'] = 'Anmeldungen'; + // pruefungsanmeldung +$this->phrasen['pruefung/anmeldungFuer'] = 'Prüfungsanmeldung für'; +$this->phrasen['pruefung/filter'] = 'Filter'; +$this->phrasen['pruefung/details'] = 'Details'; +$this->phrasen['pruefung/lvDetails'] = 'LV-Details'; +$this->phrasen['pruefung/pruefungsDetails'] = 'Prüfungsdetails'; +$this->phrasen['pruefung/typ'] = 'Typ'; +$this->phrasen['pruefung/intervall'] = 'Intervall'; +$this->phrasen['pruefung/besuchteLehrveranstaltungen'] = 'Besuchte Lehrveranstaltungen'; +$this->phrasen['pruefung/freiePlaetze'] = 'freie Plätze'; +$this->phrasen['pruefung/lvVonStudiengang'] = 'Lehrveranstaltungen von Studiengang'; +$this->phrasen['pruefung/lvAlle'] = 'Alle Lehrveranstaltungen'; +$this->phrasen['pruefung/anmeldungSpeichern'] = 'Anmeldung speichern'; +$this->phrasen['pruefung/studienverpflichtung'] = 'Studienverpflichtung'; + +// liste +$this->phrasen['pruefung/anmeldungsliste'] = 'Anmeldungsliste'; +$this->phrasen['pruefung/fehlenderParam_lvid'] = 'Fehlender Parameter lehrveranstaltung_id'; +$this->phrasen['pruefung/fehlenderParam_terminid'] = 'Fehlender Parameter termin_id'; +$this->phrasen['pruefung/fehlenderParam_studiensemester'] = 'Fehlender Parameter studiensemester'; +$this->phrasen['pruefung/pruefer'] = 'Prüfer'; +$this->phrasen['pruefung/keineBestaetigtenAnmeldungenVorhanden'] = 'Keine bestätigten Anmeldungen vorhanden.'; +$this->phrasen['pruefung/keineLvAngegeben'] = 'Keine Lehrverantaltung angegeben.'; +$this->phrasen['pruefung/kollisionMitAnderemTermin'] = 'Kollision mit anderem Termin.'; +$this->phrasen['pruefung/terminNichtInDerVergangenheit'] = 'Prüfungstermin liegt nicht in der Vergangenheit.'; +$this->phrasen['pruefung/keineLehreinheitenVorhanden'] = 'Keine Lehreinheiten vorhanden.'; +$this->phrasen['pruefung/keineAnmeldungenVorhanden'] = 'Keine Anmeldungen vorhanden.'; + +// anmeldungen Verwalten +$this->phrasen['pruefung/anmeldungenVerwaltenTitle'] = 'Prüfungsanmeldung Verwaltung'; +$this->phrasen['pruefung/anmeldungenVerwalten'] = 'Anmeldungen Verwalten'; + + + + +?> diff --git a/locale/it-IT/abgabetool.php b/locale/it-IT/abgabetool.php new file mode 100755 index 000000000..7a515b417 --- /dev/null +++ b/locale/it-IT/abgabetool.php @@ -0,0 +1,71 @@ +phrasen['abgabetool/abgabeLektorenbereich']='Consegna portale lettori'; +$this->phrasen['abgabetool/abgabeStudentenbereich']='consegna portale studente'; +$this->phrasen['abgabetool/abgabetermine']='scadenze consegna'; +$this->phrasen['abgabetool/abgabetool']='Strumenti di consegna'; +$this->phrasen['abgabetool/abgabetyp']='tipologia consegna'; +$this->phrasen['abgabetool/abgabeZusatzdaten']='consegna dati integrativi'; +$this->phrasen['abgabetool/abgegebenAm']='consegnato il'; +$this->phrasen['abgabetool/abgegebeneDatei']='file consegnato'; +$this->phrasen['abgabetool/abstract']='abstract'; +$this->phrasen['abgabetool/abstractEng']='abstract in inglese'; +$this->phrasen['abgabetool/alleArbeitenAnzeigen']='mostra tutti gli elaborati seguiti'; +$this->phrasen['abgabetool/benoten']='valutazione'; +$this->phrasen['abgabetool/beschreibungAbgabe']='breve descrizione consegna'; +$this->phrasen['abgabetool/betreuer']='Tutor'; +$this->phrasen['abgabetool/betreuerart']='Tipologia di Tutor'; +$this->phrasen['abgabetool/dateiupload']='Uplooad file'; +$this->phrasen['abgabetool/dateiZuGross']='File superiore a 15 MB! '; +$this->phrasen['abgabetool/dateneingabeUnvollstaendig']='I dati immessi sono incompleti'; +$this->phrasen['abgabetool/datum']='data'; +$this->phrasen['abgabetool/details']='dettagli'; +$this->phrasen['abgabetool/deutscheSchlagwoerter']='parole chiave tedesche'; +$this->phrasen['abgabetool/downloadProjektarbeit']='scaricato documento'; +$this->phrasen['abgabetool/eidesstattlicheErklaerung']='Dichiaro sull\'onore di aver redatto autonomamente il presente elaborato '; +$this->phrasen['abgabetool/eingabeTerminPersonen']='inserisci scadenza per più persone'; +$this->phrasen['abgabetool/emailAnBetreuer']='scrivi email a relatore'; +$this->phrasen['abgabetool/englischeSchlagwoerter']='parole chiave inglesi'; +$this->phrasen['abgabetool/erklaerungNichtAkzeptiert']='dichiarazione non accettata'; +$this->phrasen['abgabetool/fehlerBetreuerNichtGefundenKeinMail']='Impossibile trovare il relatore. Nessuna email spedita'; +$this->phrasen['abgabetool/fehlerMail']='errore di spedizione della email!'; +$this->phrasen['abgabetool/fehlerMailBegutachter']='Errore di trasmissione della mail al (primo) esaminatore'; +$this->phrasen['abgabetool/fehlerMailStudent']='errore di spedizione della mai agli studenti!'; +$this->phrasen['abgabetool/fehlerTerminEintragen']='scadenza non è stata registrata!'; +$this->phrasen['abgabetool/fehlerTerminLoeschen']='Errore in sede di cancellazione della scadenza!'; +$this->phrasen['abgabetool/fix']='fisso'; +$this->phrasen['abgabetool/fixerAbgabetermin']='scadenza consegna inderogabile'; +$this->phrasen['abgabetool/gelesenUndAkzeptiert']='Letto e accettato'; +$this->phrasen['abgabetool/keineBerechtigungStudentenansicht']='Errore di autorizzazione per accedere al portale studente'; +$this->phrasen['abgabetool/keineTermineVorhanden']='nessuna scadenza attuale'; +$this->phrasen['abgabetool/keinPDF']='Upload non è un file PDF! Ripetere l\'upload'; +$this->phrasen['abgabetool/kontrolleZusatzdaten']='controllo dati integrativi'; +$this->phrasen['abgabetool/kontrollierteSchlagwoerter']='parole chiave controllate / voci??'; +$this->phrasen['abgabetool/mailVerschicktAn']='l\'email è atata spedita a '; +$this->phrasen['abgabetool/maxZeichen']='(massimo 5000 caratteri)'; +$this->phrasen['abgabetool/neuenTerminSpeichern']='salva nuova scadenza'; +$this->phrasen['abgabetool/nurPDF']='solo PDF max 15 MB'; +$this->phrasen['abgabetool/pflichtfeld']='campo obbligatorio'; +$this->phrasen['abgabetool/plagiatspruefung']='vai alla verifica antiplagio'; +$this->phrasen['abgabetool/projektabgabeUebersicht']='consegna progetto - mostra tutti'; +$this->phrasen['abgabetool/seitenanzahl']='numero pagine'; +$this->phrasen['abgabetool/spracheDerArbeit']='lingua dell\'elaborato'; +$this->phrasen['abgabetool/student']='Studente'; +$this->phrasen['abgabetool/studentenansicht']='portale studenti'; +$this->phrasen['abgabetool/TeminVorhanden']='questa scadenza è già stata inserita'; +$this->phrasen['abgabetool/termin']='scadenza '; +$this->phrasen['abgabetool/terminaenderungSpeichern']='salva modifica scadenza'; +$this->phrasen['abgabetool/terminLoeschen']='cancella scadenza'; +$this->phrasen['abgabetool/terminNichtGefunden']='scadenza non trovata'; +$this->phrasen['abgabetool/terminserieAnlegen']='crea serie scadenze'; +$this->phrasen['abgabetool/terminserieAnlegenHelp']='crea scadenza per più persone'; +$this->phrasen['abgabetool/terminuebersicht']='panoramica scadenze'; +$this->phrasen['abgabetool/terminuebersichtAnzeigen']='mostra tutti le scadenze'; +$this->phrasen['abgabetool/terminVorbei']='scadenza prescritta'; +$this->phrasen['abgabetool/terminVorhanden']='questa scadenza è già stata inserita'; +$this->phrasen['abgabetool/titel']='titolo'; +$this->phrasen['abgabetool/typ']='tipo'; +$this->phrasen['abgabetool/ueberschrift']='tesi bachelor / master'; +$this->phrasen['abgabetool/upload']='Upload'; +$this->phrasen['abgabetool/variablerAbgabetermin']='scadenza consegna variabile'; +$this->phrasen['abgabetool/zweitbetreuerBei']='secondo relatore presso'; +?> diff --git a/locale/it-IT/anwesenheitsliste.php b/locale/it-IT/anwesenheitsliste.php new file mode 100755 index 000000000..dc11dec87 --- /dev/null +++ b/locale/it-IT/anwesenheitsliste.php @@ -0,0 +1,21 @@ +phrasen['anwesenheitsliste/angerechnet']='riconosciuto'; +$this->phrasen['anwesenheitsliste/anleitungImportFunktion']='copiare i presenti elementi nella memoria temporanea per compilare la colonna import del modulo generale voti'; +$this->phrasen['anwesenheitsliste/anwesenheit']='presenza'; +$this->phrasen['anwesenheitsliste/anwesenheitslisten']='elenco presenti'; +$this->phrasen['anwesenheitsliste/anwesenheitslistenMitBildern']='elenchi presenti con foto'; +$this->phrasen['anwesenheitsliste/erstellenDerListeKlicken']='Per creare la lista cliccare sul gruppo desiderato!'; +$this->phrasen['anwesenheitsliste/fehlerhafteParameteruebergabe']='errore di trasferimento dei parametri. Si prega di riprovare'; +$this->phrasen['anwesenheitsliste/fehlstunden']='ore di assenza'; +$this->phrasen['anwesenheitsliste/gesamtliste']='elenco generale'; +$this->phrasen['anwesenheitsliste/keineEintraegeGefunden']='impossibile trovare registrazioni corrispondenti'; +$this->phrasen['anwesenheitsliste/keineLVsGefunden']='impossibile trovare lezioni '; +$this->phrasen['anwesenheitsliste/keineStudentenVorhanden']='momentaneamentenel corso di studi / semestre non sono registrati studenti'; +$this->phrasen['anwesenheitsliste/keineStundenvorhanden']='momentaneamente nessuna ora registrata '; +$this->phrasen['anwesenheitsliste/leAbgeschlossen']='LE conclusa'; +$this->phrasen['anwesenheitsliste/notenliste']='elenco voti'; +$this->phrasen['anwesenheitsliste/notenlisten']='elenchi voti'; +$this->phrasen['anwesenheitsliste/studiensemesterIstUngueltig']='semestre di studio non valido'; +$this->phrasen['anwesenheitsliste/waehleLV']='scegliere una lezione'; + +?> diff --git a/locale/it-IT/benotungstool.php b/locale/it-IT/benotungstool.php new file mode 100755 index 000000000..15afeb510 --- /dev/null +++ b/locale/it-IT/benotungstool.php @@ -0,0 +1,174 @@ +phrasen['benotungstool/abgabe']='consegna'; +$this->phrasen['benotungstool/abgabedatei']='file di consegna '; +$this->phrasen['benotungstool/abgabenDownloaden']='download consegna'; +$this->phrasen['benotungstool/abgeben']='consegna'; +$this->phrasen['benotungstool/alleKreuzerllistenDieserUebung']='tutte le liste con caselle da barrare di questa esercitazione'; +$this->phrasen['benotungstool/alleStudierenden']='tutti gli studenti'; +$this->phrasen['benotungstool/angabe']='indicazione'; +$this->phrasen['benotungstool/angabeidatei']='file con le indicazioni'; +$this->phrasen['benotungstool/anlegen']='crea'; +$this->phrasen['benotungstool/anwesenheitstabelle']='elenco presenti e panoramica delle presenze'; +$this->phrasen['benotungstool/anzahlDerBeispiele']='numero esempi'; +$this->phrasen['benotungstool/anzahlDerBeispieleGueltigeZahl']='il numero di esempi deve essere un numero valido'; +$this->phrasen['benotungstool/anzahlDerBeispieleKleiner100']='il numero di esempi deve essere inferiore a 100'; +$this->phrasen['benotungstool/anzahlDerBeispieleNichtNegativ']='il numero di esempi non può essere un numero negativo'; +$this->phrasen['benotungstool/anzahlDerStudenten']='numero di studenti'; +$this->phrasen['benotungstool/anzahlKommisionellePruefungen']='numero esami di commissione'; +$this->phrasen['benotungstool/anzahlNachpruefungen']='numero esami reiterati'; +$this->phrasen['benotungstool/anzahlNegativerBeurteilungen']='numero voti negativi'; +$this->phrasen['benotungstool/anzahlPunkteProBeispiel']='numero punti per ogni esempio'; +$this->phrasen['benotungstool/anzahlStudentenGueltigeZahl']='quantità studenti/esempi deve essere un numero valido'; +$this->phrasen['benotungstool/anzahlStudentenKleiner100']='quantità studenti/esempi deve essere inferiore a 100'; +$this->phrasen['benotungstool/anzahlStudentenNichtNegativ']='quantità studenti/esempi non può essere un numero negativo'; +$this->phrasen['benotungstool/aufgabe']='verifica'; +$this->phrasen['benotungstool/aufgabeKreuzerllistenAbgaben']='verifica (caselle da barrare, consegne)'; +$this->phrasen['benotungstool/ausgewaehlteAufgabeBearbeiten']='elabora verifiche scelte'; +$this->phrasen['benotungstool/ausgewaehlteUebungBearbeiten']='elabora esercitazione scelta'; +$this->phrasen['benotungstool/auswahl']='scegli'; +$this->phrasen['benotungstool/auswahlLoeschen']='cancella scelta'; +$this->phrasen['benotungstool/auswahlLoeschen']='cancella scelta'; +$this->phrasen['benotungstool/beispiel']='esempio'; +$this->phrasen['benotungstool/beispiel']='esempio'; +$this->phrasen['benotungstool/beispielBearbeiten']='elabora esempio'; +$this->phrasen['benotungstool/beispieleKonntenNichtAngelegtWerden']='impossibile inserire esempi'; +$this->phrasen['benotungstool/beispielIdUngueltig']='esempio_id non valida'; +$this->phrasen['benotungstool/benoten']='valutare'; +$this->phrasen['benotungstool/benotung']='valutazione'; +$this->phrasen['benotungstool/benotungstool']='strumenti di valutazione'; +$this->phrasen['benotungstool/bezeichnungMussEingegebenWerden']='inserire testo'; +$this->phrasen['benotungstool/bisDatumUngueltigesFormat']='fino-a-data formato non valido '; +$this->phrasen['benotungstool/bisherInsgesamt']='totale attuale'; +$this->phrasen['benotungstool/bitteWaehlenSieDenStudentenAus']='scegli studente per accedere alla videata dettaglio o studente.
    (amministrazione di voti, punti supplementari, caselle da barrare, osservazioni, dati studente)'; +$this->phrasen['benotungstool/dasBeispielKannNichtMehrAngekreuztWerden']='impossibile sbarrare l\'esempio %s '; +$this->phrasen['benotungstool/datenErfolgreichKopiert']='dati copiati'; +$this->phrasen['benotungstool/derzeitGibtEsKeineUebungen']='momentaneamente nessuna esercitazione'; +$this->phrasen['benotungstool/derzeitSindKeineAufgabenAngelegt']='momentaneamente nessuna verifica registrata'; +$this->phrasen['benotungstool/derzeitSindKeineUebungenAngelegt']='al momento nessuna esercitazione registrata'; +$this->phrasen['benotungstool/detail']='dettaglio'; +$this->phrasen['benotungstool/dieseKreuzerlliste']='questa lista da barrare'; +$this->phrasen['benotungstool/downloadverzeichnisAnzeigen']='mostra elenco download'; +$this->phrasen['benotungstool/eingetrageneNoten']='voti registrati'; +$this->phrasen['benotungstool/errechneteGesamtnote']='voto complessivo calcolato '; +$this->phrasen['benotungstool/esGibtKeineLehreinheiten']='nessuna lezione in questo semestre autorizzata per questo accesso '; +$this->phrasen['benotungstool/esHabenStudentenEingetragen']='complessivi %s studenti hanno registrato '; +$this->phrasen['benotungstool/esKonntenNichtAlleDatenGespeichertWerden']='impossibile salvare tutti i dati'; +$this->phrasen['benotungstool/fehlerBeimAuslesen']='errore in sede di lettura delle lezioni '; +$this->phrasen['benotungstool/fehlerBeimFreigebenDerNoten']='errore in sede di attivazione dei voti: la password trasmessa non è corretta'; +$this->phrasen['benotungstool/fehlerBeimKopieren']='errore di copiatura: nella lezione selezionata esiste già una lista con caselle da barrare con lo stesso nome'; +$this->phrasen['benotungstool/fehlerBeimLadenDesStudenten']='errore di caricamento degli studenti'; +$this->phrasen['benotungstool/fehlerhafteNoteBeiStudent']='Voto scorretto per studente %s %s'; +$this->phrasen['benotungstool/fehlerKopierenDerDaten']='errore di copiatura dei dati'; +$this->phrasen['benotungstool/fehlerNichtAlleBeispieleKopiert']='errore: impossibile copiare tutti i dati'; +$this->phrasen['benotungstool/format']='(formato: 31.12.2007 14:30)'; +$this->phrasen['benotungstool/freigabe']='attivazione'; +$this->phrasen['benotungstool/freigegebenVon']='attivato da'; +$this->phrasen['benotungstool/freigeschalten']='attivato'; +$this->phrasen['benotungstool/freigeschaltet']='attivato'; +$this->phrasen['benotungstool/gesamtnote']='voto complessivo'; +$this->phrasen['benotungstool/gesamtuebersicht']='mostra tutto'; +$this->phrasen['benotungstool/gewicht']='taratura '; +$this->phrasen['benotungstool/gewichtMussEineZahlSein']='taratura deve essere un numero'; +$this->phrasen['benotungstool/handbuch']='manuale'; +$this->phrasen['benotungstool/handbuchBenotungstool']='manuale strumenti valutazione (PDF)'; +$this->phrasen['benotungstool/hatDieLvNotenFuerFolgendeStudenten']='ha attivato i voti della lezione per i seguenti studenti'; +$this->phrasen['benotungstool/hauptuebungKonnteNichtKopiertWerden']='impossibile copiare esercitazione principale'; +$this->phrasen['benotungstool/importAnweisung']='copiare le colonne dati personali e voti dalla lista dei voti e inserirle nel seguete campo'; +$this->phrasen['benotungstool/importieren']='importa'; +$this->phrasen['benotungstool/keineAbgabenVerfuegbar']='nessuna consegna disponibile'; +$this->phrasen['benotungstool/keineBeispieleAngelegt']='momentaneamente nessun esempio registrato'; +$this->phrasen['benotungstool/keineKreuzerllistenFuerDieseLehrveranstaltung']='momentaneamente nessuna lista con caselle da barrare per la lezione scelta'; +$this->phrasen['benotungstool/keinePassendeLehreinheitGefunden']='impossibile trovare lezione adeguata/corrispondente in questo semestre'; +$this->phrasen['benotungstool/kommissionellePruefung']='esame di commissione'; +$this->phrasen['benotungstool/kreuzerllisteNichtAngelegt']='impossibile creare lista con caselle da barrare'; +$this->phrasen['benotungstool/kreuzerltool']='strumenti con caselle da barrare'; +$this->phrasen['benotungstool/leGesamtnote']='voto complessivo lezione'; +$this->phrasen['benotungstool/leGesamtnotenVerwalten']='gestione voto complessivo lezione'; +$this->phrasen['benotungstool/lehrveranstaltungBenoten']='valutare lezione'; +$this->phrasen['benotungstool/leistungsuebersichtNotenuebersichtFuer']='panoramica stato prestazioni
    / panoramica voti '; +$this->phrasen['benotungstool/leNoten']='voti lezione'; +$this->phrasen['benotungstool/leNotenVerwalten']='gestione voti lezione'; +$this->phrasen['benotungstool/liste']='elenco'; +$this->phrasen['benotungstool/lvGesamtnoteVerwalten']='gestione voto complessivo lezione'; +$this->phrasen['benotungstool/lvNote']='Voto lezione'; +$this->phrasen['benotungstool/lvNotenVerwalten']='gestione voti lezioni'; +$this->phrasen['benotungstool/maxBeispieleStudent']='al massimo esempi/studente'; +$this->phrasen['benotungstool/maxStudentenBeispiel']='al massimo studenti/esempio'; +$this->phrasen['benotungstool/minimum']='minimo'; +$this->phrasen['benotungstool/mitarbeitspunkte']='punti supplementari'; +$this->phrasen['benotungstool/moodleNote']='voto moodle'; +$this->phrasen['benotungstool/mussPositivSein']='* deve essere positivo'; +$this->phrasen['benotungstool/nachpruefung']='esame reiterato'; +$this->phrasen['benotungstool/neueAbgabeAnlegen']='crea nuova consegna'; +$this->phrasen['benotungstool/neueKreuzerllisteAnlegen']='crea nuova lista con caselle da barrare '; +$this->phrasen['benotungstool/neuesBeispielAnlegen']='crea nuovo esempio'; +$this->phrasen['benotungstool/neueUebungAnlegen']='crea nuova esercitazione'; +$this->phrasen['benotungstool/nichtFreigeschaltet']='non attivato'; +$this->phrasen['benotungstool/nichtGespeichertKreuzerllisteNichtFreigegeben']='impossibile attivare cambiamenti in quanto la lista con caselle da barrare scelta non è attivata'; +$this->phrasen['benotungstool/nichtVorbereitet']='non preparato'; +$this->phrasen['benotungstool/note']='voto'; +$this->phrasen['benotungstool/noteEingeben']='Inserire un voto tra 1 - 5 ovvero 7 (non valutato), 10 (superato), 14 (non superato) ovvero 16 (frequentato con successo)'; +$this->phrasen['benotungstool/noteEingebenOderLeer']='Inserire un voto tra 1 - 5 ovvero 7 (non valutato), 10 (superato), 14 (non superato) ovvero 16 (frequentato con successo) o lasciare libero il campo'; +$this->phrasen['benotungstool/noteIstUngueltig']='voto non valido'; +$this->phrasen['benotungstool/noten']='voti: 1-5, 7 (non valutato), 10 (superato), 14 (non superato), 16 (frequentato con successo) '; +$this->phrasen['benotungstool/notenlisteImport']='elenco voti per l\'import-voti-lezione'; +$this->phrasen['benotungstool/notenschluesselDefinieren']='definisci chiave di voto'; +$this->phrasen['benotungstool/notenschluesselIn']='chiave di voto in'; +$this->phrasen['benotungstool/notenschluesselInProzent']='chiave di voto in percento'; +$this->phrasen['benotungstool/notenuebersichtFuer']='panoramica voti per '; +$this->phrasen['benotungstool/positiv']='positivo'; +$this->phrasen['benotungstool/probleme']='problemi'; +$this->phrasen['benotungstool/prozentPunkten']='percento / punti'; +$this->phrasen['benotungstool/pruefung']='Esame'; +$this->phrasen['benotungstool/pruefungAnlegenFuer']='crea esame per'; +$this->phrasen['benotungstool/punkte']='punti'; +$this->phrasen['benotungstool/punkte']='punti'; +$this->phrasen['benotungstool/punkteEingetragen']='inserisci punti'; +$this->phrasen['benotungstool/punkteInsgesamtMoeglich']='totale punti possibile'; +$this->phrasen['benotungstool/punkteMuessenEineGueltigeZahlSein']='punti deve essere un numero valido'; +$this->phrasen['benotungstool/punkten']='punti'; +$this->phrasen['benotungstool/punkteProBeispielGueltigeZahl']='punti per esempio deve essere un numero valido'; +$this->phrasen['benotungstool/punkteProBeispielNichtNegativ']='punti per esempio non può essere un numero negativo'; +$this->phrasen['benotungstool/punkteSindUngueltig']='punti non sono validi'; +$this->phrasen['benotungstool/standardwerteSetzen']='inserire valori standard'; +$this->phrasen['benotungstool/statistik']='statistica'; +$this->phrasen['benotungstool/statistikFuerKreuzerllisten']='statistica liste con caselle da barrare'; +$this->phrasen['benotungstool/statistikFuerStudentenAnzeigen']='mostra statistica studenti'; +$this->phrasen['benotungstool/studentenabgabedatei']='file di consegna studente'; +$this->phrasen['benotungstool/studentenansicht']='panoramica studenti'; +$this->phrasen['benotungstool/studentenaufgabenVerwalten']='gestisci verifiche studenti'; +$this->phrasen['benotungstool/studentenAuswaehlen']='scegliere uno o una studente'; +$this->phrasen['benotungstool/studentIstLvNichtZugeordnet']='Studente %s %s (%s) non è collegato a questa lezione. Il voto non sarà registrato!'; +$this->phrasen['benotungstool/studentMitMatrikelnummerExistiertNicht']='Studente con numero di matricola %s inesistente'; +$this->phrasen['benotungstool/studentWurdeNichtGefunden']='studente non trovato'; +$this->phrasen['benotungstool/teilnote']='voto parziale'; +$this->phrasen['benotungstool/thema']='soggetto / tema?'; +$this->phrasen['benotungstool/themaMussEingegebenWerden']='inserire soggetto / tema?'; +$this->phrasen['benotungstool/uebersicht']='panoramica'; +$this->phrasen['benotungstool/uebung']='esercitazione'; +$this->phrasen['benotungstool/uebungBearbeiten']='elabora esercitazione'; +$this->phrasen['benotungstool/uebungen']='esercitazioni'; +$this->phrasen['benotungstool/uebungenAnlegenUndVerwalten']='crea e gestisci esercitazioni'; +$this->phrasen['benotungstool/uebungErfolgreichKopiert']='ok: esercitazione copiata'; +$this->phrasen['benotungstool/uebungInAndereLeKopieren']='copia esercitazione in altra lezione'; +$this->phrasen['benotungstool/uebungKonnteNichtAngelegtWerden']='impossibile creare esercitazione'; +$this->phrasen['benotungstool/uebungKonnteNichtKopiertWerden']='impossibile copiare esercitazione '; +$this->phrasen['benotungstool/uebungsnotenVerwalten']='gestione voti esercitazioni'; +$this->phrasen['benotungstool/uebungUndLehreinheit']='scegliere esercitazione e lezione '; +$this->phrasen['benotungstool/uebungVerwalten']='gestisci esercitazione'; +$this->phrasen['benotungstool/vonDatumNichtGroesserAlsBisDatum']='da data non può essere superiore a fino a data'; +$this->phrasen['benotungstool/vonDatumUngueltigesFormat']='da-data ha un formato non valido'; +$this->phrasen['benotungstool/vorbereitet']='preparato'; +$this->phrasen['benotungstool/vorhandeneAufgabeBearbeiten']='elabora verifiche inserite'; +$this->phrasen['benotungstool/vorhandeneBeispiele']='esempi inseriti'; +$this->phrasen['benotungstool/vorhandeneUebungenBearbeiten']='elabora esercitazioni inseriti'; +$this->phrasen['benotungstool/vorhandeneUebungenKopieren']='copia esercitazioni inseriti'; +$this->phrasen['benotungstool/waehlenSieEineAufgabeAus']='scegliere un ordine da (lista con caselle da barrare, consegne)'; +$this->phrasen['benotungstool/waehlenSieEineKreuzerlliste']='scegliere una lista con caselle da barrare'; +$this->phrasen['benotungstool/wurdeNichtGefunden']='non trovato'; +$this->phrasen['benotungstool/zeugnisnote']='Voto'; +$this->phrasen['benotungstool/zeunis']='libretto universitario'; +$this->phrasen['benotungstool/zugehoerigeUebungFehlerhaft']='errore in esercitazione correlato'; +$this->phrasen['benotungstool/zuVieleBeispieleAngekreuzt']='troppi esempi sbarrati'; + +?> diff --git a/locale/it-IT/buchungen.php b/locale/it-IT/buchungen.php new file mode 100755 index 000000000..67829163f --- /dev/null +++ b/locale/it-IT/buchungen.php @@ -0,0 +1,8 @@ +phrasen['buchungen/betrag']='Importo'; +$this->phrasen['buchungen/buchgstyp']='tipologia registrazione'; +$this->phrasen['buchungen/buchungsdatum']='data registrazione'; +$this->phrasen['buchungen/buchungstext']='testo registrazione'; +$this->phrasen['buchungen/titel']='registrazioni'; + +?> diff --git a/locale/it-IT/coodle.php b/locale/it-IT/coodle.php new file mode 100755 index 000000000..e7dd369a4 --- /dev/null +++ b/locale/it-IT/coodle.php @@ -0,0 +1,61 @@ +phrasen['coodle/aktion']='azione'; +$this->phrasen['coodle/auswahlEndtermin']='scelta termine ultimo'; +$this->phrasen['coodle/auswahlHinweis']='la scelta comporta la fissazone del termine ultimo e ultimato il sondaggio. Non è possibile invalidare il processo'; +$this->phrasen['coodle/bearbeiten']='editare sondaggio'; +$this->phrasen['coodle/beendeteUmfragen']='ultimare sondaggio'; +$this->phrasen['coodle/beschreibung']='descrizione'; +$this->phrasen['coodle/coodle']='Coodle'; +$this->phrasen['coodle/coodleId']='coodle_id'; +$this->phrasen['coodle/dauer']='durata scadenza'; +$this->phrasen['coodle/dauerminuten']='minuti'; +$this->phrasen['coodle/dragEvent']='scadenza '; +$this->phrasen['coodle/einladungNeuVerschicken']='spedire di nuovo inviti'; +$this->phrasen['coodle/email']='email'; +$this->phrasen['coodle/endedatum']='fine del sondaggio'; +$this->phrasen['coodle/erfolgreichGestartet']='sondaggio attivato'; +$this->phrasen['coodle/ersteller']='creato da'; +$this->phrasen['coodle/erstelltVon']='creato da %s ( %s giorni fa) '; +$this->phrasen['coodle/externeBeschreibung']='inserire il nome e l\'indirizzo email della persona che si vuole aggiungere al sondaggio'; +$this->phrasen['coodle/externenHinzufuegen']='aggiungi'; +$this->phrasen['coodle/externePersonhinzu']='aggiungi persona esterna'; +$this->phrasen['coodle/keineAuswahl']='nessuna scelta'; +$this->phrasen['coodle/keineBerechtigung']='errore di autorizzazione per questo sondaggio'; +$this->phrasen['coodle/keineOderMehrereRäume']='inserisci nessuno o più aule'; +$this->phrasen['coodle/keineRessourcenVorhanden']='nessun partecipante correlato'; +$this->phrasen['coodle/keineTermineVorhanden']='nessuna scadenza inserita per questo sondaggio'; +$this->phrasen['coodle/laufendeUmfragen']='sondaggi attivi'; +$this->phrasen['coodle/letzterStatus']='ultimo stato'; +$this->phrasen['coodle/loeschen']='cancella sondaggio'; +$this->phrasen['coodle/mailVersandtAn']='ok, messaggio spedito a %s'; +$this->phrasen['coodle/name']='nome'; +$this->phrasen['coodle/neuerEintrag']='nuovo sondaggio'; +$this->phrasen['coodle/neueUmfrage']='crea nuovo sondaggio'; +$this->phrasen['coodle/raumBelegt']='impossibile prenotare aula %s, l\'aula è occupata!'; +$this->phrasen['coodle/raumErfolgreichReserviert']='ok, aula %s prenotata'; +$this->phrasen['coodle/raumNichtReserviert']='Attenzione: non è stata prenotata l\'aula scelta; impossibile effettuare attualmente prenotazioni dopo il %s '; +$this->phrasen['coodle/ReservierungNichtMoeglich']='Attenzione: impossibile effettuare attualmente prenotazioni dopo il %s '; +$this->phrasen['coodle/ressource']='risorsa / partecipante'; +$this->phrasen['coodle/ressourceEntfernen']='cancella risorsa'; +$this->phrasen['coodle/ressourcen']='risorse / partecipante'; +$this->phrasen['coodle/ressourcenBeschreibung']='Qui è possibile aggiungere aule e persone al sondaggio.

    inserire nome nel campo di testo e scegliere l\'annotazione corrispondente.'; +$this->phrasen['coodle/Ressourcenhinzu']='aggiungi risorse'; +$this->phrasen['coodle/startBeschreibung']='cliccare qui per informare i partecipanti e lanciare il sondaggio'; +$this->phrasen['coodle/terminauswahl']='Coodle scelta scadenze'; +$this->phrasen['coodle/termine']='gestisci scadenze'; +$this->phrasen['coodle/terminZiehenBeschreibung']='portare la scadenza nella posizione scelata per inserire proposte di scadenza '; +$this->phrasen['coodle/titel']='titolo'; +$this->phrasen['coodle/uebersicht']='Coodle - panoramica'; +$this->phrasen['coodle/umfrageAbgeschlossen']='il sondaggio è chiuso'; +$this->phrasen['coodle/umfrageKonnteNichtGeloeschtWerden']='impossibile cancellare il sondaggio'; +$this->phrasen['coodle/umfrageNichtGeladen']='impossibile caricare il sondaggio'; +$this->phrasen['coodle/umfrageNichtGueltig']='sondaggio invalidato'; +$this->phrasen['coodle/umfrageNochNichtGestartet']='sondaggio da lanciare'; +$this->phrasen['coodle/umfrageStarten']='lancia sondaggio'; +$this->phrasen['coodle/umfrageWurdeBereitsGestartet']='sondaggio già lanciato'; +$this->phrasen['coodle/weiterZurTerminauswahl']='prosegui per la scelta scadenza'; +$this->phrasen['coodle/ZurueckzumBearbeiten']='<< torna all\'elaborazione'; +$this->phrasen['coodle/zurueckZurUebersicht']='torna alla panoramica'; +$this->phrasen['coodle/zurueckZurUebersicht']='torna alla panoramica'; +$this->phrasen['coodle/zurUmfrage']='vai al sondaggio'; +?> diff --git a/locale/it-IT/courseInformation.php b/locale/it-IT/courseInformation.php new file mode 100755 index 000000000..b51d1c1d5 --- /dev/null +++ b/locale/it-IT/courseInformation.php @@ -0,0 +1,46 @@ +phrasen['courseInformation/achtungFehlerBeimSpeichern']='Attenzione: errore di salvataggio dei dati! Si prega di riprovare '; +$this->phrasen['courseInformation/bearbeitetVon']='elaborato da'; +$this->phrasen['courseInformation/beiFehlernInDenFixfeldern']='\'in caso di errori nei campi fissi rivolgersi all\' assistente incaricata .\';'; +$this->phrasen['courseInformation/beispielComputerarchitektur']='esempi architettura PC'; +$this->phrasen['courseInformation/beispielItProjektarbeitDeutsch']='esempi elaborati progetto IT tedesco'; +$this->phrasen['courseInformation/beispielItProjektarbeitEnglisch']='esempi elaborati progetto IT inglese'; +$this->phrasen['courseInformation/beispielMSEChangeManagement']='Esempi MSE Change Management e softwareevolution'; +$this->phrasen['courseInformation/beispielProjektmarketing']='Esempi marketing e controlling per lavori a progetto '; +$this->phrasen['courseInformation/deutschFreigeben']='attivare informazioni in tedesco della lezione'; +$this->phrasen['courseInformation/diesIstEineAutomatischeMail']='questo è un messaggio automatico'; +$this->phrasen['courseInformation/ectsCredits']=''; +$this->phrasen['courseInformation/ectsInformation']=''; +$this->phrasen['courseInformation/ectsLvInfo']=''; +$this->phrasen['courseInformation/englischFreigeben']='attivare informazioni inglese della lezione'; +$this->phrasen['courseInformation/fallsSieAufzaehlungslistenVerwenden']='se si vogliono utilizzare liste si prega di inserirle nel modo seguente:
    <ul>
    <li>Listeneintrag1</li><li>Listeneintrag2</li>
    </ul>\';'; +$this->phrasen['courseInformation/fehlerBeimSchreibenDesLog']='errore di scrittura del log file'; +$this->phrasen['courseInformation/fehlerBeimSendenAufgetreten']='errore di trasmissione della mail di attivazione a %s'; +$this->phrasen['courseInformation/fehlerLogFile']='errore di scrittura del log file'; +$this->phrasen['courseInformation/freigabe']='attiva'; +$this->phrasen['courseInformation/freigabeLvinfo']='attiva informazioni della lezione'; +$this->phrasen['courseInformation/freigabemailWurdeVersandt']='ok: mail di attivazione spedito a %s'; +$this->phrasen['courseInformation/freigeben']='attivare'; +$this->phrasen['courseInformation/freigegeben']='arrivare informazioni della lezione'; +$this->phrasen['courseInformation/incomingplaetze']='posti incoming'; +$this->phrasen['courseInformation/institutskoordinator']='coordinatore o coordinatrice d\'istituto'; +$this->phrasen['courseInformation/institutsleiter']=''; +$this->phrasen['courseInformation/konnteKeinFreigabemailVersendetWerden']='errore di trasmissione della mai di attivazione delle informazioni della lezione'; +$this->phrasen['courseInformation/lehrendeLautLehrauftrag']='lettore previsto dall\'incarico'; +$this->phrasen['courseInformation/lvInfoBeispiele']='informazioni della lezione - esempi'; +$this->phrasen['courseInformation/lvInfoFreigabe']='informazioni della lezione - attivazione'; +$this->phrasen['courseInformation/lvInfoSemester']='informazione della lezione - %s - %s. Semestre'; +$this->phrasen['courseInformation/lvinfoWurdeUeberarbeitet']='%s ha elaborato le informazioni della lezione %s e richiede di attivarle'; +$this->phrasen['courseInformation/nochNichtFreigegeben']='informazioni della lezione non ancora attivate'; +$this->phrasen['courseInformation/online']='online'; +$this->phrasen['courseInformation/pflichtfelderWerdenAufDerExternenSeiteAngezeigt']='i campi necessari sono visibili anche sulla pagina web ufficiale e devono perciò essere compilati'; +$this->phrasen['courseInformation/sieKoennenDieseUnterFolgenderAdresseFreigeben']='queste possono essere attivate seguendo il link '; +$this->phrasen['courseInformation/terminologie']='terminologia'; +$this->phrasen['courseInformation/terminologieDeutschEnglisch']='terminologia tedesco-inglese'; +$this->phrasen['courseInformation/unterrichtssprache']='lingua della lezione'; +$this->phrasen['courseInformation/updateAm']='update del '; +$this->phrasen['courseInformation/voransicht']=''; +$this->phrasen['courseInformation/zurFreigabeAbschicken']='spedire per l\'attivazione'; +$this->phrasen['courseInformatoin/lvInfoTerminologie']='informazioni della lezione - terminologia'; + +?> diff --git a/locale/it-IT/dms_link.php b/locale/it-IT/dms_link.php new file mode 100755 index 000000000..271d69587 --- /dev/null +++ b/locale/it-IT/dms_link.php @@ -0,0 +1,23 @@ +phrasen['dms_link/abgabetoolAssistenzHandbuch']='28 '; +$this->phrasen['dms_link/abgabetoolLektorHandbuch']='28 '; +$this->phrasen['dms_link/abgabetoolStudentHandbuch']='27 '; +$this->phrasen['dms_link/anleitungMailverteiler']='7578 '; +$this->phrasen['dms_link/bedienungsanleitungMailverteiler']='1474 '; +$this->phrasen['dms_link/benotungstoolHandbuch']='32 '; +$this->phrasen['dms_link/berechtigungskonzeptMailverteiler']='1475 '; +$this->phrasen['dms_link/bildRichtlinien']='6174 '; +$this->phrasen['dms_link/cisHandbuch']='764 '; +$this->phrasen['dms_link/dokuwikiGesamtnote']=''; +$this->phrasen['dms_link/handbuchUrlaubsverwaltung']='759 '; +$this->phrasen['dms_link/handbuchZeitaufzeichnung']='1545'; +$this->phrasen['dms_link/iconPDF']='46 '; +$this->phrasen['dms_link/lvPlanFAQ']='6887 '; +$this->phrasen['dms_link/lvplanSyncFAQ']='7188 '; +$this->phrasen['dms_link/moodleHandbuch']='33 '; +$this->phrasen['dms_link/moodleHandbuch24']='1426 '; +$this->phrasen['dms_link/profilhilfe']=''; +$this->phrasen['dms_link/sicherheitAnDerFHTW']='6765 '; +$this->phrasen['dms_link/veranstaltungsleitfaden']='133 '; + +?> diff --git a/locale/it-IT/eventkalender.php b/locale/it-IT/eventkalender.php new file mode 100755 index 000000000..658b5cd32 --- /dev/null +++ b/locale/it-IT/eventkalender.php @@ -0,0 +1,75 @@ +phrasen['eventkalender/aenderungVon']='modifica del'; +$this->phrasen['eventkalender/alleKategorien']='tutte le categorie'; +$this->phrasen['eventkalender/alleWochenOeffnen']='apri tutte le settimane'; +$this->phrasen['eventkalender/alleWochenSchliessen']='chiudi tutte le settimane'; +$this->phrasen['eventkalender/am']='il'; +$this->phrasen['eventkalender/angelegt']='inserito'; +$this->phrasen['eventkalender/angelegtVon']='inserito da '; +$this->phrasen['eventkalender/beiFragenGebenSieImmerDieVeranstaltungsIDan']='per ulteriori informazioni è necessario inserire la ID dell\'evento'; +$this->phrasen['eventkalender/beiFragenGebenSieImmerDieVeranstaltungsIdXYan']='per ulteriori informazioni è necessario inserire la ID dell\'evento %s'; +$this->phrasen['eventkalender/bild']='immagine'; +$this->phrasen['eventkalender/bildladen']='carica immagine'; +$this->phrasen['eventkalender/datumBis']='data fino al'; +$this->phrasen['eventkalender/datumVon']='data dal'; +$this->phrasen['eventkalender/details']='dettagli'; +$this->phrasen['eventkalender/durch']='da '; +$this->phrasen['eventkalender/einJahrVor']='1 anno dopo'; +$this->phrasen['eventkalender/einJahrZurueck']='1 anno prima'; +$this->phrasen['eventkalender/einMonatVor']='1 mese dopo'; +$this->phrasen['eventkalender/einMonatZurueck']='1 mese prima'; +$this->phrasen['eventkalender/farbe']='colore'; +$this->phrasen['eventkalender/fehlerBeimLesenDerVeranstaltungskategorie']='errore di lettura della categoria dell\'evento'; +$this->phrasen['eventkalender/fehlerStartKleinerEnde']='Errore! Inizio e termine non plausibili'; +$this->phrasen['eventkalender/freigabe']='attiva'; +$this->phrasen['eventkalender/freigabeVon']='attivato da'; +$this->phrasen['eventkalender/ganztaegigeVeranstaltung']='evento tutta la giornata'; +$this->phrasen['eventkalender/geaendert']='modificato'; +$this->phrasen['eventkalender/geloescht']='cancellato'; +$this->phrasen['eventkalender/ID']='ID'; +$this->phrasen['eventkalender/jahresplan']='programmazione annuale'; +$this->phrasen['eventkalender/jahrIstUngueltig']='errore: anno'; +$this->phrasen['eventkalender/kategorie']='categoria'; +$this->phrasen['eventkalender/kategorienBearbeiten']='elabora categorie'; +$this->phrasen['eventkalender/keineBerechtigungAufAnwenderinformationen']='impossibile accedere alle infomazioni per l\'utente (attivazione, creazione, modifica) per mancanza di autorizzazione'; +$this->phrasen['eventkalender/keineFreigabe']='non attivato'; +$this->phrasen['eventkalender/keineGueltigeZeit']='errore: orario!\nInserire orario in formato: HH:MM '; +$this->phrasen['eventkalender/keineVeranstaltungen']='nessun evento'; +$this->phrasen['eventkalender/keineVeranstaltungGefunden']='nessun evento trovato'; +$this->phrasen['eventkalender/keineVeranstaltungsIdUebergeben']='manca ID evento '; +$this->phrasen['eventkalender/keinGueltigesDatum']='errore: data!\nInserire dara in formato: DD.MM.YYYY '; +$this->phrasen['eventkalender/kurzbezeichnung']='sigla'; +$this->phrasen['eventkalender/kurzbezeichnungenMitEinemStern']='abbreviazioni con anteposto * (asterisco) mostrano solo collaboratori e lettori'; +$this->phrasen['eventkalender/kw']='settimana dell\'anno'; +$this->phrasen['eventkalender/monatIstUngueltig']='errore: mese'; +$this->phrasen['eventkalender/neuanlage']='nuovo inserimento'; +$this->phrasen['eventkalender/oeffnen']='apri'; +$this->phrasen['eventkalender/pflichtfeld']='campo obbligatorio'; +$this->phrasen['eventkalender/reserviertVon']='prenotato da'; +$this->phrasen['eventkalender/reservierungenInEinemNeuenFensterAnzeigen']='mostra prenotazioni in nuova videata'; +$this->phrasen['eventkalender/reservierungenKoennenErstNachDemSpeichernZugeordnetWerden']='sarà possibile attribuire le prenotazioni solo dopo aver registrato l\'evento'; +$this->phrasen['eventkalender/reservierungenZurVeranstaltungsID']='prenotazioni evento con ID'; +$this->phrasen['eventkalender/reservierungID']='ID prenotazione'; +$this->phrasen['eventkalender/schliessen']='chiudi'; +$this->phrasen['eventkalender/sollDieHauptseiteNeuAufgebautWerden']='ricaricare la pagina principale?'; +$this->phrasen['eventkalender/suche']='cerca'; +$this->phrasen['eventkalender/suchtext']='testo per ricerca'; +$this->phrasen['eventkalender/uhr']='orologio'; +$this->phrasen['eventkalender/uhrzeit']='ora'; +$this->phrasen['eventkalender/veranstaltung']='evento'; +$this->phrasen['eventkalender/veranstaltungBearbeiten']='elabora evento'; +$this->phrasen['eventkalender/veranstaltungen']='eventi'; +$this->phrasen['eventkalender/veranstaltungenAnzeigen']='mostra eventi'; +$this->phrasen['eventkalender/veranstaltungIdIstUngueltig']='ID evento non valida'; +$this->phrasen['eventkalender/veranstaltungIdXYwurdeNichtGefunden']='impossibile trovare ID evento %s'; +$this->phrasen['eventkalender/veranstaltungsdetailID']='dettaglio evento ID'; +$this->phrasen['eventkalender/veranstaltungsID']='ID evento '; +$this->phrasen['eventkalender/veranstaltungskategorie']='categoria evento'; +$this->phrasen['eventkalender/veranstaltungsleitfaden']='guida evento'; +$this->phrasen['eventkalender/veranstaltungXYgeloescht']='cancellato evento %s '; +$this->phrasen['eventkalender/voransicht']='anteprima'; +$this->phrasen['eventkalender/woche']='settimana'; +$this->phrasen['eventkalender/wochenindexWurdeNichtGefunden']='impossibile trovare indice settimana %s'; +$this->phrasen['eventkalender/wollenSieWirklichIdXYloeschen']='conferma cancellazione ID %s'; + +?> diff --git a/locale/it-IT/feedback.php b/locale/it-IT/feedback.php new file mode 100755 index 000000000..a9234c8b3 --- /dev/null +++ b/locale/it-IT/feedback.php @@ -0,0 +1,9 @@ +phrasen['feedback/absatz1']=''; +$this->phrasen['feedback/erfolgreichEingetragen']='il messaggio è stato registrato'; +$this->phrasen['feedback/feedbackNichtWeitergeleitet']='il feedback non è stato spedito'; +$this->phrasen['feedback/ihreNachrichtWurdeWeitergeleitet']='il messaggio è stato inoltrato al personale competente'; +$this->phrasen['feedback/vielenDankFuerIhrFeedback']='grazie del feedback!'; +$this->phrasen['feedback/wendenSieSichAnDieAdministration']='si prega di rivolgersi all\'amministrazione'; + +?> diff --git a/locale/it-IT/freebusy.php b/locale/it-IT/freebusy.php new file mode 100755 index 000000000..15bc1d429 --- /dev/null +++ b/locale/it-IT/freebusy.php @@ -0,0 +1,13 @@ +phrasen['freebusy/aktiv']='attivo'; +$this->phrasen['freebusy/beschreibungstext1']='su questo sito è possibile riassumere per la propria URL FreeBusy personale diverse informazioni esterne sulla disponibilità.
    '; +$this->phrasen['freebusy/LVPlanBezeichnung']='progamma lezioni personale'; +$this->phrasen['freebusy/LVPlanTyp']='programma lezioni'; +$this->phrasen['freebusy/neuerEintrag']='aggiungi nuova registrazione'; +$this->phrasen['freebusy/PfadZuFreebusyUrl']='la URL FreeBusy personale è raggiungibile dal seguente link:'; +$this->phrasen['freebusy/titel']='gestione FreeBusy'; +$this->phrasen['freebusy/typ']='tipo'; +$this->phrasen['freebusy/url']='URL'; +$this->phrasen['freebusy/urlKannNichtGeladenWerden']='impossibile raggiungere la URL inserita'; + +?> diff --git a/locale/it-IT/freifach.php b/locale/it-IT/freifach.php new file mode 100755 index 000000000..a271f2293 --- /dev/null +++ b/locale/it-IT/freifach.php @@ -0,0 +1,18 @@ +phrasen['freifach/abmeldungNurUeberAssistenz']='Attenzione: il ritiro da una materia facoltativa è momentaneamente possibile solo tramite la Segreteria Studenti '; +$this->phrasen['freifach/auswahl']='scelta'; +$this->phrasen['freifach/bitteFreifachAuswaehlen']='si prega di scegliere una delle materie facoltative'; +$this->phrasen['freifach/datenErfolgreichAktualisiert']='i dati sono stati attualizzati'; +$this->phrasen['freifach/fehlerBeimAktualisieren']='errore in sede di aggiornamento dell\'attribuzione dei corsi facoltativi! Si prega di riprovare '; +$this->phrasen['freifach/fehlerBeimAuslesen']='errore di lettura dello specchietto di attribuzione'; +$this->phrasen['freifach/fehlerBeimAuslesenFreifach']='errore di lettura dei corsi facoltativi: Si prega di riprovare '; +$this->phrasen['freifach/freifach']='corso facoltativo'; +$this->phrasen['freifach/freifaecher']='corsi facoltativi'; +$this->phrasen['freifach/freifaecherAnmeldung']='iscrizione ai corsi facoltativi'; +$this->phrasen['freifach/freifaecherAnmeldungsuebersicht']='panoramica iscrizione ai corsi facoltativi'; +$this->phrasen['freifach/freifaecherNichtZugeteilt']='errore di attribuzione dei corsi facoltativi! Si prega di riprovare'; +$this->phrasen['freifach/keineAnmeldungenFuerDiesesFreifach']='ancora nessuna iscrizione per questo corso'; +$this->phrasen['freifach/MailAnAlleSenden ']='spedisci mail a tutti gli iscritti al presente corso facoltativo'; +$this->phrasen['freifach/markierenFreifachFuerAnmeldung']='cliccare i corsi facoltativi per i quali si desidera l\'iscrizione'; + +?> diff --git a/locale/it-IT/gesamtnote.php b/locale/it-IT/gesamtnote.php new file mode 100755 index 000000000..c250efa68 --- /dev/null +++ b/locale/it-IT/gesamtnote.php @@ -0,0 +1,8 @@ +phrasen['gesamtnote/keinNotenschluesselvorhanden']='per la presente lezione non è stata definita la chiave di voto'; +$this->phrasen['gesamtnote/notenschluesselanzeigen']='mostra chiave di voto'; +$this->phrasen['gesamtnote/noteUnveraendert']='voto invariato'; +$this->phrasen['gesamtnote/passwortFalsch']='errore in sede di attivazione dei voti: la password trasmessa non è corretta'; +$this->phrasen['gesamtnote/wollenSieWirklichLoeschen']='conferma cancellazione delle registrazioni cliccate? Tutte le caselle barrate andranno perse'; + +?> diff --git a/locale/it-IT/global.php b/locale/it-IT/global.php new file mode 100755 index 000000000..618c5b83b --- /dev/null +++ b/locale/it-IT/global.php @@ -0,0 +1,158 @@ +phrasen['global/abbrechen']='annulla'; +$this->phrasen['global/abmelden']='esci'; +$this->phrasen['global/abschicken']='spedisci '; +$this->phrasen['global/adresse']='indirizzo'; +$this->phrasen['global/aendern']='modifica'; +$this->phrasen['global/aktion']='azione'; +$this->phrasen['global/alle']='tutti'; +$this->phrasen['global/allgemeinerdownload']='download generale'; +$this->phrasen['global/angelegtAm']='registrato il '; +$this->phrasen['global/angemeldet']='iscritto'; +$this->phrasen['global/anleitung']='istruzioni'; +$this->phrasen['global/anmelden']='iscriversi'; +$this->phrasen['global/anmerkung']='osservazioni'; +$this->phrasen['global/anmerkungen']='osservazioni'; +$this->phrasen['global/anzeigen']='mostra'; +$this->phrasen['global/ausblenden']=''; +$this->phrasen['global/auswaehlen']=''; +$this->phrasen['global/auswahl']=''; +$this->phrasen['global/bearbeiten']='modifica'; +$this->phrasen['global/beginn']='inizio'; +$this->phrasen['global/beispiele']='esempi'; +$this->phrasen['global/benutzer']='utente'; +$this->phrasen['global/beschreibung']='descrizione'; +$this->phrasen['global/betreff']='oggetto'; +$this->phrasen['global/bezeichnung']='denominazione'; +$this->phrasen['global/bis']='fino'; +$this->phrasen['global/code']='codice'; +$this->phrasen['global/datei']='file'; +$this->phrasen['global/dateiErfolgreichHochgeladen']='il file è stato caricato'; +$this->phrasen['global/dateiExistiertNicht']='il file è inesistente'; +$this->phrasen['global/dateiLoeschen']='cancella file'; +$this->phrasen['global/dateiNichtErfolgreichHochgeladen']='impossibile caricare il file. Si prega di ripetere l\'operazione.'; +$this->phrasen['global/datensatzWurdeNichtGefunden']='impossibile trovare i dati cercati'; +$this->phrasen['global/datenWurdenGespeichert']='i dati sono stati salvati'; +$this->phrasen['global/datum']='Data'; +$this->phrasen['global/datumNichtGesetzt']='non è stata impostata la data'; +$this->phrasen['global/deutsch']='tedesco'; +$this->phrasen['global/dienstag']='martedì'; +$this->phrasen['global/donnerstag']='giovedì '; +$this->phrasen['global/download']='download'; +$this->phrasen['global/editieren']='editare'; +$this->phrasen['global/eintragen']='registrare'; +$this->phrasen['global/eintragWurdeGeloescht']='cancellata registrazione'; +$this->phrasen['global/emailAdresse']='indirizzo e-mail'; +$this->phrasen['global/emailAnAssistenz']='e-mail alla segreteria'; +$this->phrasen['global/emailgesendetan']='spedisci e-mail a'; +$this->phrasen['global/ende']='fine'; +$this->phrasen['global/englisch']='inglese'; +$this->phrasen['global/entfernen']='cestina'; +$this->phrasen['global/erfolgreichAngelegt']='ok, registrato'; +$this->phrasen['global/erfolgreichgelöscht']='ok, cancellato'; +$this->phrasen['global/erfolgreichgespeichert']='ok, salvato'; +$this->phrasen['global/erstellen']='crea'; +$this->phrasen['global/fax']='fax'; +$this->phrasen['global/fehleraufgetreten']='è avvenuto un errore'; +$this->phrasen['global/fehlerBeiDerParameteruebergabe']='errore di trasmissione dei parametri'; +$this->phrasen['global/fehlerBeimAktualisierenDerDaten']='errore di aggiornamento dei dati'; +$this->phrasen['global/fehlerBeimErmittelnDerUID ']='errore di ricerca della UID'; +$this->phrasen['global/fehlerBeimLadenDesDatensatzes']='errore di caricamento dei dati'; +$this->phrasen['global/fehlerBeimLesenAusDatenbank']='errore di lettura dalla banca dati'; +$this->phrasen['global/fehlerBeimLoeschenDesEintrags']='errore di cancellazione della registrazione'; +$this->phrasen['global/fehlerBeimOeffnenDerDatenbankverbindung']='errore di apertura del collegamento con la banca dati'; +$this->phrasen['global/fehlerBeimSpeichernDerDaten']='errore di salvataggio dati'; +$this->phrasen['global/fhTechnikumWien']='SFU'; +$this->phrasen['global/fhtw']='Sigmund Freud PrivatUniversität'; +$this->phrasen['global/frau']='Sig.ra'; +$this->phrasen['global/freitag']='venerdì'; +$this->phrasen['global/FuerDieseAktionBenoetigenSieAdministrationsrechte']='per questa azione si necessita l\'amministratore del sistema'; +$this->phrasen['global/funktion']='funzione'; +$this->phrasen['global/geburtsdatum']='Data di nascita'; +$this->phrasen['global/geburtsort']='Luogo di nascita'; +$this->phrasen['global/geschaeftsfuehrendeltg']='Amministratore'; +$this->phrasen['global/geschlecht']=''; +$this->phrasen['global/gruppe']='Gruppo'; +$this->phrasen['global/handbuch']='Manuale'; +$this->phrasen['global/handy']='Cellulare'; +$this->phrasen['global/hauptwohnsitz']='Residenza '; +$this->phrasen['global/hilfe']='Assistenza'; +$this->phrasen['global/hinzufuegen']='aggiungi'; +$this->phrasen['global/institut']='Istituto'; +$this->phrasen['global/ja']='sì'; +$this->phrasen['global/kalender']='Calendario'; +$this->phrasen['global/keineBerechtigung']='non autorizzato'; +$this->phrasen['global/keineBerechtigungFuerDieseSeite']='errore di autorizzazione per questa pagina'; +$this->phrasen['global/keineBerechtigungZumAendernDesDatensatzes']='errore di autorizzazione per modificare i dati'; +$this->phrasen['global/keineDatenGefunden']='impossibile trovare i dati'; +$this->phrasen['global/kopieren']='copia'; +$this->phrasen['global/LDAPserverNichtErreichbar']='il server LDAP non è raggiungibile'; +$this->phrasen['global/lehreinheit']=''; +$this->phrasen['global/lehrveranstaltung']='Insegnamento'; +$this->phrasen['global/lehrziele']='obiettivi di studio'; +$this->phrasen['global/loeschen']='cancella'; +$this->phrasen['global/löschen']='cancella'; +$this->phrasen['global/mail']='messaggio mail'; +$this->phrasen['global/mann']='maschio/uomo'; +$this->phrasen['global/matrikelnummer']='numero di matricola'; +$this->phrasen['global/minute']='minuti'; +$this->phrasen['global/mittwoch']='mercoledì'; +$this->phrasen['global/montag']='lunedì'; +$this->phrasen['global/nachname']='Cognome'; +$this->phrasen['global/name']='nome'; +$this->phrasen['global/nebenwohnsitz']='domicilio'; +$this->phrasen['global/nein']='no'; +$this->phrasen['global/neu']='nuovo'; +$this->phrasen['global/newsgroups']='newsgroup'; +$this->phrasen['global/nichtAngemeldet ']='errore di log in: impossibile trovare l\'UID dell\'utente '; +$this->phrasen['global/nummer']='numero'; +$this->phrasen['global/ok']='ok'; +$this->phrasen['global/organisationseinheit']='Unità organizzativa'; +$this->phrasen['global/organisationseinheiten']=''; +$this->phrasen['global/ort']='luogo'; +$this->phrasen['global/passwort']='Password'; +$this->phrasen['global/person']='persona'; +$this->phrasen['global/personen']='persone '; +$this->phrasen['global/personenkennzeichen']='Codice Persona'; +$this->phrasen['global/personenkz']='Codice Persona'; +$this->phrasen['global/plz']='CAP'; +$this->phrasen['global/postnomen']='Titolo'; +$this->phrasen['global/samstag']='sabato'; +$this->phrasen['global/sekretariat']='segreteria'; +$this->phrasen['global/semester']='Semestre'; +$this->phrasen['global/sonntag']='domenica'; +$this->phrasen['global/speichern']='salva'; +$this->phrasen['global/sprache']='lingua'; +$this->phrasen['global/staatsbuergerschaft']='cittadinanza'; +$this->phrasen['global/stellvertreter']='supplenza '; +$this->phrasen['global/strasse']='via'; +$this->phrasen['global/studentenvertreter']='rappresentanti degli studendi'; +$this->phrasen['global/studiengang']='Corso di studi'; +$this->phrasen['global/studiengangKonnteNichtGefundenWerden ']='impossibile trovare corso di studi digitato'; +$this->phrasen['global/studiengangsleitung']='Direzione del corso di studi'; +$this->phrasen['global/studiengangsmanagement']='Management del corso di studi'; +$this->phrasen['global/studienrichtung']='indirizzo di studio'; +$this->phrasen['global/studiensemester']='Semestre di studio'; +$this->phrasen['global/studiensemesterKonnteNichtGefundenWerden ']='impossibile trovare semestre di studio digitato'; +$this->phrasen['global/studienzentrum']=''; +$this->phrasen['global/stunde']='ora'; +$this->phrasen['global/suchen']='cerca'; +$this->phrasen['global/telefon']='telefono'; +$this->phrasen['global/telefonnummer']='numero telefonico'; +$this->phrasen['global/titel']='Titolo'; +$this->phrasen['global/uid']='UID'; +$this->phrasen['global/umbenennen']='cambia nome'; +$this->phrasen['global/unbekannterFehleraufgetreten']='è avvenuto un errore sconosciuto'; +$this->phrasen['global/universität']='università'; +$this->phrasen['global/username']='Username'; +$this->phrasen['global/userNichtGefunden']=''; +$this->phrasen['global/verband']='Gruppo Principale'; +$this->phrasen['global/von']='inizio'; +$this->phrasen['global/vorname']='Nome'; +$this->phrasen['global/warnungWirklichLoeschen']=''; +$this->phrasen['global/zurueck']='Indietro'; +$this->phrasen['global/zuruecksetzen']=''; +$this->phrasen['global/zweck']=''; +$this->phrasen['global/ects']='ECTS'; + +?> diff --git a/locale/it-IT/incoming.php b/locale/it-IT/incoming.php new file mode 100755 index 000000000..7dba7a301 --- /dev/null +++ b/locale/it-IT/incoming.php @@ -0,0 +1,115 @@ +phrasen['incoming/abgelegtam']='archiviato il (data, gg.mm.aaaa)'; +$this->phrasen['incoming/abgelegtin']='archiviato in (nome dell\'istituzione)'; +$this->phrasen['incoming/abgelegtinort']='archiviato in (xxxxx)'; +$this->phrasen['incoming/alleSemester']='tutti i semestri'; +$this->phrasen['incoming/alleSprachen']='tutte le lingue'; +$this->phrasen['incoming/anmerkungen']=''; +$this->phrasen['incoming/ansprechpersonHeimatuniversitaet']=''; +$this->phrasen['incoming/aufgrundEinerBehinderung']=''; +$this->phrasen['incoming/austauschprgramwählen']=''; +$this->phrasen['incoming/austauschprogram']=''; +$this->phrasen['incoming/auswahlDerLv']=''; +$this->phrasen['incoming/auswahlUniversitaeten']=''; +$this->phrasen['incoming/bachelorstudiengang']=''; +$this->phrasen['incoming/bachelorthesis']=''; +$this->phrasen['incoming/betreuerMasterBachelor']=''; +$this->phrasen['incoming/bitteCodeEingeben']=''; +$this->phrasen['incoming/dateien']=''; +$this->phrasen['incoming/dateiname']=''; +$this->phrasen['incoming/deutschkurs1']=''; +$this->phrasen['incoming/deutschkurs2']=''; +$this->phrasen['incoming/deutschkurs3']=''; +$this->phrasen['incoming/deutschkurse']=''; +$this->phrasen['incoming/dokument']='documento'; +$this->phrasen['incoming/dokumenttyp']='tipo'; +$this->phrasen['incoming/ects']=''; +$this->phrasen['incoming/eigenelehrveranstaltungen']=''; +$this->phrasen['incoming/eigeneuniversitaet']=''; +$this->phrasen['incoming/erasmusIntensivsprachkurs']=''; +$this->phrasen['incoming/fehlerAdresse']='errore nell\'inserimento dell\'indirizzo'; +$this->phrasen['incoming/fehlerBeimLoeschenDerLv']='errore in sede di cancellazione dell\'evento'; +$this->phrasen['incoming/fehlerIncoming']='errore nell\'inserimento der Preincoming '; +$this->phrasen['incoming/fehlerKontakt']='errore nell\'inserimento del contatto'; +$this->phrasen['incoming/fileupload']=''; +$this->phrasen['incoming/filter']=''; +$this->phrasen['incoming/freieplätze']=''; +$this->phrasen['incoming/geaendertesLA']=''; +$this->phrasen['incoming/hauptmenue']=''; +$this->phrasen['incoming/heimatuniversitaet']=''; +$this->phrasen['incoming/jahrestudiert']=''; +$this->phrasen['incoming/keiner']=''; +$this->phrasen['incoming/learningAgreement']=''; +$this->phrasen['incoming/learningagreementerstellen']=''; +$this->phrasen['incoming/lebenslauf']=''; +$this->phrasen['incoming/lehrveranstaltungen']=''; +$this->phrasen['incoming/lehrveranstaltungenauswählen']=''; +$this->phrasen['incoming/lichtbild']=''; +$this->phrasen['incoming/loeschen']=''; +$this->phrasen['incoming/masterstudiengang']=''; +$this->phrasen['incoming/masterthesis']=''; +$this->phrasen['incoming/motivationsschreiben']=''; +$this->phrasen['incoming/name']=''; +$this->phrasen['incoming/nation']=''; +$this->phrasen['incoming/neuenOutgoingAnlegen']=''; +$this->phrasen['incoming/nichtMehrAlsDreiUniversitaeten']=''; +$this->phrasen['incoming/nothesis']=''; +$this->phrasen['incoming/orgform']=''; +$this->phrasen['incoming/ort']=''; +$this->phrasen['incoming/outgoingRegistration']=''; +$this->phrasen['incoming/personimernstfall']=''; +$this->phrasen['incoming/persönlichedateneditieren']=''; +$this->phrasen['incoming/praktikum']=''; +$this->phrasen['incoming/praktikumBis']=''; +$this->phrasen['incoming/praktikumVon']=''; +$this->phrasen['incoming/profil']=''; +$this->phrasen['incoming/programmAuswahl']=''; +$this->phrasen['incoming/projektarbeitstitel']=''; +$this->phrasen['incoming/registration']=''; +$this->phrasen['incoming/registrationEmail']=''; +$this->phrasen['incoming/researcharea']=''; +$this->phrasen['incoming/sommersemester']=''; +$this->phrasen['incoming/sprachkurs']=''; +$this->phrasen['incoming/sprachkursBis']=''; +$this->phrasen['incoming/sprachkursVon']=''; +$this->phrasen['incoming/studentenImSS']=''; +$this->phrasen['incoming/studentenImWS']=''; +$this->phrasen['incoming/studienrichtung']=''; +$this->phrasen['incoming/studienrichtungGastuniversitaet']=''; +$this->phrasen['incoming/studiertbis']=''; +$this->phrasen['incoming/studiertvon']=''; +$this->phrasen['incoming/summerschool']=''; +$this->phrasen['incoming/thesis']=''; +$this->phrasen['incoming/übersichtlehrveranstaltungen']=''; +$this->phrasen['incoming/uebersichtLv']='panoramica corsi'; +$this->phrasen['incoming/ungueltigeIdUebergeben']=''; +$this->phrasen['incoming/ungueltigerbenutzer']=''; +$this->phrasen['incoming/unitcode']=''; +$this->phrasen['incoming/universitaet']=''; +$this->phrasen['incoming/universitätsname']=''; +$this->phrasen['incoming/universitätsnameerweitert']=''; +$this->phrasen['incoming/uploadCv']=''; +$this->phrasen['incoming/uploadLearningAgreement']=''; +$this->phrasen['incoming/uploadvondateien']=''; +$this->phrasen['incoming/verwaltungVonDateien']=''; +$this->phrasen['incoming/vorbereitenderSprachkurs']=''; +$this->phrasen['incoming/währendDesAuslandsaufenthaltes']=''; +$this->phrasen['incoming/warteAufFreigabe']=''; +$this->phrasen['incoming/weiter']=''; +$this->phrasen['incoming/welcomeToUAS']=''; +$this->phrasen['incoming/wennVorhanden']=''; +$this->phrasen['incoming/wilkommenAnFh']=''; +$this->phrasen['incoming/willkommenBeiOutgoingAnmeldung']=''; +$this->phrasen['incoming/wintersemester']=''; +$this->phrasen['incoming/wochenstunden']=''; +$this->phrasen['incoming/zeitraumBis']=''; +$this->phrasen['incoming/zeitraumVon']=''; +$this->phrasen['incoming/zeugnis']=''; +$this->phrasen['incoming/zugangscode']=''; +$this->phrasen['incoming/zugangsvoraussetzung']=''; +$this->phrasen['incoming/zugangsvoraussetzungFussnote']=''; +$this->phrasen['incoming/zugangsvoraussetzungmaster']=''; +$this->phrasen['incoming/zurAnmeldung']=''; +$this->phrasen['incoming/zusaetzlicheDaten']=''; + +?> diff --git a/locale/it-IT/lehre.php b/locale/it-IT/lehre.php new file mode 100755 index 000000000..716afbb27 --- /dev/null +++ b/locale/it-IT/lehre.php @@ -0,0 +1,37 @@ +phrasen['lehre/abmelden']='esci'; +$this->phrasen['lehre/abmeldung']='uscita'; +$this->phrasen['lehre/AbmeldungAusGruppeNichtMoeglich']=''; +$this->phrasen['lehre/AbmeldungErfolgreich']=''; +$this->phrasen['lehre/anwesenheitsUndNotenlisten']=''; +$this->phrasen['lehre/benotungstoolHandbuch']=''; +$this->phrasen['lehre/confirmAbmeldung']=''; +$this->phrasen['lehre/download']=''; +$this->phrasen['lehre/feedback']='feedback'; +$this->phrasen['lehre/gesamtnote']=''; +$this->phrasen['lehre/keineLektorenZugeordnet']=''; +$this->phrasen['lehre/keinMailverteiler']=''; +$this->phrasen['lehre/kreuzerltool']='strumenti per esercitazioni
    (tool con caselle da barrare)'; +$this->phrasen['lehre/kreuzerltoolMitMoodleInfo']=''; +$this->phrasen['lehre/Lehrbeauftrager']=''; +$this->phrasen['lehre/lehrveranstaltungsinformation']=''; +$this->phrasen['lehre/leistungsuebersicht']=''; +$this->phrasen['lehre/lvInfoBearbeiten']=''; +$this->phrasen['lehre/mail']=''; +$this->phrasen['lehre/moodle']=''; +$this->phrasen['lehre/moodleHandbuch']=''; +$this->phrasen['lehre/moodleMitKreuzerltoolInfo']=''; +$this->phrasen['lehre/moodleWartung']=''; +$this->phrasen['lehre/newsgroups']=''; +$this->phrasen['lehre/nichtzugeteilt']=''; +$this->phrasen['lehre/pinboard']=''; +$this->phrasen['lehre/semesterplan']=''; +$this->phrasen['lehre/semesterplanUpload']=''; +$this->phrasen['lehre/semesterplanVorlage']=''; +$this->phrasen['lehre/semesterplanVorlageHilfe']=''; +$this->phrasen['lehre/studentenAbgabe']=''; +$this->phrasen['lehre/upload']=''; +$this->phrasen['lehre/ziparchiv']=''; +$this->phrasen['lehre/ziparchivTitle']='scarica tutti i file in directory download in formato zip'; + +?> diff --git a/locale/it-IT/lvaliste.php b/locale/it-IT/lvaliste.php new file mode 100755 index 000000000..d9b6f08e5 --- /dev/null +++ b/locale/it-IT/lvaliste.php @@ -0,0 +1,32 @@ +phrasen['lvaliste/anmerkung']=''; +$this->phrasen['lvaliste/anzahl']=''; +$this->phrasen['lvaliste/betreuungen']=''; +$this->phrasen['lvaliste/blockung']=''; +$this->phrasen['lvaliste/fehlerAnStudiengang']='Si prega di trasmettere messaggio di errore e feedback alla corrispondente amministrazione del corso di studi '; +$this->phrasen['lvaliste/gesamtnote']=''; +$this->phrasen['lvaliste/gruppen']=''; +$this->phrasen['lvaliste/hilfeAnzeigen']=''; +$this->phrasen['lvaliste/hilfeText']=''; +$this->phrasen['lvaliste/institut']=''; +$this->phrasen['lvaliste/kalenderwoche']=''; +$this->phrasen['lvaliste/keineDatensaetze']=''; +$this->phrasen['lvaliste/koordination']=''; +$this->phrasen['lvaliste/lehrfach']=''; +$this->phrasen['lvaliste/lehrfachBezeichnung']=''; +$this->phrasen['lvaliste/lehrform']=''; +$this->phrasen['lvaliste/lehrveranstaltungen']=''; +$this->phrasen['lvaliste/lektor']=''; +$this->phrasen['lvaliste/lvBezeichnung']=''; +$this->phrasen['lvaliste/raumtyp']=''; +$this->phrasen['lvaliste/raumtypalternativ']='alternativa'; +$this->phrasen['lvaliste/semester']=''; +$this->phrasen['lvaliste/student']=''; +$this->phrasen['lvaliste/studiengang']=''; +$this->phrasen['lvaliste/stunden']=''; +$this->phrasen['lvaliste/summe']=''; +$this->phrasen['lvaliste/titel']=''; +$this->phrasen['lvaliste/titelProjektarbeit']='titolo dell\'elaborato del progetto'; +$this->phrasen['lvaliste/wochenrythmus']=''; + +?> diff --git a/locale/it-IT/lvinfo.php b/locale/it-IT/lvinfo.php new file mode 100755 index 000000000..a3a8edd0f --- /dev/null +++ b/locale/it-IT/lvinfo.php @@ -0,0 +1,21 @@ +phrasen['lvinfo/anmerkungen']=''; +$this->phrasen['lvinfo/anmerkungenEN']=''; +$this->phrasen['lvinfo/anwesenheit']=''; +$this->phrasen['lvinfo/anwesenheitEN']=''; +$this->phrasen['lvinfo/kurzbeschreibung']=''; +$this->phrasen['lvinfo/kurzbeschreibungEN']=''; +$this->phrasen['lvinfo/lehrinhalte']=''; +$this->phrasen['lvinfo/lehrinhalteEN']=''; +$this->phrasen['lvinfo/leistungsbeurteilung']=''; +$this->phrasen['lvinfo/leistungsbeurteilungEN']=''; +$this->phrasen['lvinfo/lernergebnisse']=''; +$this->phrasen['lvinfo/lernergebnisseEN']=''; +$this->phrasen['lvinfo/literatur']=''; +$this->phrasen['lvinfo/literaturEN']=''; +$this->phrasen['lvinfo/methodik']=''; +$this->phrasen['lvinfo/methodikEN']=''; +$this->phrasen['lvinfo/vorkenntnisse']=''; +$this->phrasen['lvinfo/vorkenntnisseEN']=''; + +?> diff --git a/locale/it-IT/lvplan.php b/locale/it-IT/lvplan.php new file mode 100755 index 000000000..edc4182cf --- /dev/null +++ b/locale/it-IT/lvplan.php @@ -0,0 +1,90 @@ +phrasen['lvplan/aktuelleKW']='numero di settimana attuale'; +$this->phrasen['lvplan/alleRaeume']='tutte le sale'; +$this->phrasen['lvplan/alleReservierungen']='tutte le prenotazioni'; +$this->phrasen['lvplan/alleReservierungenAnzeigen']='mostra tutte le prenotazioni'; +$this->phrasen['lvplan/anleitungLVPlanSync']=''; +$this->phrasen['lvplan/anzahlPersonen']=''; +$this->phrasen['lvplan/bereitsReserviert']=''; +$this->phrasen['lvplan/beschreibungFehlt']=''; +$this->phrasen['lvplan/bisZeitEingeben']=''; +$this->phrasen['lvplan/bisZeitFormat']=''; +$this->phrasen['lvplan/bitteEinenLektorAuswaehlen']=''; +$this->phrasen['lvplan/bitteEinenStudiengangAuswaehlen']=''; +$this->phrasen['lvplan/bitteEinStudiensemesterAuswaehlen']=''; +$this->phrasen['lvplan/bitteWendenSieSichAn']=''; +$this->phrasen['lvplan/caldavURL']=''; +$this->phrasen['lvplan/caldavURLMac']=''; +$this->phrasen['lvplan/datumAngeben']=''; +$this->phrasen['lvplan/datumIstUngueltig']=''; +$this->phrasen['lvplan/datumsbereichZuGross ']=''; +$this->phrasen['lvplan/datumUngueltig']=''; +$this->phrasen['lvplan/eigeneReservierungen']=''; +$this->phrasen['lvplan/eineWocheVor']=''; +$this->phrasen['lvplan/eineWocheZurueck']=''; +$this->phrasen['lvplan/einheit']=''; +$this->phrasen['lvplan/fehlerUndFeedback']='scrivi feedback'; +$this->phrasen['lvplan/googleURL']=''; +$this->phrasen['lvplan/grp']=''; +$this->phrasen['lvplan/hauptmenue']=''; +$this->phrasen['lvplan/home']=''; +$this->phrasen['lvplan/info']=''; +$this->phrasen['lvplan/lehrveranstaltungsplan']=''; +$this->phrasen['lvplan/lehrveranstaltungsplanDetails']=''; +$this->phrasen['lvplan/lehrverbaende']=''; +$this->phrasen['lvplan/lehrverband']=''; +$this->phrasen['lvplan/lektor']=''; +$this->phrasen['lvplan/lektorenplan']=''; +$this->phrasen['lvplan/lektorInStudentIn']=''; +$this->phrasen['lvplan/lvKoordinationsstelle']=''; +$this->phrasen['lvplan/lvPlan']='Calendario lezioni'; +$this->phrasen['lvplan/nameEingeben']=''; +$this->phrasen['lvplan/nichtVorhanden']=''; +$this->phrasen['lvplan/ort']=''; +$this->phrasen['lvplan/persoenlichenAbonnieren']=''; +$this->phrasen['lvplan/persoenlicherLvPlan']=''; +$this->phrasen['lvplan/personen']=''; +$this->phrasen['lvplan/profil']=''; +$this->phrasen['lvplan/raeume']=''; +$this->phrasen['lvplan/raum']=''; +$this->phrasen['lvplan/raumAuswaehlen']=''; +$this->phrasen['lvplan/raumExistiertNicht']=''; +$this->phrasen['lvplan/rauminfoAnzeigen']=''; +$this->phrasen['lvplan/rauminformationenAnzeigen']=''; +$this->phrasen['lvplan/raumreservierungAufZeitraumEingeschraenkt']=''; +$this->phrasen['lvplan/raumsuche']=''; +$this->phrasen['lvplan/raumtyp']=''; +$this->phrasen['lvplan/reservierungen']=''; +$this->phrasen['lvplan/reservierungenLoeschen']=''; +$this->phrasen['lvplan/reservierungsliste']=''; +$this->phrasen['lvplan/reservierungWurdeGeloescht']=''; +$this->phrasen['lvplan/saal']=''; +$this->phrasen['lvplan/saalplan']=''; +$this->phrasen['lvplan/saalreservierung']=''; +$this->phrasen['lvplan/sem']=''; +$this->phrasen['lvplan/semesterIstUngueltig']=''; +$this->phrasen['lvplan/semesterplaene']=''; +$this->phrasen['lvplan/semesterplaenearchiv']=''; +$this->phrasen['lvplan/semesterplanLaden']=''; +$this->phrasen['lvplan/spezialgruppe']=''; +$this->phrasen['lvplan/springeZuKw']=''; +$this->phrasen['lvplan/stammdatenKontrollieren']=''; +$this->phrasen['lvplan/stg']='CdS'; +$this->phrasen['lvplan/studiengangAuswaehlen']=''; +$this->phrasen['lvplan/studiensemesterAuswaehlen']=''; +$this->phrasen['lvplan/studierende']=''; +$this->phrasen['lvplan/stundeIstUngueltig']=''; +$this->phrasen['lvplan/titelFehlt']=''; +$this->phrasen['lvplan/titelUndBeschreibungFehlt']=''; +$this->phrasen['lvplan/uebersicht']='panoramica'; +$this->phrasen['lvplan/uebersichtDerLehrverbaende']='panoramica delle lehrverbände?'; +$this->phrasen['lvplan/unr']=''; +$this->phrasen['lvplan/ver']=''; +$this->phrasen['lvplan/vierWochenVor']=''; +$this->phrasen['lvplan/vierWochenZurueck']=''; +$this->phrasen['lvplan/vonZeitEingeben']=''; +$this->phrasen['lvplan/vonZeitFormat']=''; +$this->phrasen['lvplan/wochenplan']=''; +$this->phrasen['lvplan/zurReservierung']=''; + +?> diff --git a/locale/it-IT/mail.php b/locale/it-IT/mail.php new file mode 100755 index 000000000..9f91f948a --- /dev/null +++ b/locale/it-IT/mail.php @@ -0,0 +1,6 @@ +phrasen['mail/accountaktivierung']=''; +$this->phrasen['mail/profilBetriebsmittelKorrektur']=''; +$this->phrasen['mail/signatur']=''; + +?> diff --git a/locale/it-IT/mailverteiler.php b/locale/it-IT/mailverteiler.php new file mode 100755 index 000000000..9d177255a --- /dev/null +++ b/locale/it-IT/mailverteiler.php @@ -0,0 +1,28 @@ +phrasen['mailverteiler/absatz1']=''; +$this->phrasen['mailverteiler/absatz2']=''; +$this->phrasen['mailverteiler/absatz3']=''; +$this->phrasen['mailverteiler/alleStudentenDiesesStudienganges']='tutti gli studenti di questo corso di studi'; +$this->phrasen['mailverteiler/alleStudentenVon']='tutti gli studenti di'; +$this->phrasen['mailverteiler/anzeigen']=''; +$this->phrasen['mailverteiler/ausblenden']=''; +$this->phrasen['mailverteiler/bedienungsanleitung']=''; +$this->phrasen['mailverteiler/berechtigungskonzept']=''; +$this->phrasen['mailverteiler/bestaetige']=''; +$this->phrasen['mailverteiler/bestaetigeOeffnen']=''; +$this->phrasen['mailverteiler/fehlerBeimLadenDerStudenten']='errore di caricamento degli studenti'; +$this->phrasen['mailverteiler/geoeffnet']=''; +$this->phrasen['mailverteiler/gesperrt']=''; +$this->phrasen['mailverteiler/infoBenutzung']=''; +$this->phrasen['mailverteiler/keineVerteilerVorhanden']=''; +$this->phrasen['mailverteiler/klickenZumSchicken']=''; +$this->phrasen['mailverteiler/mailverteiler']=''; +$this->phrasen['mailverteiler/oeffnenEinesVerteilers']=''; +$this->phrasen['mailverteiler/personen']=''; +$this->phrasen['mailverteiler/personenImVerteiler']=''; +$this->phrasen['mailverteiler/status']=''; +$this->phrasen['mailverteiler/studentenverteiler']=''; +$this->phrasen['mailverteiler/titel']=''; +$this->phrasen['mailverteiler/verteilerOeffnen']=''; + +?> diff --git a/locale/it-IT/menu.php b/locale/it-IT/menu.php new file mode 100755 index 000000000..2117b5a24 --- /dev/null +++ b/locale/it-IT/menu.php @@ -0,0 +1,13 @@ +phrasen['menu/assistenz']=''; +$this->phrasen['menu/fixangestellte']=''; +$this->phrasen['menu/fixelektoren']=''; +$this->phrasen['menu/lektoren']=''; +$this->phrasen['menu/organisationseinheit']=''; +$this->phrasen['menu/resturlaub']=''; +$this->phrasen['menu/suchePersonOrtDokumentInhalt']=''; +$this->phrasen['menu/suchePersonOrtDokumentInhaltLang']=''; +$this->phrasen['menu/urlaubAlle']=' tutto '; +$this->phrasen['menu/zeitsperren']='panoramica periodi attualmente bloccati
    '; + +?> diff --git a/locale/it-IT/moodle.php b/locale/it-IT/moodle.php new file mode 100755 index 000000000..1cfc8fb3f --- /dev/null +++ b/locale/it-IT/moodle.php @@ -0,0 +1,30 @@ +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/locale/it-IT/news.php b/locale/it-IT/news.php new file mode 100755 index 000000000..b3139ec14 --- /dev/null +++ b/locale/it-IT/news.php @@ -0,0 +1,31 @@ +phrasen['news/allesemester']='tutti i semestri'; +$this->phrasen['news/allgemein']='generale'; +$this->phrasen['news/anlegen']=''; +$this->phrasen['news/betreff']=''; +$this->phrasen['news/eintragNochNichtVeroeffentlicht']=''; +$this->phrasen['news/eintragVeroeffentlicht']=''; +$this->phrasen['news/fehlerBeimSenden']='errore in sede di trasmissione della mail a %s'; +$this->phrasen['news/freifach']=''; +$this->phrasen['news/keinSemester']=''; +$this->phrasen['news/keinUebersetzerVorhanden']=''; +$this->phrasen['news/mailtext']=''; +$this->phrasen['news/mailtextHTML']=''; +$this->phrasen['news/maximal30Tage']=''; +$this->phrasen['news/neuereintrag']=''; +$this->phrasen['news/neuerNewseintrag']=''; +$this->phrasen['news/newsverwaltung']=''; +$this->phrasen['news/sichtbarab']=''; +$this->phrasen['news/sichtbarbis']=''; +$this->phrasen['news/studiengang']=''; +$this->phrasen['news/text']='testo'; +$this->phrasen['news/uebersetzen']='tradurre'; +$this->phrasen['news/uebersetzunganlegen']='salva la traduzione in '; +$this->phrasen['news/uebersetzungenvorhanden']=''; +$this->phrasen['news/uebersetzungsanforderungGesendet']='richiesta di traduzione trasmessa a %s'; +$this->phrasen['news/verfasser']=''; +$this->phrasen['news/veroeffentlichen']=''; +$this->phrasen['news/verwaltungstools']=''; +$this->phrasen['news/xsemester']=''; + +?> diff --git a/locale/it-IT/notebookregister.php b/locale/it-IT/notebookregister.php new file mode 100755 index 000000000..65b81161b --- /dev/null +++ b/locale/it-IT/notebookregister.php @@ -0,0 +1,15 @@ +phrasen['notebookregister/MACadresse']=''; +$this->phrasen['notebookregister/MACadresseBereitsVerwendet']=''; +$this->phrasen['notebookregister/MACadresseErfolgreichEingetragen']=''; +$this->phrasen['notebookregister/MACadresseErfolgreichGeaendert']=''; +$this->phrasen['notebookregister/MACadresseFehlerhaft']=''; +$this->phrasen['notebookregister/MACadresseNichtFreigeschalten']=''; +$this->phrasen['notebookregister/notebook_absatz1']=''; +$this->phrasen['notebookregister/notebook_absatz2']=''; +$this->phrasen['notebookregister/notebook_anmerkung']=''; +$this->phrasen['notebookregister/passwortEingebenWennUIDgeaendert']=''; +$this->phrasen['notebookregister/passwortErneutEingeben']=''; +$this->phrasen['notebookregister/titelNotebookRegistration']=''; + +?> diff --git a/locale/it-IT/notfallbestimmungen.php b/locale/it-IT/notfallbestimmungen.php new file mode 100755 index 000000000..49d0280ff --- /dev/null +++ b/locale/it-IT/notfallbestimmungen.php @@ -0,0 +1,11 @@ +phrasen['notfallbestimmungen/ausbildungErfolgteDurchORK']=''; +$this->phrasen['notfallbestimmungen/brandschutzbeauftragte']=''; +$this->phrasen['notfallbestimmungen/brandschutzwarte']=''; +$this->phrasen['notfallbestimmungen/ersthelfer']=''; +$this->phrasen['notfallbestimmungen/ersthelferUndBrandschutzbeauftragte']=''; +$this->phrasen['notfallbestimmungen/folgendePersonenStehenZurVerfuegung']=''; +$this->phrasen['notfallbestimmungen/rektorat']=''; +$this->phrasen['notfallbestimmungen/sicherheitAnDerFHTW']=''; + +?> diff --git a/locale/it-IT/passwort.php b/locale/it-IT/passwort.php new file mode 100755 index 000000000..1d8b76633 --- /dev/null +++ b/locale/it-IT/passwort.php @@ -0,0 +1,31 @@ +phrasen['passwort/AccountAktivierung']='Attiva account'; +$this->phrasen['passwort/AenderungFehler']='Passwort Änderung fehlgeschlagen:%s'; +$this->phrasen['passwort/AenderungOK']='Das Passwort wurde erfolgreich geaendert'; +$this->phrasen['passwort/AltesPasswort']='Vecchia password'; +$this->phrasen['passwort/CaptchaEingabe']='Cliccare sui campi visualizzati
    sul campo sottostante'; +$this->phrasen['passwort/Grossbuchstabe']='Das neue Passwort muss mindestens einen Grossbuchstaben enthalten.'; +$this->phrasen['passwort/InfotextPolicy']=' +La password deve contenere almeno 8 caratteri, di cui almeno 1 maiuscolo, 1 minuscolo e 1 cifra.
    +La password non può contenere spazi e caratteri accentati.
    +Caratteri speciali ammessi sono: -$#[]{}!().,*:;_ = +'; +$this->phrasen['passwort/Kleinbuchstabe']='Das neue Passwort muss mindestens einen Kleinbuchstaben enthalten.'; +$this->phrasen['passwort/Leerzeichen']='Es darf kein Leerzeichen im Passwort vorkommen.'; +$this->phrasen['passwort/MinLaenge']='La password deve contenere almeno 8 caratteri.'; +$this->phrasen['passwort/NeuesPasswort']='Nuova password'; +$this->phrasen['passwort/NichtUebereinstimmend']='Passwörter stimmen nicht überein'; +$this->phrasen['passwort/NoHttps']='ATTENZIONE - state utilizzando una trasmissione in chiaro. La password dovrebbe essere cambiata solo in presenza di un sistema di trasmissione codificato,'; +$this->phrasen['passwort/PasswortAenderFuer']='Cambio password per utente %s %s ( %s )'; +$this->phrasen['passwort/PasswortAendern']='Cambia password'; +$this->phrasen['passwort/PasswortWaehlen']='Bitte wählen Sie ein Passwort für Ihren Account.'; +$this->phrasen['passwort/PasswortWiederholung']='Conferma nuova password'; +$this->phrasen['passwort/ReloadCaptcha']='Ich kann das Bild nicht lesen - neu laden'; +$this->phrasen['passwort/Sonderzeichen']='Bitte verwenden Sie nur erlaubte Sonderzeichen'; +$this->phrasen['passwort/Title']='Cambio password'; +$this->phrasen['passwort/Umlaute']='Es dürfen keine Umlaute verwendet werden.'; +$this->phrasen['passwort/Ziffer']='Es muss mindestens eine Ziffer vorhanden sein.'; +$this->phrasen['passwort/ZuHttpsWechseln']='Jetzt zu verschlüsselter Verbindung wechseln'; + +?> diff --git a/locale/it-IT/personensuche.php b/locale/it-IT/personensuche.php new file mode 100755 index 000000000..fd108c1f1 --- /dev/null +++ b/locale/it-IT/personensuche.php @@ -0,0 +1,20 @@ +phrasen['personensuche/alleKategorien']='tutte le categorie'; +$this->phrasen['personensuche/allePersonen']='tutte le persone'; +$this->phrasen['personensuche/art']=''; +$this->phrasen['personensuche/bitteSuchbegriffEingeben']=''; +$this->phrasen['personensuche/eintraegeGefunden']=''; +$this->phrasen['personensuche/esWurden']=''; +$this->phrasen['personensuche/hauptverteiler']=''; +$this->phrasen['personensuche/inGruppe']=''; +$this->phrasen['personensuche/keineEintraegeGefunden']='impossibile trovare registrazioni corrispondenti'; +$this->phrasen['personensuche/kennzeichen']=''; +$this->phrasen['personensuche/mitarbeiterIn']=''; +$this->phrasen['personensuche/mitarbeiterInExtern']=''; +$this->phrasen['personensuche/mitarbeiterInFix']=''; +$this->phrasen['personensuche/personensuche']=''; +$this->phrasen['personensuche/student']=''; +$this->phrasen['personensuche/studentIn']=''; +$this->phrasen['personensuche/sucheNach']=''; + +?> diff --git a/locale/it-IT/profil.php b/locale/it-IT/profil.php new file mode 100755 index 000000000..3b141a687 --- /dev/null +++ b/locale/it-IT/profil.php @@ -0,0 +1,62 @@ +phrasen['profil/AccountInaktiv']='Attenzione: questo account non è più attivo'; +$this->phrasen['profil/adminstration']='Amministrazione'; +$this->phrasen['profil/alias']='alias'; +$this->phrasen['profil/alleStudentenVon']='Tutti gli studenti di'; +$this->phrasen['profil/ausgegebenAm']=''; +$this->phrasen['profil/betriebsmittel']=''; +$this->phrasen['profil/Bild']=''; +$this->phrasen['profil/bildHochladen']=''; +$this->phrasen['profil/bildSpeichern']=''; +$this->phrasen['profil/Bildupload']=''; +$this->phrasen['profil/BilduploadInfotext']=''; +$this->phrasen['profil/buero']=''; +$this->phrasen['profil/derUserIstInFolgendenVerteilern ']=''; +$this->phrasen['profil/email']='Email'; +$this->phrasen['profil/entlehnteBetriebsmittel']=''; +$this->phrasen['profil/esWurdenKeineProfileGefunden']='Nessun profilo o più profili per l\'utente richiesto'; +$this->phrasen['profil/faxTw']='fax'; +$this->phrasen['profil/fhausweisAbholbereitAmEmpfangAb']=''; +$this->phrasen['profil/fhausweisGedrucktAm']=''; +$this->phrasen['profil/fhausweisStatus']=''; +$this->phrasen['profil/fhausweisWurdeBereitsAusgegeben']='Tesserino consegnato o pronto per il ritiro'; +$this->phrasen['profil/fhausweisWurdeNochNichtGedruckt']=''; +$this->phrasen['profil/fotoAuswählen']=''; +$this->phrasen['profil/fotofreigeben']=''; +$this->phrasen['profil/fotosperren']=''; +$this->phrasen['profil/fotoWurdeNochNichtAkzeptiert']=''; +$this->phrasen['profil/funktionen']=''; +$this->phrasen['profil/home']=''; +$this->phrasen['profil/homepage']=''; +$this->phrasen['profil/ihrFotoWurdeNochNichtGeprueft']=''; +$this->phrasen['profil/inaktivMitarbeiter']=''; +$this->phrasen['profil/inaktivSonstige']=''; +$this->phrasen['profil/inaktivStudent']=''; +$this->phrasen['profil/infotextSperre']=''; +$this->phrasen['profil/intern']='E-mail di Ateneo'; +$this->phrasen['profil/kontaktPrivat']='Contatti Personali'; +$this->phrasen['profil/kurzbeschreibungFuerOeh']=''; +$this->phrasen['profil/kurzzeichen']='ID breve'; +$this->phrasen['profil/ladenSieBitteEinGueltigesFotoHoch']=''; +$this->phrasen['profil/leistungsbeurteilung']=''; +$this->phrasen['profil/lvplanVon']=''; +$this->phrasen['profil/martrikelnummer']='Codice Persona'; +$this->phrasen['profil/meinCis']=''; +$this->phrasen['profil/mitarbeiter']=''; +$this->phrasen['profil/mobil']='Cellulare'; +$this->phrasen['profil/nummer']=''; +$this->phrasen['profil/nurJPGBilder']=''; +$this->phrasen['profil/profil']=''; +$this->phrasen['profil/profilfotoGesperrt']=''; +$this->phrasen['profil/profilfotoUploadGesperrt']=''; +$this->phrasen['profil/sieSindMitgliedInFolgendenVerteilern']=''; +$this->phrasen['profil/solltenDatenNichtStimmen']='La preghiamo di rivolgersi alla segreteria nel caso i dati non risultino essere corretti.'; +$this->phrasen['profil/student']='Studente'; +$this->phrasen['profil/telefon']=''; +$this->phrasen['profil/telefonTw']=''; +$this->phrasen['profil/wendenSieSichAn']=''; +$this->phrasen['profil/zeitsperrenVon']=''; +$this->phrasen['profil/zeitwuensche']=''; +$this->phrasen['profil/zustaendigeAssistenz']=''; + +?> diff --git a/locale/it-IT/pruefung.php b/locale/it-IT/pruefung.php new file mode 100755 index 000000000..79495aa13 --- /dev/null +++ b/locale/it-IT/pruefung.php @@ -0,0 +1,111 @@ +phrasen['pruefung/titlePruefungsfenster'] = 'Inserire sessione'; +$this->phrasen['pruefung/erfolgreichgespeichert'] = 'Salvataggio avvenuto con successo'; +$this->phrasen['pruefung/fehler'] = 'Errore: '; +$this->phrasen['pruefung/fehlerEndDatumInDerVergangenheit'] = 'Errore: la data di termine è fissata nel passato.'; +$this->phrasen['pruefung/fehlerEndDatumVorStartDatum'] = 'Errore: la data di termine è precedente alla data di inizio.'; +$this->phrasen['pruefung/fehlerDatumNichtKorrekt'] = 'Errore: data inserita in maniera non corretta.'; +$this->phrasen['pruefung/erfolgreichgeaendert'] = 'Modifica avvenuta con successo'; +$this->phrasen['pruefung/keineBerechtigungZumAendernDesDatensatzes'] = 'Non si dispone dei permessi necessari per la modifica.'; +$this->phrasen['pruefung/keineBerechtigungZumAnzeigenDesDatensatzes'] = 'Non si dispone dei permessi necessari per la visualizzazione.'; +$this->phrasen['pruefung/erfolgreichgeloescht'] = 'Cancellazione avvenuta con successo.'; +$this->phrasen['pruefung/pruefungsfensterKonnteNichtGeloeschtWerdenDaPruefungen'] = 'Non è stato possibile cancellare la sessione siccome è collegata ad alcuni esami.'; +$this->phrasen['pruefung/keineBerechtigungZumLoeschenDesDatensatzes'] = 'Non si dispone dei permessi necessari per la cancellazione.'; +$this->phrasen['pruefung/pruefungsfensterVerwaltung'] = 'Gestione sessioni'; +$this->phrasen['pruefung/neuesPruefungsfensterAnlegen'] = 'Inserimento nuova sessione'; +$this->phrasen['pruefung/start'] = 'Data inizio'; +$this->phrasen['pruefung/ende'] = 'Data fine'; +$this->phrasen['pruefung/pruefungsfensterBearbeiten'] = 'Modificare sessione'; +$this->phrasen['pruefung/keinePruefungsfensterGespeichert'] = 'Nessuna sessione salvata'; +// Termin festlegen +$this->phrasen['pruefung/titlePruefungstermin'] = 'Inserimento appello d’esame'; +$this->phrasen['pruefung/pruefungLektor'] = 'Docente'; +$this->phrasen['pruefung/pruefungenVerwalten'] = 'Gestione esami'; +$this->phrasen['pruefung/pruefungTitel'] = 'Titolo'; +$this->phrasen['pruefung/pruefungsfenster'] = 'Sessione'; +$this->phrasen['pruefung/pruefungMethode'] = 'Modalità'; +$this->phrasen['pruefung/pruefungEinzelpruefung'] = 'Einzelprüfung'; +$this->phrasen['pruefung/pruefungTyp'] = 'Tipo'; +$this->phrasen['pruefung/pruefungIntervall'] = 'Periodo'; +$this->phrasen['pruefung/pruefungTermin'] = 'Appelli'; +$this->phrasen['pruefung/pruefungMinTeilnehmer'] = 'min. iscritti'; +$this->phrasen['pruefung/pruefungMaxTeilnehmer'] = 'max. iscritti'; +$this->phrasen['pruefung/pruefungSammelklausur'] = 'Sammelklausur'; +$this->phrasen['pruefung/pruefungTerminHinzufuegen'] = 'Inserire appello'; +$this->phrasen['pruefung/pruefungPruefungenTitle'] = 'Esami'; +$this->phrasen['pruefung/pruefungMitarbeiter'] = 'Collaboratore'; +$this->phrasen['pruefung/storniert'] = 'annullato'; + +// pruefung.js.php +$this->phrasen['pruefung/keinFensterVorhanden'] = 'Nessuna sessione a disposizione.'; +$this->phrasen['pruefung/keineDatenVorhanden'] = 'Nessuna data a disposizione.'; +$this->phrasen['pruefung/anmeldefristAbgelaufen'] = 'Termine di iscrizione scaduto.'; +$this->phrasen['pruefung/stornierenMoeglichBis'] = 'Possibilità di annullare l’iscrizione entro il'; +$this->phrasen['pruefung/anmeldenMoeglichBis'] = 'Possibilità di iscrizione entro il'; +$this->phrasen['pruefung/zurLvAnmeldung'] = 'iscriversi al corso'; +$this->phrasen['pruefung/zuerstPruefungAuswaehlen'] = 'Scegliere prima l’esame.'; +$this->phrasen['pruefung/bemerkungVonLektorHinzugefuegt'] = 'inserito da docente'; +$this->phrasen['pruefung/bestaetigen'] = 'Confermare'; +$this->phrasen['pruefung/anmerkungDesStudenten'] = 'Osservazioni dello studente:
    '; +$this->phrasen['pruefung/bestaetigt'] = 'confermato'; +$this->phrasen['pruefung/statusAenderungVon'] = 'Modifica status di'; +$this->phrasen['pruefung/reihungSpeichern'] = 'Salvare sequenza'; +$this->phrasen['pruefung/listeDrucken'] = 'Stampare lista'; +$this->phrasen['pruefung/pruefungsraum'] = 'Aula d’esame: '; +$this->phrasen['pruefung/pruefungsort'] = 'Luogo d’esame '; +$this->phrasen['pruefung/imBuero'] = ' in ufficio'; +$this->phrasen['pruefung/raum'] = ' Aula'; +$this->phrasen['pruefung/raumSpeichern'] = ' Salvare aula'; +$this->phrasen['pruefung/reihunghErfolgreichGeaendert'] = 'Sequenza modificata con successo.'; +$this->phrasen['pruefung/studiengangAuswaehlen'] = 'Selezionare percorso di studi'; +$this->phrasen['pruefung/keinePruefungenVorhanden'] = 'Nessun esame disponibile.'; +$this->phrasen['pruefung/kommentarZu'] = 'Commento a '; +$this->phrasen['pruefung/kommentarSpeichern'] = 'Salvare commento'; +$this->phrasen['pruefung/kommentarErfolgreichGespeichert'] = 'Commento salvato con successo.'; +$this->phrasen['pruefung/formulardatenNichtKorrekt'] = 'Dati non corretti.'; +$this->phrasen['pruefung/pruefungErfolgreichGespeichert'] = 'Esame salvato con successo.'; +$this->phrasen['pruefung/lehrveranstaltungAuswaehlen'] = 'Selezionare insegnamento ...'; +$this->phrasen['pruefung/keineLehrveranstaltungenVorhanden'] = 'Nessun insegnamento disponibile.'; +$this->phrasen['pruefung/pruefungStornieren'] = 'Cancellare esame'; +$this->phrasen['pruefung/lvErfolgreichEntfernt'] = 'Insegnamento tolto con successo.'; +$this->phrasen['pruefung/pruefungStorniert'] = 'Esame cancellato'; +$this->phrasen['pruefung/terminGeloescht'] = 'Appello eliminato'; + +// pruefungsbewertung +$this->phrasen['pruefung/pruefungsbewertungTitle'] = 'Voto d’esame'; +$this->phrasen['pruefung/pruefungsbewertungAnmeldungen'] = 'Iscrizioni'; + // pruefungsanmeldung +$this->phrasen['pruefung/anmeldungFuer'] = 'Iscrizione d’esame per'; +$this->phrasen['pruefung/filter'] = 'Filtro'; +$this->phrasen['pruefung/details'] = 'Dettagli'; +$this->phrasen['pruefung/lvDetails'] = 'Dettagli insegnamento'; +$this->phrasen['pruefung/pruefungsDetails'] = 'Dettagli esame'; +$this->phrasen['pruefung/typ'] = 'Tipo'; +$this->phrasen['pruefung/intervall'] = 'Periodo'; +$this->phrasen['pruefung/besuchteLehrveranstaltungen'] = 'Insegnamenti frequentati'; +$this->phrasen['pruefung/freiePlaetze'] = 'Posti liberi'; +$this->phrasen['pruefung/lvVonStudiengang'] = 'Insegnamenti del percorso di studi'; +$this->phrasen['pruefung/lvAlle'] = 'Tutti gli insegnamenti'; +$this->phrasen['pruefung/anmeldungSpeichern'] = 'Salvare iscrizione'; +$this->phrasen['pruefung/studienverpflichtung'] = 'Obbligo formativo'; + +// liste +$this->phrasen['pruefung/anmeldungsliste'] = 'Lista partecipanti'; +$this->phrasen['pruefung/fehlenderParam_lvid'] = 'Parametro mancante lehrveranstaltung_id'; +$this->phrasen['pruefung/fehlenderParam_terminid'] = 'Parametro mancante termin_id'; +$this->phrasen['pruefung/fehlenderParam_studiensemester'] = 'Parametro mancante studiensemester'; +$this->phrasen['pruefung/pruefer'] = 'Professore'; +$this->phrasen['pruefung/keineBestaetigtenAnmeldungenVorhanden'] = 'Nessuna conferma di registrazione disponibile.'; +$this->phrasen['pruefung/keineLvAngegeben'] = 'Nessun corso definito.'; +$this->phrasen['pruefung/kollisionMitAnderemTermin'] = 'Date sovrapposte.'; +$this->phrasen['pruefung/terminNichtInDerVergangenheit'] = 'La data dell’esame non è nel passato.'; +$this->phrasen['pruefung/keineLehreinheitenVorhanden'] = 'Nessuna unità di corso disponibile.'; +$this->phrasen['pruefung/keineAnmeldungenVorhanden'] = 'Nessuna registrazione disponibile.'; + +// anmeldungen Verwalten +$this->phrasen['pruefung/anmeldungenVerwaltenTitle'] = 'Amministrazione della registrazione degli esami'; +$this->phrasen['pruefung/anmeldungenVerwalten'] = 'Amministrazione registrazioni'; + + +?> diff --git a/locale/it-IT/semesterplan.php b/locale/it-IT/semesterplan.php new file mode 100755 index 000000000..fb7c9f7fd --- /dev/null +++ b/locale/it-IT/semesterplan.php @@ -0,0 +1,20 @@ +phrasen['semesterplan/bitteZuerstDateiAuswaehlen']=''; +$this->phrasen['semesterplan/dateiKonnteNichtGefundenWerden']=''; +$this->phrasen['semesterplan/dateinameNurBuchstaben']=''; +$this->phrasen['semesterplan/dateitypIstNichtErlaubt']=''; +$this->phrasen['semesterplan/erstellenSieIhrenSemesterplan']=''; +$this->phrasen['semesterplan/fehlerBeiDerParameteruebergabe']='errore di trasmissione dei parametri'; +$this->phrasen['semesterplan/fehlerBeimLadenDerLv']='errore di caricamento della LV'; +$this->phrasen['semesterplan/fehlerBeimLadenDesStudienganges']='errore di caricamento del corso di studi'; +$this->phrasen['semesterplan/fehlerBeimUpload']='errore in sede di upload! Si prega di riprovare '; +$this->phrasen['semesterplan/fertig']='completo'; +$this->phrasen['semesterplan/fileErfolgreichHochgeladen']=''; +$this->phrasen['semesterplan/inMSWord']=''; +$this->phrasen['semesterplan/ladenSieDieDateiHoch']=''; +$this->phrasen['semesterplan/oeffnenSieDieGespeicherteDatei']=''; +$this->phrasen['semesterplan/ordnerinhalt']=''; +$this->phrasen['semesterplan/speichernSieDasDokument']=''; +$this->phrasen['semesterplan/speichernSieDieVorlage']=''; + +?> diff --git a/locale/it-IT/services.php b/locale/it-IT/services.php new file mode 100755 index 000000000..6994a9e54 --- /dev/null +++ b/locale/it-IT/services.php @@ -0,0 +1,8 @@ +phrasen['services/details']=''; +$this->phrasen['services/filtern']=''; +$this->phrasen['services/leistung']=''; +$this->phrasen['services/service']=''; +$this->phrasen['services/uebersichtUeberServicesOrganisationseinheiten']='panoramica dei servizi del dipartimento'; + +?> diff --git a/locale/it-IT/studienplan.php b/locale/it-IT/studienplan.php new file mode 100755 index 000000000..6d6e3c964 --- /dev/null +++ b/locale/it-IT/studienplan.php @@ -0,0 +1,28 @@ +phrasen['studienplan/abgeschlossen']='superato'; +$this->phrasen['studienplan/anmelden']='iscriversi'; +$this->phrasen['studienplan/Anmeldung']='Scelta del corso opzionale'; +$this->phrasen['studienplan/AnmeldungDerzeitNichtMoeglich']=''; +$this->phrasen['studienplan/anmeldunggesperrt']=''; +$this->phrasen['studienplan/AnmeldungNichtMoeglich']=''; +$this->phrasen['studienplan/anmeldungvonbis']=''; +$this->phrasen['studienplan/bereitsAngemeldet']=''; +$this->phrasen['studienplan/ects']='CFU'; +$this->phrasen['studienplan/einschreibungErfolgreich']=''; +$this->phrasen['studienplan/legende']='Legenda'; +$this->phrasen['studienplan/legendeEmpfehlung']=''; +$this->phrasen['studienplan/legendeAngemeldet']='iscritto'; +$this->phrasen['studienplan/legendeLock']='Corso non offerto in questo semestre'; +$this->phrasen['studienplan/legendeLVwirdAngeboten']='Corso offerto in questo semestre'; +$this->phrasen['studienplan/LehrveranstalungWaehlen']=''; +$this->phrasen['studienplan/negativ']=''; +$this->phrasen['studienplan/offen']='da superare'; +$this->phrasen['studienplan/optional']=''; +$this->phrasen['studienplan/reduzierteCP']=''; +$this->phrasen['studienplan/regelabgeschlossen']='concluso'; +$this->phrasen['studienplan/regelnichterfuellt']=''; +$this->phrasen['studienplan/status']='Stato'; +$this->phrasen['studienplan/studienplan']='Piano di studi'; +$this->phrasen['studienplan/zuWenigCP']=''; + +?> diff --git a/locale/it-IT/telefonverzeichnis.php b/locale/it-IT/telefonverzeichnis.php new file mode 100755 index 000000000..4320b62fe --- /dev/null +++ b/locale/it-IT/telefonverzeichnis.php @@ -0,0 +1,8 @@ +phrasen['telefonverzeichnis/durchwahl']=''; +$this->phrasen['telefonverzeichnis/faxnummern']='numero di fax'; +$this->phrasen['telefonverzeichnis/faxnummernFuerMitarbeiter']='numero di fax per dipendenti: +43 1 333 40 77 - 99 <Telefon DW>'; +$this->phrasen['telefonverzeichnis/hauptnummer']=''; +$this->phrasen['telefonverzeichnis/titelTelefonverzeichnis']=''; + +?> diff --git a/locale/it-IT/testtool.php b/locale/it-IT/testtool.php new file mode 100755 index 000000000..0f64986a9 --- /dev/null +++ b/locale/it-IT/testtool.php @@ -0,0 +1,41 @@ +phrasen['testtool/alleFragenBeantwortet']=''; +$this->phrasen['testtool/bearbeitungszeit']=''; +$this->phrasen['testtool/begruessungstext']=''; +$this->phrasen['testtool/beiDiesemGebietMuessenSieJedeFrageBeantworten']=''; +$this->phrasen['testtool/bitteZuerstAnmelden']=''; +$this->phrasen['testtool/blaettern']=''; +$this->phrasen['testtool/demo']=''; +$this->phrasen['testtool/dieseFrageIstNichtFuerSieBestimmt']=''; +$this->phrasen['testtool/dieZeitIstAbgelaufen']=''; +$this->phrasen['testtool/einleitung']=''; +$this->phrasen['testtool/esWurdeKeineFrageGefunden']=''; +$this->phrasen['testtool/fehler']='errore'; +$this->phrasen['testtool/fehlerBeimGenerierenDesFragenpools']='errore in sede di creazione del pool di domande'; +$this->phrasen['testtool/fehlerBeimSpeichernDerErstansicht']='errore in sede di salvataggio della videata iniziale'; +$this->phrasen['testtool/fehlerBeimStartvorgang']='errore in sede di procedura di avvio'; +$this->phrasen['testtool/gebietStarten']=''; +$this->phrasen['testtool/geburtsdatumStimmtNichtUeberein']=''; +$this->phrasen['testtool/home']=''; +$this->phrasen['testtool/jahr']=''; +$this->phrasen['testtool/keineAntwort']=''; +$this->phrasen['testtool/keinPrueflingseintragVorhanden']=''; +$this->phrasen['testtool/klickenSieAufEinTeilgebiet']=''; +$this->phrasen['testtool/login']=''; +$this->phrasen['testtool/monat']=''; +$this->phrasen['testtool/nameAuswaehlen']=''; +$this->phrasen['testtool/okKlickenUmZuStarten']=''; +$this->phrasen['testtool/quereinstieg']=''; +$this->phrasen['testtool/reihungstestKannNichtGeladenWerden']=''; +$this->phrasen['testtool/reihungstestNichtFreigeschalten']=''; +$this->phrasen['testtool/semester']=''; +$this->phrasen['testtool/speichernUndWeiter']=''; +$this->phrasen['testtool/spracheDerTestfragen']=''; +$this->phrasen['testtool/startDrueckenUmZuBeginnen']=''; +$this->phrasen['testtool/startseite']=''; +$this->phrasen['testtool/tag']=''; +$this->phrasen['testtool/willkommenstext']=''; +$this->phrasen['testtool/zeitAbgelaufen']=''; +$this->phrasen['testtool/zurueckZurStartseite']=''; + +?> diff --git a/locale/it-IT/tools.php b/locale/it-IT/tools.php new file mode 100755 index 000000000..b4a4ddf9b --- /dev/null +++ b/locale/it-IT/tools.php @@ -0,0 +1,64 @@ +phrasen['tools/aktuelleVersion']='versione attuale'; +$this->phrasen['tools/ampel']='Ssemaforo'; +$this->phrasen['tools/ampelAktion']='Azione'; +$this->phrasen['tools/ampelBereitsBestaetigt']=''; +$this->phrasen['tools/ampelBeschreibung']=''; +$this->phrasen['tools/ampelBestaetigen']=''; +$this->phrasen['tools/ampelBestaetigt']=''; +$this->phrasen['tools/ampelBestaetigtAm']=''; +$this->phrasen['tools/ampelDeadline']=''; +$this->phrasen['tools/ampelErledigt']=''; +$this->phrasen['tools/ampelKurzbz']=''; +$this->phrasen['tools/ampelMitarbeiter']=''; +$this->phrasen['tools/ampelNichtGefunden']=''; +$this->phrasen['tools/ampelRestdauer']=''; +$this->phrasen['tools/ampelStatus']=''; +$this->phrasen['tools/ampelsystem']=''; +$this->phrasen['tools/applikationsliste']=''; +$this->phrasen['tools/benotungsdatumDerZeugnisnote']='Data del voto'; +$this->phrasen['tools/bestaetigungDrucken']=''; +$this->phrasen['tools/betrag']='Importo'; +$this->phrasen['tools/buchungstext']='Descrizione'; +$this->phrasen['tools/content']=''; +$this->phrasen['tools/dasAmpelsystemIstEinErinnerungsystem']=''; +$this->phrasen['tools/datei']=''; +$this->phrasen['tools/dokumente']='Documenti'; +$this->phrasen['tools/einzelanwendung']=''; +$this->phrasen['tools/esWurdenKeineErgebnisseGefunden']='impossibile trovare risultati'; +$this->phrasen['tools/esWurdenMehrAlsXDokumenteGefunden']='trovate più di 40 documenti corrispondenti alla ricerca. Si prega di specificare ulteriormente la ricerca'; +$this->phrasen['tools/esWurdenMehrAlsXInhalteGefunden']='trovate più di 20 persone corrispondenti alla ricerca. Si prega di specificare ulteriormente la ricerca'; +$this->phrasen['tools/esWurdenMehrAlsXPersonenGefunden']='trovate più di 20 persone corrispondenti alla ricerca. Si prega di specificare ulteriormente la ricerca'; +$this->phrasen['tools/fehlerBeimAuslesenDerNoten']='errore di lettura dei voti'; +$this->phrasen['tools/fehlerBeimLesenDerDatei']='errore di lettura del file'; +$this->phrasen['tools/inskriptionsbestaetigung']='Certificato d\'iscrizione'; +$this->phrasen['tools/keineDatenGefunden']=''; +$this->phrasen['tools/keineZahlungenVorhanden']=''; +$this->phrasen['tools/leistungsbeurteilung']=''; +$this->phrasen['tools/maxPersonen']=''; +$this->phrasen['tools/mussAlsStudentEingeloggtSein']=''; +$this->phrasen['tools/naehereInformationenfindenSieUnter']=''; +$this->phrasen['tools/nichtZugeteilt']=''; +$this->phrasen['tools/nochKeineBeurteilungEingetragen']='non è stata inserita ancora valutazione alcuna'; +$this->phrasen['tools/offen']='rata da saldare'; +$this->phrasen['tools/reservieren']=''; +$this->phrasen['tools/softwarepaket']=''; +$this->phrasen['tools/studentWurdeNichtGefunden']=''; +$this->phrasen['tools/studienbeitragFuerSSBezahltAmDatum']=''; +$this->phrasen['tools/studienbeitragFuerSSBezahlt']='Tasse per il semestre %1$s versate'; +$this->phrasen['tools/studienbeitragFuerSSNochNichtBezahlt']='Tasse per il semestre %1$s non ancora versate'; +$this->phrasen['tools/studienbuchblatt']=''; +$this->phrasen['tools/studienerfolgsbestaetigung']='Stampa certificato d\'iscrizione'; +$this->phrasen['tools/studiensemesterAuswaehlen']=''; +$this->phrasen['tools/suchbegriff']=''; +$this->phrasen['tools/suche']=''; +$this->phrasen['tools/telefonklappe']=''; +$this->phrasen['tools/uebersichtLeitung']=''; +$this->phrasen['tools/vorlageWohnsitzfinanzamt']=''; +$this->phrasen['tools/waehlenSieEineOEoderAmpel']=''; +$this->phrasen['tools/wurdeNichtGefunden']='non trovato '; +$this->phrasen['tools/zahlungen']='Situazione tasse'; +$this->phrasen['tools/zahlungsbestaetigung']='Ricevuta di pagamento'; +$this->phrasen['tools/zahlungstyp']='Tipo'; + +?> diff --git a/locale/it-IT/upload.php b/locale/it-IT/upload.php new file mode 100755 index 000000000..e14e96bd2 --- /dev/null +++ b/locale/it-IT/upload.php @@ -0,0 +1,40 @@ +phrasen['upload/aktionen']='azioni'; +$this->phrasen['upload/auswaehlen']=''; +$this->phrasen['upload/benutzerKonnteNichtZugeordnetWerden']=''; +$this->phrasen['upload/dateiAufServerDateiformat']='Errore: il formato del file che si vuole caricare sul server non viene supportato'; +$this->phrasen['upload/dateien']=''; +$this->phrasen['upload/dateienAutomatischUeberschreiben']=''; +$this->phrasen['upload/dateienImOrdner']=''; +$this->phrasen['upload/dateienInOrdnern']=''; +$this->phrasen['upload/dateiExistiertBereits']='Errore: il file è già esistente! Si prega di utilizzare l\'opzione "sovrascrivere automaticamente i file'; +$this->phrasen['upload/dateinameDarfNurBuchstaben']=''; +$this->phrasen['upload/dateiUpload']=''; +$this->phrasen['upload/esWurdeKeinPfadDefiniert']=''; +$this->phrasen['upload/fehlerBeimLadenDerLv']='errore di caricamento della LV'; +$this->phrasen['upload/fehlerBeimLoeschenDesOrdners']='errore in sede di cancellazione della cartella'; +$this->phrasen['upload/formattributInEinNeues ']=''; +$this->phrasen['upload/kbGespeichert']=''; +$this->phrasen['upload/keineDateienGefunden']='impossibile trovare file'; +$this->phrasen['upload/keineGegenstaendeDefiniert']=''; +$this->phrasen['upload/keineOrdnerGefunden']='impossibile trovare cartelle corrispondenti'; +$this->phrasen['upload/keineSemesterDefiniert']=''; +$this->phrasen['upload/keineStudiengaengeDefiniert']=''; +$this->phrasen['upload/leeren']=''; +$this->phrasen['upload/maxUploadgroesse']=''; +$this->phrasen['upload/name']=''; +$this->phrasen['upload/neuesVerzeichnisErstellen']=''; +$this->phrasen['upload/studentenUploadEinsehen']=''; +$this->phrasen['upload/studentenUploadVerwalten']=''; +$this->phrasen['upload/studentenUploadverzeichnis']=''; +$this->phrasen['upload/studentenUploadverzeichnisLeeren']=''; +$this->phrasen['upload/umEinenOrdnerOderEineDatei']=''; +$this->phrasen['upload/unterordnerVon']=''; +$this->phrasen['upload/upload']=''; +$this->phrasen['upload/verzeichnisErstellen']=''; +$this->phrasen['upload/verzeichnisname']=''; +$this->phrasen['upload/verzeichnisnameDarfNurBuchstaben']=''; +$this->phrasen['upload/wollenSieOrdnerWirklichLoeschen']=''; +$this->phrasen['upload/wollenSieUploadWirklichLeeren']=''; + +?> diff --git a/locale/it-IT/urlaubstool.php b/locale/it-IT/urlaubstool.php new file mode 100755 index 000000000..5827658fc --- /dev/null +++ b/locale/it-IT/urlaubstool.php @@ -0,0 +1,39 @@ +phrasen['urlaubstool/aktuellerStand']='stato attuale'; +$this->phrasen['urlaubstool/aktuellGebuchterUrlaub']='ferie attualmente prenotate'; +$this->phrasen['urlaubstool/anspruch']=''; +$this->phrasen['urlaubstool/anspruchAnzahlDerUrlaubstage']=''; +$this->phrasen['urlaubstool/bis']=''; +$this->phrasen['urlaubstool/diesIstEineAutomatischeMail']=''; +$this->phrasen['urlaubstool/eintragungenSpeichern']=''; +$this->phrasen['urlaubstool/eintragungLoeschen']=''; +$this->phrasen['urlaubstool/eintragWirklichLoeschen']=''; +$this->phrasen['urlaubstool/erreichbar']=''; +$this->phrasen['urlaubstool/erreichbarkeit']=''; +$this->phrasen['urlaubstool/fehlerBeimSendenAufgetreten']='errore in sede di trasmissione della mail di attivazione a %s'; +$this->phrasen['urlaubstool/fehlerBeimSendenVertretungAufgetreten']='errore in sede di trasmissione della mail di informazione a %s per la sostituzione per vacanze'; +$this->phrasen['urlaubstool/freigabeansuchenUrlaub']=''; +$this->phrasen['urlaubstool/freigabemailWurdeVersandt']=''; +$this->phrasen['urlaubstool/freigegebenDurch']=''; +$this->phrasen['urlaubstool/freigegebenDurchAm']=''; +$this->phrasen['urlaubstool/handbuchUrlaubserfassung']=''; +$this->phrasen['urlaubstool/hilfe']=''; +$this->phrasen['urlaubstool/jaehrlich']=''; +$this->phrasen['urlaubstool/keineVertretungEingetragen']=''; +$this->phrasen['urlaubstool/konnteKeinFreigabemailVersendetWerden']=''; +$this->phrasen['urlaubstool/mailtextVertretung']=''; +$this->phrasen['urlaubstool/meineZeitsperren']=''; +$this->phrasen['urlaubstool/ok']=''; +$this->phrasen['urlaubstool/resturlaub']=''; +$this->phrasen['urlaubstool/sieKoennenDiesenUnterFolgenderAdresseFreigeben']=''; +$this->phrasen['urlaubstool/stichtag']=''; +$this->phrasen['urlaubstool/tage']=''; +$this->phrasen['urlaubstool/urlaubImGeschaeftsjahr']=''; +$this->phrasen['urlaubstool/urlaubstool']=''; +$this->phrasen['urlaubstool/vertretung']=''; +$this->phrasen['urlaubstool/vertretungsmailWurdeVersandt']=''; +$this->phrasen['urlaubstool/von']=''; +$this->phrasen['urlaubstool/xHatNeuenUrlaubEingetragen']=''; +$this->phrasen['urlaubstool/zuerstVertretungAuswaehlen']=''; + +?> diff --git a/locale/it-IT/zeitaufzeichnung.php b/locale/it-IT/zeitaufzeichnung.php new file mode 100755 index 000000000..04f222b4a --- /dev/null +++ b/locale/it-IT/zeitaufzeichnung.php @@ -0,0 +1,47 @@ +phrasen['zeitaufzeichnung/aktivitaet']='attività'; +$this->phrasen['zeitaufzeichnung/aktuelleZeitLaden']='importa ora attuale'; +$this->phrasen['zeitaufzeichnung/alleAnzeigen']='mostra tutto'; +$this->phrasen['zeitaufzeichnung/alleEintraege']='tutte le registrazioni '; +$this->phrasen['zeitaufzeichnung/alsEndzeitUebernehmen']='imposta come fine'; +$this->phrasen['zeitaufzeichnung/alsNeuenEintragSpeichern']='salva come nuova registrazione'; +$this->phrasen['zeitaufzeichnung/alsStartzeitUebernehmen']='imposta come inizio'; +$this->phrasen['zeitaufzeichnung/arbeitszeit']=''; +$this->phrasen['zeitaufzeichnung/benutzerWurdeNichtGefunden']=''; +$this->phrasen['zeitaufzeichnung/bisDatumKleinerAlsVonDatum']=''; +$this->phrasen['zeitaufzeichnung/dauer']=''; +$this->phrasen['zeitaufzeichnung/ende']=''; +$this->phrasen['zeitaufzeichnung/endeXTageAnsicht']=''; +$this->phrasen['zeitaufzeichnung/fehlerBeimErmittelnDerProjekte']='errore di identificazione dei progetti'; +$this->phrasen['zeitaufzeichnung/gesamtdauer']=''; +$this->phrasen['zeitaufzeichnung/handbuchZeitaufzeichnung']=''; +$this->phrasen['zeitaufzeichnung/id']=''; +$this->phrasen['zeitaufzeichnung/inklusivePflichtpause']=''; +$this->phrasen['zeitaufzeichnung/kartennummer']=''; +$this->phrasen['zeitaufzeichnung/keineAuswahl']=''; +$this->phrasen['zeitaufzeichnung/kunde']=''; +$this->phrasen['zeitaufzeichnung/nameEingeben']=''; +$this->phrasen['zeitaufzeichnung/neu']=''; +$this->phrasen['zeitaufzeichnung/oderKartennummerOptional']=''; +$this->phrasen['zeitaufzeichnung/oe']=''; +$this->phrasen['zeitaufzeichnung/organisationseinheit1']=''; +$this->phrasen['zeitaufzeichnung/organisationseinheit2']=''; +$this->phrasen['zeitaufzeichnung/organisationseinheiten']=''; +$this->phrasen['zeitaufzeichnung/pause']=''; +$this->phrasen['zeitaufzeichnung/projekt']=''; +$this->phrasen['zeitaufzeichnung/service']=''; +$this->phrasen['zeitaufzeichnung/sieSindDerzeitKeinenProjektenZugeordnet']=''; +$this->phrasen['zeitaufzeichnung/start']=''; +$this->phrasen['zeitaufzeichnung/summeEintraege']=''; +$this->phrasen['zeitaufzeichnung/tagessumme']=''; +$this->phrasen['zeitaufzeichnung/uebersicht']=''; +$this->phrasen['zeitaufzeichnung/user']=''; +$this->phrasen['zeitaufzeichnung/wochensumme']=''; +$this->phrasen['zeitaufzeichnung/wochensummeArbeitszeit']=''; +$this->phrasen['zeitaufzeichnung/wochensummeEintraege']=''; +$this->phrasen['zeitaufzeichnung/xTageAnsicht']=''; +$this->phrasen['zeitaufzeichnung/zeitaufzeichnung']=''; +$this->phrasen['zeitaufzeichnung/zeitaufzeichnungVon']=''; +$this->phrasen['zeitaufzeichnung/zeitraumAuffallendHoch']='Attenzione, il periodo indicato risulta molto lungo. \n Confermare per salvataggio dei dati indicati.'; + +?> diff --git a/locale/it-IT/zeitsperre.php b/locale/it-IT/zeitsperre.php new file mode 100755 index 000000000..c3b8e1c53 --- /dev/null +++ b/locale/it-IT/zeitsperre.php @@ -0,0 +1,43 @@ +phrasen['zeitsperre/achtungEsWerdenAlleEingegebenenTage']=''; +$this->phrasen['zeitsperre/aktuellerStand']='stato attuale'; +$this->phrasen['zeitsperre/anzahlTage']=''; +$this->phrasen['zeitsperre/beschreibungSieheCisHandbuch']=''; +$this->phrasen['zeitsperre/bisDatumIstUngueltigNullenAngeben']=''; +$this->phrasen['zeitsperre/bisDatumMonat']=''; +$this->phrasen['zeitsperre/bisDatumUngueltig']=''; +$this->phrasen['zeitsperre/bitteZuerstVertretungAuswaehlen']=''; +$this->phrasen['zeitsperre/edit']=''; +$this->phrasen['zeitsperre/freigegeben']=''; +$this->phrasen['zeitsperre/grund']=''; +$this->phrasen['zeitsperre/istGroesserAlsBisDatum']=''; +$this->phrasen['zeitsperre/istNichtRichtig']=''; +$this->phrasen['zeitsperre/keineBerechtigungDatensatzLoeschen']=''; +$this->phrasen['zeitsperre/keineZeitsperrenEingetragen']=''; +$this->phrasen['zeitsperre/legendeDurchwahl']=''; +$this->phrasen['zeitsperre/legendeErreichbarkeit']=''; +$this->phrasen['zeitsperre/legendeGrund']=''; +$this->phrasen['zeitsperre/legendeVertretung']=''; +$this->phrasen['zeitsperre/loeschen']=''; +$this->phrasen['zeitsperre/monat']=''; +$this->phrasen['zeitsperre/resturlaubstage']=''; +$this->phrasen['zeitsperre/resturlaubstagePerDatum']=''; +$this->phrasen['zeitsperre/sieHabenKeineBerechtigung']=''; +$this->phrasen['zeitsperre/sieHabenKeineBerechtigungZuAendern']=''; +$this->phrasen['zeitsperre/stundeInklusive']=''; +$this->phrasen['zeitsperre/tag']=''; +$this->phrasen['zeitsperre/ungueltigeId']=''; +$this->phrasen['zeitsperre/urlaubBereitsEingetragen']=''; +$this->phrasen['zeitsperre/urlaubImGeschaeftsjahr']=''; +$this->phrasen['zeitsperre/urlaubKannNichtMehrEditiertWerden']=''; +$this->phrasen['zeitsperre/vonDatum']=''; +$this->phrasen['zeitsperre/vonDatumGroesserAlsBisDatum']=''; +$this->phrasen['zeitsperre/vonDatumIstUngueltigNullenAngeben']=''; +$this->phrasen['zeitsperre/vonDatumMonat']=''; +$this->phrasen['zeitsperre/vonDatumUngueltig']=''; +$this->phrasen['zeitsperre/wollenSieEintragWirklichLoeschen']=''; +$this->phrasen['zeitsperre/zeitsperre']=''; +$this->phrasen['zeitsperre/zeitsperren']=''; +$this->phrasen['zeitsperre/zeitsperreVonBis']=''; + +?> diff --git a/locale/it-IT/zeitwunsch.php b/locale/it-IT/zeitwunsch.php new file mode 100755 index 000000000..3215b330a --- /dev/null +++ b/locale/it-IT/zeitwunsch.php @@ -0,0 +1,25 @@ +phrasen['zeitwunsch/bedeutung']=''; +$this->phrasen['zeitwunsch/beiProblemenWendenSieSichAn']=''; +$this->phrasen['zeitwunsch/erklaerung']=''; +$this->phrasen['zeitwunsch/erklärung']=''; +$this->phrasen['zeitwunsch/esSolltenFuerJedeStunde']=''; +$this->phrasen['zeitwunsch/falscheWerteEingetragen']=''; +$this->phrasen['zeitwunsch/folgendePunkteSindZuBeachten']=''; +$this->phrasen['zeitwunsch/formularZumEintragenDerZeitsperren']=''; +$this->phrasen['zeitwunsch/help']=''; +$this->phrasen['zeitwunsch/hierAufGarKeinenFall']=''; +$this->phrasen['zeitwunsch/hierKannIchUnterrichten']=''; +$this->phrasen['zeitwunsch/hierMoechteIchUnterrichten']=''; +$this->phrasen['zeitwunsch/kontrollierenSieIhreZeitwuensche']=''; +$this->phrasen['zeitwunsch/letzteAenderung']=''; +$this->phrasen['zeitwunsch/nurInNotfaellen']=''; +$this->phrasen['zeitwunsch/profil']=''; +$this->phrasen['zeitwunsch/sperrenSieNurTermine']=''; +$this->phrasen['zeitwunsch/tragenSieInDiesesNormwochenraster']='inserire nel modulo settimanale standard la propria disponibilità relativa alla normale settimana lavorativa'; +$this->phrasen['zeitwunsch/verwendenSieDenWertNur']=''; +$this->phrasen['zeitwunsch/von']=''; +$this->phrasen['zeitwunsch/wert']=''; +$this->phrasen['zeitwunsch/zeitwunsch']=''; +$this->phrasen['zeitwunsch/zeitwunschVon']=''; +?> diff --git a/rdf/lehrveranstaltung_einheiten.rdf.php b/rdf/lehrveranstaltung_einheiten.rdf.php index 4d296c2d2..6ceaca126 100644 --- a/rdf/lehrveranstaltung_einheiten.rdf.php +++ b/rdf/lehrveranstaltung_einheiten.rdf.php @@ -176,25 +176,12 @@ else $stp_ids=array(); $stpl_main = new studienplan(); - $sto_obj = new studienordnung(); - if($sto_obj->loadStudienordnungSTG($stg_kz, $semester_aktuell, $sem)) + $stpl_main->getStudienplaeneFromSem($stg_kz, $semester_aktuell, $sem, $orgform); + foreach($stpl_main->result as $row_stp) { - foreach($sto_obj->result as $row_sto) - { - //echo "$row_sto->studienordnung_id $row_sto->semester\n"; - $stp_obj = new studienplan(); - if($stp_obj->loadStudienplanSTO($row_sto->studienordnung_id, $orgform)) - { - foreach($stp_obj->result as $row_stp) - { - $stp_ids_arr[]=array('stpid'=>$row_stp->studienplan_id,'semester'=>$row_sto->semester); - $stp_ids[]=$row_stp->studienplan_id; - } - } - } + $stp_ids_arr[]=array('stpid'=>$row_stp->studienplan_id,'semester'=>$row_stp->semester); + $stp_ids[]=$row_stp->studienplan_id; } - else - echo "FAILED:".$stpl_main->errormsg; $qry=''; if(count($stp_ids)>0) @@ -229,7 +216,7 @@ else tbl_lehrveranstaltung.lehre, lehreverzeichnis as lv_lehreverzeichnis, aktiv, planfaktor as lv_planfaktor, planlektoren as lv_planlektoren, planpersonalkosten as lv_planpersonalkosten, plankostenprolektor as lv_plankostenprolektor, tbl_lehrveranstaltung.lehrform_kurzbz as lv_lehrform_kurzbz, tbl_lehrveranstaltung.orgform_kurzbz, - '' as studienplan_id, '' as studienplan_bezeichnung, '' as studienplan_lehrveranstaltung_id_parent, + ''::text as studienplan_id, '' as studienplan_bezeichnung, '' as studienplan_lehrveranstaltung_id_parent, tbl_lehrveranstaltung.lehrtyp_kurzbz FROM lehre.tbl_lehrveranstaltung JOIN lehre.tbl_lehreinheit USING (lehrveranstaltung_id) WHERE 1=1"; @@ -247,9 +234,22 @@ else $qry.=" AND NOT EXISTS (SELECT 1 FROM lehre.tbl_studienplan_lehrveranstaltung where studienplan_id in (".$db->db_implode4SQL($stp_ids).") AND lehrveranstaltung_id=tbl_lehrveranstaltung.lehrveranstaltung_id AND tbl_lehrveranstaltung.aktiv)"; } - //$qry = 'SELECT distinct on(lehrveranstaltung_id) * FROM ('.$qry.' ORDER BY studienplan_id DESC) a'; +/* + $qry = 'SELECT + lehrveranstaltung_id, lv_kurzbz, lv_bezeichnung, lv_bezeichnung_english, studiengang_kz, + semester, sprache, lv_ects, semesterstunden, anmerkung, lehre, lv_lehreverzeichnis, aktiv, + lv_planfaktor, lv_planlektoren, lv_planpersonalkosten, lv_plankostenprolektor, lv_lehrform_kurzbz, + orgform_kurzbz, studienplan_lehrveranstaltung_id_parent, lehrtyp_kurzbz, + array_agg(studienplan_id) as studienplan_id, array_agg(studienplan_bezeichnung) as studienplan_bezeichnung + FROM ('.$qry.') a + GROUP BY + lehrveranstaltung_id, lv_kurzbz, lv_bezeichnung, lv_bezeichnung_english, studiengang_kz, + semester, sprache, lv_ects, semesterstunden, anmerkung, lehre, lv_lehreverzeichnis, aktiv, + lv_planfaktor, lv_planlektoren, lv_planpersonalkosten, lv_plankostenprolektor, lv_lehrform_kurzbz, + orgform_kurzbz, studienplan_lehrveranstaltung_id_parent, lehrtyp_kurzbz'; +*/ } - //die($qry); +//die($qry); if(!$result = $db->db_query($qry)) die($db->db_last_error().'
    '.$qry); diff --git a/rdf/lehrveranstaltungszeugnis_ktu.rdf.php b/rdf/lehrveranstaltungszeugnis_ktu.rdf.php index cc47cb5dc..b8f4020f9 100755 --- a/rdf/lehrveranstaltungszeugnis_ktu.rdf.php +++ b/rdf/lehrveranstaltungszeugnis_ktu.rdf.php @@ -36,6 +36,8 @@ require_once('../include/studienplan.class.php'); require_once('../include/student.class.php'); require_once('../include/prestudent.class.php'); require_once('../include/organisationseinheit.class.php'); +require_once('../include/anrechnung.class.php'); +require_once('../include/lehrform.class.php'); $datum = new datum(); $db = new basis_db(); @@ -152,6 +154,8 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") $lvbezeichnung = $lehrveranstaltung->bezeichnung; $lvstg = $lehrveranstaltung->studiengang_kz; $lehrform_kurzbz=$lehrveranstaltung->lehrform_kurzbz; + $lehrform = new lehrform($lehrform_kurzbz); + $lehrform_bezeichnung = $lehrform->bezeichnung; $organisationseinheit = new organisationseinheit($lehrveranstaltung->oe_kurzbz); $lehreinheit=new lehreinheit(); @@ -309,19 +313,64 @@ if (isset($_REQUEST["xmlformat"]) && $_REQUEST["xmlformat"] == "xml") $xml .= " ".$datum->formatDatum($benotungsdatum,'d.m.Y').""; $xml .= " ".$datum->formatDatum($uebernahmedatum,'d.m.Y').""; $xml .= " ".$lehrform_kurzbz.""; + $xml .= " ".$lehrform_bezeichnung.""; $xml .= " ".($sws==0?'':number_format(sprintf('%.1F',$sws),1)).""; $xml .= " ".number_format($ects,1).""; $xml .= " ".$leiter_titel." ".$leiter_vorname." ".$leiter_nachname.($leiter_titelpost!=''?', '.$leiter_titelpost:'').""; $xml .= " "; $xml .= " "; + $lehrveranstaltung->getLVkompatibel($lehrveranstaltung_id); foreach($lehrveranstaltung->lehrveranstaltungen as $lv_kompatibel) { $xml .= "".$lv_kompatibel->bezeichnung.""; } + $xml .= " "; - $return = $lehrveranstaltung->getLVFromStudienplanByLehrtyp($studienplan_id, "modul"); + $anrechnung = new anrechnung(); + $anrechnung->getAnrechnungPrestudent($student->prestudent_id, null, $lehrveranstaltung_id); + + $xml .= ""; + $lehrveranstaltung_id_kompatibel = ""; + if(count($anrechnung->result) === 1) + { + $lehrveranstaltung_id_kompatibel = $anrechnung->result[0]->lehrveranstaltung_id; + $xml .= $anrechnung->result[0]->lehrveranstaltung_bez; + } + $xml .= ""; + + $lehrveranstaltung->loadLehrveranstaltungStudienplan($studienplan_id); + + $studienplan_lehrveranstaltung_id = ""; + foreach($lehrveranstaltung->lehrveranstaltungen as $lv) + { + if(($lv->lehrveranstaltung_id == $lehrveranstaltung_id) || ($lv->lehrveranstaltung_id == $lehrveranstaltung_id_kompatibel)) + { + $studienplan_lehrveranstaltung_id = $lv->studienplan_lehrveranstaltung_id; + break; + } + } + + $studienplan = new studienplan(); + if($studienplan_lehrveranstaltung_id != "") + { + $studienplan->loadStudienplanLehrveranstaltung($studienplan_lehrveranstaltung_id); + $lv = new lehrveranstaltung(); + while($lv->lehrtyp_kurzbz != "modul") + { + $lv->load($studienplan->lehrveranstaltung_id); + $studienplan->loadStudienplanLehrveranstaltung($studienplan->studienplan_lehrveranstaltung_id_parent); + } + $lehrveranstaltung->lehrveranstaltungen = array(0 => $lv); + } + else + { + $lehrveranstaltung->lehrveranstaltungen = array(); + } + +// $return = $lehrveranstaltung->getLVFromStudienplanByLehrtyp($studienplan_id, "modul"); + $xml .= " "; //Variable wird zur korrekten Darstellung im Dokument benötigt diff --git a/rdf/student.rdf.php b/rdf/student.rdf.php index b3dc5b989..26f8586c4 100644 --- a/rdf/student.rdf.php +++ b/rdf/student.rdf.php @@ -497,6 +497,8 @@ if($xmlformat=='rdf') (tbl_bisio.von>='".$stsem_obj->start."' AND tbl_bisio.von<='".$stsem_obj->ende."') OR (tbl_bisio.bis>='".$stsem_obj->start."' AND tbl_bisio.bis<='".$stsem_obj->ende."') + OR + (tbl_bisio.von<='".$stsem_obj->start."' AND tbl_bisio.bis>='".$stsem_obj->ende."') ) AND NOT EXISTS(SELECT 1 FROM public.tbl_prestudentstatus WHERE status_kurzbz='Incoming' AND prestudent_id=bis.tbl_bisio.prestudent_id) "; @@ -775,7 +777,7 @@ else break; } } - + $lv_studiengang=new studiengang(); $lv_studiengang->load($lv_studiengang_kz); $lv_studiengang_bezeichnung=$lv_studiengang->bezeichnung; @@ -800,24 +802,24 @@ else $orgform_student_bezeichnung = new organisationsform(); $orgform_student_bezeichnung->load($prestudent->orgform_kurzbz); - + //Wenn Lehrgang, dann Erhalter-KZ vor die LV-Studiengangs-Kz hängen if ($lv_studiengang_kz<0) { $stg = new studiengang(); $stg->load($lv_studiengang_kz); - + $lv_studiengang_kz = sprintf("%03s", $stg->erhalter_kz).sprintf("%04s", abs($lv_studiengang_kz)); } else $lv_studiengang_kz = sprintf("%04s", abs($lv_studiengang_kz)); - + //Wenn Lehrgang, dann Erhalter-KZ vor die Studiengangs-Kz hängen if ($student->studiengang_kz<0) { $stg = new studiengang(); $stg->load($student->studiengang_kz); - + $stg_kz = sprintf("%03s", $stg->erhalter_kz).sprintf("%04s", abs($student->studiengang_kz)); } else diff --git a/rdf/studienblatt.xml.php b/rdf/studienblatt.xml.php index 3bf916d13..f057865f6 100644 --- a/rdf/studienblatt.xml.php +++ b/rdf/studienblatt.xml.php @@ -1,339 +1,340 @@ - - * Karl Burkhart - * Manfred Kindl - */ -header("Content-type: application/xhtml+xml"); -require_once('../config/vilesci.config.inc.php'); -require_once('../include/functions.inc.php'); -require_once('../include/studiengang.class.php'); -require_once('../include/student.class.php'); -require_once('../include/prestudent.class.php'); -require_once('../include/adresse.class.php'); -require_once('../include/lehrveranstaltung.class.php'); -require_once('../include/akadgrad.class.php'); -require_once('../include/studiensemester.class.php'); -require_once('../include/nation.class.php'); -require_once('../include/studienordnung.class.php'); -require_once('../include/studienplan.class.php'); -require_once('../include/mitarbeiter.class.php'); -require_once('../include/organisationsform.class.php'); -require_once('../include/zgv.class.php'); -require_once('../include/konto.class.php'); - -$uid_arr = (isset($_REQUEST['uid'])?$_REQUEST['uid']:null); - -$uid_arr = explode(";",$uid_arr); - -echo "\n"; -echo "\n"; - -$uid = isset($uid_arr[1])?$uid_arr[1]:$uid_arr[0]; - -$konto = new konto(); -$student_help = new student(); -// an 2ter stelle da im Aufruf vom FAS ;; der erste immer '' ist -if($student_help->load($uid)) -{ - $studiengang = new studiengang(); - $studiengang->load($student_help->studiengang_kz); - switch($studiengang->typ) - { - case 'b': - $studTyp = 'Bachelor'; - $titel_kurzbz = 'BSc'; - break; - case 'm': - $studTyp = 'Master'; - $titel_kurzbz ='MSc'; - break; - case 'd': - $studTyp = 'Diplom'; - break; - case 'l': - $studTyp = 'Lehrgang'; - break; - case 'k': - $studTyp = 'Kurzstudium'; - break; - default: - $studTyp =''; - $titel_kurzbz = ''; - } - echo "\t".$studTyp."\n"; - echo "\t".$studiengang->bezeichnung."\n"; -} - -foreach($uid_arr as $uid) -{ - if($uid=='') - continue; - - echo "\t\n"; - - $student = new student(); - if($student->load($uid)) - { - $datum_aktuell = date('d.m.Y'); - $gebdatum = date('d.m.Y',strtotime($student->gebdatum)); - $prestudent = new prestudent($student->prestudent_id); - $prestudent->getLastStatus($student->prestudent_id,null,'Student'); - $studienordnung = new studienordnung(); - $studienordnung->getStudienordnungFromStudienplan($prestudent->studienplan_id); - $studiengang = new studiengang(); - $studiengang->load($studienordnung->studiengang_kz); - $studienplan = new studienplan(); - $studienplan->loadStudienplan($prestudent->studienplan_id); - $staatsbuergerschaft = new nation(); - $staatsbuergerschaft->load($student->staatsbuergerschaft); - - - $svnr = ($student->svnr == '')?'Ersatzkennzeichen: '.$student->ersatzkennzeichen:$student->svnr; - - switch($student->geschlecht) - { - case 'm': - $geschlecht = 'Männlich'; - break; - case 'w': - $geschlecht = 'Weiblich'; - break; - case 'u': - $geschlecht = 'Unbekannt'; - break; - default: - $geschlecht =''; - } - - //Wenn Lehrgang, dann Erhalter-KZ vor die Studiengangs-Kz hängen - if ($studienordnung->studiengang_kz<0) - { - $stg = new studiengang(); - $stg->load($studienordnung->studiengang_kz); - - $studiengang_kz = sprintf("%03s", $stg->erhalter_kz).sprintf("%04s", abs($studienordnung->studiengang_kz)); - } - else - $studiengang_kz = sprintf("%04s", abs($studienordnung->studiengang_kz)); - - echo "\t\t1\n"; - echo "\t\t".$uid."\n"; - echo "\t\t".$geschlecht."\n"; - echo "\t\t".$student->anrede."\n"; - echo "\t\t".$student->vorname." ".$student->vornamen."\n"; - echo "\t\t".$student->vornamen."\n"; - echo "\t\t".$student->nachname."\n"; - echo "\t\t".$student->titelpre."\n"; - echo "\t\t".$student->titelpost."\n"; - echo "\t\t".$gebdatum."\n"; - echo "\t\t".$student->gebort."\n"; - echo "\t\t".$staatsbuergerschaft->langtext."\n"; - echo "\t\t".$svnr."\n"; - echo "\t\t".trim($student->matrikelnr)."\n"; - echo "\t\t".$studienordnung->studiengangbezeichnung."\n"; - echo "\t\t".$studienordnung->studiengangbezeichnung_englisch."\n"; - echo "\t\t".$studienordnung->studiengangkurzbzlang."\n"; - echo "\t\t".$studiengang_kz."\n"; - echo "\t\t".$studienplan->sprache.""; - echo "\t\t".$studienordnung->ects.""; - echo "\t\t".($studienplan->regelstudiendauer!=0?$studienordnung->ects/$studienplan->regelstudiendauer:0).""; - - echo "\t\t".date('Y').""; - - echo "\t\t".$prestudent->ausbildungssemester.""; - - $studiensemester_aktuell = new studiensemester(); - $studiensemester_aktuell->load($prestudent->studiensemester_kurzbz); - - echo "\t\t".$studiensemester_aktuell->bezeichnung.""; - - // check ob Oeh-Beitrag bezahlt wurde - $oehbeitrag = $konto->getOehBeitragGesamt($uid, $studiensemester_aktuell->studiensemester_kurzbz); - echo "\t\t".str_replace('.', ',', $oehbeitrag).""; - - // check ob Quereinsteiger - $ausbildungssemester = ($prestudent->getFirstStatus($student->prestudent_id, 'Student'))?$prestudent->ausbildungssemester:''; - echo "\t\t".$ausbildungssemester.""; - - $studiensemester_beginn = new studiensemester(); - $studienbeginn = ($prestudent->getFirstStatus($student->prestudent_id, 'Student'))?$prestudent->studiensemester_kurzbz:''; - $studiensemester_beginn->load($studienbeginn); - - echo "\t\t".$studiensemester_beginn->bezeichnung.""; - echo "\t\t".date('d.m.Y',strtotime($studiensemester_beginn->start)).""; - - $prestudent->getLastStatus($student->prestudent_id,null,'Student'); - $studiensemester_abschluss = new studiensemester(); - $abschluss = $studiensemester_abschluss->jump($prestudent->studiensemester_kurzbz, $studienplan->regelstudiendauer-$prestudent->ausbildungssemester); - $studiensemester_abschluss->load($abschluss); - echo "\t\t".$studiensemester_abschluss->bezeichnung.""; - echo "\t\t".date('d.m.Y',strtotime($studiensemester_abschluss->ende)).""; - - $studiensemester_endedatum = new studiensemester(); - $studiensemester_endedatum->load($studiensemester_endedatum->getaktorNext(1)); - - echo "\t\t".date('d.m.Y',strtotime($studiensemester_endedatum->ende)).""; - - $status_aktuell = ($prestudent->getLastStatus($student->prestudent_id,null,null))?$prestudent->status_kurzbz:''; - - switch($status_aktuell) - { - case 'Student': - $studierendenstatus_aktuell = 'Aktive/r StudentIn'; - break; - case 'Unterbrecher': - $studierendenstatus_aktuell = 'UnterbrecherIn'; - break; - case 'Absolvent': - $studierendenstatus_aktuell = 'AbsolventIn'; - break; - case 'Diplomand': - $studierendenstatus_aktuell = 'DiplomandIn'; - break; - case 'Abbrecher': - $studierendenstatus_aktuell = 'AbbrecherIn'; - break; - default: - $studierendenstatus_aktuell =''; - } - - echo "\t\t".$studierendenstatus_aktuell."\n"; - echo "\t\t".$prestudent->zgvdatum."\n"; - $zgv = new zgv($prestudent->zgv_code); - echo "\t\t".$zgv->zgv_kurzbz."\n"; - echo "\t\t".$studienplan->bezeichnung."\n"; - echo "\t\tanmerkung]]>\n"; - - $titel_kurzbz = ''; - switch($studiengang->typ) - { - case 'b': - $studTyp = 'Bachelor'; - $titel_kurzbz = 'BSc'; - break; - case 'm': - $studTyp = 'Master'; - $titel_kurzbz ='MSc'; - break; - case 'd': - $studTyp = 'Diplom'; - break; - case 'l': - $studTyp = 'Lehrgang'; - break; - case 'k': - $studTyp = 'Kurzstudium'; - break; - default: - $studTyp =''; - $titel_kurzbz = ''; - } - - echo "\t\t".$titel_kurzbz."\n"; - echo "\t\t".$studTyp."\n"; - echo "\t\t".$studienplan->sprache."\n"; - echo "\t\t".$studienplan->regelstudiendauer."\n"; - - $akadgrad = new akadgrad(); - $akadgrad->getAkadgradStudent($student->uid); - - echo "\t\t".$akadgrad->titel."\n"; - echo "\t\t".$akadgrad->akadgrad_kurzbz."\n"; - - //für ao. Studierende wird die StgKz der Lehrveranstaltungen benötigt, die sie besuchen - $lv_studiengang_kz=''; - $lv_studiengang_bezeichnung=''; - $lv_studiengang_typ=''; - - $stg_typ=new studiengang(); - $lv=new lehrveranstaltung(); - $lv->load_lva_student($student->uid); - if(count($lv->lehrveranstaltungen)>0) - { - $lv_studiengang_kz=$lv->lehrveranstaltungen[0]->studiengang_kz; - $lv_studiengang=new studiengang(); - $lv_studiengang->load($lv_studiengang_kz); - $lv_studiengang_bezeichnung=$lv_studiengang->bezeichnung; - $stg_typ->getStudiengangTyp($lv_studiengang->typ); - $lv_studiengang_typ=$stg_typ->bezeichnung; - } - - echo "\t\t".sprintf('%04s', $lv_studiengang_kz).""; - echo "\t\t$lv_studiengang_typ"; - echo "\t\t$lv_studiengang_bezeichnung"; - - echo "\t\t".$datum_aktuell."\n"; - - $adresse = new adresse(); - $adresse->load_pers($student->person_id); - - foreach($adresse->result as $row_adresse) - { - if($row_adresse->zustelladresse) - { - echo "\t\tstrasse]]>\n"; - echo "\t\t".$row_adresse->plz." ".$row_adresse->ort."\n"; - echo "\t\t".$row_adresse->nation."\n"; - break; - } - } - foreach($adresse->result as $row_adresse) - { - if($row_adresse->heimatadresse) - { - echo "\t\tstrasse]]>\n"; - echo "\t\t".$row_adresse->plz." ".$row_adresse->ort."\n"; - echo "\t\t".$row_adresse->nation."\n"; - break; - } - } - $prestudent = new prestudent(); - $prestudent->getLastStatus($student->prestudent_id, null, 'Student'); - - if($prestudent->orgform_kurzbz!='') - $orgform = $prestudent->orgform_kurzbz; - else - $orgform = $studienplan->orgform_kurzbz; - - $orgform_bez = new organisationsform(); - $orgform_bez->load($orgform); - - echo "\t\t".$orgform."\n"; - echo "\t\t".$orgform_bez->bezeichnung."\n"; - - //Studiengangsleiter auslesen - $stg_oe_obj = new studiengang($studienordnung->studiengang_kz); - if ($studienordnung->studiengang_kz=='') - $stgleiter = $stg_oe_obj->getLeitung($student_help->studiengang_kz); - else - $stgleiter = $stg_oe_obj->getLeitung($studienordnung->studiengang_kz); - $stgl=''; - foreach ($stgleiter as $stgleiter_uid) - { - $stgl_ma = new mitarbeiter($stgleiter_uid); - $stgl .= trim($stgl_ma->titelpre.' '.$stgl_ma->vorname.' '.$stgl_ma->nachname.' '.$stgl_ma->titelpost); - } - - echo "\t\t$stgl\n"; - } - echo "\t\n"; -} -echo ""; - + + * Karl Burkhart + * Manfred Kindl + */ +header("Content-type: application/xhtml+xml"); +require_once('../config/vilesci.config.inc.php'); +require_once('../include/functions.inc.php'); +require_once('../include/studiengang.class.php'); +require_once('../include/student.class.php'); +require_once('../include/prestudent.class.php'); +require_once('../include/adresse.class.php'); +require_once('../include/lehrveranstaltung.class.php'); +require_once('../include/akadgrad.class.php'); +require_once('../include/studiensemester.class.php'); +require_once('../include/nation.class.php'); +require_once('../include/studienordnung.class.php'); +require_once('../include/studienplan.class.php'); +require_once('../include/mitarbeiter.class.php'); +require_once('../include/organisationsform.class.php'); +require_once('../include/zgv.class.php'); +require_once('../include/konto.class.php'); + +$uid_arr = (isset($_REQUEST['uid'])?$_REQUEST['uid']:null); +$studiensemester = (isset($_REQUEST['ss'])?$_REQUEST['ss']:null); + +$uid_arr = explode(";",$uid_arr); + +echo "\n"; +echo "\n"; + +$uid = isset($uid_arr[1])?$uid_arr[1]:$uid_arr[0]; + +$konto = new konto(); +$student_help = new student(); +// an 2ter stelle da im Aufruf vom FAS ;; der erste immer '' ist +if($student_help->load($uid)) +{ + $studiengang = new studiengang(); + $studiengang->load($student_help->studiengang_kz); + switch($studiengang->typ) + { + case 'b': + $studTyp = 'Bachelor'; + $titel_kurzbz = 'BSc'; + break; + case 'm': + $studTyp = 'Master'; + $titel_kurzbz ='MSc'; + break; + case 'd': + $studTyp = 'Diplom'; + break; + case 'l': + $studTyp = 'Lehrgang'; + break; + case 'k': + $studTyp = 'Kurzstudium'; + break; + default: + $studTyp =''; + $titel_kurzbz = ''; + } + echo "\t".$studTyp."\n"; + echo "\t".$studiengang->bezeichnung."\n"; +} + +foreach($uid_arr as $uid) +{ + if($uid=='') + continue; + + echo "\t\n"; + + $student = new student(); + if($student->load($uid)) + { + $datum_aktuell = date('d.m.Y'); + $gebdatum = date('d.m.Y',strtotime($student->gebdatum)); + $prestudent = new prestudent($student->prestudent_id); + $prestudent->getLastStatus($student->prestudent_id,$studiensemester,'Student'); + $studienordnung = new studienordnung(); + $studienordnung->getStudienordnungFromStudienplan($prestudent->studienplan_id); + $studiengang = new studiengang(); + $studiengang->load($studienordnung->studiengang_kz); + $studienplan = new studienplan(); + $studienplan->loadStudienplan($prestudent->studienplan_id); + $staatsbuergerschaft = new nation(); + $staatsbuergerschaft->load($student->staatsbuergerschaft); + + + $svnr = ($student->svnr == '')?'Ersatzkennzeichen: '.$student->ersatzkennzeichen:$student->svnr; + + switch($student->geschlecht) + { + case 'm': + $geschlecht = 'Männlich'; + break; + case 'w': + $geschlecht = 'Weiblich'; + break; + case 'u': + $geschlecht = 'Unbekannt'; + break; + default: + $geschlecht =''; + } + + //Wenn Lehrgang, dann Erhalter-KZ vor die Studiengangs-Kz hängen + if ($studienordnung->studiengang_kz<0) + { + $stg = new studiengang(); + $stg->load($studienordnung->studiengang_kz); + + $studiengang_kz = sprintf("%03s", $stg->erhalter_kz).sprintf("%04s", abs($studienordnung->studiengang_kz)); + } + else + $studiengang_kz = sprintf("%04s", abs($studienordnung->studiengang_kz)); + + echo "\t\t1\n"; + echo "\t\t".$uid."\n"; + echo "\t\t".$geschlecht."\n"; + echo "\t\t".$student->anrede."\n"; + echo "\t\t".$student->vorname." ".$student->vornamen."\n"; + echo "\t\t".$student->vornamen."\n"; + echo "\t\t".$student->nachname."\n"; + echo "\t\t".$student->titelpre."\n"; + echo "\t\t".$student->titelpost."\n"; + echo "\t\t".$gebdatum."\n"; + echo "\t\t".$student->gebort."\n"; + echo "\t\t".$staatsbuergerschaft->langtext."\n"; + echo "\t\t".$svnr."\n"; + echo "\t\t".trim($student->matrikelnr)."\n"; + echo "\t\t".$studienordnung->studiengangbezeichnung."\n"; + echo "\t\t".$studienordnung->studiengangbezeichnung_englisch."\n"; + echo "\t\t".$studienordnung->studiengangkurzbzlang."\n"; + echo "\t\t".$studiengang_kz."\n"; + echo "\t\t".$studienplan->sprache.""; + echo "\t\t".$studienordnung->ects.""; + echo "\t\t".($studienplan->regelstudiendauer!=0?$studienordnung->ects/$studienplan->regelstudiendauer:0).""; + + echo "\t\t".date('Y').""; + + echo "\t\t".$prestudent->ausbildungssemester.""; + + $studiensemester_aktuell = new studiensemester(); + $studiensemester_aktuell->load($studiensemester); + + echo "\t\t".$studiensemester_aktuell->bezeichnung.""; + + // check ob Oeh-Beitrag bezahlt wurde + $oehbeitrag = $konto->getOehBeitragGesamt($uid, $studiensemester_aktuell->studiensemester_kurzbz); + echo "\t\t".str_replace('.', ',', $oehbeitrag).""; + + // check ob Quereinsteiger + $ausbildungssemester = ($prestudent->getFirstStatus($student->prestudent_id, 'Student'))?$prestudent->ausbildungssemester:''; + echo "\t\t".$ausbildungssemester.""; + + $studiensemester_beginn = new studiensemester(); + $studienbeginn = ($prestudent->getFirstStatus($student->prestudent_id, 'Student'))?$prestudent->studiensemester_kurzbz:''; + $studiensemester_beginn->load($studienbeginn); + + echo "\t\t".$studiensemester_beginn->bezeichnung.""; + echo "\t\t".date('d.m.Y',strtotime($studiensemester_beginn->start)).""; + + $prestudent->getLastStatus($student->prestudent_id,$studiensemester,'Student'); + $studiensemester_abschluss = new studiensemester(); + $abschluss = $studiensemester_abschluss->jump($prestudent->studiensemester_kurzbz, $studienplan->regelstudiendauer-$prestudent->ausbildungssemester); + $studiensemester_abschluss->load($abschluss); + echo "\t\t".$studiensemester_abschluss->bezeichnung.""; + echo "\t\t".date('d.m.Y',strtotime($studiensemester_abschluss->ende)).""; + + $studiensemester_endedatum = new studiensemester(); + $studiensemester_endedatum->load($studiensemester_endedatum->getaktorNext(1)); + + echo "\t\t".date('d.m.Y',strtotime($studiensemester_endedatum->ende)).""; + + $status_aktuell = ($prestudent->getLastStatus($student->prestudent_id,null,null))?$prestudent->status_kurzbz:''; + + switch($status_aktuell) + { + case 'Student': + $studierendenstatus_aktuell = 'Aktive/r StudentIn'; + break; + case 'Unterbrecher': + $studierendenstatus_aktuell = 'UnterbrecherIn'; + break; + case 'Absolvent': + $studierendenstatus_aktuell = 'AbsolventIn'; + break; + case 'Diplomand': + $studierendenstatus_aktuell = 'DiplomandIn'; + break; + case 'Abbrecher': + $studierendenstatus_aktuell = 'AbbrecherIn'; + break; + default: + $studierendenstatus_aktuell =''; + } + + echo "\t\t".$studierendenstatus_aktuell."\n"; + echo "\t\t".$prestudent->zgvdatum."\n"; + $zgv = new zgv($prestudent->zgv_code); + echo "\t\t".$zgv->zgv_kurzbz."\n"; + echo "\t\t".$studienplan->bezeichnung."\n"; + echo "\t\tanmerkung]]>\n"; + + $titel_kurzbz = ''; + switch($studiengang->typ) + { + case 'b': + $studTyp = 'Bachelor'; + $titel_kurzbz = 'BSc'; + break; + case 'm': + $studTyp = 'Master'; + $titel_kurzbz ='MSc'; + break; + case 'd': + $studTyp = 'Diplom'; + break; + case 'l': + $studTyp = 'Lehrgang'; + break; + case 'k': + $studTyp = 'Kurzstudium'; + break; + default: + $studTyp =''; + $titel_kurzbz = ''; + } + + echo "\t\t".$titel_kurzbz."\n"; + echo "\t\t".$studTyp."\n"; + echo "\t\t".$studienplan->sprache."\n"; + echo "\t\t".$studienplan->regelstudiendauer."\n"; + + $akadgrad = new akadgrad(); + $akadgrad->getAkadgradStudent($student->uid); + + echo "\t\t".$akadgrad->titel."\n"; + echo "\t\t".$akadgrad->akadgrad_kurzbz."\n"; + + //für ao. Studierende wird die StgKz der Lehrveranstaltungen benötigt, die sie besuchen + $lv_studiengang_kz=''; + $lv_studiengang_bezeichnung=''; + $lv_studiengang_typ=''; + + $stg_typ=new studiengang(); + $lv=new lehrveranstaltung(); + $lv->load_lva_student($student->uid); + if(count($lv->lehrveranstaltungen)>0) + { + $lv_studiengang_kz=$lv->lehrveranstaltungen[0]->studiengang_kz; + $lv_studiengang=new studiengang(); + $lv_studiengang->load($lv_studiengang_kz); + $lv_studiengang_bezeichnung=$lv_studiengang->bezeichnung; + $stg_typ->getStudiengangTyp($lv_studiengang->typ); + $lv_studiengang_typ=$stg_typ->bezeichnung; + } + + echo "\t\t".sprintf('%04s', $lv_studiengang_kz).""; + echo "\t\t$lv_studiengang_typ"; + echo "\t\t$lv_studiengang_bezeichnung"; + + echo "\t\t".$datum_aktuell."\n"; + + $adresse = new adresse(); + $adresse->load_pers($student->person_id); + + foreach($adresse->result as $row_adresse) + { + if($row_adresse->zustelladresse) + { + echo "\t\tstrasse]]>\n"; + echo "\t\t".$row_adresse->plz." ".$row_adresse->ort."\n"; + echo "\t\t".$row_adresse->nation."\n"; + break; + } + } + foreach($adresse->result as $row_adresse) + { + if($row_adresse->heimatadresse) + { + echo "\t\tstrasse]]>\n"; + echo "\t\t".$row_adresse->plz." ".$row_adresse->ort."\n"; + echo "\t\t".$row_adresse->nation."\n"; + break; + } + } + $prestudent = new prestudent(); + $prestudent->getLastStatus($student->prestudent_id, null, 'Student'); + + if($prestudent->orgform_kurzbz!='') + $orgform = $prestudent->orgform_kurzbz; + else + $orgform = $studienplan->orgform_kurzbz; + + $orgform_bez = new organisationsform(); + $orgform_bez->load($orgform); + + echo "\t\t".$orgform."\n"; + echo "\t\t".$orgform_bez->bezeichnung."\n"; + + //Studiengangsleiter auslesen + $stg_oe_obj = new studiengang($studienordnung->studiengang_kz); + if ($studienordnung->studiengang_kz=='') + $stgleiter = $stg_oe_obj->getLeitung($student_help->studiengang_kz); + else + $stgleiter = $stg_oe_obj->getLeitung($studienordnung->studiengang_kz); + $stgl=''; + foreach ($stgleiter as $stgleiter_uid) + { + $stgl_ma = new mitarbeiter($stgleiter_uid); + $stgl .= trim($stgl_ma->titelpre.' '.$stgl_ma->vorname.' '.$stgl_ma->nachname.' '.$stgl_ma->titelpost); + } + + echo "\t\t$stgl\n"; + } + echo "\t\n"; +} +echo ""; + ?> \ No newline at end of file diff --git a/system/dbupdate_3.2.php b/system/dbupdate_3.2.php index 34324ab7d..73e6f86c5 100755 --- a/system/dbupdate_3.2.php +++ b/system/dbupdate_3.2.php @@ -107,7 +107,7 @@ if(!@$db->db_query("SELECT bewerbung_abgeschicktamum FROM public.tbl_prestudents //Spalte benotung in lehre.tbl_lehrveranstaltung if (!$result = @$db->db_query("SELECT benotung FROM lehre.tbl_lehrveranstaltung LIMIT 1;")) { - $qry = "ALTER TABLE lehre.tbl_lehrveranstaltung ADD COLUMN benotung boolean NOT NULL DEFAULT FALSE;"; + $qry = "ALTER TABLE lehre.tbl_lehrveranstaltung ADD COLUMN benotung boolean NOT NULL DEFAULT TRUE;"; if (!$db->db_query($qry)) echo 'lehre.tbl_lehrveranstaltung: ' . $db->db_last_error() . '
    '; @@ -118,7 +118,7 @@ if (!$result = @$db->db_query("SELECT benotung FROM lehre.tbl_lehrveranstaltung //Spalte lvinfo in lehre.tbl_lehrveranstaltung if (!$result = @$db->db_query("SELECT lvinfo FROM lehre.tbl_lehrveranstaltung LIMIT 1;")) { - $qry = "ALTER TABLE lehre.tbl_lehrveranstaltung ADD COLUMN lvinfo boolean NOT NULL DEFAULT FALSE;"; + $qry = "ALTER TABLE lehre.tbl_lehrveranstaltung ADD COLUMN lvinfo boolean NOT NULL DEFAULT TRUE;"; if (!$db->db_query($qry)) echo 'lehre.tbl_lehrveranstaltung: ' . $db->db_last_error() . '
    '; @@ -1114,9 +1114,30 @@ if (!$result = @$db->db_query("SELECT genehmigung FROM lehre.tbl_studienplan_leh echo ' lehre.tbl_studienplan_lehrveranstaltung: Spalte genehmigung hinzugefügt.
    '; } +//Spalte pruefungstyp_kurzbz in campus.tbl_pruefungsanmeldung +if (!$result = @$db->db_query("SELECT pruefungstyp_kurzbz FROM campus.tbl_pruefungsanmeldung LIMIT 1;")) +{ + $qry = "ALTER TABLE campus.tbl_pruefungsanmeldung ADD COLUMN pruefungstyp_kurzbz varchar(16); + ALTER TABLE campus.tbl_pruefungsanmeldung ADD CONSTRAINT fk_pruefungsanmeldung_pruefungstyp_pruefungstyp_kurzbz FOREIGN KEY (pruefungstyp_kurzbz) REFERENCES lehre.tbl_pruefungstyp(pruefungstyp_kurzbz) ON DELETE CASCADE ON UPDATE CASCADE;"; + + if (!$db->db_query($qry)) + echo 'campus.tbl_pruefungsanmeldung: ' . $db->db_last_error() . '
    '; + else + echo ' campus.tbl_pruefungsanmeldung: Spalte pruefungstyp_kurzbz hinzugefügt.
    '; +} + +// Neue Spalte bezeichnung_mehrsprachig bei tbl_status +if(!@$db->db_query("SELECT bezeichnung_mehrsprachig FROM public.tbl_status LIMIT 1")) +{ + $qry = " ALTER TABLE public.tbl_status ADD COLUMN bezeichnung_mehrsprachig varchar(255)[]; + update tbl_status set bezeichnung_mehrsprachig = cast('{'||status_kurzbz||','||status_kurzbz||'}' as varchar[]);"; - + if(!$db->db_query($qry)) + echo 'public.tbl_status '.$db->db_last_error().'
    '; + else + echo '
    Spalte bezeichnung_mehrsprachig in public.tbl_status hinzugefügt
    Die ersten beiden Sprachen wurden vorbefüllt. Weitere Übersetzungen sind zu ergänzen!
    '; +} // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen @@ -1327,7 +1348,7 @@ $tabellen=array( "public.tbl_prestudentstatus" => array("prestudent_id","status_kurzbz","studiensemester_kurzbz","ausbildungssemester","datum","orgform_kurzbz","insertamum","insertvon","updateamum","updatevon","ext_id","studienplan_id","bestaetigtam","bestaetigtvon","fgm","faktiv", "anmerkung","bewerbung_abgeschicktamum"), "public.tbl_raumtyp" => array("raumtyp_kurzbz","beschreibung","kosten"), "public.tbl_reihungstest" => array("reihungstest_id","studiengang_kz","ort_kurzbz","anmerkung","datum","uhrzeit","updateamum","updatevon","insertamum","insertvon","ext_id","freigeschaltet","max_teilnehmer","oeffentlich","studiensemester_kurzbz"), - "public.tbl_status" => array("status_kurzbz","beschreibung","anmerkung","ext_id"), + "public.tbl_status" => array("status_kurzbz","beschreibung","anmerkung","ext_id","bezeichnung_mehrsprachig"), "public.tbl_semesterwochen" => array("semester","studiengang_kz","wochen"), "public.tbl_service" => array("service_id", "bezeichnung","beschreibung","ext_id","oe_kurzbz","content_id"), "public.tbl_sprache" => array("sprache","locale","flagge","index","content","bezeichnung"), diff --git a/tests/codesniffer/FHComplete/Sniffs/Commenting/DocBlockAlignmentSniff.php b/tests/codesniffer/FHComplete/Sniffs/Commenting/DocBlockAlignmentSniff.php new file mode 100755 index 000000000..94b5a3e66 --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/Commenting/DocBlockAlignmentSniff.php @@ -0,0 +1,59 @@ +getTokens(); + $leftWall = array( + T_CLASS, + T_NAMESPACE, + T_INTERFACE, + T_TRAIT, + T_USE + ); + $oneIndentation = array( + T_FUNCTION, + T_VARIABLE, + T_CONST + ); + $allTokens = array_merge($leftWall, $oneIndentation); + $notFlatFile = $phpcsFile->findNext(T_NAMESPACE, 0); + $next = $phpcsFile->findNext($allTokens, $stackPtr + 1); + + if ($next && $notFlatFile) { + $notWalled = (in_array($tokens[$next]['code'], $leftWall) && $tokens[$stackPtr]['column'] !== 1); + $notIndented = (in_array($tokens[$next]['code'], $oneIndentation) && $tokens[$stackPtr]['column'] !== 5); + if ($notWalled || $notIndented) { + $phpcsFile->addError('Expected docblock to be aligned with code.', $stackPtr, 'NotAllowed'); + } + } + + return; + } +} diff --git a/tests/codesniffer/FHComplete/Sniffs/Commenting/FunctionCommentSniff.php b/tests/codesniffer/FHComplete/Sniffs/Commenting/FunctionCommentSniff.php new file mode 100755 index 000000000..34ea7e796 --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/Commenting/FunctionCommentSniff.php @@ -0,0 +1,487 @@ + + * @author Marc McIntyre + * @copyright 2006-2014 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @link http://pear.php.net/package/PHP_CodeSniffer + */ + +if (class_exists('PEAR_Sniffs_Commenting_FunctionCommentSniff', true) === false) { + throw new PHP_CodeSniffer_Exception('Class PEAR_Sniffs_Commenting_FunctionCommentSniff not found'); +} + +/** + * Parses and verifies the doc comments for functions. + * + * Verifies that : + *
      + *
    • A comment exists
    • + *
    • There is a blank newline after the short description
    • + *
    • There is a blank newline between the long and short description
    • + *
    • There is a blank newline between the long description and tags
    • + *
    • Parameter names represent those in the method
    • + *
    • Parameter comments are in the correct order
    • + *
    • Parameter comments are complete
    • + *
    • A type hint is provided for array and custom class
    • + *
    • Type hint matches the actual variable/class type
    • + *
    • A blank line is present before the first and after the last parameter
    • + *
    • A return type exists
    • + *
    • Any throw tag must have a comment
    • + *
    • The tag order and indentation are correct
    • + *
    + * + * @category PHP + * @package PHP_CodeSniffer + * @author Greg Sherwood + * @author Marc McIntyre + * @copyright 2006-2014 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @version Release: @package_version@ + * @link http://pear.php.net/package/PHP_CodeSniffer + */ +class FHComplete_Sniffs_Commenting_FunctionCommentSniff extends PEAR_Sniffs_Commenting_FunctionCommentSniff +{ + /** + * Is the comment an inheritdoc? + * + * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. + * @param int $stackPtr The position of the current token + * in the stack passed in $tokens. + * + * @return boolean True if the comment is an inheritdoc + */ + protected function isInheritDoc(PHP_CodeSniffer_File $phpcsFile, $stackPtr) + { + $start = $phpcsFile->findPrevious(T_DOC_COMMENT_OPEN_TAG, $stackPtr - 1); + $end = $phpcsFile->findNext(T_DOC_COMMENT_CLOSE_TAG, $start); + $content = $phpcsFile->getTokensAsString($start, ($end - $start)); + return preg_match('#{@inheritDoc}#', $content) === 1; + } // end isInheritDoc() + + /** + * Process the return comment of this function comment. + * + * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. + * @param int $stackPtr The position of the current token + * in the stack passed in $tokens. + * @param int $commentStart The position in the stack where the comment started. + * + * @return void + */ + protected function processReturn(PHP_CodeSniffer_File $phpcsFile, $stackPtr, $commentStart) + { + if ($this->isInheritDoc($phpcsFile, $stackPtr)) { + return; + } + + $tokens = $phpcsFile->getTokens(); + + // Skip constructor and destructor. + $className = ''; + foreach ($tokens[$stackPtr]['conditions'] as $condPtr => $condition) { + if ($condition === T_CLASS || $condition === T_INTERFACE) { + $className = $phpcsFile->getDeclarationName($condPtr); + $className = strtolower(ltrim($className, '_')); + } + } + + $methodName = $phpcsFile->getDeclarationName($stackPtr); + $isSpecialMethod = ($methodName === '__construct' || $methodName === '__destruct'); + if ($methodName !== '_') { + $methodName = strtolower(ltrim($methodName, '_')); + } + + $return = null; + foreach ($tokens[$commentStart]['comment_tags'] as $tag) { + if ($tokens[$tag]['content'] === '@return') { + if ($return !== null) { + $error = 'Only 1 @return tag is allowed in a function comment'; + $phpcsFile->addError($error, $tag, 'DuplicateReturn'); + return; + } + + $return = $tag; + } + } + + if ($isSpecialMethod === true) { + return; + } + + if ($return !== null) { + $content = $tokens[($return + 2)]['content']; + if (empty($content) === true || $tokens[($return + 2)]['code'] !== T_DOC_COMMENT_STRING) { + $error = 'Return type missing for @return tag in function comment'; + $phpcsFile->addError($error, $return, 'MissingReturnType'); + } else { + // Check return type (can be multiple, separated by '|'). + $typeNames = explode('|', $content); + $suggestedNames = array(); + foreach ($typeNames as $i => $typeName) { + if ($typeName === 'integer') { + $suggestedName = 'int'; + } elseif ($typeName === 'boolean') { + $suggestedName = 'bool'; + } elseif (in_array($typeName, array('int', 'bool'))) { + $suggestedName = $typeName; + } else { + $suggestedName = PHP_CodeSniffer::suggestType($typeName); + } + if (in_array($suggestedName, $suggestedNames) === false) { + $suggestedNames[] = $suggestedName; + } + } + + $suggestedType = implode('|', $suggestedNames); + if ($content !== $suggestedType) { + $error = 'Function return type "%s" is invalid'; + $error = 'Expected "%s" but found "%s" for function return type'; + $data = array( + $suggestedType, + $content, + ); + $phpcsFile->addError($error, $return, 'InvalidReturn', $data); + } + + // If the return type is void, make sure there is + // no return statement in the function. + if ($content === 'void') { + if (isset($tokens[$stackPtr]['scope_closer']) === true) { + $endToken = $tokens[$stackPtr]['scope_closer']; + for ($returnToken = $stackPtr; $returnToken < $endToken; $returnToken++) { + if ($tokens[$returnToken]['code'] === T_CLOSURE) { + $returnToken = $tokens[$returnToken]['scope_closer']; + continue; + } + + if ($tokens[$returnToken]['code'] === T_RETURN) { + break; + } + } + + if ($returnToken !== $endToken) { + // If the function is not returning anything, just + // exiting, then there is no problem. + $semicolon = $phpcsFile->findNext(T_WHITESPACE, ($returnToken + 1), null, true); + if ($tokens[$semicolon]['code'] !== T_SEMICOLON) { + $error = 'Function return type is void, but function contains return statement'; + $phpcsFile->addWarning($error, $return, 'InvalidReturnVoid'); + } + } + }//end if + } elseif (!preg_match('/^mixed/', $content)) { + // If return type is not void, there needs to be a return statement + // somewhere in the function that returns something. + if (isset($tokens[$stackPtr]['scope_closer']) === true) { + $endToken = $tokens[$stackPtr]['scope_closer']; + $returnToken = $phpcsFile->findNext(T_RETURN, $stackPtr, $endToken); + if ($returnToken === false) { + $error = 'Function return type is not void, but function has no return statement'; + $phpcsFile->addWarning($error, $return, 'InvalidNoReturn'); + } elseif (!preg_match('/void/', $content)) { + $semicolon = $phpcsFile->findNext(T_WHITESPACE, ($returnToken + 1), null, true); + if ($tokens[$semicolon]['code'] === T_SEMICOLON) { + $error = 'Function return type is not void, but function is returning void here'; + $phpcsFile->addWarning($error, $returnToken, 'InvalidReturnNotVoid'); + } + } + } + }//end if + }//end if + } else { + $error = 'Missing @return tag in function comment'; + $phpcsFile->addWarning($error, $tokens[$commentStart]['comment_closer'], 'MissingReturn'); + }//end if + + }//end processReturn() + + + /** + * Process any throw tags that this function comment has. + * + * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. + * @param int $stackPtr The position of the current token + * in the stack passed in $tokens. + * @param int $commentStart The position in the stack where the comment started. + * + * @return void + */ + protected function processThrows(PHP_CodeSniffer_File $phpcsFile, $stackPtr, $commentStart) + { + $tokens = $phpcsFile->getTokens(); + + $throws = array(); + foreach ($tokens[$commentStart]['comment_tags'] as $pos => $tag) { + if ($tokens[$tag]['content'] !== '@throws') { + continue; + } + + $exception = null; + $comment = null; + if ($tokens[($tag + 2)]['code'] === T_DOC_COMMENT_STRING) { + $matches = array(); + preg_match('/([^\s]+)(?:\s+(.*))?/', $tokens[($tag + 2)]['content'], $matches); + $exception = $matches[1]; + if (isset($matches[2]) === true) { + $comment = $matches[2]; + } + } + + if ($exception === null) { + $error = 'Exception type and comment missing for @throws tag in function comment'; + $phpcsFile->addWarning($error, $tag, 'InvalidThrows'); + } elseif ($comment === null) { + $error = 'Comment missing for @throws tag in function comment'; + $phpcsFile->addWarning($error, $tag, 'EmptyThrows'); + } else { + // Any strings until the next tag belong to this comment. + if (isset($tokens[$commentStart]['comment_tags'][($pos + 1)]) === true) { + $end = $tokens[$commentStart]['comment_tags'][($pos + 1)]; + } else { + $end = $tokens[$commentStart]['comment_closer']; + } + + for ($i = ($tag + 3); $i < $end; $i++) { + if ($tokens[$i]['code'] === T_DOC_COMMENT_STRING) { + $comment .= ' '.$tokens[$i]['content']; + } + } + + // Starts with a capital letter and ends with a fullstop. + $firstChar = $comment{0}; + if (strtoupper($firstChar) !== $firstChar) { + $error = '@throws tag comment must start with a capital letter'; + $phpcsFile->addWarning($error, ($tag + 2), 'ThrowsNotCapital'); + } + + $lastChar = substr($comment, -1); + if ($lastChar !== '.') { + $error = '@throws tag comment must end with a full stop'; + $phpcsFile->addWarning($error, ($tag + 2), 'ThrowsNoFullStop'); + } + }//end if + }//end foreach + + }//end processThrows() + + + /** + * Process the function parameter comments. + * + * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. + * @param int $stackPtr The position of the current token + * in the stack passed in $tokens. + * @param int $commentStart The position in the stack where the comment started. + * + * @return void + */ + protected function processParams(PHP_CodeSniffer_File $phpcsFile, $stackPtr, $commentStart) + { + if ($this->isInheritDoc($phpcsFile, $stackPtr)) { + return; + } + + $tokens = $phpcsFile->getTokens(); + + $params = array(); + $maxType = 0; + $maxVar = 0; + foreach ($tokens[$commentStart]['comment_tags'] as $pos => $tag) { + if ($tokens[$tag]['content'] !== '@param') { + continue; + } + + $type = ''; + $typeSpace = 0; + $var = ''; + $varSpace = 0; + $comment = ''; + $commentLines = array(); + if ($tokens[($tag + 2)]['code'] === T_DOC_COMMENT_STRING) { + $matches = array(); + preg_match('/([^$&]+)(?:((?:\$|&)[^\s]+)(?:(\s+)(.*))?)?/', $tokens[($tag + 2)]['content'], $matches); + + $typeLen = strlen($matches[1]); + $type = trim($matches[1]); + $typeSpace = ($typeLen - strlen($type)); + $typeLen = strlen($type); + if ($typeLen > $maxType) { + $maxType = $typeLen; + } + + if (isset($matches[2]) === true) { + $var = $matches[2]; + $varLen = strlen($var); + if ($varLen > $maxVar) { + $maxVar = $varLen; + } + + if (isset($matches[4]) === true) { + $varSpace = strlen($matches[3]); + $comment = $matches[4]; + $commentLines[] = array( + 'comment' => $comment, + 'token' => ($tag + 2), + 'indent' => $varSpace, + ); + + // Any strings until the next tag belong to this comment. + if (isset($tokens[$commentStart]['comment_tags'][($pos + 1)]) === true) { + $end = $tokens[$commentStart]['comment_tags'][($pos + 1)]; + } else { + $end = $tokens[$commentStart]['comment_closer']; + } + + for ($i = ($tag + 3); $i < $end; $i++) { + if ($tokens[$i]['code'] === T_DOC_COMMENT_STRING) { + $indent = 0; + if ($tokens[($i - 1)]['code'] === T_DOC_COMMENT_WHITESPACE) { + $indent = strlen($tokens[($i - 1)]['content']); + } + + $comment .= ' '.$tokens[$i]['content']; + $commentLines[] = array( + 'comment' => $tokens[$i]['content'], + 'token' => $i, + 'indent' => $indent, + ); + } + } + } else { + $error = 'Missing parameter comment'; + $phpcsFile->addError($error, $tag, 'MissingParamComment'); + $commentLines[] = array('comment' => ''); + }//end if + } else { + $error = 'Missing parameter name'; + $phpcsFile->addError($error, $tag, 'MissingParamName'); + }//end if + } else { + $error = 'Missing parameter type'; + $phpcsFile->addError($error, $tag, 'MissingParamType'); + }//end if + + $params[] = array( + 'tag' => $tag, + 'type' => $type, + 'var' => $var, + 'comment' => $comment, + 'commentLines' => $commentLines, + 'type_space' => $typeSpace, + 'var_space' => $varSpace, + ); + }//end foreach + + $realParams = $phpcsFile->getMethodParameters($stackPtr); + $foundParams = array(); + + foreach ($params as $pos => $param) { + // If the type is empty, the whole line is empty. + if ($param['type'] === '') { + continue; + } + + // Check the param type value. + $typeNames = explode('|', $param['type']); + foreach ($typeNames as $typeName) { + if ($typeName === 'integer') { + $suggestedName = 'int'; + } elseif ($typeName === 'boolean') { + $suggestedName = 'bool'; + } elseif (in_array($typeName, array('int', 'bool'))) { + $suggestedName = $typeName; + } else { + $suggestedName = PHP_CodeSniffer::suggestType($typeName); + } + + if ($typeName !== $suggestedName) { + $error = 'Expected "%s" but found "%s" for parameter type'; + $data = array( + $suggestedName, + $typeName, + ); + + $fix = $phpcsFile->addFixableError($error, $param['tag'], 'IncorrectParamVarName', $data); + if ($fix === true) { + $content = $suggestedName; + $content .= str_repeat(' ', $param['type_space']); + $content .= $param['var']; + $content .= str_repeat(' ', $param['var_space']); + $content .= $param['commentLines'][0]['comment']; + $phpcsFile->fixer->replaceToken(($param['tag'] + 2), $content); + } + } + }//end foreach + + if ($param['var'] === '') { + continue; + } + + $foundParams[] = $param['var']; + + // Make sure the param name is correct. + if (isset($realParams[$pos]) === true) { + $realName = $realParams[$pos]['name']; + if ($realName !== $param['var']) { + $code = 'ParamNameNoMatch'; + $data = array( + $param['var'], + $realName, + ); + + $error = 'Doc comment for parameter %s does not match '; + if (strtolower($param['var']) === strtolower($realName)) { + $error .= 'case of '; + $code = 'ParamNameNoCaseMatch'; + } + + $error .= 'actual variable name %s'; + + $phpcsFile->addWarning($error, $param['tag'], $code, $data); + } + } elseif (substr($param['var'], -4) !== ',...') { + // We must have an extra parameter comment. + $error = 'Superfluous parameter comment'; + $phpcsFile->addError($error, $param['tag'], 'ExtraParamComment'); + }//end if + + if ($param['comment'] === '') { + continue; + } + + // Param comments must start with a capital letter and end with the full stop. + $firstChar = $param['comment']{0}; + if (preg_match('|\p{Lu}|u', $firstChar) === 0) { + $error = 'Parameter comment must start with a capital letter'; + $phpcsFile->addWarning($error, $param['tag'], 'ParamCommentNotCapital'); + } + + $lastChar = substr($param['comment'], -1); + if ($lastChar !== '.') { + $error = 'Parameter comment must end with a full stop'; + $phpcsFile->addWarning($error, $param['tag'], 'ParamCommentFullStop'); + } + }//end foreach + + $realNames = array(); + foreach ($realParams as $realParam) { + $realNames[] = $realParam['name']; + } + + // Report missing comments. + $diff = array_diff($realNames, $foundParams); + foreach ($diff as $neededParam) { + $error = 'Doc comment for parameter "%s" missing'; + $data = array($neededParam); + $phpcsFile->addWarning($error, $commentStart, 'MissingParamTag', $data); + } + + }//end processParams() +}//end class diff --git a/tests/codesniffer/FHComplete/Sniffs/Commenting/FunctionCommentTypeSniff.php b/tests/codesniffer/FHComplete/Sniffs/Commenting/FunctionCommentTypeSniff.php new file mode 100755 index 000000000..722661165 --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/Commenting/FunctionCommentTypeSniff.php @@ -0,0 +1,87 @@ +getTokens(); + + // We are only interested in function/class/interface doc block comments. + $nextToken = $phpcsFile->findNext(PHP_CodeSniffer_Tokens::$emptyTokens, ($stackPtr + 1), null, true); + $ignore = array( + T_CLASS, + T_INTERFACE, + T_FUNCTION, + T_PUBLIC, + T_PRIVATE, + T_PROTECTED, + T_STATIC, + T_ABSTRACT, + ); + + if (in_array($tokens[$nextToken]['code'], $ignore) === false) { + // Could be a file comment. + $prevToken = $phpcsFile->findPrevious(PHP_CodeSniffer_Tokens::$emptyTokens, ($stackPtr - 1), null, true); + if ($tokens[$prevToken]['code'] !== T_OPEN_TAG) { + return; + } + } + + $types = array( + 'boolean' => 'bool', + 'integer' => 'int', + ); + foreach ($types as $from => $to) { + $this->_check($phpcsFile, $stackPtr, $from, $to); + } + } + + /** + * MyFHComplete_Sniffs_Commenting_DocBlockTypeSniff::_check() + * + * @param int $stackPtr + * @param string $from + * @param string $to + * @return void + */ + protected function _check(PHP_CodeSniffer_File $phpcsFile, $stackPtr, $from, $to) + { + $tokens = $phpcsFile->getTokens(); + $content = $tokens[$stackPtr]['content']; + + $matches = array(); + if (preg_match('/\@(\w+)\s+([\w\\|\\\\]*?)' . $from . '\b/i', $content, $matches) === 0) { + return; + } + + $error = 'Please use "' . $to . '" instead of "' . $from . '" for types in doc blocks.'; + $phpcsFile->addWarning($error, $stackPtr, 'WrongType'); + } + +} diff --git a/tests/codesniffer/FHComplete/Sniffs/ControlStructures/ControlSignatureSniff.php b/tests/codesniffer/FHComplete/Sniffs/ControlStructures/ControlSignatureSniff.php new file mode 100755 index 000000000..b78202cec --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/ControlStructures/ControlSignatureSniff.php @@ -0,0 +1,58 @@ + + * @author Marc McIntyre + * @copyright 2006-2014 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @version Release: @package_version@ + * @link http://pear.php.net/package/PHP_CodeSniffer + */ +class FHComplete_Sniffs_ControlStructures_ControlSignatureSniff extends PHP_CodeSniffer_Standards_AbstractPatternSniff +{ + + /** + * If true, comments will be ignored if they are found in the code. + * + * @var boolean + */ + public $ignoreComments = true; + + + /** + * Returns the patterns that this test wishes to verify. + * + * @return string[] + */ + protected function getPatterns() + { + return array( + 'try {EOL...}\s+catch (...)EOL...{EOL...EOL...}', + 'do+EOL...{EOL...EOL...} while (...);EOL', + 'while (...)EOL...{EOL', + 'for (...) {EOL', + 'if (...)EOL...{EOL', + 'foreach (...)EOL...{EOL', + '}EOL...\s+else if (...)EOL...{EOL', + '}EOL...\s+elseif (...)EOL...{EOL', + '}EOL...\s+else+EOL...{EOL', + 'do+EOL...{EOL', + ); + + }//end getPatterns() + + +}//end class diff --git a/tests/codesniffer/FHComplete/Sniffs/ControlStructures/ElseIfDeclarationSniff.php b/tests/codesniffer/FHComplete/Sniffs/ControlStructures/ElseIfDeclarationSniff.php new file mode 100755 index 000000000..1ef2f2aaf --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/ControlStructures/ElseIfDeclarationSniff.php @@ -0,0 +1,48 @@ +getTokens(); + + $nextToken = $phpcsFile->findNext(T_WHITESPACE, ($stackPtr + 1), null, true); + if ($tokens[$nextToken]['code'] !== T_IF) { + return; + } + + $error = 'Usage of ELSE IF not allowed; use ELSEIF instead'; + $phpcsFile->addError($error, $stackPtr, 'NotAllowed'); + } + +} diff --git a/tests/codesniffer/FHComplete/Sniffs/ControlStructures/WhileStructuresSniff.php b/tests/codesniffer/FHComplete/Sniffs/ControlStructures/WhileStructuresSniff.php new file mode 100755 index 000000000..421f86ba6 --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/ControlStructures/WhileStructuresSniff.php @@ -0,0 +1,56 @@ +getTokens(); + + $nextToken = $phpcsFile->findNext(T_WHITESPACE, ($stackPtr + 1), null, true); + if ($tokens[$nextToken]['code'] === T_OPEN_PARENTHESIS) { + $closer = $tokens[$nextToken]['parenthesis_closer']; + $diff = $closer - $stackPtr; + $nextToken = $phpcsFile->findNext(T_WHITESPACE, ($stackPtr + $diff + 1), null, true); + } + + if ($tokens[$stackPtr]['code'] === T_WHILE && $tokens[$nextToken]['code'] === T_SEMICOLON) { + /* This while is probably part of a do-while construction, skip it .. */ + return; + } + if ($tokens[$nextToken]['code'] !== T_OPEN_CURLY_BRACKET && $tokens[$nextToken]['code'] !== T_COLON) { + $error = 'Curly brackets required in a do-while or while loop'; + $phpcsFile->addError($error, $stackPtr, 'NotAllowed'); + } + } + +} diff --git a/tests/codesniffer/FHComplete/Sniffs/Formatting/OneClassPerUseSniff.php b/tests/codesniffer/FHComplete/Sniffs/Formatting/OneClassPerUseSniff.php new file mode 100755 index 000000000..2b2ee37e6 --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/Formatting/OneClassPerUseSniff.php @@ -0,0 +1,48 @@ +getTokens(); + $i = 2; // Ignore use word and whitespace + $filename = $phpcsFile->getFilename(); + + while (in_array($tokens[$stackPtr + $i]['code'], array(T_STRING, T_NS_SEPARATOR, T_WHITESPACE, T_AS))) { + $i++; + } + + if ($tokens[$stackPtr + $i]['code'] === T_COMMA) { + $error = 'Only one class is allowed per use'; + $phpcsFile->addError($error, $stackPtr, 'OneClassPerUse', array()); + } + } + +} diff --git a/tests/codesniffer/FHComplete/Sniffs/Formatting/UseInAlphabeticalOrderSniff.php b/tests/codesniffer/FHComplete/Sniffs/Formatting/UseInAlphabeticalOrderSniff.php new file mode 100755 index 000000000..43da15876 --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/Formatting/UseInAlphabeticalOrderSniff.php @@ -0,0 +1,142 @@ +_processed[$phpcsFile->getFilename()])) { + return; + } + $filename = $phpcsFile->getFilename(); + + $this->_uses = array(); + $next = $stackPtr; + + while ($next !== false) { + $this->_checkUseToken($phpcsFile, $next); + $next = $phpcsFile->findNext(T_USE, $next + 1); + } + + // Prevent multiple uses in the same file from entering + $this->_processed[$phpcsFile->getFilename()] = true; + + foreach ($this->_uses as $scope => $used) { + $defined = $sorted = array_keys($used); + + natcasesort($sorted); + $sorted = array_values($sorted); + if ($sorted === $defined) { + continue; + } + + foreach ($defined as $i => $name) { + if ($name !== $sorted[$i]) { + $error = 'Use classes must be in alphabetical order. Was expecting ' . $sorted[$i]; + $phpcsFile->addError($error, $used[$name], 'UseInAlphabeticalOrder', array()); + } + } + } + } + +/** + * Check all the use tokens in a file. + * + * @param PHP_CodeSniffer_File $phpcsFile The file to check. + * @param integer $stackPtr The index of the first use token. + * @return void + */ + protected function _checkUseToken($phpcsFile, $stackPtr) { + // If the use token is for a closure we want to ignore it. + $isClosure = $this->_isClosure($phpcsFile, $stackPtr); + if ($isClosure) { + return; + } + + $tokens = $phpcsFile->getTokens(); + + // Only one USE declaration allowed per statement. + $next = $phpcsFile->findNext(array(T_COMMA, T_SEMICOLON), ($stackPtr + 1)); + if ($tokens[$next]['code'] === T_COMMA) { + $error = 'There must be one USE keyword per declaration'; + $phpcsFile->addError($error, $stackPtr, 'MultipleDeclarations'); + } + + $content = ''; + $end = $phpcsFile->findNext(array(T_SEMICOLON, T_OPEN_CURLY_BRACKET), $stackPtr); + $useTokens = array_slice($tokens, $stackPtr, $end - $stackPtr, true); + + foreach ($useTokens as $index => $token) { + if ($token['code'] === T_STRING || $token['code'] === T_NS_SEPARATOR) { + $content .= $token['content']; + } + } + + // Check for class scoping on use. Traits should be + // ordered independently. + $scope = 0; + if (!empty($token['conditions'])) { + $scope = key($token['conditions']); + } + $this->_uses[$scope][$content] = $stackPtr; + } + +/** + * Check if the current stackPtr is a use token that is for a closure. + * + * @param PHP_CodeSniffer_File $phpcsFile + * @param integer $stackPtr + * @return boolean + */ + protected function _isClosure($phpcsFile, $stackPtr) { + return $phpcsFile->findPrevious( + array(T_CLOSURE), + ($stackPtr - 1), + null, + false, + null, + true + ); + } + +} diff --git a/tests/codesniffer/FHComplete/Sniffs/Functions/ClosureDeclarationSniff.php b/tests/codesniffer/FHComplete/Sniffs/Functions/ClosureDeclarationSniff.php new file mode 100755 index 000000000..6582d3011 --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/Functions/ClosureDeclarationSniff.php @@ -0,0 +1,35 @@ +getTokens(); + $spaces = 0; + + if ($tokens[($stackPtr + 1)]['code'] === T_WHITESPACE) { + $spaces = strlen($tokens[($stackPtr + 1)]['content']); + } + + if ($spaces !== 1) { + $error = 'Expected 1 space after closure\'s function keyword; %s found'; + $data = array($spaces); + $phpcsFile->addError($error, $stackPtr, 'SpaceAfterFunction', $data); + } + } + +} diff --git a/tests/codesniffer/FHComplete/Sniffs/Functions/FunctionDeclarationArgumentSpacingSniff.php b/tests/codesniffer/FHComplete/Sniffs/Functions/FunctionDeclarationArgumentSpacingSniff.php new file mode 100755 index 000000000..260ad1c10 --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/Functions/FunctionDeclarationArgumentSpacingSniff.php @@ -0,0 +1,26 @@ + + * @copyright 2006-2014 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @link http://pear.php.net/package/PHP_CodeSniffer + */ + +if (class_exists('Generic_Sniffs_NamingConventions_CamelCapsFunctionNameSniff', true) === false) { + throw new PHP_CodeSniffer_Exception('Class Generic_Sniffs_NamingConventions_CamelCapsFunctionNameSniff not found'); +} + +/** + * PSR1_Sniffs_Methods_CamelCapsMethodNameSniff. + * + * Ensures method names are defined using camel case. + * + * @category PHP + * @package PHP_CodeSniffer + * @author Greg Sherwood + * @copyright 2006-2014 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @version Release: @package_version@ + * @link http://pear.php.net/package/PHP_CodeSniffer + */ +class FHComplete_Sniffs_NamingConventions_CamelCapsMethodNameSniff extends Generic_Sniffs_NamingConventions_CamelCapsFunctionNameSniff +{ + + + /** + * Processes the tokens within the scope. + * + * @param PHP_CodeSniffer_File $phpcsFile The file being processed. + * @param int $stackPtr The position where this token was + * found. + * @param int $currScope The position of the current scope. + * + * @return void + */ + protected function processTokenWithinScope(PHP_CodeSniffer_File $phpcsFile, $stackPtr, $currScope) + { + $methodName = $phpcsFile->getDeclarationName($stackPtr); + if ($methodName === null + || substr($methodName,-4) === '_get' + || substr($methodName,-5) === '_post' + || substr($methodName,-4) === '_put' + || substr($methodName,-6) === '_patch' + || substr($methodName,-7) === '_delete' + ) + // Ignore closures. + return; + + // Ignore magic methods. + if (preg_match('|^__|', $methodName) !== 0) { + $magicPart = strtolower(substr($methodName, 2)); + if (isset($this->magicMethods[$magicPart]) === true + || isset($this->methodsDoubleUnderscore[$magicPart]) === true + ) { + return; + } + } + + $testName = ltrim($methodName, '_'); + if ($testName !== '' && PHP_CodeSniffer::isCamelCaps($testName, false, true, false) === false) { + $error = 'Method name "%s" is not in camel caps format'; + $className = $phpcsFile->getDeclarationName($currScope); + $errorData = array($className.'::'.$methodName); + $phpcsFile->addError($error, $stackPtr, 'NotCamelCaps', $errorData); + $phpcsFile->recordMetric($stackPtr, 'CamelCase method name', 'no'); + } else { + $phpcsFile->recordMetric($stackPtr, 'CamelCase method name', 'yes'); + } + + }//end processTokenWithinScope() + + + /** + * Processes the tokens outside the scope. + * + * @param PHP_CodeSniffer_File $phpcsFile The file being processed. + * @param int $stackPtr The position where this token was + * found. + * + * @return void + */ + protected function processTokenOutsideScope(PHP_CodeSniffer_File $phpcsFile, $stackPtr) + { + + }//end processTokenOutsideScope() + + +}//end class diff --git a/tests/codesniffer/FHComplete/Sniffs/NamingConventions/UpperCaseConstantNameSniff.php b/tests/codesniffer/FHComplete/Sniffs/NamingConventions/UpperCaseConstantNameSniff.php new file mode 100755 index 000000000..3137ea8cf --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/NamingConventions/UpperCaseConstantNameSniff.php @@ -0,0 +1,223 @@ + + * @author Marc McIntyre + * @copyright 2006-2012 Squiz Pty Ltd (ABN 77 084 670 600) + * @license https://github.com/squizlabs/PHP_CodeSniffer/blob/master/licence.txt BSD Licence + * @version Release: 1.5.0RC3 + * @link http://pear.php.net/package/PHP_CodeSniffer + */ +class FHComplete_Sniffs_NamingConventions_UpperCaseConstantNameSniff implements PHP_CodeSniffer_Sniff +{ + + /** + * Returns an array of tokens this test wants to listen for. + * + * @return array + */ + public function register() + { + return array(T_STRING); + } + + /** + * Processes this test, when one of its tokens is encountered. + * + * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. + * @param integer $stackPtr The position of the current token in the + * stack passed in $tokens. + * + * @return void + */ + public function process(PHP_CodeSniffer_File $phpcsFile, $stackPtr) + { + $tokens = $phpcsFile->getTokens(); + $constName = $tokens[$stackPtr]['content']; + + // If this token is in a heredoc, ignore it. + if ($phpcsFile->hasCondition($stackPtr, T_START_HEREDOC) === true) { + return; + } + + // Special case for PHPUnit. + if ($constName === 'PHPUnit_MAIN_METHOD') { + return; + } + + // If the next non-whitespace token after this token + // is not an opening parenthesis then it is not a function call. + $openBracket = $phpcsFile->findNext(T_WHITESPACE, ($stackPtr + 1), null, true); + if ($tokens[$openBracket]['code'] !== T_OPEN_PARENTHESIS) { + $functionKeyword = $phpcsFile->findPrevious( + array( + T_WHITESPACE, + T_COMMA, + T_COMMENT, + T_STRING, + T_NS_SEPARATOR, + ), + ($stackPtr - 1), + null, + true + ); + + $declarations = array( + T_FUNCTION, + T_CLASS, + T_INTERFACE, + T_TRAIT, + T_IMPLEMENTS, + T_EXTENDS, + T_INSTANCEOF, + T_NEW, + T_NAMESPACE, + T_USE, + T_AS, + T_GOTO, + T_INSTEADOF, + T_PROTECTED, + T_PRIVATE, + T_PUBLIC + ); + + if (in_array($tokens[$functionKeyword]['code'], $declarations) === true) { + // This is just a declaration; no constants here. + return; + } + + if ($tokens[$functionKeyword]['code'] === T_CONST) { + // This is a class constant. + if (strtoupper($constName) !== $constName) { + $error = 'Class constants must be uppercase; expected %s but found %s'; + $data = array( + strtoupper($constName), + $constName, + ); + $phpcsFile->addError($error, $stackPtr, 'ClassConstantNotUpperCase', $data); + } + + return; + } + + // Is this a class name? + $nextPtr = $phpcsFile->findNext(T_WHITESPACE, ($stackPtr + 1), null, true); + if ($tokens[$nextPtr]['code'] === T_DOUBLE_COLON) { + return; + } + + // Is this a namespace name? + if ($tokens[$nextPtr]['code'] === T_NS_SEPARATOR) { + return; + } + + // Is this an insteadof name? + if ($tokens[$nextPtr]['code'] === T_INSTEADOF) { + return; + } + + // Is this an as name? + if ($tokens[$nextPtr]['code'] === T_AS) { + return; + } + + // Is this a type hint? + if ($tokens[$nextPtr]['code'] === T_VARIABLE + || $phpcsFile->isReference($nextPtr) === true + ) { + return; + } + + // Is this a member var name? + $prevPtr = $phpcsFile->findPrevious(T_WHITESPACE, ($stackPtr - 1), null, true); + if ($tokens[$prevPtr]['code'] === T_OBJECT_OPERATOR) { + return; + } + + // Is this a variable name, in the form ${varname} ? + if ($tokens[$prevPtr]['code'] === T_OPEN_CURLY_BRACKET) { + $nextPtr = $phpcsFile->findNext(T_WHITESPACE, ($stackPtr + 1), null, true); + if ($tokens[$nextPtr]['code'] === T_CLOSE_CURLY_BRACKET) { + return; + } + } + + // Is this a namespace name? + if ($tokens[$prevPtr]['code'] === T_NS_SEPARATOR) { + return; + } + + // Is this an instance of declare() + $prevPtrDeclare = $phpcsFile->findPrevious( + array(T_WHITESPACE, T_OPEN_PARENTHESIS), + ($stackPtr - 1), + null, + true + ); + if ($tokens[$prevPtrDeclare]['code'] === T_DECLARE) { + return; + } + + // Is this a goto label target? + if ($tokens[$nextPtr]['code'] === T_COLON) { + if (in_array($tokens[$prevPtr]['code'], array(T_SEMICOLON, T_OPEN_CURLY_BRACKET, T_COLON), true)) { + return; + } + } + + // This is a real constant. + if (strtoupper($constName) !== $constName) { + $error = 'Constants must be uppercase; expected %s but found %s'; + $data = array( + strtoupper($constName), + $constName, + ); + $phpcsFile->addError($error, $stackPtr, 'ConstantNotUpperCase', $data); + } + + } elseif (strtolower($constName) === 'define' || strtolower($constName) === 'constant') { + /* + This may be a "define" or "constant" function call. + */ + // Make sure this is not a method call. + $prev = $phpcsFile->findPrevious(T_WHITESPACE, ($stackPtr - 1), null, true); + if ($tokens[$prev]['code'] === T_OBJECT_OPERATOR + || $tokens[$prev]['code'] === T_DOUBLE_COLON + ) { + return; + } + + // The next non-whitespace token must be the constant name. + $constPtr = $phpcsFile->findNext(T_WHITESPACE, ($openBracket + 1), null, true); + if ($tokens[$constPtr]['code'] !== T_CONSTANT_ENCAPSED_STRING) { + return; + } + + $constName = $tokens[$constPtr]['content']; + + // Check for constants like self::CONSTANT. + $prefix = ''; + $splitPos = strpos($constName, '::'); + if ($splitPos !== false) { + $prefix = substr($constName, 0, ($splitPos + 2)); + $constName = substr($constName, ($splitPos + 2)); + } + + if (strtoupper($constName) !== $constName) { + $error = 'Constants must be uppercase; expected %s but found %s'; + $data = array( + $prefix . strtoupper($constName), + $prefix . $constName, + ); + $phpcsFile->addError($error, $stackPtr, 'ConstantNotUpperCase', $data); + } + } + } +} diff --git a/tests/codesniffer/FHComplete/Sniffs/NamingConventions/ValidClassBracketsSniff.php b/tests/codesniffer/FHComplete/Sniffs/NamingConventions/ValidClassBracketsSniff.php new file mode 100755 index 000000000..a43ac59d0 --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/NamingConventions/ValidClassBracketsSniff.php @@ -0,0 +1,47 @@ +getTokens(); + + $found = $phpcsFile->findNext(T_OPEN_CURLY_BRACKET, $stackPtr); + if ($tokens[$found - 1]['code'] != T_WHITESPACE) { + $error = 'Expected 1 space after class declaration, found 0'; + $phpcsFile->addError($error, $found - 1, 'InvalidSpacing', array()); + return; + } + + if (strlen($tokens[$found - 1]['content']) > 1 || $tokens[$found - 2]['code'] == T_WHITESPACE) { + $error = 'Expected 1 space after class declaration, found ' . strlen($tokens[$found - 1]['content']); + $phpcsFile->addError($error, $found - 1, 'InvalidSpacing', array()); + } + } +} diff --git a/tests/codesniffer/FHComplete/Sniffs/NamingConventions/ValidFunctionNameSniff.php b/tests/codesniffer/FHComplete/Sniffs/NamingConventions/ValidFunctionNameSniff.php new file mode 100755 index 000000000..3281d83f9 --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/NamingConventions/ValidFunctionNameSniff.php @@ -0,0 +1,138 @@ +getDeclarationName($stackPtr); + if ($methodName === null) { + // Ignore closures. + return; + } + + $className = $phpcsFile->getDeclarationName($currScope); + $errorData = array($className . '::' . $methodName); + + // PHP4 constructors are allowed to break our rules. + if ($methodName === $className) { + return; + } + + // PHP4 destructors are allowed to break our rules. + if ($methodName === '_' . $className) { + return; + } + + // Ignore magic methods + if (preg_match('/^__(' . implode('|', $this->_magicMethods) . ')$/', $methodName)) { + return; + } + + $methodProps = $phpcsFile->getMethodProperties($stackPtr); + if ($methodProps['scope_specified'] === false) { + // Let another sniffer take care of that + return; + } + + $isPublic = $methodProps['scope'] === 'public'; + $isProtected = $methodProps['scope'] === 'protected'; + $isPrivate = $methodProps['scope'] === 'private'; + $scope = $methodProps['scope']; + + if ($isPublic === true) { + if ($methodName[0] === '_') { + $error = 'Public method name "%s" must not be prefixed with underscore'; + $phpcsFile->addError($error, $stackPtr, 'PublicWithUnderscore', $errorData); + return; + } + // Underscored public methods in controller are allowed to break our rules. + if (substr($className, -10) === 'Controller') { + return; + } + // Underscored public methods in shells are allowed to break our rules. + if (substr($className, -5) === 'Shell') { + return; + } + // Underscored public methods in tasks are allowed to break our rules. + if (substr($className, -4) === 'Task') { + return; + } + } elseif ($isPrivate === true) { + if (substr($methodName, 0, 2) !== '__') { + $error = 'Private method name "%s" must be prefixed with 2 underscores'; + $phpcsFile->addError($error, $stackPtr, 'PrivateNoUnderscore', $errorData); + return; + } else { + $filename = $phpcsFile->getFilename(); + if (strpos($filename, '/lib/Cake/') === true) { + $warning = 'Private method name "%s" in FHComplete core is discouraged'; + $phpcsFile->addWarning($warning, $stackPtr, 'PrivateMethodInCore', $errorData); + } + } + } else { + if ($methodName[0] !== '_' || substr($methodName, 0, 2) === '__') { + $error = 'Protected method name "%s" must be prefixed with one underscore'; + $phpcsFile->addError($error, $stackPtr, 'ProtectedNoUnderscore', $errorData); + return; + } + } + } + +/** + * Processes the tokens outside the scope. + * + * @param PHP_CodeSniffer_File $phpcsFile The file being processed. + * @param integer $stackPtr The position where this token was found. + * @return void + */ + protected function processTokenOutsideScope(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { + } + +} diff --git a/tests/codesniffer/FHComplete/Sniffs/NamingConventions/ValidTraitNameSniff.php b/tests/codesniffer/FHComplete/Sniffs/NamingConventions/ValidTraitNameSniff.php new file mode 100755 index 000000000..5364eab07 --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/NamingConventions/ValidTraitNameSniff.php @@ -0,0 +1,48 @@ +getTokens(); + $traitName = $tokens[$stackPtr + 2]['content']; + + if (substr($traitName, -5) !== 'Trait') { + $error = 'Traits must have a "Trait" suffix.'; + $phpcsFile->addError($error, $stackPtr, 'InvalidTraitName', array()); + } + } +} diff --git a/tests/codesniffer/FHComplete/Sniffs/NamingConventions/ValidVariableNameSniff.php b/tests/codesniffer/FHComplete/Sniffs/NamingConventions/ValidVariableNameSniff.php new file mode 100755 index 000000000..bce627331 --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/NamingConventions/ValidVariableNameSniff.php @@ -0,0 +1,171 @@ +getTokens(); + $varName = ltrim($tokens[$stackPtr]['content'], '$'); + + $phpReservedVars = array( + '_SERVER', + '_GET', + '_POST', + '_REQUEST', + '_SESSION', + '_ENV', + '_COOKIE', + '_FILES', + 'GLOBALS', + ); + + // If it's a php reserved var, then its ok. + if (in_array($varName, $phpReservedVars) === true) { + return; + } + + // There is no way for us to know if the var is public or private, + // so we have to ignore a leading underscore if there is one and just + // check the main part of the variable name. + $originalVarName = $varName; + if (substr($varName, 0, 1) === '_') { + $objOperator = $phpcsFile->findPrevious(array(T_WHITESPACE), ($stackPtr - 1), null, true); + if ($tokens[$objOperator]['code'] === T_DOUBLE_COLON) { + // The variable lives within a class, and is referenced like + // this: MyClass::$_variable, so we don't know its scope. + $inClass = true; + } else { + $inClass = $phpcsFile->hasCondition($stackPtr, array(T_TRAIT, T_CLASS, T_INTERFACE)); + } + + if ($inClass === true) { + $varName = ltrim($varName, '_'); + } + } + + // $title_for_layout is allowed on controllers + $fileName = basename($phpcsFile->getFilename(), '.php'); + if ((substr($fileName, -10) === 'Controller') && ($varName == 'title_for_layout')) { + return; + } + + if ($this->_isValidVar($varName) === false) { + $error = 'Variable "%s" is not in valid camel caps format'; + $data = array($originalVarName); + $phpcsFile->addError($error, $stackPtr, 'NotCamelCaps', $data); + } + } + +/** + * Processes class member variables. + * + * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. + * @param integer $stackPtr The position of the current token in the + * stack passed in $tokens. + * @return void + */ + protected function processMemberVar(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { + } + +/** + * Processes the variable found within a double quoted string. + * + * @param PHP_CodeSniffer_File $phpcsFile The file being scanned. + * @param integer $stackPtr The position of the double quoted string. + * @return void + */ + protected function processVariableInString(PHP_CodeSniffer_File $phpcsFile, $stackPtr) { + $tokens = $phpcsFile->getTokens(); + + $phpReservedVars = array( + '_SERVER', + '_GET', + '_POST', + '_REQUEST', + '_SESSION', + '_ENV', + '_COOKIE', + '_FILES', + 'GLOBALS', + ); + + if (preg_match_all('|[^\\\]\$([a-zA-Z0-9_]+)|', $tokens[$stackPtr]['content'], $matches) !== 0) { + foreach ($matches[1] as $varName) { + // If it's a php reserved var, then its ok. + if (in_array($varName, $phpReservedVars) === true) { + continue; + } + + // There is no way for us to know if the var is public or private, + // so we have to ignore a leading underscore if there is one and just + // check the main part of the variable name. + $originalVarName = $varName; + if (substr($varName, 0, 1) === '_') { + if ($phpcsFile->hasCondition($stackPtr, array(T_CLASS, T_INTERFACE)) === true) { + $varName = substr($varName, 1); + } + } + + if ($this->_isValidVar($varName) === false) { + $error = 'Variable "%s" is not in valid camel caps format'; + $data = array($originalVarName); + $phpcsFile->addError($error, $stackPtr, 'StringVarNotCamelCaps', $data); + } + } + } + } + +/** + * Check that a variable is a valid shape. + * + * Variables in FHComplete can either be $fooBar, $FooBar, $_fooBar, or $_FooBar. + * + * @param string $string The variable to check. + * @param boolea $public Whether or not the variable is public. + * @return boolean + */ + protected function _isValidVar($string, $public = true) { + $firstChar = '[a-zA-Z]'; + if (!$public) { + $firstChar = '[_]{1,2}' . $firstChar; + } + if (preg_match("|^$firstChar|", $string) === 0) { + return false; + } + $firstStringCount = 1; + if (preg_match("|^__|", $string)) { + $firstStringCount = 2; + } + // Check that the name only contains legal characters. + $legalChars = 'a-zA-Z0-9'; + if (preg_match("|[^$legalChars]|", substr($string, $firstStringCount)) > 0) { + return false; + } + return true; + } + +} diff --git a/tests/codesniffer/FHComplete/Sniffs/PHP/DisallowShortOpenTagSniff.php b/tests/codesniffer/FHComplete/Sniffs/PHP/DisallowShortOpenTagSniff.php new file mode 100755 index 000000000..cd3b8598e --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/PHP/DisallowShortOpenTagSniff.php @@ -0,0 +1,53 @@ +getTokens(); + $openTag = $tokens[$stackPtr]; + + if (trim($openTag['content']) === 'addError($error, $stackPtr, 'Found', $data); + } + } +} diff --git a/tests/codesniffer/FHComplete/Sniffs/PHP/TypeCastingSniff.php b/tests/codesniffer/FHComplete/Sniffs/PHP/TypeCastingSniff.php new file mode 100755 index 000000000..2595c4f56 --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/PHP/TypeCastingSniff.php @@ -0,0 +1,74 @@ +getTokens(); + + // Process !! casts + if ($tokens[$stackPtr]['code'] == T_BOOLEAN_NOT) { + $nextToken = $phpcsFile->findNext(T_WHITESPACE, ($stackPtr + 1), null, true); + if (!$nextToken) { + return; + } + if ($tokens[$nextToken]['code'] != T_BOOLEAN_NOT) { + return; + } + $error = 'Usage of !! cast is not allowed. Please use (bool) to cast.'; + $phpcsFile->addError($error, $stackPtr, 'NotAllowed'); + + return; + } + + // Only allow short forms if both short and long forms are possible + $matching = array( + '(boolean)' => '(bool)', + '(integer)' => '(int)', + ); + $content = $tokens[$stackPtr]['content']; + $key = strtolower($content); + if (isset($matching[$key])) { + $error = 'Please use ' . $matching[$key] . ' instead of ' . $content . '.'; + $phpcsFile->addError($error, $stackPtr, 'NotAllowed'); + return; + } + if ($content !== $key) { + $error = 'Please use ' . $key . ' instead of ' . $content . '.'; + $phpcsFile->addError($error, $stackPtr, 'NotAllowed'); + return; + } + } +} diff --git a/tests/codesniffer/FHComplete/Sniffs/Strings/ConcatenationSpacingSniff.php b/tests/codesniffer/FHComplete/Sniffs/Strings/ConcatenationSpacingSniff.php new file mode 100755 index 000000000..59eaaf974 --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/Strings/ConcatenationSpacingSniff.php @@ -0,0 +1,48 @@ +getTokens(); + if ($tokens[($stackPtr - 1)]['code'] == T_WHITESPACE) { + $message = 'Expected 0 spaces before ., but 1 found'; + $phpcsFile->addError($message, $stackPtr, 'FoundBefore'); + } + + if ($tokens[($stackPtr + 1)]['code'] == ' ') + { + $message = 'Expected 0 spaces after ., but 1 found'; + $phpcsFile->addError($message, $stackPtr, 'FoundAfter'); + } + } +} diff --git a/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/CommaSpacingSniff.php b/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/CommaSpacingSniff.php new file mode 100755 index 000000000..7506abe9f --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/CommaSpacingSniff.php @@ -0,0 +1,54 @@ +getTokens(); + + $next = $phpcsFile->findNext(T_WHITESPACE, ($stackPtr + 1), null, true); + + if ($tokens[$next]['code'] !== T_WHITESPACE && ($next !== $stackPtr + 2)) { + // Last character in a line is ok. + if ($tokens[$next]['line'] === $tokens[$stackPtr]['line']) { + $error = 'Missing space after comma'; + $phpcsFile->addError($error, $next); + } + } + + $previous = $phpcsFile->findPrevious(T_WHITESPACE, ($stackPtr - 1), null, true); + + if ($tokens[$previous]['code'] !== T_WHITESPACE && ($previous !== $stackPtr - 1)) { + $error = 'Space before comma, expected none, though'; + $phpcsFile->addError($error, $next); + } + } +} diff --git a/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/FunctionCallSpacingSniff.php b/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/FunctionCallSpacingSniff.php new file mode 100755 index 000000000..8a3cbc8e0 --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/FunctionCallSpacingSniff.php @@ -0,0 +1,53 @@ +getTokens(); + + // Find the next non-empty token. + $openBracket = $phpcsFile->findNext(PHP_CodeSniffer_Tokens::$emptyTokens, ($stackPtr + 1), null, true); + + if ($tokens[$openBracket]['code'] !== T_OPEN_PARENTHESIS) { + // Not a function call. + return; + } + + // Look for funcName ( + if (($stackPtr + 1) !== $openBracket) { + $error = 'Space before opening parenthesis of function call not allowed'; + $phpcsFile->addError($error, $stackPtr, 'SpaceBeforeOpenBracket'); + } + } +} diff --git a/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/FunctionClosingBraceSpaceSniff.php b/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/FunctionClosingBraceSpaceSniff.php new file mode 100755 index 000000000..83e7ac73e --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/FunctionClosingBraceSpaceSniff.php @@ -0,0 +1,69 @@ +getTokens(); + + if (isset($tokens[$stackPtr]['scope_closer']) === false) { + // Probably an interface method. + return; + } + + $closeBrace = $tokens[$stackPtr]['scope_closer']; + $prevContent = $phpcsFile->findPrevious(T_WHITESPACE, ($closeBrace - 1), null, true); + + $braceLine = $tokens[$closeBrace]['line']; + $prevLine = $tokens[$prevContent]['line']; + + $found = ($braceLine - $prevLine - 1); + if ($phpcsFile->hasCondition($stackPtr, T_FUNCTION) === true + || isset($tokens[$stackPtr]['nested_parenthesis']) === true + ) { + // Nested function. + if ($found < 0) { + $error = 'Closing brace of nested function must be on a new line'; + $phpcsFile->addError($error, $closeBrace, 'ContentBeforeClose'); + } elseif ($found > 0) { + $error = 'Expected 0 blank lines before closing brace of nested function; %s found'; + $data = array($found); + $phpcsFile->addError($error, $closeBrace, 'SpacingBeforeNestedClose', $data); + } + } else { + if ($found !== 0) { + $error = 'Expected 0 blank lines before closing function brace; %s found'; + $data = array($found); + $phpcsFile->addError($error, $closeBrace, 'SpacingBeforeClose', $data); + } + } + } +} diff --git a/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/FunctionOpeningBraceSpaceSniff.php b/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/FunctionOpeningBraceSpaceSniff.php new file mode 100755 index 000000000..d202e760a --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/FunctionOpeningBraceSpaceSniff.php @@ -0,0 +1,62 @@ +getTokens(); + + if (isset($tokens[$stackPtr]['scope_opener']) === false) { + // Probably an interface method. + return; + } + + $openBrace = $tokens[$stackPtr]['scope_opener']; + $nextContent = $phpcsFile->findNext(T_WHITESPACE, ($openBrace + 1), null, true); + + if ($nextContent === $tokens[$stackPtr]['scope_closer']) { + // The next bit of content is the closing brace, so this + // is an empty function and should have a blank line + // between the opening and closing braces. + return; + } + + $braceLine = $tokens[$openBrace]['line']; + $nextLine = $tokens[$nextContent]['line']; + + $found = ($nextLine - $braceLine - 1); + if ($found > 0) { + $error = 'Expected 0 blank lines after opening function brace; %s found'; + $data = array($found); + $phpcsFile->addError($error, $openBrace, 'SpacingAfter', $data); + } + } +} diff --git a/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/FunctionSpacingSniff.php b/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/FunctionSpacingSniff.php new file mode 100755 index 000000000..09f6a55b0 --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/FunctionSpacingSniff.php @@ -0,0 +1,129 @@ +getTokens(); + + /* + Check the number of blank lines + after the function. + */ + + if (isset($tokens[$stackPtr]['scope_closer']) === false) { + // Must be an interface method, so the closer is the semi-colon. + $closer = $phpcsFile->findNext(T_SEMICOLON, $stackPtr); + } else { + $closer = $tokens[$stackPtr]['scope_closer']; + } + + // There needs to be 1 blank lines after the closer. + $nextLineToken = null; + for ($i = $closer; $i < $phpcsFile->numTokens; $i++) { + if (strpos($tokens[$i]['content'], $phpcsFile->eolChar) === false) { + continue; + } else { + $nextLineToken = ($i + 1); + break; + } + } + + if ($nextLineToken === null) { + // Never found the next line, which means + // there are 0 blank lines after the function. + $foundLines = 0; + } else { + $nextContent = $phpcsFile->findNext(array(T_WHITESPACE), ($nextLineToken + 1), null, true); + if ($nextContent === false) { + // We are at the end of the file. That is acceptable as well. + $foundLines = 1; + } else { + $foundLines = ($tokens[$nextContent]['line'] - $tokens[$nextLineToken]['line']); + } + } + + /* + Check the number of blank lines + before the function. + */ + + $prevLineToken = null; + for ($i = $stackPtr; $i > 0; $i--) { + if (strpos($tokens[$i]['content'], $phpcsFile->eolChar) === false) { + continue; + } else { + $prevLineToken = $i; + break; + } + } + + if ($prevLineToken === null) { + // Never found the previous line, which means + // there are 0 blank lines before the function. + $foundLines = 0; + } else { + $prevContent = $phpcsFile->findPrevious(array(T_WHITESPACE, T_DOC_COMMENT), $prevLineToken, null, true); + + // Before we throw an error, check that we are not throwing an error + // for another function. We don't want to error for no blank lines after + // the previous function and no blank lines before this one as well. + $currentLine = $tokens[$stackPtr]['line']; + $prevLine = ($tokens[$prevContent]['line'] - 1); + $i = ($stackPtr - 1); + $foundLines = 0; + while ($currentLine !== $prevLine && $currentLine > 1 && $i > 0) { + if (isset($tokens[$i]['scope_condition']) === true) { + $scopeCondition = $tokens[$i]['scope_condition']; + if ($tokens[$scopeCondition]['code'] === T_FUNCTION) { + // Found a previous function. + return; + } + } elseif ($tokens[$i]['code'] === T_FUNCTION) { + // Found another interface function. + return; + } + + $currentLine = $tokens[$i]['line']; + if ($currentLine === $prevLine) { + break; + } + + if ($tokens[($i - 1)]['line'] < $currentLine && $tokens[($i + 1)]['line'] > $currentLine) { + // This token is on a line by itself. If it is whitespace, the line is empty. + if ($tokens[$i]['code'] === T_WHITESPACE) { + $foundLines++; + } + } + $i--; + } + } + } +} diff --git a/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/ObjectOperatorSpacingSniff.php b/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/ObjectOperatorSpacingSniff.php new file mode 100755 index 000000000..a52680736 --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/ObjectOperatorSpacingSniff.php @@ -0,0 +1,42 @@ +getTokens(); + + $nextType = $tokens[($stackPtr + 1)]['code']; + if (in_array($nextType, PHP_CodeSniffer_Tokens::$emptyTokens) === true) { + $error = 'Space found after object operator'; + $phpcsFile->addError($error, $stackPtr, 'After'); + } + } +} diff --git a/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/OperatorSpacingSniff.php b/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/OperatorSpacingSniff.php new file mode 100755 index 000000000..efeef023a --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/OperatorSpacingSniff.php @@ -0,0 +1,185 @@ +getTokens(); + + // Skip default values in function declarations. + if ($tokens[$stackPtr]['code'] === T_EQUAL + || $tokens[$stackPtr]['code'] === T_MINUS + ) { + if (isset($tokens[$stackPtr]['nested_parenthesis']) === true) { + $parenthesis = array_keys($tokens[$stackPtr]['nested_parenthesis']); + $bracket = array_pop($parenthesis); + if (isset($tokens[$bracket]['parenthesis_owner']) === true) { + $function = $tokens[$bracket]['parenthesis_owner']; + if ($tokens[$function]['code'] === T_FUNCTION) { + return; + } + } + } + } + + if ($tokens[$stackPtr]['code'] === T_EQUAL) { + // Skip for '=&' case. + if (isset($tokens[($stackPtr + 1)]) === true && $tokens[($stackPtr + 1)]['code'] === T_BITWISE_AND) { + return; + } + } + + if ($tokens[$stackPtr]['code'] === T_BITWISE_AND) { + // If its not a reference, then we expect one space either side of the + // bitwise operator. + if (!$phpcsFile->isReference($stackPtr) && !$this->isVariable($stackPtr, $tokens, $phpcsFile)) { + // Check there is one space before the & operator. + if ($tokens[($stackPtr - 1)]['code'] !== T_WHITESPACE) { + $error = 'Expected 1 space before "&" operator; 0 found'; + $phpcsFile->addError($error, $stackPtr, 'NoSpaceBeforeAmp'); + } + + // Check there is one space after the & operator. + if ($tokens[($stackPtr + 1)]['code'] !== T_WHITESPACE) { + $error = 'Expected 1 space after "&" operator; 0 found'; + $phpcsFile->addError($error, $stackPtr, 'NoSpaceAfterAmp'); + } + } + } else { + if ($tokens[$stackPtr]['code'] === T_MINUS) { + // Skip declaration of negative value in new array format; eg. $arr = [-1]. + if ($tokens[($stackPtr - 1)]['code'] === T_OPEN_SHORT_ARRAY) { + return; + } + + // Check minus spacing, but make sure we aren't just assigning + // a minus value or returning one. + $prev = $phpcsFile->findPrevious(T_WHITESPACE, ($stackPtr - 1), null, true); + if ($tokens[$prev]['code'] === T_RETURN) { + // Just returning a negative value; eg. return -1. + return; + } + + if (in_array($tokens[$prev]['code'], PHP_CodeSniffer_Tokens::$operators) === true) { + // Just trying to operate on a negative value; eg. ($var * -1). + return; + } + + if (in_array($tokens[$prev]['code'], PHP_CodeSniffer_Tokens::$comparisonTokens) === true) { + // Just trying to compare a negative value; eg. ($var === -1). + return; + } + + // A list of tokens that indicate that the token is not + // part of an arithmetic operation. + $invalidTokens = array( + T_COMMA, + T_OPEN_PARENTHESIS, + T_OPEN_SQUARE_BRACKET, + T_DOUBLE_ARROW, + T_COLON, + T_INLINE_THEN, + T_INLINE_ELSE, + T_CASE, + ); + + if (in_array($tokens[$prev]['code'], $invalidTokens) === true) { + // Just trying to use a negative value; eg. myFunction($var, -2). + return; + } + if (in_array($tokens[$prev]['code'], PHP_CodeSniffer_Tokens::$assignmentTokens) === true) { + // Just trying to assign a negative value; eg. ($var = -1). + return; + } + } + + $operator = $tokens[$stackPtr]['content']; + + if ($tokens[($stackPtr - 1)]['code'] !== T_WHITESPACE) { + $error = "Expected 1 space before \"$operator\"; 0 found"; + $phpcsFile->addError($error, $stackPtr, 'NoSpaceBefore'); + } + + if ($tokens[($stackPtr + 1)]['code'] !== T_WHITESPACE) { + $error = "Expected 1 space after \"$operator\"; 0 found"; + $phpcsFile->addError($error, $stackPtr, 'NoSpaceAfter'); + } + } + } + + /** + * Check if the current token is inside an array. + * + * @param int $stackPtr The current token offset. + * @param array $phpcsFile The current token list. + * @return bool + */ + protected function isVariable($stackPtr, $tokens, $phpcsFile) + { + $tokenAfter = $phpcsFile->findNext( + PHP_CodeSniffer_Tokens::$emptyTokens, + ($stackPtr + 1), + null, + true + ); + $tokenBefore = $phpcsFile->findNext( + PHP_CodeSniffer_Tokens::$emptyTokens, + ($stackPtr - 1), + null, + true + ); + + if ($tokens[$tokenAfter]['code'] === T_VARIABLE && + ( + $tokens[$tokenBefore]['code'] === T_OPEN_PARENTHESIS || + $tokens[$tokenBefore]['code'] === T_COMMA || + $tokens[$tokenBefore]['code'] === T_OPEN_SHORT_ARRAY + ) + ) { + return true; + } + return false; + } +} diff --git a/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/ScopeIndentSniff.php b/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/ScopeIndentSniff.php new file mode 100755 index 000000000..b3e998ed4 --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/ScopeIndentSniff.php @@ -0,0 +1,280 @@ +getTokens(); + + // If this is an inline condition (ie. there is no scope opener), then + // return, as this is not a new scope. + if (isset($tokens[$stackPtr]['scope_opener']) === false) { + return; + } + + if ($tokens[$stackPtr]['code'] === T_ELSE) { + $next = $phpcsFile->findNext( + PHP_CodeSniffer_Tokens::$emptyTokens, + ($stackPtr + 1), + null, + true + ); + + // We will handle the T_IF token in another call to process. + if ($tokens[$next]['code'] === T_IF) { + return; + } + } + + // Find the first token on this line. + $firstToken = $stackPtr; + for ($i = $stackPtr; $i >= 0; $i--) { + // Record the first code token on the line. + if (in_array($tokens[$i]['code'], PHP_CodeSniffer_Tokens::$emptyTokens) === false) { + $firstToken = $i; + } + + // It's the start of the line, so we've found our first php token. + if ($tokens[$i]['column'] === 1) { + break; + } + } + + // Based on the conditions that surround this token, determine the + // indent that we expect this current content to be. + $expectedIndent = $this->calculateExpectedIndent($tokens, $firstToken); + + $scopeOpener = $tokens[$stackPtr]['scope_opener']; + $scopeCloser = $tokens[$stackPtr]['scope_closer']; + + // Some scopes are expected not to have indents. + if (in_array($tokens[$firstToken]['code'], $this->nonIndentingScopes) === false) { + $indent = ($expectedIndent + $this->indent); + } else { + $indent = $expectedIndent; + } + + $newline = false; + $commentOpen = false; + $inHereDoc = false; + + // Only loop over the content beween the opening and closing brace, not + // the braces themselves. + for ($i = ($scopeOpener + 1); $i < $scopeCloser; $i++) { + // If this token is another scope, skip it as it will be handled by + // another call to this sniff. + if (in_array($tokens[$i]['code'], PHP_CodeSniffer_Tokens::$scopeOpeners) === true) { + if (isset($tokens[$i]['scope_opener']) === true) { + $i = $tokens[$i]['scope_closer']; + + // If the scope closer is followed by a semi-colon, the semi-colon is part + // of the closer and should also be ignored. This most commonly happens with + // CASE statements that end with "break;", where we don't want to stop + // ignoring at the break, but rather at the semi-colon. + $nextToken = $phpcsFile->findNext(PHP_CodeSniffer_Tokens::$emptyTokens, ($i + 1), null, true); + if ($tokens[$nextToken]['code'] === T_SEMICOLON) { + $i = $nextToken; + } + } else { + // If this token does not have a scope_opener indice, then + // it's probably an inline scope, so let's skip to the next + // semicolon. Inline scopes include inline if's, abstract + // methods etc. + $nextToken = $phpcsFile->findNext(T_SEMICOLON, $i, $scopeCloser); + if ($nextToken !== false) { + $i = $nextToken; + } + } + continue; + } + + // If this is a HEREDOC then we need to ignore it as the + // whitespace before the contents within the HEREDOC are + // considered part of the content. + if ($tokens[$i]['code'] === T_START_HEREDOC) { + $inHereDoc = true; + continue; + } elseif ($inHereDoc === true) { + if ($tokens[$i]['code'] === T_END_HEREDOC) { + $inHereDoc = false; + } + continue; + } + + if ($tokens[$i]['column'] === 1) { + // We started a newline. + $newline = true; + } + + if ($newline === true && $tokens[$i]['code'] !== T_WHITESPACE) { + // If we started a newline and we find a token that is not + // whitespace, then this must be the first token on the line that + // must be indented. + $newline = false; + $firstToken = $i; + + $column = $tokens[$firstToken]['column']; + + // Special case for non-PHP code. + if ($tokens[$firstToken]['code'] === T_INLINE_HTML) { + $trimmedContentLength = strlen(ltrim($tokens[$firstToken]['content'])); + if ($trimmedContentLength === 0) { + continue; + } + + $contentLength = strlen($tokens[$firstToken]['content']); + $column = ($contentLength - $trimmedContentLength + 1); + } + + // If we're starting a new PHP block that has the scope closer + // as the next token we'll skip the remaining checks as the scope is closed. + if ($tokens[$firstToken]['code'] === T_OPEN_TAG && + $scopeCloser == $firstToken + 1 + ) { + continue; + } + + // Check to see if this constant string spans multiple lines. + // If so, then make sure that the strings on lines other than the + // first line are indented appropriately, based on their whitespace. + if (in_array($tokens[$firstToken]['code'], PHP_CodeSniffer_Tokens::$stringTokens) === true) { + if (in_array($tokens[($firstToken - 1)]['code'], PHP_CodeSniffer_Tokens::$stringTokens) === true) { + // If we find a string that directly follows another string + // then its just a string that spans multiple lines, so we + // don't need to check for indenting. + continue; + } + } + + // This is a special condition for T_DOC_COMMENT and C-style + // comments, which contain whitespace between each line. + $comments = array( + T_COMMENT, + T_DOC_COMMENT + ); + + $isDocComment = false; + if (in_array($tokens[$firstToken]['code'], $comments) === true) { + $content = trim($tokens[$firstToken]['content']); + if (preg_match('|^/\*|', $content) !== 0) { + // Check to see if the end of the comment is on the same line + // as the start of the comment. If it is, then we don't + // have to worry about opening a comment. + if (preg_match('|\*/$|', $content) === 0) { + // We don't have to calculate the column for the + // start of the comment as there is a whitespace + // token before it. + $commentOpen = true; + $isDocComment = (substr($content, 0, 3) === '/**'); + } + } elseif ($commentOpen === true) { + if ($content === '') { + // We are in a comment, but this line has nothing on it + // so let's skip it. + continue; + } + + $contentLength = strlen($tokens[$firstToken]['content']); + $trimmedContentLength = strlen(ltrim($tokens[$firstToken]['content'])); + + $column = ($contentLength - $trimmedContentLength + 1); + if (preg_match('|\*/$|', $content) !== 0) { + $commentOpen = false; + } + } + } + } + } + } + + /** + * Calculates the expected indent of a token. + * + * @param array $tokens The stack of tokens for this file. + * @param int $stackPtr The position of the token to get indent for. + * @return int + */ + protected function calculateExpectedIndent(array $tokens, $stackPtr) + { + $conditionStack = array(); + + // Empty conditions array (top level structure). + if (empty($tokens[$stackPtr]['conditions']) === true) { + if (isset($tokens[$stackPtr]['nested_parenthesis']) === true + && empty($tokens[$stackPtr]['nested_parenthesis']) === false + ) { + // Wrapped in parenthesis means it is probably in a + // function call (like a closure) so we have to assume indent + // is correct here and someone else will check it more + // carefully in another sniff. + return $tokens[$stackPtr]['column']; + } else { + return 1; + } + } + + $tokenConditions = $tokens[$stackPtr]['conditions']; + foreach ($tokenConditions as $id => $condition) { + // If it's an indenting scope ie. it's not in our array of + // scopes that don't indent, add it to our condition stack. + if (in_array($condition, $this->nonIndentingScopes) === false) { + $conditionStack[$id] = $condition; + } + } + return ((count($conditionStack) * $this->indent) + 1); + } +} diff --git a/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/TabAndSpaceSniff.php b/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/TabAndSpaceSniff.php new file mode 100755 index 000000000..0c2593aa1 --- /dev/null +++ b/tests/codesniffer/FHComplete/Sniffs/WhiteSpace/TabAndSpaceSniff.php @@ -0,0 +1,63 @@ +getTokens(); + + $line = $tokens[$stackPtr]['line']; + if ($stackPtr > 0 && $tokens[($stackPtr - 1)]['line'] !== $line) { + return; + } + + if (strpos($tokens[$stackPtr]['content'], " \t") !== false) { + $error = 'Space and tab found'; + $phpcsFile->addError($error, $stackPtr); + } + if (strpos($tokens[$stackPtr]['content'], "\t ") !== false) { + $error = 'Tab and space found'; + $phpcsFile->addError($error, $stackPtr); + } + } +} diff --git a/tests/codesniffer/FHComplete/ruleset.xml b/tests/codesniffer/FHComplete/ruleset.xml new file mode 100755 index 000000000..6673d18fe --- /dev/null +++ b/tests/codesniffer/FHComplete/ruleset.xml @@ -0,0 +1,92 @@ + + + FHComplete's coding standard + + \.git + */Config/*.ini.php + /*/tmp/ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + */tests/* + + + */tests/* + + + + + diff --git a/tests/codesniffer/FHComplete/tests/FHCompletePHPStandardTest.php b/tests/codesniffer/FHComplete/tests/FHCompletePHPStandardTest.php new file mode 100755 index 000000000..8c933aa95 --- /dev/null +++ b/tests/codesniffer/FHComplete/tests/FHCompletePHPStandardTest.php @@ -0,0 +1,67 @@ +helper)) { + $this->helper = new TestHelper(); + } + } + +/** + * testFiles + * + * Run simple syntax checks, if the filename ends with pass.php - expect it to pass + */ + public static function testProvider() { + $tests = array(); + + $standard = dirname(dirname(__FILE__)); + + $iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator(dirname(__FILE__) . '/files')); + foreach ($iterator as $dir) { + if ($dir->isDir()) { + continue; + } + + $file = $dir->getPathname(); + $expectPass = (substr($file, -8) === 'pass.php'); + $tests[] = array( + $file, + $standard, + $expectPass + ); + } + return $tests; + } + +/** + * _testFile + * + * @dataProvider testProvider + * + * @param string $file + * @param string $standard + * @param boolean $expectPass + */ + public function testFile($file, $standard, $expectPass) { + $outputStr = $this->helper->runPhpCs($file); + if ($expectPass) { + $this->assertNotRegExp( + "/FOUND \d+ ERROR/", + $outputStr, + basename($file) . ' - expected to pass with no errors, some were reported. ' + ); + } else { + $this->assertRegExp( + "/FOUND \d+ ERROR/", + $outputStr, + basename($file) . ' - expected failures, none reported. ' + ); + } + } + +} diff --git a/tests/codesniffer/FHComplete/tests/TestHelper.php b/tests/codesniffer/FHComplete/tests/TestHelper.php new file mode 100755 index 000000000..4d86b5fe4 --- /dev/null +++ b/tests/codesniffer/FHComplete/tests/TestHelper.php @@ -0,0 +1,54 @@ +_phpcs = new PHP_CodeSniffer_CLI(); + } + +/** + * Run PHPCS on a file. + * + * @param string $file to run. + * @return string The output from phpcs. + */ + public function runPhpCs($file) { + $defaults = $this->_phpcs->getDefaults(); + $standard = dirname(__FILE__) . '/ruleset.xml'; + if ( + defined('PHP_CodeSniffer::VERSION') && + version_compare(PHP_CodeSniffer::VERSION, '1.5.0') != -1 + ) { + $standard = array($standard); + } + $options = array( + 'encoding' => 'utf-8', + 'files' => array($file), + 'standard' => $standard, + 'showSources' => true, + ) + $defaults; + + // New PHPCS has a strange issue where the method arguments + // are not stored on the instance causing weird errors. + $reflection = new ReflectionProperty($this->_phpcs, 'values'); + $reflection->setAccessible(true); + $reflection->setValue($this->_phpcs, $options); + + ob_start(); + $this->_phpcs->process($options); + $result = ob_get_contents(); + ob_end_clean(); + return $result; + } + +} diff --git a/tests/codesniffer/FHComplete/tests/bootstrap.php b/tests/codesniffer/FHComplete/tests/bootstrap.php new file mode 100755 index 000000000..b6ef51c7c --- /dev/null +++ b/tests/codesniffer/FHComplete/tests/bootstrap.php @@ -0,0 +1,2 @@ + 100) { + echo 'i > 100'; +} + +while (false) { + echo 'false'; +} + +do { + echo 'dowhile test'; +} while (false); diff --git a/tests/codesniffer/FHComplete/tests/files/control_structure_dowhile.php b/tests/codesniffer/FHComplete/tests/files/control_structure_dowhile.php new file mode 100755 index 000000000..54b2190d4 --- /dev/null +++ b/tests/codesniffer/FHComplete/tests/files/control_structure_dowhile.php @@ -0,0 +1,6 @@ +something ('testing'); +fail_whale (); diff --git a/tests/codesniffer/FHComplete/tests/files/mixing_indent.php b/tests/codesniffer/FHComplete/tests/files/mixing_indent.php new file mode 100755 index 000000000..0400dd514 --- /dev/null +++ b/tests/codesniffer/FHComplete/tests/files/mixing_indent.php @@ -0,0 +1,6 @@ + 'after 2 tabs' + ); +} diff --git a/tests/codesniffer/FHComplete/tests/files/multiple_use.php b/tests/codesniffer/FHComplete/tests/files/multiple_use.php new file mode 100755 index 000000000..b239a6419 --- /dev/null +++ b/tests/codesniffer/FHComplete/tests/files/multiple_use.php @@ -0,0 +1,6 @@ + + + + +passingPublic = 'changed'; + $this->underscored = 'has value now'; + $this->doubleUnderscore = 'not recommended'; + } + + /** + * [setStatics description] + * + * @return void + */ + public static function setStatics() + { + self::$publicStatic = true; + self::$protectedStatic = true; + self::$privateStatic = true; + } +} diff --git a/tests/codesniffer/FHComplete/tests/files/whitespace_comma.php b/tests/codesniffer/FHComplete/tests/files/whitespace_comma.php new file mode 100755 index 000000000..78e43d5f0 --- /dev/null +++ b/tests/codesniffer/FHComplete/tests/files/whitespace_comma.php @@ -0,0 +1,2 @@ + + + FH-Complete coding standard + + + + + 0 + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/vilesci/lehre/lehreinheiten_vorrueckung.php b/vilesci/lehre/lehreinheiten_vorrueckung.php index 2b1edad37..79f4405fb 100644 --- a/vilesci/lehre/lehreinheiten_vorrueckung.php +++ b/vilesci/lehre/lehreinheiten_vorrueckung.php @@ -247,6 +247,7 @@ if($studiengang_kz!='' && $stsem_von!='' && $stsem_nach!='') $lem_obj->insertamum = date('Y-m-d H:i:s'); $lem_obj->insertvon = 'Vorrueckung_'.$user; $lem_obj->ext_id = ''; + $lem_obj->vertrag_id=''; if(!$lem_obj->save()) { @@ -339,4 +340,4 @@ if($studiengang_kz!='' && $stsem_von!='' && $stsem_nach!='') ?> - \ No newline at end of file + diff --git a/wawi/bestellung.php b/wawi/bestellung.php index b7b5c6f7d..6544af6a9 100644 --- a/wawi/bestellung.php +++ b/wawi/bestellung.php @@ -2695,7 +2695,7 @@ function sendBestellerMail($bestellung, $status) switch($status) { case 'bestellt': $email.=" Ihre Bestellung wurde bestellt"; break; - case 'geliefert': $email.=" Ihre Bestellung wurde geliefert
    Hinweis: Nach erfolgter Lieferung werden Waren ab einem Wert von EUR 250,-- pro Einzelposition inventarisiert.
    "; break; + case 'geliefert': $email.=" Ihre Bestellung wurde geliefert
    Hinweis: Nach erfolgter Lieferung werden Waren ab einem Wert von EUR 400,-- pro Einzelposition inventarisiert.
    "; break; case 'freigabe': $email.=" Ihre Bestellung wurde freigegeben"; break; case 'storno': $email.=" Ihre Bestellung wurde storniert"; break; }