Compare commits

..

26 Commits

Author SHA1 Message Date
Paolo 8ae4a0ef3d Merge branch 'master' into feature-61599/DocumentExportLib_erweitern 2026-06-11 12:49:46 +02:00
Paolo 92465fd943 Merge branch 'master' into feature-61599/DocumentExportLib_erweitern 2026-04-27 13:03:56 +02:00
Paolo 5df7358aff Merge branch 'master' into feature-61599/DocumentExportLib_erweitern 2026-03-24 10:51:09 +01:00
Paolo c70129cf37 Code cleaning OP#71539 2026-02-23 14:55:50 +01:00
Paolo 4b8f757a7c Merge branch 'master' into feature-61599/DocumentExportLib_erweitern 2026-02-23 12:26:37 +01:00
Alexei Karpenko e1bad61a27 api/frontend/Documents.php: removed addmeta debugging calls 2026-02-09 18:53:51 +01:00
Alexei Karpenko f4d8a396f5 document export bugfixes: getting content from db in Documents.php, correctly return data in Dokumente.php, passing temp folder in DocumentExportLib, path fix in DocumentLib, correct parameters in Archiv.php getByPersonId call, Archiv.js: check if array is returned, different controller for download (dokumente instead of akte) 2026-02-09 14:22:39 +01:00
Paolo 0b797cfdb1 Merge branch 'master' into feature-61599/DocumentExportLib_erweitern 2026-02-09 12:35:12 +01:00
Alexei Karpenko 7909edb402 fixed bug in FHC_Controller outputFile method: corrected filename header name 2026-02-03 17:32:38 +01:00
Paolo 7a7cda3488 Merge branch 'master' into feature-61599/DocumentExportLib_erweitern 2026-01-13 16:38:13 +01:00
Paolo 3f52b8c8d1 Merge branch 'master' into feature-61599/DocumentExportLib_erweitern 2025-10-21 15:04:48 +02:00
Paolo deaacc494d Fixed indentation 2025-10-01 11:05:41 +02:00
Paolo 21733d1e5e Merge branch 'master' into feature-61599/DocumentExportLib_erweitern 2025-10-01 09:39:40 +02:00
Paolo 28ef0b5892 Replaced global function uploadFile with the protected method FHC_Controller->uploadFile 2025-09-29 09:37:39 +02:00
Paolo 1657ae8291 - Removed global function uploadFile from application/helpers/hlp_common_helper.php
- Added new protected method uploadFile to application/core/FHC_Controller.php
- Replaced global function uploadFile with the protected method FHC_Controller->uploadFile
2025-09-29 09:32:21 +02:00
Paolo 517f39dc1f Removed unused parameter from the application/libraries/DmsLib.php constructor 2025-09-24 14:29:31 +02:00
Paolo b129bb659b - application/libraries/DocumentExportLib.php now makes use of the application/libraries/SignatureLib.php
- Fixex & improvements
2025-09-18 10:40:28 +02:00
Paolo d54ab06ad4 - Removed DocumentExportLib->showContent
- Adapted code to replace DocumentExportLib->showContent with DocumentExportLib->getContent + file download
- DocumentExportLib now makes use of the DocumentLib
2025-09-17 16:53:14 +02:00
Paolo 2dc341e048 Removed DMS_PATH from the file name in the DmsLib->getOutputFileInfo 2025-09-16 17:37:55 +02:00
Paolo 36f857428e - Fixed typos
- application/controllers/Cis/Pub.php bild method refactored
- Replaced AkteModel with AkteLib where possible
- application/core/FHC_Controller->outputFile added new features + improvements
- Added new public methods outputImageByContent and outputImageByFile to application/core/FHC_Controller
- Added new private method _outputImage to application/core/FHC_Controller
- AkteLib fixes
2025-09-16 17:12:59 +02:00
Paolo 909eb0bf57 Fixed AkteLib->_remove 2025-09-15 17:42:40 +02:00
Paolo 949fdfa5ca - DmsLib->download removed
- DmsLib->upload replaced by uploadFile
- Removed who parameter from DmsLib constructor
- Added insert by into DmsLib add and addLastVersion
- Removed commented code
- Replaced self with $this in the Anrechnung classes
- Added removeByPersonIdAndDmsId to AkteLib
2025-09-15 17:16:48 +02:00
Paolo 6edc8a127f Fixed application/libraries/DocumentExportLib.php to generate docs with DocsboxLib 2025-09-09 15:55:56 +02:00
Paolo eaacbcf7cc - Bugfix in application/controllers/Cis/Documents.php
- application/libraries/AkteLib.php->_get fixes
- b/application/libraries/DmsLib.php better handling when no DMS is found
2025-09-09 15:48:53 +02:00
Paolo 88cdd43b3e Fixed AkteLib 2025-09-09 14:28:36 +02:00
Paolo 2ee0c95467 - DmsLib:
- Removed deprecated methods from the DMSLib, these were the "problematic" types of methods:
		- Methods that would perform an upload/download of the file (should be performed by a controller)
		- Methods that were returning a base64 representation of the file (what if the file is a 1Gb?)
		- Methods that were performing operation on the akte (should be done in the AkteLib)
	- The first two types have been removed and added new utility method to read a file (wrapper of the DMSFSModel)
	- The last type of methods has been removed and same functionalities already exists in the AkteLib
	- Minor fixes
- AkteLib:
	- Added new methods to get an akte with relative content (even from the DMS) with different parameters (akte_id, person_id, dokument_kurzbz, signiert, stud_selfservice)
- AkteModel:
	- Removed the getArchiv method
- Replaced the usage of the AkteModel with the AkteLib as much as possible. AkteModel is used mainly to quickly check if an akte exists or not, otherwise the AkteLib is used for read/write operations
- Replaced the DmsLib usage with the AkteLib usage where the old deprecated DmsLib methods, that were working with the akte too, were used
2025-09-09 13:28:56 +02:00
122 changed files with 1847 additions and 65367 deletions
+2 -9
View File
@@ -186,7 +186,7 @@ $config['navigation_header'] = array(
'description' => 'Extensions Manager',
'expand' => true,
'sort' => 10,
'requiredPermissions' => 'system/extensions:r'
'requiredPermissions' => 'admin:r'
),
'logsviewer' => array(
'link' => site_url('system/LogsViewer'),
@@ -199,14 +199,7 @@ $config['navigation_header'] = array(
'link' => site_url('system/jq/JobsQueueViewer'),
'description' => 'Jobs Queue Viewer',
'expand' => true,
'sort' => 30,
'requiredPermissions' => 'system/developer:r'
),
'phrasesviewer' => array(
'link' => site_url('system/phrases/PhrasesViewer'),
'description' => 'Phrases viewer',
'expand' => true,
'sort' => 40,
'sort' => 20,
'requiredPermissions' => 'system/developer:r'
),
'anrechnungen' => array(
+10 -5
View File
@@ -20,8 +20,12 @@ class Documents extends Auth_Controller
'download' => [self::PERM_LOGGED]
]);
// Load models
$this->load->model('crm/Prestudentstatus_model', 'PrestudentstatusModel');
// Load libraries
$this->load->library('AkteLib');
$this->loadPhrases([
'global',
'tools'
@@ -112,10 +116,12 @@ class Documents extends Auth_Controller
$selfservice = null;
if (!defined('CIS_DOKUMENTE_SELFSERVICE') || CIS_DOKUMENTE_SELFSERVICE) {
$this->load->model('crm/Akte_model', 'AkteModel');
$selfservice = [];
foreach ($person_ids as $person_id) {
$result = $this->AkteModel->getArchiv($person_id, null, true);
$result = $this->aktelib->getByPersonId(
$person_id,
true
);
if (isError($result))
return $this->load->view('errors/html/error_db.php', [
'heading' => 'Database Error',
@@ -147,14 +153,13 @@ class Documents extends Auth_Controller
if (!is_numeric($akte_id))
return show_404();
$this->load->model('crm/Akte_model', 'AkteModel');
$result = $this->AkteModel->load($akte_id);
$result = $this->aktelib->getByAkteId($akte_id);
if (isError($result))
return show_error(getError($result));
$akte = getData($result);
if (!$akte)
return show_404();
$akte = current($akte);
$akte = reset($akte);
$admin_access = false;
if ($uid !== null && $this->permissionlib->isBerechtigt('admin')) {
+2 -1
View File
@@ -64,7 +64,7 @@ class ProfilUpdate extends Auth_Controller
{
// Get file to be downloaded from DMS
$newFilename = $this->uid . "/document_" . $dms_id;
$download = $this->dmslib->download($dms_id);
$download = $this->dmslib->getOutputFileInfo($dms_id);
if (isError($download))
return $download;
@@ -84,3 +84,4 @@ class ProfilUpdate extends Auth_Controller
}
}
}
+48 -82
View File
@@ -29,10 +29,14 @@ class Pub extends Auth_Controller
*/
public function bild($source, $id)
{
$this->load->model('person/Person_model', 'PersonModel');
$person_id_user = '';
$person_id_user = getAuthPersonId();
$serverzugriff = false;
// Default Bild (Dummy Profilbild)
$outputFileName = FHCPATH . 'skin/images/profilbild_dummy.jpg';
$outputFileContent = '';
$mimetype = 'application/jpeg';
$this->load->model('person/Person_model', 'PersonModel');
// Wenn das Bild direkt aufgerufen wird, ist eine Authentifizierung erforderlich
// Wenn es vom Server selbst aufgerufen wird, ist keine Auth. notwendig
@@ -45,31 +49,27 @@ class Pub extends Auth_Controller
'zugangscode' => $_SESSION['incoming/user']
]);
if (hasData($result))
$person_id_user = current(getData($result))->person_id;
$person_id_user = getData($result)[0]->person_id;
} elseif (isset($_SESSION['prestudent/user'])) { // Von Prestudententool
$result = $this->PersonModel->loadWhere([
'zugangscode' => $_SESSION['prestudent/user']
]);
if (hasData($result))
$person_id_user = current(getData($result))->person_id;
$person_id_user = getData($result)[0]->person_id;
} elseif (isset($_SESSION['bewerbung/personId'])) { // Von Bewerbungstool
$person_id_user = $_SESSION['bewerbung/personId'];
} else {
$person_id_user = getAuthPersonId();
}
} else {
$serverzugriff = true;
}
// Default Bild (Dummy Profilbild)
$cTmpHEX = base64_encode(file_get_contents(FHCPATH . 'skin/images/profilbild_dummy.jpg'));
if ($source == 'person' && $id) {
// If the picture is from the person table
if ($source == 'person' && is_numeric($id)) {
$foto_gesperrt = false;
// Person laden und Fotosperre überprüfen
$result = $this->PersonModel->load($id);
if (hasData($result)) {
$person = current(getData($result));
$person = getData($result)[0];
if ($person->foto_sperre) {
// Wenn der User selbst darauf zugreift darf er das Bild sehen
$foto_gesperrt = ($person_id_user != $id);
@@ -77,91 +77,57 @@ class Pub extends Auth_Controller
$foto_gesperrt = true;
}
if ($person->foto && !$foto_gesperrt) {
$cTmpHEX = base64_decode($person->foto);
if (!isEmptyString($person->foto) && !$foto_gesperrt) {
$outputFileContent = base64_decode($person->foto);
}
}
}
if($source == 'akte' && $id != '')
// If the picture is from the akte/dms
if($source == 'akte' && is_numeric($id))
{
$this->load->model('crm/Akte_model', 'AkteModel');
$mimetype = '';
$this->load->library('AkteLib');
$this->AkteModel->addJoin('public.tbl_person', 'person_id');
$result = $this->AkteModel->loadWhere([
'person_id' => $id,
'dokument_kurzbz' => 'Lichtbil'
]);
$akteResult = $this->aktelib->getByAkteId($id, 'Lichtbil');
if (hasData($result)) {
if (hasData($akteResult)) {
$foto_gesperrt = false;
$akte = getData($akteResult)[0];
$akte = current(getData($result));
if ($akte->foto_sperre) {
// Wenn der User selbst darauf zugreift darf er das Bild sehen
$foto_gesperrt = ($person_id_user != $id);
} elseif (!$person_id_user && !$serverzugriff) {
$foto_gesperrt = true;
}
// Wenn das Foto nicht im Inhalt steht wird aus aus dem DMS geladen
if (!$akte->inhalt && $akte->dms_id) {
$this->load->model('content/Dms_model', 'DmsModel');
$this->load->model('content/DmsVersion_model', 'DmsVersionModel');
$this->DmsModel->addJoin('campus.tbl_dms_version', 'dms_id');
$this->DmsModel->addOrder('version', 'DESC');
$this->DmsModel->addLimit(1);
$result = $this->DmsModel->load($akte->dms_id);
if (!hasData($result))
die('Kein Dokument vorhanden');
$dms = current(getData($result));
$filename = DMS_PATH . $dms->filename;
$this->DmsVersionModel->update([
'dms_id' => $dms->dms_id,
'version' => $dms->version
], [
'letzterzugriff' => date('c')
]);
if (file_exists($filename)) {
$handle = fopen($filename, "r");
if ($handle) {
while (!feof($handle)) {
$akte->inhalt .= fread($handle, 8192);
}
fclose($handle);
} else {
echo 'Fehler: Datei konnte nicht geoeffnet werden';
}
} else {
echo 'Die Datei existiert nicht';
$personResult = $this->PersonModel->load($akte->person_id);
if (hasData($personResult)) {
$person = getData($personResult)[0];
if ($person->foto_sperre) {
$foto_gesperrt = ($person_id_user != $id);
} elseif (!$person_id_user && !$serverzugriff) {
$foto_gesperrt = true;
}
}
if ($akte->inhalt && !$foto_gesperrt) {
$cTmpHEX = $akte->inhalt;
// Wenn das Foto nicht im Inhalt steht wird aus aus dem DMS geladen
if (!isEmptyString($akte->inhalt)) {
$outputFileContent = base64_decode($akte->inhalt);
$mimetype = $akte->mimetype;
}
}
}
// die bilder werden, sofern es funktioniert, in jpg umgewandelt da es sonst zu fehlern beim erstellen
// von pdfs kommen kann.
$im = @imagecreatefromstring(base64_decode($cTmpHEX));
if ($im) {
@ob_clean();
header("Content-type: image/jpeg");
exit(imagejpeg($im));
} else {
// bei manchen Bildern funktioniert die konvertierung nicht
// diese werden dann einfach so angezeigt.
@ob_clean();
header("Content-type: image/gif");
exit($cTmpHEX);
// If file content is provided
if (!isEmptyString($outputFileContent))
{
// If a mimetype is still not found
if (isEmptyString($mimetype))
{
$fo = finfo_open();
$mimetype = finfo_buffer($fo, $outputFileContent, FILEINFO_MIME_TYPE);
}
$this->outputImageByContent($mimetype, $outputFileContent);
}
else // otherwise use the file
{
$this->outputImageByFile($mimetype, $outputFileName);
}
}
}
+18 -6
View File
@@ -143,7 +143,7 @@ class Documents extends Auth_Controller
$result = $this->VorlagestudiengangModel->getCurrent($xsl, $xsl_oe_kurzbz, $version);
if (isError($result))
return show_error(getError($result));
show_error(getError($result));
if (!hasData($result))
return show_404();
@@ -226,13 +226,13 @@ class Documents extends Auth_Controller
$result = $this->VorlageModel->load($xsl);
if (isError($result))
return show_error(getError($result));
show_error(getError($result));
if (!hasData($result))
show_404();
$vorlage = current(getData($result));
if ($sign_user && !$vorlage->signierbar)
return show_error($this->p->t("stv", "grades_error_sign"));
show_error($this->p->t("stv", "grades_error_sign"));
// Filename
@@ -284,11 +284,23 @@ class Documents extends Auth_Controller
// XML Data
$result = $this->documentexportlib->getDataURL($xml, $params);
if (isError($result))
return show_error(getError($result));
show_error(getError($result));
$data = getData($result);
// Output
$this->documentexportlib->showContent($filename, $vorlage, $data, $xsl_oe_kurzbz, $version, $outputformat, $sign_user);
// Get the content
$contentResult = $this->documentexportlib->getContent($filename, $vorlage, $data, $xsl_oe_kurzbz, $version, $outputformat, $sign_user);
// If an error occurred
if (isError($contentResult)) show_error(getError($contentResult));
$fileObj = new stdClass();
$fileObj->file_content = getData($contentResult);
$fileObj->name = $filename;
$fileObj->mimetype = isEmptyString($vorlage->mimetype) ? 'application/pdf' : $vorlage->mimetype;
$fileObj->disposition = 'attachment';
// Download
$this->outputFile($fileObj);
}
}
@@ -51,6 +51,8 @@ class Documents extends FHCAPI_Controller
$this->loadPhrases([
'stv'
]);
$this->load->library('DocumentExportLib');
}
/**
@@ -100,23 +102,11 @@ class Documents extends FHCAPI_Controller
{
$akteExportData = $this->_getAkteExportData($xml, $xsl, $sign_user);
$akteData = $akteData['akteData'];
$exportData = $akteData['exportData'];
/**
* [
'vorlage' => $vorlage,
'xml_data' => $data,
'oe_kurzbz' => $xsl_oe_kurzbz,
'version' => $version,
'outputformat' => $outputformat,
'sign_user' => $sign_user
]
*/
$akteData = $akteExportData['akteData'];
$exportData = $akteExportData['exportData'];
// Output
$result = $this->documentexportlib->showContent(
$akteData['akteData']['inhalt'],
$contentResult = $this->documentexportlib->getContent(
$exportData['vorlage'],
$exportData['xml_data'],
$exportData['oe_kurzbz'],
@@ -125,7 +115,9 @@ class Documents extends FHCAPI_Controller
$exportData['sign_user']
);
$this->terminateWithSuccess(true);
$content = $this->getDataOrTerminateWithError($contentResult);
$this->terminateWithFileOutput($akteData['mimetype'], $content, $akteData['titel'] . '.pdf');
}
/**
@@ -161,12 +153,10 @@ class Documents extends FHCAPI_Controller
$this->load->library('form_validation');
if (!$xml) {
$xml = $this->input->post_get('xml');
$this->addMeta('xml', $xml);
$this->form_validation->set_rules('xml', 'xml', 'required');
}
if (!$xsl) {
$xsl = $this->input->post_get('xsl');
$this->addMeta('xsl', $xsl);
$this->form_validation->set_rules('xsl', 'xsl', 'required');
}
@@ -465,18 +455,13 @@ class Documents extends FHCAPI_Controller
if ($sign_user && !$vorlage->signierbar)
$this->terminateWithError($this->p->t("stv", "grades_error_sign"));
$this->load->library('DocumentExportLib');
// XML Data
$result = $this->documentexportlib->getDataURL($xml, $params);
$data = $this->getDataOrTerminateWithError($result);
$this->documentexportlib->addArchiveToData($data);
$contentResult = $this->documentexportlib->getContent($vorlage, $data, $xsl_oe_kurzbz, $version, $outputformat, $sign_user);
// Output
$result = $this->documentexportlib->getContent($vorlage, $data, $xsl_oe_kurzbz, $version, $outputformat, $sign_user);
$content = $this->getDataOrTerminateWithError($result);
$content = $this->getDataOrTerminateWithError($contentResult);
$akteData['titel'] .= '.pdf';
$akteData['inhalt'] = base64_encode($content);
@@ -494,3 +479,4 @@ class Documents extends FHCAPI_Controller
];
}
}
@@ -136,7 +136,7 @@ class ProfilUpdate extends FHCAPI_Controller
$this->uid == $profil_update->uid
) {
// Get file to be downloaded from DMS
$download = $this->dmslib->download($dms_id);
$download = $this->dmslib->getOutputFileInfo($dms_id);
$download = $this->getDataOrTerminateWithError($download);
// Download file
$this->outputFile($download);
@@ -456,24 +456,28 @@ class ProfilUpdate extends FHCAPI_Controller
$_FILES['files']['error'] = $files['error'][$i];
$_FILES['files']['size'] = $files['size'][$i];
$dms = [
"kategorie_kurzbz" => "profil_aenderung",
"version" => 0,
"name" => $_FILES['files']['name'],
"mimetype" => $_FILES['files']['type'],
"beschreibung" => $this->uid . " Profil Änderung",
"insertvon" => $this->uid,
"insertamum" => "NOW()",
];
// File upload
$uploadDataResult = $this->uploadFile('files', array('jpg', 'png', 'pdf'));
if (isError($uploadDataResult)) $this->addError(getError($uploadDataResult));
if (!hasData($uploadDataResult)) $this->addError('Upload failed');
$tmp_res = $this->dmslib->upload($dms, 'files', array("jpg", "png", "pdf"));
if(isError($tmp_res)){
$this->addError(getError($tmp_res));
if (hasData($uploadDataResult))
{
// Add file to the DMS (DB + file system)
$dms_res = $this->dmslib->add(
getData($uploadDataResult)['file_name'],
getData($uploadDataResult)['file_type'],
fopen(getData($uploadDataResult)['full_path'], 'r'),
'profil_aenderung', // kategorie_kurzbz
null, // dokument_kurzbz
null, // beschreibung
false, // cis_suche
null, // schlagworte
getAuthUID() // insertvon
);
$dms_res = $this->getDataOrTerminateWithError($dms_res);
array_push($res, $dms_res);
}
$tmp_res = $this->getDataOrTerminateWithError($tmp_res);
array_push($res, $tmp_res);
}
$this->terminateWithSuccess($res);
@@ -158,19 +158,27 @@ class Unterbrechung extends FHCAPI_Controller
if (isset($_FILES['attachment']) && (!isset($_FILES['attachment']['error']) || $_FILES['attachment']['error'] != UPLOAD_ERR_NO_FILE)) {
$this->load->library('DmsLib');
$dms = $this->config->item('unterbrechung_dms');
if (!count(array_filter($dms, function ($v) {
return $v !== null;
})))
$dms = ['kategorie_kurzbz' => 'Akte'];
$dms['version'] = 0;
$allowed_filetypes = $this->config->item('unterbrechung_dms_filetypes') ?: ['*'];
$result = $this->dmslib->upload($dms, 'attachment', $allowed_filetypes);
$uploadDataResult = $this->uploadFile('attachment', $this->config->item('unterbrechung_dms_filetypes') ?: array('*'));
$data = $this->getDataOrTerminateWithError($result);
$dms_id = $data['dms_id'];
$data = $this->getDataOrTerminateWithError($uploadDataResult);
// Add file to the DMS (DB + file system)
$dms_res = $this->dmslib->add(
getData($uploadDataResult)['file_name'],
getData($uploadDataResult)['file_type'],
fopen(getData($uploadDataResult)['full_path'], 'r'),
'studierendenantrag',
null, // dokument_kurzbz
null, // beschreibung
false, // cis_suche
null, // schlagworte
getAuthUID() // insertvon
);
$dms_data = $this->getDataOrTerminateWithError($dms_res);
$dms_id = $dms_data->dms_id;
}
$result = $this->antraglib->createUnterbrechung($prestudent_id, $studiensemester, getAuthUID(), $grund, $datum_wiedereinstieg, $dms_id);
@@ -32,8 +32,8 @@ class Akte extends Auth_Controller
'download' => ['admin:w', 'assistenz:w'],
]);
// Load models
$this->load->model('crm/Akte_model', 'AkteModel');
// Load libraries
$this->load->library('AkteLib');
}
//------------------------------------------------------------------------------------------------------------------
@@ -49,22 +49,22 @@ class Akte extends Auth_Controller
if (!is_numeric($akte_id)) $this->terminateWithError('akte Id missing');
$result = $this->AkteModel->load($akte_id);
$akteResult = $this->aktelib->getByAkteId($akte_id);
if (!hasData($result)) $this->terminateWithError('Akte not found');
if (!hasData($akteResult)) $this->terminateWithError('Akte not found');
$data = getData($result)[0];
$data = getData($akteResult)[0];
if (isset($data->inhalt) && $data->inhalt != '')
if (!isEmptyString($data->inhalt))
{
header('Content-Description: File Transfer');
header('Content-Type: '. $data->mimetype);
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Disposition: attachment; filename="'.$data->titel.'"');
echo base64_decode($data->inhalt);
die();
$fileObj = new stdClass();
$fileObj->file_content = base64_decode($data->inhalt);
$fileObj->name = $data->filename;
$fileObj->mimetype = $data->mimetype;
$fileObj->disposition = 'attachment';
$this->outputFile($fileObj);
}
}
}
@@ -46,6 +46,9 @@ class Archiv extends FHCAPI_Controller
$this->load->model('crm/Akte_model', 'AkteModel');
$this->load->model('system/Vorlage_model', 'VorlageModel');
// Load libraries
$this->load->library('AkteLib');
// Load language phrases
$this->loadPhrases([
'archiv'
@@ -57,7 +60,7 @@ class Archiv extends FHCAPI_Controller
/**
* Get archive documents for a person
* @return void
*/
public function getArchiv()
@@ -74,7 +77,11 @@ class Archiv extends FHCAPI_Controller
$this->terminateWithValidationErrors($this->form_validation->error_array());
}
$result = $this->AkteModel->getArchiv($person_id);
$result = $this->aktelib->getByPersonId(
$person_id,
null, // dokument_kurzbz
true // archiv
);
$data = $this->getDataOrTerminateWithError($result);
@@ -94,51 +101,6 @@ class Archiv extends FHCAPI_Controller
$this->terminateWithSuccess($data);
}
/**
*
* @param
* @return object success or error
*/
public function download()
{
$akte_id = $this->input->get('akte_id');
if (!is_numeric($akte_id)) $this->terminateWithError('akte Id missing');
$result = $this->AkteModel->load($akte_id);
if (!hasData($result)) $this->terminateWithError('Akte not found');
$data = getData($result)[0];
$fileObj = new stdClass();
if (isset($data->inhalt) && $data->inhalt != '')
{
// Define handle to output stream
$tmpFilePointer = fopen("php://output", 'w');
$meta_data = stream_get_meta_data($tmpFilePointer);
$filename = $meta_data["uri"];
fwrite($tmpFilePointer, $data->inhalt);
header('Content-Description: File Transfer');
header('Content-Type: '. $data->mimetype);
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
//header('Content-Length: ' . filesize($fileObj->file));
//header("Content-type: $data->mimetype");
header('Content-Disposition: attachment; filename="'.$data->titel.'"');
readfile($filename);
die();
}
else
{
$this->load->library('AkteLib');
$result = $this->aktelib->get($akte_id);
}
}
/**
* Updating an Akte
* @return void
@@ -193,7 +155,7 @@ class Archiv extends FHCAPI_Controller
$this->addMeta('content', base64_encode($content));
}
foreach ($allowed as $field)
if ($this->input->post($field) !== null)
$data[$field] = $this->input->post($field);
@@ -248,7 +210,7 @@ class Archiv extends FHCAPI_Controller
'akte_id' => $akte_id
]));
}
$result = $this->AkteModel->delete($akte_id);
if (isError($result)) $this->terminateWithError(getError($result));
@@ -27,7 +27,8 @@ class Dokumente extends FHCAPI_Controller
// Load Libraries
$this->load->library('VariableLib', ['uid' => getAuthUID()]);
$this->load->library('form_validation');
$this->load->library('DmsLib', array('who' => getAuthUID()));
$this->load->library('AkteLib');
$this->load->library('DmsLib');
// Load language phrases
$this->loadPhrases([
@@ -170,8 +171,6 @@ class Dokumente extends FHCAPI_Controller
$this->terminateWithValidationErrors($this->form_validation->error_array());
}
$uid = getAuthUID();
$result = $this->AkteModel->update(
[
'akte_id' => $this->input->post('akte_id'),
@@ -182,7 +181,7 @@ class Dokumente extends FHCAPI_Controller
'titel_intern' => $this->input->post('titel_intern'),
'nachgereicht_am' => $this->input->post('nachgereicht_am'),
'updateamum' => date('c'),
'updatevon' => $uid,
'updatevon' => getAuthUID(),
]
);
@@ -199,8 +198,6 @@ class Dokumente extends FHCAPI_Controller
if(!$dokument_kurzbz)
$this->terminateWithError($this->p->t('ui', 'errorMissingValue', ['value' => 'Dokument_kurzbz']), self::ERROR_TYPE_GENERAL);
$uid = getAuthUid();
//check if more than 1 dokumentkurzbz
//if()
@@ -208,10 +205,10 @@ class Dokumente extends FHCAPI_Controller
[
'prestudent_id' => $prestudent_id,
'dokument_kurzbz' => $dokument_kurzbz,
'mitarbeiter_uid' => $uid,
'mitarbeiter_uid' => getAuthUID(),
'datum' => date('c'),
'insertamum' => date('c'),
'insertvon' => $uid,
'insertvon' => getAuthUID(),
]
);
@@ -234,7 +231,6 @@ class Dokumente extends FHCAPI_Controller
$nachgereicht = current($dataAkte)->nachgereicht;
$inhalt = current($dataAkte)->inhalt;
$inhaltVorhanden = $inhalt != '';
$uid = getAuthUid();
$this->db->trans_start();
@@ -248,16 +244,15 @@ class Dokumente extends FHCAPI_Controller
$logdata_dms = "Logdata: " . var_export($logdata_dms, true);
//delete from dmsLib
$this->load->library('DmsLib');
$person_id = current($dataAkte)->person_id;
$result = $this->dmslib->delete($person_id, $dms_id);
$result = $this->aktelib->removeByPersonIdAndDmsId($person_id, $dms_id);
$this->getDataOrTerminateWithError($result);
//LOGGING Dms ID
$this->load->model('system/Log_model', 'LogModel');
$result = $this->LogModel->insert([
'executetime' => date('c'),
'mitarbeiter_uid' => $uid,
'mitarbeiter_uid' => getAuthUID(),
'beschreibung' => "Löschen der DMS_ID ". $dms_id,
'sql' => $logdata_dms
]);
@@ -274,7 +269,7 @@ class Dokumente extends FHCAPI_Controller
//Logging Deletion Akte
$result = $this->LogModel->insert([
'executetime' => date('c'),
'mitarbeiter_uid' => $uid,
'mitarbeiter_uid' => getAuthUID(),
'beschreibung' => "Löschen der Akte ". $akte_id,
'sql' => "DELETE FROM public.tbl_akte WHERE akte_id=" .$akte_id. " LogData: ". $logdata_akte
]);
@@ -293,7 +288,7 @@ class Dokumente extends FHCAPI_Controller
$result = $this->LogModel->insert([
'executetime' => date('c'),
'mitarbeiter_uid' => $uid,
'mitarbeiter_uid' => getAuthUID(),
'beschreibung' => "Löschen der Akte ". $akte_id,
'sql' => "DELETE FROM public.tbl_akte WHERE akte_id=" .$akte_id. " LogData: ". $logdata_akte
]);
@@ -308,7 +303,6 @@ class Dokumente extends FHCAPI_Controller
public function uploadDokument()
{
$this->load->library('DmsLib');
$prestudent_id = $this->input->post('prestudent_id');
$anmerkung_intern = $this->input->post('anmerkung_intern');
$titel_intern = $this->input->post('titel_intern');
@@ -331,34 +325,44 @@ class Dokumente extends FHCAPI_Controller
}
$this->db->trans_start();
$uid = getAuthUID();
$dms = array(
'kategorie_kurzbz' => 'Akte',
'version' => 0,
'name' => $_FILES['anhang']['name'],
'mimetype' => $_FILES['anhang']['type'],
'insertamum' => date('c'),
'insertvon' => $uid
);
$result = $this->dmslib->upload($dms, 'anhang', array("jpg", "png", "pdf"));
if (isError($result))
$uploadDataResult = $this->uploadFile('anhang', array('jpg', 'png', 'pdf'));
if (isError($uploadDataResult))
{
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
return $this->terminateWithError(getError($uploadDataResult), self::ERROR_TYPE_GENERAL);
}
$dms_id = $result->retval['dms_id'];
// If data exists
if (hasData($uploadDataResult))
{
// Add file to the DMS (DB + file system)
$dms_res = $this->dmslib->add(
getData($uploadDataResult)['file_name'],
getData($uploadDataResult)['file_type'],
fopen(getData($uploadDataResult)['full_path'], 'r'),
'Akte', // kategorie_kurzbz
null, // dokument_kurzbz
null, // beschreibung
false, // cis_suche
null, // schlagworte
getAuthUID() // insertvon
);
}
// Error occurred or data not found
if (isError($dms_res) || !hasData($dms_res)) $this->terminateWithError(getError($dms_res), self::ERROR_TYPE_GENERAL);
$dms_id = getData($dms_res)->dms_id;
$person_id = $this->_getPersonId($prestudent_id);
$result = $this->DokumentModel->load($dokument_kurzbz);
$data = $this->getDataOrTerminateWithError($result);
$dokumentResult = $this->DokumentModel->load($dokument_kurzbz);
$data = $this->getDataOrTerminateWithError($dokumentResult);
$bezeichnung = current($data)->bezeichnung;
//save entry in akte
if($dms_id)
// Save entry in akte
if ($dms_id)
{
$result = $this->AkteModel->insert([
'person_id' => $person_id,
@@ -367,7 +371,7 @@ class Dokumente extends FHCAPI_Controller
'mimetype' => $_FILES['anhang']['type'],
'insertamum' => date('c'),
'erstelltam' => date('c'),
'insertvon' => $uid,
'insertvon' => getAuthUID(),
'anmerkung_intern' => $anmerkung_intern,
'titel_intern' => $titel_intern,
'bezeichnung' => $bezeichnung,
@@ -414,28 +418,26 @@ class Dokumente extends FHCAPI_Controller
$filecontentbase64 = $data->inhalt;
$filename = $data->titel;
if(intval($data->dms_id) > 0)
if (intval($data->dms_id) > 0)
{
$dmsdokres = $this->dmslib->read($data->dms_id);
if (!hasData($dmsdokres)) $this->terminateWithError('DMS File not found');
$dmsdok = getData($dmsdokres)[0];
$file = $this->dmslib->getOutputFileInfo($data->dms_id, $filename);
$mimetype = $dmsdok->mimetype;
$filecontentbase64 = $dmsdok->file_content;
$filename = $dmsdok->name;
$this->terminateWithFileOutput(getData($file)->mimetype, file_get_contents(getData($file)->file), $filename);
}
else
{
$filecontent = '';
$filecontent = '';
if (!empty($filecontentbase64)) {
$filecontent = base64_decode($filecontentbase64, true);
if (!empty($filecontentbase64)) {
$filecontent = base64_decode($filecontentbase64, true);
if ($filecontent === false) {
$this->terminateWithError('Base64-Dekodierung failed.');
if ($filecontent === false) {
$this->terminateWithError('Base64-Dekodierung failed.');
}
}
}
$this->terminateWithFileOutput($mimetype, $filecontent, $filename);
$this->terminateWithFileOutput($mimetype, $filecontent, $filename);
}
}
private function _getMissingDocuments($studiengang_kz, $prestudent_id)
@@ -751,10 +753,7 @@ class Dokumente extends FHCAPI_Controller
);
$data = $this->getDataOrTerminateWithError($result);
$student = current($data);
return $student->prestudent_id;
return hasData($data) ? getData($data)[0]->prestudent_id : null;
}
/**
@@ -33,11 +33,6 @@ class Notiz extends Notiz_Controller
]);
}
/* public function getUid()
{
$this->terminateWithSuccess(getAuthUID());
}*/
public function getNotizen($id, $type)
{
@@ -59,317 +54,6 @@ class Notiz extends Notiz_Controller
}
/* public function loadNotiz()
{
$_POST = json_decode(utf8_encode($this->input->raw_input_stream), true);
$notiz_id = $this->input->post('notiz_id');
//$this->load->model('person/Notiz_model', 'NotizModel');
$this->NotizModel->addJoin('public.tbl_notiz_dokument', 'notiz_id', 'LEFT');
$this->NotizModel->addSelect('*');
$this->NotizModel->addSelect("TO_CHAR(CASE WHEN public.tbl_notiz.updateamum >= public.tbl_notiz.insertamum
THEN public.tbl_notiz.updateamum ELSE public.tbl_notiz.insertamum END::timestamp, 'DD.MM.YYYY HH24:MI:SS') AS lastUpdate");
$this->NotizModel->addLimit(1);
$result = $this->NotizModel->loadWhere(
array('notiz_id' => $notiz_id)
);
if (isError($result))
{
$this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
}
elseif (!hasData($result))
{
$this->terminateWithError($this->p->t('ui', 'error_missingId', ['id'=>'Notiz_id']), self::ERROR_TYPE_GENERAL);
}
else
{
$this->terminateWithSuccess(current(getData($result)));
}
}
public function updateNotiz()
{
$this->load->library('form_validation');
$this->load->library('DmsLib');
if (isset($_POST['data']))
{
$data = json_decode($_POST['data']);
unset($_POST['data']);
foreach ($data as $k => $v) {
$_POST[$k] = $v;
}
}
$notiz_id = $this->input->post('notiz_id');
if(!$notiz_id)
{
$this->terminateWithError($this->p->t('ui','error_missingId',['id'=>'Notiz_id']), self::ERROR_TYPE_GENERAL);
}
//Form Validation
$this->form_validation->set_rules('titel', 'Titel', 'required', [
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Titel'])
]);
$this->form_validation->set_rules('text', 'Text', 'required', [
'required' => $this->p->t('ui', 'error_fieldRequired', ['field' => 'Text'])
]);
if ($this->form_validation->run() == false)
{
$this->terminateWithValidationErrors($this->form_validation->error_array());
}
//update Notiz
$uid = getAuthUID();
$titel = $this->input->post('titel');
$text = $this->input->post('text');
$verfasser_uid = $this->input->post('verfasser');
$bearbeiter_uid = isset($_POST['bearbeiter']) ? $_POST['bearbeiter'] : $uid;
$erledigt = $this->input->post('erledigt');
$start = $this->input->post('start');
$ende = $this->input->post('ende');
$result = $this->NotizModel->update(
[
'notiz_id' => $notiz_id
],
[
'titel' => $titel,
'updatevon' => $uid,
'updateamum' => date('c'),
'text' => $text,
'verfasser_uid' => $verfasser_uid,
'bearbeiter_uid' => $bearbeiter_uid,
'start' => $start,
'ende' => $ende,
'erledigt' => $erledigt
]
);
if (isError($result))
{
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
}
//update(1) laden aller bereits mit dieser notiz_id verknüpften DMS-Einträge
$this->load->model('person/Notizdokument_model', 'NotizdokumentModel');
$this->NotizdokumentModel->addJoin('campus.tbl_dms_version', 'dms_id');
$dms_uploaded = null;
$result = $this->NotizdokumentModel->loadWhere(array('notiz_id' => $notiz_id));
if (isError($result))
{
$this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
}
elseif (!hasData($result))
{
$dms_id_arr = null;
}
else
{
$result = getData($result);
foreach($result as $doc) {
$dms_id_arr[] = array(
'name' => $doc->name,
'dms_id' => $doc->dms_id
);
}
}
foreach ($_FILES as $k => $file)
{
//update(2) alle neuen files (alle außer type application/x.fhc-dms+json) anhängen
if($file["type"] == 'application/x.fhc-dms+json')
{
$dms_uploaded[] = array(
'name' => $file["name"]
);
}
else
{
$dms = array(
'kategorie_kurzbz' => 'notiz',
'version' => 0,
'name' => $file["name"],
'mimetype' => $file["type"],
'insertamum' => date('c'),
'insertvon' => $uid
);
//Todo(manu) check if filetypes weiter eingeschränkt werden sollen
//Todo(manu)check name files: nicht gleiches file 2mal hochladen
$result = $this->dmslib->upload($dms, $k, array('*'));
if (isError($result))
{
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
}
$dms_id = $result->retval['dms_id'];
$result = $this->NotizdokumentModel->insert(array('notiz_id' => $notiz_id, 'dms_id' => $dms_id));
if (isError($result))
{
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
}
}
}
//update(3) check if Dateien gelöscht wurden
if(count($dms_uploaded) != count($dms_id_arr))
{
if (count($dms_uploaded) == 0)
{
$filesDeleted = $dms_id_arr;
}
else
{
$upload_new_names = array_column($dms_uploaded, "name");
$filesDeleted = array_filter($dms_id_arr, function ($file) use ($upload_new_names) {
return !in_array($file["name"], $upload_new_names);
});
}
foreach ($filesDeleted as $file)
{
$result = $this->dmslib->removeAll($file['dms_id']);
if (isError($result))
{
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
}
else
$this->outputJson($result);
}
}
return $this->terminateWithSuccess($result);
}*/
/* public function deleteNotiz()
{
$_POST = json_decode(utf8_encode($this->input->raw_input_stream), true);
$notiz_id = $this->input->post('notiz_id');
$type = $this->input->post('type_id');
$id = $this->input->post('id');
//dms_id auslesen aus notizdokument wenn vorhanden
$dms_id_arr = [];
$this->load->model('person/Notizdokument_model', 'NotizdokumentModel');
$result = $this->NotizdokumentModel->loadWhere(array('notiz_id' => $notiz_id));
if (isError($result))
{
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
}
if(hasData($result))
{
$result = getData($result);
foreach ($result as $doc) {
$dms_id_arr[] = $doc->dms_id;
}
}
if($dms_id_arr)
{
$this->load->library('DmsLib');
foreach($dms_id_arr as $dms_id)
{
$result = $this->dmslib->removeAll($dms_id);
if (isError($result))
{
return $this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
}
$this->outputJson($result);
}
}
//delete Notizzuordnung
if($type == "software_id")
{
// Loads extension Model
$this->load->model('extensions/FHC-Core-Softwarebereitstellung/Softwarenotizzuordnung_model', 'ExtensionnotizzuordnungModel');
$result = $this->ExtensionnotizzuordnungModel->delete([
'notiz_id' => $notiz_id,
'id' => strval($id)
],
[
'type_id' => $type
]);
}
else
{
//notizzuordnungsid!
$result = $this->NotizzuordnungModel->delete(['notiz_id' => $notiz_id, $type => $id]);
}
$this->load->model('person/Notiz_model', 'NotizModel');
//$this->NotizModel->addJoin('public.tbl_notizzuordnung', 'notiz_id');
//TODO (erweitern um Type_id) für Extensions, damit auch Notizzuordnung gelöscht werden kann
//Löschen von Notiz
$result = $this->NotizModel->delete(
array('notiz_id' => $notiz_id)
);
if (isError($result))
{
return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
}
if(!hasData($result))
{
return $this->terminateWithError($this->p->t('ui','error_missingId', ['id'=> 'Notiz_id']), self::ERROR_TYPE_GENERAL);
}
return $this->terminateWithSuccess(current(getData($result)));
}*/
/* public function loadDokumente()
{
$_POST = json_decode(utf8_encode($this->input->raw_input_stream), true);
$notiz_id = $this->input->post('notiz_id');
$this->NotizModel->addSelect('campus.tbl_dms_version.*');
$this->NotizModel->addJoin('public.tbl_notiz_dokument', 'ON (public.tbl_notiz_dokument.notiz_id = public.tbl_notiz.notiz_id)');
$this->NotizModel->addJoin('campus.tbl_dms_version', 'ON (public.tbl_notiz_dokument.dms_id = campus.tbl_dms_version.dms_id)');
$result = $this->NotizModel->loadWhere(
array('public.tbl_notiz.notiz_id' => $notiz_id)
);
if (isError($result)) {
return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
}
if(!hasData($result))
{
return $this->terminateWithError($this->p->t('ui','error_missingId', ['id'=> 'Notiz_id']), self::ERROR_TYPE_GENERAL);
}
return $this->terminateWithSuccess(getData($result));
}*/
/* public function getMitarbeiter($searchString)
{
$this->load->model('ressource/Mitarbeiter_model', 'MitarbeiterModel');
$result = $this->MitarbeiterModel->searchMitarbeiter($searchString);
if (isError($result)) {
$this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
}
return $this->terminateWithSuccess($result);
}*/
public function isBerechtigt($id, $typeId)
{
if(!$this->permissionlib->isBerechtigt('admin', 'suid') && !$this->permissionlib->isBerechtigt('assistenz', 'suid'))
@@ -379,7 +63,6 @@ class Notiz extends Notiz_Controller
return $this->terminateWithError($result, self::ERROR_TYPE_GENERAL);
}
return success("berechtigt in überschreibender Funktion");
/* return $this->terminateWithError('keine Berechtigung bro', self::ERROR_TYPE_GENERAL);*/
}
}
}
@@ -73,7 +73,7 @@ class Attachment extends FHC_Controller
}
}
$result = $this->dmslib->download($dms_id);
$result = $this->dmslib->getOutputFileInfo($dms_id);
if (isError($result))
return show_error(getError($result));
@@ -393,7 +393,7 @@ class approveAnrechnungDetail extends Auth_Controller
$filename = $this->anrechnunglib->setFilenameOnDownload($dms_id);
// Get file to be downloaded from DMS
$download = $this->dmslib->download($dms_id, $filename);
$download = $this->dmslib->getOutputFileInfo($dms_id, $filename);
if (isError($download)) return $download;
// Download file
@@ -282,7 +282,7 @@ class approveAnrechnungUebersicht extends Auth_Controller
$filename = $this->anrechnunglib->setFilenameOnDownload($dms_id);
// Get file to be downloaded from DMS
$download = $this->dmslib->download($dms_id, $filename);
$download = $this->dmslib->getOutputFileInfo($dms_id, $filename);
if (isError($download)) return $download;
// Download file
@@ -150,15 +150,12 @@ class CreateAnrechnung extends Auth_Controller
}
// Upload document
$result = self::_uploadFile();
$result = $this->_uploadFile();
if (isError($result))
{
$this->terminateWithJsonError($result->retval);
}
if (isError($result)) $this->terminateWithJsonError(getError($result));
// Hold just inserted DMS ID
$lastInsert_dms_id = $result->retval['dms_id'];
$lastInsert_dms_id = getData($result)->dms_id;
// Save Anrechnung and Anrechnungstatus
$result = $this->AnrechnungModel->createAnrechnungsantrag(
@@ -227,17 +224,25 @@ class CreateAnrechnung extends Auth_Controller
*/
private function _uploadFile()
{
$dms = array(
'kategorie_kurzbz' => 'anrechnung',
'version' => 0,
'name' => $_FILES['uploadfile']['name'],
'mimetype' => $_FILES['uploadfile']['type'],
'insertamum' => (new DateTime())->format('Y-m-d H:i:s'),
'insertvon' => $this->_uid
);
// Upload document
return $this->dmslib->upload($dms, 'uploadfile', array('pdf'));
$uploadDataResult = $this->uploadFile('uploadfile', array('pdf'));
// If an error occurred while uploading the file
if (isError($uploadDataResult)) return $uploadDataResult;
if (!hasData($uploadDataResult)) return error('Upload failed');
// Add file to the DMS (DB + file system)
return $this->_ci->dmslib->add(
getData($uploadDataResult)['file_name'],
getData($uploadDataResult)['file_type'],
fopen(getData($uploadDataResult)['full_path'], 'r'),
'anrechnung', // kategorie_kurzbz
null, // dokument_kurzbz
null, // beschreibung
false, // cis_suche
null, // schlagworte
getAuthUID() // insertvon
);
}
private function _LVhasBlockingGrades($studiensemester_kurzbz, $lehrveranstaltung_id, $prestudent_id)
@@ -268,4 +273,4 @@ class CreateAnrechnung extends Auth_Controller
return false;
}
}
}
@@ -83,7 +83,7 @@ class requestAnrechnung extends Auth_Controller
$is_expired = $this->_isExpired($studiensemester_kurzbz);
// Check if Lehrveranstaltung was already graded with application blocking grades
$is_blocked = self::_LVhasBlockingGrades($studiensemester_kurzbz, $lehrveranstaltung_id);
$is_blocked = $this->_LVhasBlockingGrades($studiensemester_kurzbz, $lehrveranstaltung_id);
// Get Anrechung data
$anrechnungData = $this->anrechnunglib->getAnrechnungDataByLv($lehrveranstaltung_id, $studiensemester_kurzbz, $prestudent_id);
@@ -152,27 +152,24 @@ class requestAnrechnung extends Auth_Controller
$prestudent_id = getData($result)[0]->prestudent_id;
// Exit if application already exists
if (self::_applicationExists($lehrveranstaltung_id, $studiensemester_kurzbz, $prestudent_id))
if ($this->_applicationExists($lehrveranstaltung_id, $studiensemester_kurzbz, $prestudent_id))
{
return $this->outputJsonError($this->p->t('anrechnung', 'antragBereitsGestellt'));
}
// Exit if application is a past ( < actual ) studysemester
if (self::_applicationIsPastSS($studiensemester_kurzbz))
if ($this->_applicationIsPastSS($studiensemester_kurzbz))
{
return $this->outputJsonError($this->p->t('anrechnung', 'antragNichtFuerVerganganeSS'));
}
// Upload document
$result = self::_uploadFile();
$result = $this->_uploadFile();
if (isError($result))
{
return $this->outputJsonError($result->retval);
}
if (isError($result)) return $this->outputJsonError(getError($result));
// Hold just inserted DMS ID
$lastInsert_dms_id = $result->retval['dms_id'];
$lastInsert_dms_id = getData($result)->dms_id;
// Save Anrechnung and Anrechnungstatus
$result = $this->AnrechnungModel->createAnrechnungsantrag(
@@ -182,8 +179,8 @@ class requestAnrechnung extends Auth_Controller
$begruendung_id,
$lastInsert_dms_id,
$anmerkung,
$begruendung_ects,
$begruendung_lvinhalt
$begruendung_ects,
$begruendung_lvinhalt
);
if (isError($result))
@@ -215,11 +212,11 @@ class requestAnrechnung extends Auth_Controller
$this->_checkIfEntitledToReadDMSDoc($dms_id);
// Get file to be downloaded from DMS
$download = $this->dmslib->download($dms_id);
if (isError($download)) return $download;
$download = $this->dmslib->getOutputFileInfo($dms_id);
if (isError($download)) return $download;
// Download file
$this->outputFile(getData($download));
// Download file
$this->outputFile(getData($download));
}
/**
@@ -367,16 +364,25 @@ class requestAnrechnung extends Auth_Controller
*/
private function _uploadFile()
{
$dms = array(
'kategorie_kurzbz' => 'anrechnung',
'version' => 0,
'name' => $_FILES['uploadfile']['name'],
'mimetype' => $_FILES['uploadfile']['type'],
'insertamum' => (new DateTime())->format('Y-m-d H:i:s'),
'insertvon' => $this->_uid
);
// Upload document
return $this->dmslib->upload($dms, 'uploadfile', array('pdf'));
$uploadDataResult = $this->uploadFile('uploadfile', array('pdf'));
// If an error occurred while uploading the file
if (isError($uploadDataResult)) return $uploadDataResult;
// If an error occurred while uploading the file
if (!hasData($uploadDataResult)) return error('Upload failed');
// Add file to the DMS (DB + file system)
return $this->_ci->dmslib->add(
getData($uploadDataResult)['file_name'],
getData($uploadDataResult)['file_type'],
fopen(getData($uploadDataResult)['full_path'], 'r'),
'anrechnung',
null, // dokument_kurzbz
null, // beschreibung
false, // cis_suche
null, // schlagworte
getAuthUID() // insertvon
);
}
}
@@ -237,7 +237,7 @@ class reviewAnrechnungDetail extends Auth_Controller
$filename = $this->anrechnunglib->setFilenameOnDownload($dms_id);
// Get file to be downloaded from DMS
$download = $this->dmslib->download($dms_id, $filename);
$download = $this->dmslib->getOutputFileInfo($dms_id, $filename);
if (isError($download)) return $download;
// Download file
@@ -196,7 +196,7 @@ class reviewAnrechnungUebersicht extends Auth_Controller
$filename = $this->anrechnunglib->setFilenameOnDownload($dms_id);
// Get file to be downloaded from DMS
$download = $this->dmslib->download($dms_id, $filename);
$download = $this->dmslib->getOutputFileInfo($dms_id, $filename);
if (isError($download)) return $download;
// Download file
+212
View File
@@ -0,0 +1,212 @@
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
class Phrases extends Auth_Controller
{
/**
*
*/
public function __construct()
{
parent::__construct(
array(
'index' => 'system/phrase:r',
'table' => 'system/phrase:r',
'view' => 'system/phrase:r',
'deltext' => 'system/phrase:rw',
'edit' => 'system/phrase:rw',
'save' => 'system/phrase:rw',
'newText' => 'system/phrase:rw',
'editText' => 'system/phrase:rw',
'saveText' => 'system/phrase:rw'
)
);
// Loads the phrases library
$this->load->library('PhrasesLib');
// Loads the widget library
$this->load->library('WidgetLib');
}
/**
*
*/
public function index()
{
$this->load->view('system/phrases/phrases.php');
}
/**
*
*/
public function table()
{
$phrases = $this->phraseslib->getPhraseByApp('aufnahme');
if ($phrases->error)
show_error(getError($phrases));
$data = array(
'app' => 'aufnahme',
'phrases' => $phrases->retval
);
$this->load->view('system/phrases/phrasesList.php', $data);
}
/**
*
*/
public function view($phrase_id)
{
if (!is_numeric($phrase_id))
show_error('Invalid phrase_id parameter');
$phrase = $this->phraseslib->getPhrase($phrase_id);
$phrase_inhalt = $this->phraseslib->getPhraseInhalt($phrase_id);
if ($phrase_inhalt->error)
show_error(getError($phrase_inhalt));
$data = array(
'phrase_id' => $phrase_id,
'phrase' => $phrase->retval[0]->phrase,
'phrase_inhalt' => $phrase_inhalt->retval
);
$this->load->view('system/phrases/phrasesinhaltList.php', $data);
}
/**
*
*/
public function deltext($phrasentext_id, $phrase_id)
{
if (!is_numeric($phrasentext_id) || !is_numeric($phrase_id))
show_error('Invalid phrasentext_id or phrase_id parameter');
$phrase_inhalt = $this->phraseslib->delPhrasentext($phrasentext_id);
if ($phrase_inhalt->error)
show_error(getError($phrase_inhalt));
redirect('/system/Phrases/view/'.$phrase_id);
}
/**
*
*/
public function edit($phrase_id = null)
{
if (!is_numeric($phrase_id)) return;
$phrase = $this->phraseslib->getPhrase($phrase_id);
if ($phrase->error)
show_error(getError($phrase));
if (count($phrase->retval) != 1)
show_error('Phrase nicht vorhanden! ID: '.$phrase_id);
$data = array(
'phrase' => $phrase->retval[0]
);
$this->load->view('system/phrases/phrasesEdit', $data);
}
/**
*
*/
public function save()
{
$phrase_id = $this->input->post('phrase_id');
$data = array('phrase' => $this->input->post('phrase'));
$phrase = $this->phraseslib->savePhrase($phrase_id, $data);
if ($phrase->error)
show_error(getError($phrase));
$phrase_id = $phrase->retval;
redirect('/system/Phrases/edit/'.$phrase_id);
}
/**
*
*/
public function newText()
{
$phrase_id = $this->input->post('phrase_id');
$this->load->model('organisation/Organisationseinheit_model', 'OrganisationseinheitModel');
$this->OrganisationseinheitModel->addLimit(1);
$this->OrganisationseinheitModel->addOrder('oe_kurzbz');
$resultOE = $this->OrganisationseinheitModel->loadWhere(array('aktiv' => true, 'oe_parent_kurzbz' => null));
if ($resultOE->error)
show_error(getError($resultOE));
if (hasData($resultOE))
{
$orgeinheit_kurzbz = $resultOE->retval[0]->oe_kurzbz;
$data = array(
'phrase_id' => $phrase_id,
'sprache' => 'German',
'text' => '',
'description' => '',
'orgeinheit_kurzbz' => $orgeinheit_kurzbz
);
$phrase_inhalt = $this->phraseslib->insertPhraseinhalt($data);
if ($phrase_inhalt->error)
show_error(getError($phrase_inhalt));
$phrase_inhalt_id = $phrase_inhalt->retval;
redirect('/system/Phrases/editText/'.$phrase_inhalt_id);
}
else
{
show_error('No valid organisation unit found');
}
}
/**
*
*/
public function editText($phrasentext_id)
{
$phrase_inhalt = $this->phraseslib->getPhrasentextById($phrasentext_id);
if ($phrase_inhalt->error)
show_error(getError($phrase_inhalt));
$data = $phrase_inhalt->retval[0];
$this->load->view('system/phrases/phraseinhaltEdit', $data);
}
/**
*
*/
public function saveText()
{
$phrase_inhalt_id = $this->input->post('phrase_inhalt_id');
$data = array(
'orgeinheit_kurzbz' => $this->input->post('oe_kurzbz'),
'orgform_kurzbz' => $this->input->post('orgform_kurzbz'),
'text' => $this->input->post('text'),
'description' => $this->input->post('description'),
'sprache' => $this->input->post('sprache')
);
$phrase_inhalt = $this->phraseslib->updatePhraseInhalt($phrase_inhalt_id, $data);
if ($phrase_inhalt->error)
show_error(getError($phrase_inhalt));
redirect('/system/Phrases/editText/'.$phrase_inhalt_id);
}
}
@@ -11,8 +11,8 @@ class CLI_Manager extends CLI_Controller
*
*/
public function __construct()
{
parent::__construct();
{
parent::__construct();
// Load helpers to upload files
$this->load->helper('form');
@@ -28,19 +28,9 @@ class CLI_Manager extends CLI_Controller
* die Commandline ohne Upload durchzufuehren.
* @param $extensioName string Name der Extension
* @param $filename Url Encoded Pfad zum tgz File der Extension
* @param $perform_sql boolean ob die SQL Befehle ausgeführt werden
*/
public function installExtension($extensionName, $filename)
public function uploadExtension($extensionName = null, $filename = null)
{
$this->extensionslib->installExtension($extensionName, urldecode($filename), true);
}
/**
* Install an extension, same as installExtension but without running the SQL statements
*/
public function installExtensionNoSQL($extensionName, $filename)
{
$this->extensionslib->installExtension($extensionName, urldecode($filename), false);
$this->extensionslib->installExtension($extensionName, urldecode($filename));
}
}
@@ -11,8 +11,8 @@ class Manager extends Auth_Controller
*
*/
public function __construct()
{
parent::__construct(
{
parent::__construct(
array(
'index' => 'system/extensions:r',
'toggleExtension' => 'system/extensions:rw',
@@ -21,22 +21,11 @@ class Manager extends Auth_Controller
)
);
// Loads the form helper
// Load helpers to upload files
$this->load->helper('form');
// Loads WidgetLib
$this->load->library('WidgetLib');
// Loads the extensions library
$this->load->library('ExtensionsLib');
$this->loadPhrases(
array(
'extensions',
'table',
'ui'
)
);
}
/**
@@ -44,7 +33,11 @@ class Manager extends Auth_Controller
*/
public function index()
{
$this->load->view('system/extensions/manager.php');
$viewData = array(
'extensions' => $this->extensionslib->getInstalledExtensions()
);
$this->load->view('system/extensions/manager.php', $viewData);
}
/**
@@ -52,16 +45,23 @@ class Manager extends Auth_Controller
*/
public function toggleExtension()
{
$toggleExtension = false;
$extension_id = $this->input->post('extension_id');
$enabled = $this->input->post('enabled');
// Clean the parameter
$enabled = $enabled == 'true' ? true : false;
if ($enabled === 'true')
{
$toggleExtension = $this->extensionslib->enableExtension($extension_id);
}
else
{
$toggleExtension = $this->extensionslib->disableExtension($extension_id);
}
// Output the enable/disable of the extension
$this->outputJsonSuccess(
$this->extensionslib->toggleExtension($extension_id, $enabled)
);
$this->output
->set_content_type('application/json')
->set_output(json_encode($toggleExtension));
}
/**
@@ -69,11 +69,15 @@ class Manager extends Auth_Controller
*/
public function delExtension()
{
$delExtension = false;
$extension_id = $this->input->post('extension_id');
$delExtension = $this->extensionslib->delExtension($extension_id);
$this->outputJsonSuccess($delExtension);
$this->output
->set_content_type('application/json')
->set_output(json_encode($delExtension));
}
/**
@@ -83,16 +87,9 @@ class Manager extends Auth_Controller
* die Commandline ohne Upload durchzufuehren.
* @param $extensioName string Name der Extension
* @param $filename Url Encoded Pfad zum tgz File der Extension
* @param $perform_sql boolean ob die SQL Befehle ausgeführt werden
*/
public function uploadExtension()
public function uploadExtension($extensionName = null, $filename = null)
{
$notPerformSql = $this->input->post('notPerformSql');
// It converts the notPerformSql parameter from the checkbox value to a boolean one
if ($notPerformSql == 'on') $notPerformSql = true;
if ($notPerformSql !== true) $notPerformSql = false;
$this->extensionslib->installExtension(null, null, !$notPerformSql);
$this->extensionslib->installExtension($extensionName, urldecode($filename));
}
}
@@ -179,6 +179,7 @@ class InfoCenter extends Auth_Controller
// Loads libraries
$this->load->library('PersonLogLib');
$this->load->library('WidgetLib');
$this->load->library('AkteLib');
$this->load->config('infocenter');
@@ -452,8 +453,7 @@ class InfoCenter extends Auth_Controller
if (isset($akte_id) && isset($person_id))
{
$this->load->library('AkteLib');
$akte = $this->aktelib->get($akte_id);
$akte = $this->aktelib->getByAkteId($akte_id);
if (hasData($akte))
{
@@ -1169,8 +1169,6 @@ class InfoCenter extends Auth_Controller
*/
public function outputAkteContent($akte_id)
{
$this->load->library('DmsLib');
$akte = $this->AkteModel->load($akte_id);
if (isError($akte))
@@ -1178,7 +1176,7 @@ class InfoCenter extends Auth_Controller
show_error(getError($akte));
}
$aktecontent = $this->dmslib->getAkteContent($akte_id);
$aktecontent = $this->aktelib->getByAkteId($akte_id);
if (isError($aktecontent))
{
@@ -2468,4 +2466,4 @@ class InfoCenter extends Auth_Controller
$this->outputJsonSuccess("Success");
}
}
}
@@ -1,50 +0,0 @@
<?php
/**
* Copyright (C) 2024 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 3 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, see <https://www.gnu.org/licenses/>.
*/
if (!defined("BASEPATH")) exit("No direct script access allowed");
class CLI_Manager extends CLI_Controller
{
/**
*
*/
public function __construct()
{
parent::__construct();
// Loads PhrasesLib
$this->load->library('PhrasesLib');
}
/**
*
*/
public function installFrom($phrasesDirectoryPath)
{
$this->phraseslib->installFrom(urldecode($phrasesDirectoryPath));
}
/**
* Calls the PhrasesLib->syncFiles to create/update the phrases files under the directory application/phrases/
*/
public function syncFiles()
{
$this->phraseslib->syncFiles();
}
}
@@ -1,30 +0,0 @@
<?php
if (!defined("BASEPATH")) exit("No direct script access allowed");
class Manager extends Auth_Controller
{
/**
*
*/
public function __construct()
{
parent::__construct(
array(
'installFromCore' => 'admin:rw'
)
);
// Loads PhrasesLib
$this->load->library('PhrasesLib');
}
/**
*
*/
public function installFromCore()
{
$this->phraseslib->installFromCore();
}
}
@@ -1,45 +0,0 @@
<?php
if (! defined('BASEPATH')) exit('No direct script access allowed');
/**
* Overview on cronjob logs
*/
class PhrasesViewer extends Auth_Controller
{
/**
* Constructor
*/
public function __construct()
{
parent::__construct(
array(
'index' => 'system/developer:r'
)
);
// Loads WidgetLib
$this->load->library('WidgetLib');
// Loads phrases system
$this->loadPhrases(
array(
'global',
'ui',
'filter'
)
);
}
// -----------------------------------------------------------------------------------------------------------------
// Public methods
/**
* Everything has a beginning
*/
public function index()
{
$this->load->view('system/phrases/phrasesViewer.php');
}
}
+121 -19
View File
@@ -136,37 +136,77 @@ abstract class FHC_Controller extends CI_Controller
/**
* To download the given file represented by the fileObj parameter.
* fileObj has the following structure:
* $fileObj->filename
* $fileObj->file
* $fileObj->file OR $fileObj->file_content
* $fileObj->name
* $fileObj->mimetype
* $fileObj->disposition
* $fileObj->disposition (inline OR attachment)
*/
protected function outputFile($fileObj)
{
// If the file exists
if (isset($fileObj->file) && !isEmptyString($fileObj->file) && file_exists($fileObj->file))
if ((isset($fileObj->file) && !isEmptyString($fileObj->file) && file_exists($fileObj->file))
|| (isset($fileObj->file_content) && !isEmptyString($fileObj->file_content)))
{
header('Content-Description: File Transfer');
header('Content-Type: '. $fileObj->mimetype);
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($fileObj->file));
$content_length = 0;
if (isset($fileObj->disposition)
&& ($fileObj->disposition == 'inline' || $fileObj->disposition == 'attachment'))
// If file content has been provided
if (isset($fileObj->file_content) && !isEmptyString($fileObj->file_content))
{
header('Content-Disposition: '. $fileObj->disposition. '; filename="'. $fileObj->name. '"');
$content_length = strlen($fileObj->file_content);
}
else // otherwise the path + name of the file
{
$content_length = filesize($fileObj->file);
}
readfile($fileObj->file); // reads the file content to the output buffer
}
else
{
// Otherwise print an error
show_error('The provided file does not exist: '.(isset($fileObj->file) ? $fileObj->file : 'file not given'));
header('Content-Description: File Transfer');
header('Content-Type: '. $fileObj->mimetype);
header('Content-Length: ' . $content_length);
header('Content-Transfer-Encoding: binary');
header('Content-Disposition: '. $fileObj->disposition. '; filename="'. $fileObj->name. '"');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Expires: ' . date("D, d M Y H:i:s", time()));
header('Pragma: public');
// Clean the output buffer
flush();
// If file content has been provided
if (isset($fileObj->file_content) && !isEmptyString($fileObj->file_content))
{
echo $fileObj->file_content;
}
else // otherwise get the content from file system
{
readfile($fileObj->file);
}
// Terminate the execution
exit();
}
// Otherwise return an error
show_error('The provided file does not exist or file content is empty');
}
/**
*
*/
protected function outputImageByContent($mimetype, $file_content)
{
if (isEmptyString($file_content)) show_error('The provided file content is not valid');
$this->_outputImage($mimetype, $file_content);
}
/**
*
*/
protected function outputImageByFile($mimetype, $file_name)
{
if (!file_exists($file_name)) show_error('The provided file does not exist');
$this->_outputImage($mimetype, null, $file_name);
}
/**
@@ -178,6 +218,29 @@ abstract class FHC_Controller extends CI_Controller
return json_decode($this->input->raw_input_stream);
}
/**
* Utility function to upload a file
* - post_field_name: the name of the field in the HTTP POST payload, this is also the index in the super global $_FILES array
* - allowed_types: a list of file extensions that are allowed to be uploaded (ex. array('pdf', 'odt') or array('jpg', 'jpeg', 'gif')
*/
protected function uploadFile($post_field_name, $allowed_types = array('*'))
{
$this->load->library(
'upload',
array(
'upload_path' => sys_get_temp_dir(),
'allowed_types' => $allowed_types,
'overwrite' => true
)
);
// If the upload was a success then return the uploaded file info
if ($this->upload->do_upload($post_field_name)) return success($this->upload->data());
// If an error occurred then return it without tags
return error($this->upload->display_errors('', ''));
}
//------------------------------------------------------------------------------------------------------------------
// Private methods
@@ -193,5 +256,44 @@ abstract class FHC_Controller extends CI_Controller
show_error('This web site cannot work correctly without the HTTPS protocol enabled');
}
}
/**
*
*/
private function _outputImage($mimetype, $file_content = null, $file_name = null)
{
$content_length = 0;
// If file content has been provided
if ($file_content != null)
{
$content_length = strlen($file_content);
}
else // otherwise the path + name of the file
{
$content_length = filesize($file_name);
}
header('Content-Type: '. $mimetype);
header('Content-Length: ' . $content_length);
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Expires: ' . date("D, d M Y H:i:s", time()));
// Clean the output buffer
flush();
// If file content has been provided
if ($file_content != null)
{
echo $file_content;
}
else // otherwise get the content from file system
{
readfile($file_name);
}
// Terminate the execution
exit();
}
}
+57 -26
View File
@@ -196,26 +196,39 @@ abstract class Notiz_Controller extends FHCAPI_Controller
$dms_id_arr = [];
foreach ($_FILES as $k => $file)
{
$dms = array(
'kategorie_kurzbz' => 'notiz',
'version' => 0,
'name' => $file["name"],
'mimetype' => $file["type"],
'insertamum' => date('c'),
'insertvon' => $uid
);
//Todo(manu) check if filetypes weiter eingeschränkt werden sollen
//Todo(manu)check name files: nicht gleiches file 2mal hochladen
//Todo define in dms component: readFile, downloadFile
$result = $this->dmslib->upload($dms, $k, ['*']);
/* $result = $this->dmslib->upload($dms, $k, ['application/pdf','application/x.fhc-dms+json']);*/
if (isError($result))
$uploadDataResult = $this->uploadFile($k);
if (isError($uploadDataResult))
{
$this->db->trans_rollback();
$this->terminateWithError(getError($result), self::ERROR_TYPE_GENERAL);
$this->terminateWithError(getError($uploadDataResult), self::ERROR_TYPE_GENERAL);
}
$dms_id_arr[] = $result->retval['dms_id'];
if (!hasData($uploadDataResult))
{
$this->db->trans_rollback();
$this->terminateWithError('Upload failed', self::ERROR_TYPE_GENERAL);
}
// Add file to the DMS (DB + file system)
$addResult = $this->dmslib->add(
getData($uploadDataResult)['file_name'],
getData($uploadDataResult)['file_type'],
fopen(getData($uploadDataResult)['full_path'], 'r'),
'notiz', // kategorie_kurzbz
null, // dokument_kurzbz
null, // beschreibung
false, // cis_suche
null, // schlagworte
getAuthUID() // insertvon
);
// If error occurred
if (isError($addResult) || !hasData($addResult))
$this->terminateWithError(getError($addResult), self::ERROR_TYPE_GENERAL);
$dms_id_arr[] = getData($addResult)->dms_id;
}
//save entry in Notizdokument
@@ -319,22 +332,40 @@ abstract class Notiz_Controller extends FHCAPI_Controller
}
else
{
$dms = array(
'kategorie_kurzbz' => 'notiz',
'version' => 0,
'name' => $file["name"],
'mimetype' => $file["type"],
'insertamum' => date('c'),
'insertvon' => $uid
);
//Todo(manu) check if filetypes weiter eingeschränkt werden sollen
//Todo(manu)check name files: nicht gleiches file 2mal hochladen
//Todo define in dms component: readFile, downloadFile
$result = $this->dmslib->upload($dms, $k, array('*'));
$uploadDataResult = $this->uploadFile($k);
if (isError($uploadDataResult))
{
$this->db->trans_rollback();
$this->terminateWithError(getError($uploadDataResult), self::ERROR_TYPE_GENERAL);
}
if (!hasData($uploadDataResult))
{
$this->db->trans_rollback();
$this->terminateWithError('Upload failed', self::ERROR_TYPE_GENERAL);
}
$result = $this->getDataOrTerminateWithError($result);
$dms_id = $result['dms_id'];
// Add file to the DMS (DB + file system)
$addResult = $this->dmslib->add(
getData($uploadDataResult)['file_name'],
getData($uploadDataResult)['file_type'],
fopen(getData($uploadDataResult)['full_path'], 'r'),
'notiz', // kategorie_kurzbz
null, // dokument_kurzbz
null, // beschreibung
false, // cis_suche
null, // schlagworte
getAuthUID() // insertvon
);
// If error occurred
if (isError($addResult) || !hasData($addResult))
$this->terminateWithError(getError($addResult), self::ERROR_TYPE_GENERAL);
$addResult = $this->getDataOrTerminateWithError($addResult);
$dms_id = $addResult['dms_id'];
$result = $this->NotizdokumentModel->insert(array('notiz_id' => $post_data['notiz_id'], 'dms_id' => $dms_id));
+4 -4
View File
@@ -418,10 +418,10 @@ function findResource($path, $resource, $subdir = false, $extraDir = null)
if (!function_exists('array_is_list')) {
function array_is_list(array $arr)
{
if ($arr === []) {
return true;
}
return array_keys($arr) === range(0, count($arr) - 1);
if ($arr === []) {
return true;
}
return array_keys($arr) === range(0, count($arr) - 1);
}
}
+14 -18
View File
@@ -1,20 +1,20 @@
<?php
/**
* Copyright (C) 2025 FH Technikum-Wien
* FH-Complete
*
* 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.
* @package FHC-Helper
* @author FHC-Team
* @copyright Copyright (c) 2016 fhcomplete.org
* @license GPLv3
* @since Version 1.0.0
*/
/**
* FHC Helper
*
* 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.
* @subpackage Helpers
* @category Helpers
*/
if (! defined('BASEPATH')) exit('No direct script access allowed');
@@ -136,7 +136,7 @@ function generateJSPhrasesStorageObject($phrases)
$toPrint = "\n";
$toPrint .= '<script type="text/javascript">';
$toPrint .= "\n";
$toPrint .= ' var FHC_JS_PHRASES_STORAGE_OBJECT = '.$ci->pj->toJSON().';';
$toPrint .= ' var FHC_JS_PHRASES_STORAGE_OBJECT = '.$ci->pj->getJSON().';';
$toPrint .= "\n";
$toPrint .= '</script>';
$toPrint .= "\n\n";
@@ -255,9 +255,6 @@ function generateSkipLink($skipID)
echo $toPrint;
}
/**
*
*/
function absoluteJsImportUrl($relurl)
{
$ci =& get_instance();
@@ -468,4 +465,3 @@ class ExtendableAppsHelper
array_push($this->extCustomJSs, 'public/js/FhcApps.js');
}
}
+203 -124
View File
@@ -1,12 +1,21 @@
<?php
/**
* FH-Complete
/* Copyright (C) 2025 fhcomplete.net
*
* 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.
*
* @package FHC-Helper
* @author FHC-Team
* @copyright Copyright (c) 2022 fhcomplete.net
* @license GPLv3
*/
if (! defined('BASEPATH')) exit('No direct script access allowed');
@@ -121,90 +130,32 @@ class AkteLib
* Gets akte data and associated dms data by akte Id
* Returns success with akte and dms data or error
*/
public function get($akte_id)
public function getByAkteId($akte_id, $dokument_kurzbz = null, $archiv = null, $signiert = null, $stud_selfservice = null)
{
// get Akte data
$this->_ci->AkteModel->addSelect('person_id, dokument_kurzbz, mimetype, erstelltam, titel, bezeichnung,
gedruckt, uid, dms_id, nachgereicht, nachgereicht_am, anmerkung,
ausstellungsnation, formal_geprueft_amum, archiv, signiert,
stud_selfservice, akzeptiertamum, insertvon, insertamum, updatevon, updateamum');
$this->_ci->AkteModel->load($akte_id);
$akteResult = $this->_ci->AkteModel->load($akte_id);
if (isError($akteResult)) return $akteResult;
if (!hasData($akteResult)) return error("Akte not found");
$resultObject = getData($akteResult)[0];
// set properties with same name in Akte and Dms table
$resultObject->akte_mimetype = $resultObject->mimetype;
// get dms data
$dmsResult = $this->_ci->dmslib->getLastVersion($resultObject->dms_id);
if (isError($dmsResult)) return $dmsResult;
// properties to retrieve from dms
$dmsProperties = array('version', 'filename', 'mimetype', 'name', 'beschreibung', 'cis_suche', 'schlagworte', DmsLib::FILE_CONTENT_PROPERTY);
// set dms properties
if (hasData($dmsResult))
{
$dmsData = getData($dmsResult);
foreach ($dmsProperties as $dmsProperty)
{
$resultObject->{$dmsProperty} = $dmsData->{$dmsProperty};
}
}
else
{
// set null if no dms result found
foreach ($dmsProperties as $dmsProperty)
{
$resultObject->{$dmsProperty} = null;
}
}
// return the object containing akte and dms data
return success($resultObject);
return $this->_get(
$akte_id,
null, // person_id
$dokument_kurzbz,
$archiv,
$signiert,
$stud_selfservice
);
}
/**
* Gets Akte data and associated dms data by person Id and dokument_kurzbz
* Returns success with result array with akte and dms data or error
*/
public function getByPersonIdAndDocumentType($person_id, $dokument_kurzbz)
public function getByPersonId($person_id, $dokument_kurzbz = null, $archiv = null, $signiert = null, $stud_selfservice = null)
{
// load all Akte entries for given person and dokument_kurzbz
$this->_ci->AkteModel->addSelect('akte_id');
$akteResult = $this->_ci->AkteModel->loadWhere(
array(
'person_id' => $person_id,
'dokument_kurzbz' => $dokument_kurzbz
)
return $this->_get(
null, // akte_id
$person_id,
$dokument_kurzbz,
$archiv,
$signiert,
$stud_selfservice
);
if (!hasData($akteResult)) return error("Akte not found");
$akteData = getData($akteResult);
$resultArr = array();
// for each found akte entry
foreach ($akteData as $akte)
{
// get dms and akte data from akte Id
$getAkteDmsResult = $this->get($akte->akte_id);
if (isError($getAkteDmsResult)) return $getAkteDmsResult;
$resultArr[] = getData($getAkteDmsResult);
}
// return all found entries
return success($resultArr);
}
/**
@@ -213,56 +164,184 @@ class AkteLib
*/
public function remove($akte_id)
{
// get dms_id for akte
return $this->_remove($akte_id, null, null);
}
/**
* Removes Akte by $person_id and $dms_id, removes all associated dms entries and versions, and deletes all associated files
* Returns success with removed version numbers or error
*/
public function removeByPersonIdAndDmsId($person_id, $dms_id)
{
return $this->_remove(null, $person_id, $dms_id);
}
/**
*
*/
private function _get($akte_id = null, $person_id = null, $dokument_kurzbz = null, $archiv = null, $signiert = null, $stud_selfservice = null)
{
$dbModel = new DB_Model();
$query = 'SELECT akte_id,
person_id,
dokument_kurzbz,
inhalt,
CASE WHEN inhalt is not null THEN true ELSE false END as inhalt_vorhanden,
mimetype,
erstelltam,
gedruckt,
titel,
bezeichnung,
updateamum,
updatevon,
insertamum,
insertvon,
uid,
dms_id,
nachgereicht,
anmerkung,
titel_intern,
anmerkung_intern,
nachgereicht_am,
ausstellungsnation,
formal_geprueft_amum,
archiv,
signiert,
stud_selfservice,
akzeptiertamum
FROM public.tbl_akte
WHERE TRUE';
// Query parameters
$paramArray = array();
// akte_id
if (is_numeric($akte_id) || is_array($akte_id))
{
$paramArray[] = $akte_id;
if (is_numeric($akte_id)) $query .= ' AND akte_id = ?';
if (is_array($akte_id)) $query .= ' AND akte_id IN ?';
}
// person_id
if (is_numeric($person_id) || is_array($person_id))
{
$paramArray[] = $person_id;
if (is_numeric($person_id)) $query .= ' AND person_id = ?';
if (is_array($person_id)) $query .= ' AND person_id IN ?';
}
// dokument_kurzbz
if (!isEmptyString($dokument_kurzbz))
{
$paramArray[] = $dokument_kurzbz;
$query .= ' AND dokument_kurzbz = ?';
}
// archiv
if (is_bool($archiv))
{
$paramArray[] = $archiv;
$query .= ' AND archiv = ?';
}
// signiert
if (is_bool($signiert))
{
$paramArray[] = $signiert;
$query .= ' AND signiert = ?';
}
// stud_selfservice
if (is_bool($stud_selfservice))
{
$paramArray[] = $stud_selfservice;
$query .= ' AND stud_selfservice = ?';
}
// If no parameters has been provided exit
if (isEmptyArray($paramArray)) return error('Called without giving any parameter');
// Loads data from DB
$akteResult = $dbModel->execReadOnlyQuery($query, $paramArray);
// If error or data not found then exit
if (isError($akteResult)) return $akteResult;
if (!hasData($akteResult)) return error('Akte not found');
// For each record from the akte
foreach (getData($akteResult) as $resultObject)
{
// get dms data
$dmsResult = $this->_ci->dmslib->getLastVersion($resultObject->dms_id);
if (isError($dmsResult)) return $dmsResult;
// properties to retrieve from dms
$dmsProperties = array('version', 'filename', 'mimetype', 'name', 'beschreibung', 'cis_suche', 'schlagworte');
// set dms properties
if (hasData($dmsResult))
{
$dmsData = getData($dmsResult)[0];
foreach ($dmsProperties as $dmsProperty)
{
// If the property is _not_ 'mimetype' _or_
// If the mimetype from the akte table is null then overwrite it with the one from the DMS
if ($dmsProperty != 'mimetype' || ($dmsProperty == 'mimetype' && $resultObject->{$dmsProperty} == null))
{
$resultObject->{$dmsProperty} = $dmsData->{$dmsProperty};
}
}
}
else
{
// Set null if no dms result found
foreach ($dmsProperties as $dmsProperty)
{
if ($dmsProperty != 'mimetype') $resultObject->{$dmsProperty} = null;
}
}
}
// return the object containing akte and dms data
return success(getData($akteResult));
}
/**
* Removes Akte by akte Id, person id and/or dms id
* Removes all associated dms entries and versions, and deletes all associated files
* Returns success with removed version numbers or error
*/
private function _remove($akte_id = null, $person_id = null, $dms_id = null)
{
// Get dms_id for akte
$this->_ci->AkteModel->addSelect('akte_id');
$this->_ci->AkteModel->addSelect('dms_id');
$akteResult = $this->_ci->AkteModel->load($akte_id);
$paramArray = array();
if (is_numeric($akte_id)) $paramArray['akte_id'] = $akte_id;
if (is_numeric($person_id)) $paramArray['person_id'] = $person_id;
if (is_numeric($dms_id)) $paramArray['dms_id'] = $dms_id;
$akteResult = $this->_ci->AkteModel->loadWhere($paramArray);
if (isError($akteResult)) return $akteResult;
if (!hasData($akteResult)) return error("Akte not found");
if (!hasData($akteResult)) return error('Akte not found');
$dms_id = getData($akteResult)[0]->dms_id;
$error = null;
// Delete Akte
$deleteResult = $this->_ci->AkteModel->delete(getData($akteResult)[0]->akte_id);
// Start DB transaction to avoid deleting only part of the data
$this->_ci->db->trans_begin();
if (isError($deleteResult)) return $deleteResult;
// delete Akte
$deleteResult = $this->_ci->AkteModel->delete($akte_id);
// Remove all dms entry for dms of the akte
$removeAllResult = $this->_ci->dmslib->removeAll(getData($akteResult)[0]->dms_id);
if (isError($deleteResult))
{
$error = $deleteResult;
}
else
{
// remove all dms entry for dms of the akte
$removeAllResult = $this->_ci->dmslib->removeAll($dms_id);
if (isError($removeAllResult))
$error = $removeAllResult;
}
// Transaction complete!
$this->_ci->db->trans_complete();
// Check if everything went ok during the transaction
if ($this->_ci->db->trans_status() === false || isset($error))
{
$this->_ci->db->trans_rollback();
// return occured error
if (isset($error))
return $error;
else
return error("Error occured when deleting, rolled back");
}
else
{
$this->_ci->db->trans_commit();
// return removed dms entry data
return $removeAllResult;
}
return $removeAllResult;
}
}
+118 -523
View File
@@ -1,12 +1,21 @@
<?php
/**
* FH-Complete
/* Copyright (C) 2025 fhcomplete.net
*
* 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.
*
* @package FHC-Helper
* @author FHC-Team
* @copyright Copyright (c) 2022 fhcomplete.net
* @license GPLv3
*/
if (! defined('BASEPATH')) exit('No direct script access allowed');
@@ -15,24 +24,17 @@ use \stdClass as stdClass;
class DmsLib
{
const FILE_CONTENT_PROPERTY = 'file_content'; // property name for file content
const DMS_SYS_NAME = 'DMS System';
private $_ci; // code igniter instance
private $_who; // who added this document
/**
* Object initialization
*/
public function __construct($params = null)
public function __construct()
{
$this->_ci =& get_instance();
// Set the the _who property
$this->_who = 'DMS system'; // default
// It is possible to set it using the who parameter
if (!isEmptyArray($params) && isset($params['who']) && !isEmptyString($params['who'])) $this->_who = $params['who'];
$this->_ci->load->model('crm/Akte_model', 'AkteModel'); // deprecated, should not be used here!
$this->_ci->load->model('content/Dms_model', 'DmsModel');
$this->_ci->load->model('content/DmsVersion_model', 'DmsVersionModel');
$this->_ci->load->model('content/DmsFS_model', 'DmsFSModel');
@@ -46,69 +48,85 @@ class DmsLib
* Returns success info of added dms entry (dms_id, version, filename) or error
*/
public function add(
$name, $mimetype, $fileHandle, // Required parameters
$kategorie_kurzbz = null, $dokument_kurzbz = null, $beschreibung = null, $cis_suche = false, $schlagworte = null
// Required parameters
$name, $mimetype, $fileHandle,
// Optional parameters
$kategorie_kurzbz = null, $dokument_kurzbz = null, $beschreibung = null, $cis_suche = false, $schlagworte = null, $insertvon = self::DMS_SYS_NAME
)
{
// create unique filename, using original document name to detect file extension
$filename = $this->_getUniqueFilename($name);
// If the file handle is not valid
if ($fileHandle === false) return error('Was not possible to open the given file');
// copy file from fileHandle to dms folder
$copyFileResult = $this->_copyFile($fileHandle, $filename);
// Create unique filename, using original document name to detect file extension
$filename = $this->_getUniqueFilename($name);
if (isError($copyFileResult)) return $copyFileResult;
// Copy file from fileHandle to dms folder
$copyFileResult = $this->_copyFile($fileHandle, $filename);
// if file written successful, insert dms
$dmsResult = $this->_ci->DmsModel->insert(
array(
'kategorie_kurzbz' => $kategorie_kurzbz,
'dokument_kurzbz' => $dokument_kurzbz
)
// If an error occrured while copying the file
if (isError($copyFileResult)) return $copyFileResult;
// Insert the new DMS
$dmsResult = $this->_ci->DmsModel->insert(
array(
'kategorie_kurzbz' => $kategorie_kurzbz,
'dokument_kurzbz' => $dokument_kurzbz
)
);
// If an error occurred
if (isError($dmsResult)) return $dmsResult;
// If a DMS in the previous insert returned the new PK value
if (hasData($dmsResult))
{
$dms_id = getData($dmsResult);
// Insert the DMS version
$dmsVersion = array(
'dms_id' => $dms_id,
'version' => 0,
'filename' => $filename,
'mimetype' => $mimetype,
'name' => $name,
'beschreibung' => $beschreibung,
'cis_suche' => $cis_suche,
'schlagworte' => $schlagworte,
'insertvon' => $insertvon,
'insertamum' => date('Y-m-d H:i:s')
);
if (isError($dmsResult)) return $dmsResult;
$dmsVersionResult = $this->_ci->DmsVersionModel->insert($dmsVersion);
if (hasData($dmsResult))
{
$dms_id = getData($dmsResult);
$version = 0;
// If an error occured
if (isError($dmsVersionResult)) return $dmsVersionResult;
// insert dms version
$dmsVersion = array(
'dms_id' => $dms_id,
'version' => $version,
'filename' => $filename,
'mimetype' => $mimetype,
'name' => $name,
'beschreibung' => $beschreibung,
'cis_suche' => $cis_suche,
'schlagworte' => $schlagworte,
'insertvon' => $this->_who,
'insertamum' => date('Y-m-d H:i:s')
);
// Return dms info
$resObj = new stdClass();
$resObj->dms_id = $dms_id;
$resObj->version = 0;
$resObj->filename = $filename;
$dmsVersionResult = $this->_ci->DmsVersionModel->insert($dmsVersion);
if (isError($dmsVersionResult)) return $dmsVersionResult;
// return dms info
$resObj = new stdClass();
$resObj->dms_id = $dms_id;
$resObj->version = $version;
$resObj->filename = $filename;
return success($resObj);
}
else
return error("error when inserting DMS");
return success($resObj);
}
else
return success();
}
/**
* Writes a new file with content of fileHandle, adds a new dms version (max version number + 1) for the written file
* Returns success with info of added dms version (version, filename) or error
*/
public function addNewVersion($dms_id, $fileHandle, $name = null, $mimetype = null, $beschreibung = null, $cis_suche = false, $schlagworte = null)
public function addNewVersion(
// Required parameters
$dms_id, $fileHandle,
// Optional parameters
$name = null, $mimetype = null, $beschreibung = null, $cis_suche = false, $schlagworte = null, $insertvon = self::DMS_SYS_NAME
)
{
// If the file handle is not valid
if ($fileHandle === false) return error('Was not possible to open the given file');
// get the latest version
$lastVersionResult = $this->getLastVersion($dms_id);
@@ -141,7 +159,7 @@ class DmsLib
'beschreibung' => isset($beschreibung) ? $beschreibung : $lastVersion->beschreibung,
'cis_suche' => isset($cis_suche) ? $cis_suche : $lastVersion->cis_suche,
'schlagworte' => isset($schlagworte) ? $schlagworte : $lastVersion->schlagworte,
'insertvon' => $this->_who,
'insertvon' => $insertvon,
'insertamum' => date('Y-m-d H:i:s')
);
@@ -157,7 +175,7 @@ class DmsLib
return success($resObj);
}
else
return error("last version not found");
return success();
}
/**
@@ -167,6 +185,9 @@ class DmsLib
*/
public function updateLastVersion($dms_id, $fileHandle, $name = null, $mimetype = null, $beschreibung = null, $cis_suche = false, $schlagworte = null)
{
// If the file handle is not valid
if ($fileHandle === false) return error('Was not possible to open the given file');
// get the latest version
$lastVersionResult = $this->getLastVersion($dms_id);
@@ -208,12 +229,12 @@ class DmsLib
return success($resObj);
}
else
return error("last version not found");
return success();
}
/**
* Gets dms version with highest number
* Returns success with dms data and fileHandle with file content or error
* Returns success with dms data or error
*/
public function getLastVersion($dms_id)
{
@@ -237,12 +258,12 @@ class DmsLib
return $this->getVersion($dms_id, $lastDmsVersion);
}
else
return error("Dms last version not found");
return success();
}
/**
* Gets specified dms version
* Returns success with dms data and fileHandle with file content or error
* Returns success with dms data or error
*/
public function getVersion($dms_id, $version)
{
@@ -254,34 +275,7 @@ class DmsLib
)
);
if (isError($dmsVersionResult)) return $dmsVersionResult;
if (hasData($dmsVersionResult))
{
$dmsVersion = getData($dmsVersionResult)[0];
// get file content as file pointer
$fileHandleResult = $this->_ci->DmsFSModel->openRead($dmsVersion->filename);
if (isError($fileHandleResult)) return $fileHandleResult;
if (hasData($fileHandleResult))
{
$fileHandle = getData($fileHandleResult);
$dmsVersion->{self::FILE_CONTENT_PROPERTY} = $fileHandle;
// close file pointer
$closeResult = $this->_ci->DmsFSModel->close($fileHandle);
if (isError($closeResult)) return $closeResult;
return success($dmsVersion);
}
else
return error("File could not be opened");
}
else
return error("Dms version not found");
return $dmsVersionResult;
}
/**
@@ -420,6 +414,34 @@ class DmsLib
return success($removeVersionResultObj);
}
/**
* Get info from the DMS to be provided to the FHC_Controller->outputFile
*/
public function getOutputFileInfo($dms_id, $file_name = '', $disposition = 'attachment')
{
// Loads the last DMS version from database
$lastVersionResult = $this->getLastVersion($dms_id);
// If an error occurred then return it
if (isError($lastVersionResult)) return $lastVersionResult;
// If has been found
if (hasData($lastVersionResult))
{
$lastVersion = getData($lastVersionResult)[0];
$fileObj = new stdClass();
$fileObj->file = DMS_PATH.$lastVersion->filename;
$fileObj->name = isEmptyString($file_name) ? $lastVersion->name : $file_name;
$fileObj->mimetype = $lastVersion->mimetype;
$fileObj->disposition = $disposition;
return success($fileObj);
}
return success();
}
// -----------------------------------------------------------------------------------------------------------
// Private methods
@@ -474,432 +496,5 @@ class DmsLib
return $uniqueFilename;
}
// -----------------------------------------------------------------------------------------------------------
// Deprecated methods, not to be used
/**
* Load a DMS Document.
* If no version is particularly given, the latest version is loaded.
*
* @param $dms_id
* @param integer $version
* @return array
*/
public function load($dms_id, $version = null)
{
if (is_numeric($dms_id))
{
$this->_ci->DmsModel->addJoin('campus.tbl_dms_version', 'dms_id');
$this->_ci->DmsModel->addOrder('version', 'DESC');
$this->_ci->DmsModel->addLimit(1);
if (!is_numeric($version))
{
return $this->_ci->DmsModel->load($dms_id);
}
else
{
return $this->_ci->DmsModel->loadWhere(array('dms_id' => $dms_id, 'version' => $version));
}
}
return error('The parameter DMS ID must be a number');
}
/**
* Read a DMS Document from the Filesystem
* @param int $dms_id ID of the Document.
* @param int $version The version of the Document (latest if null).
* @return object success or error
*/
public function read($dms_id, $version = null)
{
$result = error('Wrong dms_id parameter');
if (isset($dms_id))
{
$this->_ci->DmsModel->addJoin('campus.tbl_dms_version', 'dms_id');
$this->_ci->DmsModel->addOrder('version', 'DESC');
$this->_ci->DmsModel->addLimit(1);
if (!isset($version))
{
$result = $this->_ci->DmsModel->load($dms_id);
}
else
{
$result = $this->_ci->DmsModel->loadWhere(array('dms_id' => $dms_id, 'version' => $version));
}
// If a dms has been found
if (hasData($result))
{
$resultFS = $this->_ci->DmsFSModel->readBase64(getData($result)[0]->filename);
if (isError($resultFS)) return $resultFS; // if an error occurred return it
$result->retval[0]->{self::FILE_CONTENT_PROPERTY} = getData($resultFS);
}
}
return $result;
}
/**
* Get all accepted Documents of a Person
*
* @param int $person_id ID of the person.
* @param string $dokument_kurzbz Type of document.
* @param bool $no_file If null then loads also the content.
* @return object success or error
*/
public function getAktenAcceptedDms($person_id, $dokument_kurzbz = null, $no_file = null)
{
$result = $this->_ci->AkteModel->getAktenAcceptedDms($person_id, $dokument_kurzbz);
if (hasData($result) && $no_file == null)
{
for ($i = 0; $i < count(getData($result)); $i++)
{
$resultFS = $this->_ci->DmsFSModel->readBase64(getData($result)[$i]->filename);
if (isError($resultFS)) return $resultFS; // if an error occurred return it
$result->retval[$i]->{self::FILE_CONTENT_PROPERTY} = getData($resultFS);
}
}
return $result;
}
/**
* Uploads a document and saves it to DMS
* @param $dms DMS assoc array
* @param $field_name Name of the HTML uploadfile input name attribute
* @param array $allowed_types Default: all. Param example: array(jpg, pdf)
* @return array
*/
public function upload($dms, $field_name, $allowed_types = array('*'))
{
// Init upload configs
$this->_loadUploadLibrary($allowed_types);
if (!$this->_ci->upload->do_upload($field_name))
{
return error($this->_ci->upload->display_errors());
}
$upload_data = $this->_ci->upload->data(); // data about the uploaded file
// Insert to DMS table
$insDmsResult = $this->_ci->DmsModel->insert($this->_ci->DmsModel->filterFields($dms));
if (isError($insDmsResult)) return $insDmsResult;
$upload_data['dms_id'] = getData($insDmsResult);
if(isset($upload_data['file_type']) && !isset($dms['mimetype']))
$dms['mimetype'] = $upload_data['file_type'];
// Insert DMS version
$insVersionResult = $this->_ci->DmsVersionModel->insert(
$this->_ci->DmsVersionModel->filterFields(
$dms,
$upload_data['dms_id'],
$upload_data['file_name']
)
);
if (isError($insVersionResult)) return $insVersionResult;
// Return result of uploaded data
return success($upload_data);
}
/**
* Download a document.
*
* @param $dms_id
* @param string $filename $filename If String is given, it will be used as filename on download
* @param string $disposition [inline | attachment]
* Inline opens doc in new tab. Attachment displays download dialog box.
*/
public function download($dms_id, $filename = null, $disposition = 'inline')
{
// Retrieves info about the given dms
$fileInfoResult = $this->getFileInfo($dms_id);
if (isError($fileInfoResult)) return error(getError($fileInfoResult));
// If data have been found
if (hasData($fileInfoResult))
{
$fileObj = getData($fileInfoResult);
// Change filename, if filename is provided
if (!isEmptyString($filename)) $fileObj->name = $filename;
// Add file disposition if disposition has a valid value
if ($disposition == 'attachment' || $disposition == 'inline')
{
$fileObj->disposition = $disposition;
}
return success($fileObj);
}
// If no data have been found then return an empty success
return success();
}
/**
* Get file information.
*
* @param $dms_id
* @param integer $version
* @return array with File Object.
*/
public function getFileInfo($dms_id, $version = null)
{
// Checks the dms_id parameter
if (!is_numeric($dms_id)) return error('Wrong parameter');
// Load DMS from database
$result = $this->load($dms_id, $version);
if (isError($result)) return error(getError($result));
// If data have been found
if (hasData($result))
{
// Store file information in fileObj
$fileObj = new stdClass();
$fileObj->filename = getData($result)[0]->filename;
$fileObj->file = DMS_PATH.getData($result)[0]->filename;
$fileObj->name = getData($result)[0]->name; // original user filename
$fileObj->mimetype = getData($result)[0]->mimetype;
return success($fileObj);
}
// If no data have been found return an empty success
return success();
}
/**
* Saves a Document
* @param object $dms DMS Object ot be saved.
* @return object
*/
public function save($dms)
{
$result = null;
if (isset($dms['new']) && $dms['new'] == true)
{
// Remove new parameter to avoid DB insert errors
unset($dms['new']);
$result = $this->_saveFileOnInsert($dms);
if (isSuccess($result))
{
$filename = getData($result);
if (isset($dms['dms_id']) && $dms['dms_id'] != '')
{
$result = $this->_ci->DmsVersionModel->insert(
$this->_ci->DmsVersionModel->filterFields($dms, $dms['dms_id'], $filename)
);
}
else
{
$result = $this->_ci->DmsModel->insert($this->_ci->DmsModel->filterFields($dms));
if (isSuccess($result))
{
$result = $this->_ci->DmsVersionModel->insert(
$this->_ci->DmsVersionModel->filterFields($dms, getData($result), $filename)
);
}
}
}
}
else
{
$result = $this->_saveFileOnUpdate($dms);
if (isSuccess($result))
{
$result = $this->_ci->DmsModel->update($dms['dms_id'], $this->_ci->DmsModel->filterFields($dms));
if (isSuccess($result))
{
$result = $this->_ci->DmsVersionModel->update(
array(
$dms['dms_id'],
$dms['version']
),
$this->_ci->DmsVersionModel->filterFields($dms)
);
}
}
}
return $result;
}
/**
* Deletes a Akte of a Person
* @param int $person_id ID of the person.
* @param int $dms_id Id of the Document.
* @return object
*/
public function delete($person_id, $dms_id)
{
$result = null;
// If the parameters are valid
if (is_numeric($person_id) && is_numeric($dms_id))
{
// Start DB transaction
$this->_ci->db->trans_start(false);
// Get akte_id from table tbl_akte
$result = $this->_ci->AkteModel->loadWhere(array('person_id' => $person_id, 'dms_id' => $dms_id));
if (isSuccess($result))
{
// Delete all entries in tbl_akte
for ($i = 0; $i < count(getData($result)); $i++)
{
$this->_ci->AkteModel->delete(getData($result)[$i]->akte_id);
}
// Get all filenames related to this dms
$resultFileNames = $this->_ci->DmsVersionModel->loadWhere(array('dms_id' => $dms_id));
if (isSuccess($resultFileNames))
{
// Delete from tbl_dms_version
$result = $this->_ci->DmsVersionModel->delete(array('dms_id' => $dms_id));
if (isSuccess($result))
{
// Delete from tbl_dms
$result = $this->_ci->DmsModel->delete($dms_id);
}
}
}
// Transaction complete!
$this->_ci->db->trans_complete();
// Check if everything went ok during the transaction
if ($this->_ci->db->trans_status() === false || isError($result))
{
$this->_ci->db->trans_rollback();
$result = error('An error occurred while performing a delete operation', EXIT_ERROR);
}
else
{
$this->_ci->db->trans_commit();
$result = success('Dms successfully removed from DB');
}
// If everything is ok
if (isSuccess($result))
{
// Remove all files related to this person and dms
for ($i = 0; $i < count(getData($resultFileNames)); $i++)
{
$this->_ci->DmsFSModel->removeBase64(getData($resultFileNames)[$i]->filename);
}
}
}
else
{
$result = error('Invalid parameters');
}
return $result;
}
/**
* Loads the Content of an akte
* @param int $akte_id Id of the akte.
* @return object with document content or error
*/
public function getAkteContent($akte_id)
{
$akte = $this->_ci->AkteModel->load($akte_id);
if (hasData($akte))
{
if (getData($akte)[0]->inhalt != '')
{
return success(base64_decode(getData($akte)[0]->inhalt));
}
elseif (getData($akte)[0]->dms_id != '')
{
$dmscontent = $this->read(getData($akte)[0]->dms_id);
if (isSuccess($dmscontent))
{
return success(base64_decode(getData($dmscontent)[0]->file_content));
}
else
{
return error(getError($dmscontent));
}
}
else
{
return error('No Content available');
}
}
else
{
return error(getError($akte));
}
}
/**
* Saves the Content of a DMS in the Filesystem
* @param object $dms DMS object to be saved.
* @return object
*/
private function _saveFileOnInsert($dms)
{
$filename = uniqid().'.'.pathinfo($dms['name'], PATHINFO_EXTENSION);
$result = $this->_ci->DmsFSModel->writeBase64($filename, $dms['file_content']);
if (isSuccess($result))
{
$result = success($filename);
}
return $result;
}
/**
* Updates the File in the Filesystem
* @param object $dms DMS object to update.
* @return object
*/
private function _saveFileOnUpdate($dms)
{
$result = null;
if (isset($dms['version']))
{
$result = $this->read($dms['dms_id'], $dms['version']);
if (hasData($result))
{
$result = $this->_ci->DmsFSModel->writeBase64(getData($result)[0]->filename, $dms['file_content']);
}
}
return $result;
}
/**
* Loads the upload library of CI
*/
private function _loadUploadLibrary($allowed_types)
{
$config = array();
$config['upload_path'] = DMS_PATH;
$config['allowed_types'] = implode('|', $allowed_types);
$config['overwrite'] = true;
$config['file_name'] = uniqid().'.pdf';
$this->_ci->load->library('upload', $config);
$this->_ci->upload->initialize($config);
}
}
+37 -236
View File
@@ -1,5 +1,5 @@
<?php
/* Copyright (C) 2024 fhcomplete.net
/* Copyright (C) 2025 fhcomplete.net
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
@@ -34,15 +34,11 @@ use SimpleXMLElement as SimpleXMLElement;
* modifiing said data (sign()/setXMLTag_archivierbar()) or adding
* images (addImage()) and then call output() and close().
* Now the create, output and close functions are combined into one function and adding data and images is done via parameters.
* There are now two functions getContent() and showContent() where showContent() equals to output(false) and getContent equals to output(true)
* Instead of calling addDataArray, addDataXML or addDataURL just call
* getDataArray, getDataXML or getDataURL respectevily and use the return
* value as $xml_data parameter in the showContent and getContent calls.
* value as $xml_data parameter in the getContent call.
* Instead of calling addImages just create an array and pass it as $images
* parameter to the showContent/getContent function.
* The old setFilename() function is now a parameter in showContent(). It is
* not needed in getContent() since that function does not do anything that
* requires a filename.
* parameter to the getContent function.
* To get/show a signed document just pass a valid uid as $sign_user
* parameter.
*
@@ -63,21 +59,10 @@ use SimpleXMLElement as SimpleXMLElement;
* 'name' => $imagename,
* 'contenttype' => $imagecontenttype
* ]];
* $this->documentexportlib->showContent(
* $filename,
* $vorlage,
* $xml_data,
* $oe_kurzbz,
* $version,
* $outputformat,
* null,
* null,
* $images
* );
*/
class DocumentExportLib
{
private $unoconv_version;
private $_ci;
/**
* Constructor
@@ -85,33 +70,14 @@ class DocumentExportLib
public function __construct()
{
// Gets CI instance
$this->ci =& get_instance();
$this->_ci =& get_instance();
// Load Phrases
$this->ci->load->library('PhrasesLib', ['document_export', null], 'documentExportPhrases');
// Load phrases
$this->_ci->load->library('PhrasesLib', ['document_export', null], 'DocumentExportPhrases');
// Which document converter has to be used
if (defined('DOCSBOX_ENABLED') && DOCSBOX_ENABLED === true)
{
// Use docsbox!!
}
else
{
exec('unoconv --version', $ret_arr);
if(isset($ret_arr[0]))
{
$hlp = explode(' ', $ret_arr[0]);
if(isset($hlp[1]))
{
$this->unoconv_version = $hlp[1];
}
else
show_error($this->ci->documentExportPhrases->t("document_export", "error_unoconv_version"));
}
else
show_error($this->ci->documentExportPhrases->t("document_export", "error_unoconv"));
}
// Load libraries
$this->_ci->load->library('DocumentLib');
$this->_ci->load->library('SignatureLib');
}
/**
@@ -172,7 +138,7 @@ class DocumentExportLib
$xml_data = new DOMDocument;
if (!$xml_data->load($xml_url))
return error($this->ci->documentExportPhrases->t("document_export", "error_xml_load", [
return error($this->_ci->DocumentExportPhrases->t("document_export", "error_xml_load", [
"url" => $xml_url,
"xml" => $xml,
"params" => $params
@@ -236,7 +202,7 @@ class DocumentExportLib
$outputformat = $this->getDefaultOutputFormat($outputformat, $vorlage->mimetype);
$result = $this->createAndSignContent(
$createResult = $this->createAndSignContent(
$temp_folder,
$outputformat,
$vorlage,
@@ -247,118 +213,26 @@ class DocumentExportLib
$sign_user,
$sign_profile
);
if (isError($result)) {
if (isError($createResult)) {
$this->close($temp_folder, $source_folder);
return $result;
return $createResult;
}
$temp_filename = getData($result);
$temp_filename = getData($createResult);
$fsize = filesize($temp_filename);
$handle = fopen($temp_filename, 'r');
if (!$handle)
return error($this->ci->documentExportPhrases->t("document_export", "error_file_load"));
$result = fread($handle, $fsize);
return error($this->_ci->DocumentExportPhrases->t("document_export", "error_file_load"));
$fileContentResult = fread($handle, $fsize);
fclose($handle);
$this->close($temp_folder, $source_folder);
return success($result);
return success($fileContentResult);
}
/**
* Sets the headers and displays the Document.
* On failure the exit() function will be called
*
* @param string $filename
* @param stdClass $vorlage A db entry from tbl_vorlage
* @param DomDocument $xml_data
* @param string $oe_kurzbz
* @param integer|null $version (optional)
* @param string $outputformat (optional)
* @param string $sign_user (optional) Must be a valid uid
* @param string $sign_profile (optional) Signatureprofile for signing
* @param array $images (optional) Each element should have a property path, name & contenttype which are all strings
*
* @return void
*/
public function showContent(
$filename,
$vorlage,
$xml_data,
$oe_kurzbz,
$version = null,
$outputformat = null,
$sign_user = null,
$sign_profile = null,
$images = []
) {
$source_folder = getcwd();
$temp_folder = sys_get_temp_dir() . '/fhcunoconv-' . uniqid();
$outputformat = $this->getDefaultOutputFormat($outputformat, $vorlage->mimetype);
$result = $this->createAndSignContent(
$temp_folder,
$outputformat,
$vorlage,
$oe_kurzbz,
$version,
$xml_data,
$images,
$sign_user,
$sign_profile
);
if (isError($result)) {
$this->close($temp_folder, $source_folder);
exit(getError($result));
}
$temp_filename = getData($result);
$fsize = filesize($temp_filename);
$handle = fopen($temp_filename, 'r');
if (!$handle) {
$this->close($temp_folder, $source_folder);
exit($this->ci->documentExportPhrases->t("document_export", "error_file_load"));
}
if (headers_sent()) {
$this->close($temp_folder, $source_folder);
exit($this->ci->documentExportPhrases->t("document_export", "error_headers"));
}
switch ($outputformat) {
case 'pdf':
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="' . $filename . '.pdf"');
header('Content-Length: ' . $fsize);
break;
case 'doc':
header('Content-type: application/vnd.ms-word');
header('Content-Disposition: attachment; filename="' . $filename . '.doc"');
header('Content-Length: ' . $fsize);
break;
case 'odt':
header('Content-type: application/vnd.oasis.opendocument.text');
header('Content-Disposition: attachment; filename="' . $filename . '.odt"');
header('Content-Length: ' . $fsize);
break;
default:
$this->close($temp_folder, $source_folder);
exit($this->ci->documentExportPhrases->t("document_export", "error_outputformat_missing"));
}
while (!feof($handle)) {
echo fread($handle, 8192);
}
fclose($handle);
$this->close($temp_folder, $source_folder);
}
/**
* Helper function for getContent and showContent.
* Helper function for getContent
* Creates the temp folder and calls create and sign functions.
*
* @param string $temp_folder
@@ -387,13 +261,13 @@ class DocumentExportLib
mkdir($temp_folder);
chdir($temp_folder);
$this->ci->load->model('system/Vorlagestudiengang_model', 'VorlagestudiengangModel');
$this->_ci->load->model('system/Vorlagestudiengang_model', 'VorlagestudiengangModel');
$result = $this->ci->VorlagestudiengangModel->getCurrent($vorlage->vorlage_kurzbz, $oe_kurzbz, $version);
$result = $this->_ci->VorlagestudiengangModel->getCurrent($vorlage->vorlage_kurzbz, $oe_kurzbz, $version);
if (isError($result))
return $result;
if (!hasData($result))
return error($this->ci->documentExportPhrases->t("document_export", "error_template_missing"));
return error($this->_ci->DocumentExportPhrases->t("document_export", "error_template_missing"));
$vorlage_stg = current(getData($result));
foreach ($vorlage_stg as $k => $v)
$vorlage->$k = $v;
@@ -437,7 +311,7 @@ class DocumentExportLib
{
$content_xsl = new DOMDocument();
if (!$content_xsl->loadXML($vorlage->text))
return error($this->ci->documentExportPhrases->t("document_export", "error_xsl_load"));
return error($this->_ci->DocumentExportPhrases->t("document_export", "error_xsl_load"));
$proc = new XSLTProcessor();
$proc->importStyleSheet($content_xsl);
@@ -454,7 +328,7 @@ class DocumentExportLib
if ($vorlage->style) {
$styles_xsl = new DOMDocument();
if (!$styles_xsl->loadXML($vorlage->style))
return error($this->ci->documentExportPhrases->t("document_export", "error_styles_load"));
return error($this->_ci->DocumentExportPhrases->t("document_export", "error_styles_load"));
$style_proc = new XSLTProcessor();
$style_proc->importStyleSheet($styles_xsl);
@@ -482,7 +356,7 @@ class DocumentExportLib
$tempname_zip = $temp_folder . '/out.zip';
if (!copy($zipfile, $tempname_zip))
return error($this->ci->documentExportPhrases->t("document_export", "error_file_copy"));
return error($this->_ci->DocumentExportPhrases->t("document_export", "error_file_copy"));
exec("zip $tempname_zip content.xml");
if (!is_null($styles_xsl))
@@ -502,7 +376,7 @@ class DocumentExportLib
$manifest_xml = new DOMDocument;
if (!$manifest_xml->loadXML($manifest))
return error($this->ci->documentExportPhrases->t("document_export", "error_manifest"));
return error($this->_ci->DocumentExportPhrases->t("document_export", "error_manifest"));
//root-node holen
$root = $manifest_xml->getElementsByTagName('manifest')->item(0);
@@ -529,42 +403,16 @@ class DocumentExportLib
clearstatcache();
$temp_filename = $temp_folder . '/out.' . $outputformat;
switch ($outputformat) {
case 'pdf':
case 'doc':
$ret = 0;
$temp_filename = $temp_folder . '/out.' . $outputformat;
$converResult = $this->_ci->documentlib->convert($tempname_zip, $temp_filename, $outputformat);
if (defined('DOCSBOX_ENABLED') && DOCSBOX_ENABLED === true) {
// Use docsbox
$this->ci->load->library("DocsboxLib");
$docboxlib = get_class($this->ci->docboxlib);
$ret = $docboxlib::convert($tempname_zip, $temp_filename, $outputformat);
} else {
// Use unoconv
// Unoconv Version 0.6 hat eine Bug wodurch die Berechtigungen des PDF/Doc nicht korrekt gesetzt
// werden. Deshalb wird dies hier speziell behandelt.
// Die 2. Variante hat den Vorteil dass hier eine bessere Fehlerbehandlung moeglich ist
if ($this->unoconv_version == '0.6')
$command = 'unoconv -e IsSkipEmptyPages=false -f ' . $outputformat . ' %2$s > %1$s';
else
$command = 'unoconv -e IsSkipEmptyPages=false -f ' . $outputformat . ' --output %s %s 2>&1';
$command = sprintf($command, $temp_filename, $tempname_zip);
exec($command, $out, $ret);
}
if ($ret)
return error($this->ci->documentExportPhrases->t("document_export", "error_conv_timeout"));
if (isError($converResult))
return error($this->_ci->DocumentExportPhrases->t('document_export', 'error_conv_timeout'));
break;
case 'odt':
default:
$temp_filename = $tempname_zip;
}
return success($temp_filename);
@@ -584,63 +432,15 @@ class DocumentExportLib
*/
protected function sign($temp_folder, $temp_filename, $outputformat, $user, $profile)
{
if ($outputformat != 'pdf')
return error($this->ci->documentExportPhrases->t("document_export", "error_sign_pdf"));
if ($outputformat != 'pdf') return error($this->_ci->DocumentExportPhrases->t('document_export', 'error_sign_pdf'));
// Load the File
$file_data = file_get_contents($temp_filename);
$signed_filename = $this->_ci->signaturelib->sign($temp_folder, $temp_filename, $user, $profile);
$data = new stdClass();
$data->document = base64_encode($file_data);
// If fine then return it
if (isSuccess($signed_filename)) return $signed_filename;
// Signatur Profil
if (!is_null($profile))
$data->profile = $profile;
else
$data->profile = SIGNATUR_DEFAULT_PROFILE;
// Username des Endusers der die Signatur angefordert hat
$data->user = $user;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, SIGNATUR_URL . '/' . SIGNATUR_SIGN_API);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 7);
curl_setopt($ch, CURLOPT_USERAGENT, "FH-Complete");
// SSL Zertifikatsprüfung deaktivieren
// Besser ist es das Zertifikat am Server zu installieren!
//curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
//curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$data_string = json_encode($data, JSON_FORCE_OBJECT);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Content-Length:' . mb_strlen($data_string),
'Authorization: Basic ' . base64_encode(SIGNATUR_USER . ":" . SIGNATUR_PASSWORD)
]);
$result = curl_exec($ch);
if (curl_errno($ch)) {
curl_close($ch);
return error($this->ci->documentExportPhrases->t("document_export", "error_sign_timeout"));
}
curl_close($ch);
$resultdata = json_decode($result);
// If it is success
if (isset($resultdata->error) && $resultdata->error == 0) {
$signed_filename = $temp_folder . '/signed.pdf';
file_put_contents($signed_filename, base64_decode($resultdata->retval));
return success($signed_filename);
}
// otherwise if it is an error
return error($resultdata->retval ?? $this->ci->documentExportPhrases->t("global", "unknown_error", ["error" => $result]));
// Otherwise it is an error
return error($this->_ci->DocumentExportPhrases->t('global', 'unknown_error', ['error' => getError($signed_filename)]));
}
/**
@@ -717,3 +517,4 @@ class DocumentExportLib
return 'pdf';
}
}
+25 -24
View File
@@ -4,7 +4,8 @@ if (! defined('BASEPATH')) exit('No direct script access allowed');
class DocumentLib
{
private $unoconv_version;
private $_ci;
private $_unoconv_version;
/**
* Constructor
@@ -12,7 +13,10 @@ class DocumentLib
public function __construct()
{
// Gets CI instance
$this->ci =& get_instance();
$this->_ci =& get_instance();
// Load phrases
$this->_ci->load->library('PhrasesLib', ['document_export', null], 'DocumentExportPhrases');
// Which document converter has to be used
if (defined('DOCSBOX_ENABLED') && DOCSBOX_ENABLED === true)
@@ -28,13 +32,13 @@ class DocumentLib
$hlp = explode(' ', $ret_arr[0]);
if(isset($hlp[1]))
{
$this->unoconv_version = $hlp[1];
$this->_unoconv_version = $hlp[1];
}
else
show_error('Could not get Unoconv Version');
show_error($this->_ci->DocumentExportPhrases->t('document_export', 'error_unoconv_version'));
}
else
show_error('Unoconv not found - Please install Unoconv');
show_error($this->_ci->DocumentExportPhrases->t('document_export', 'error_unoconv'));
}
}
@@ -56,7 +60,7 @@ class DocumentLib
case 'image/jpeg':
case 'image/jpg':
case 'image/pjpeg':
$this->_jpegtopdf($filename, $outFile);
$this->_jpegToPdf($filename, $outFile);
return success($outFile);
case 'application/vnd.oasis.opendocument.spreadsheet':
case 'application/msword':
@@ -72,23 +76,19 @@ class DocumentLib
else
{
// Unoconv Version 0.6 seems to fail on converting TXT Files
if ($this->unoconv_version == '0.6')
return error();
if ($this->_unoconv_version == '0.6') return error('Unoconv Version 0.6 does not convert TXT Files correctly');
}
// Convertion
$ret = $this->convert($filename, $outFile, 'pdf');
if(isSuccess($ret))
{
return success($outFile);
}
else
{
return error(getError($ret));
}
if(isSuccess($ret)) return success($outFile);
// Error
return $ret;
case 'application/pdf':
return success($filename);
default:
return error('Unknown Mimetype:'.$mimetype);
return error('Unknown Mimetype:' . $mimetype);
}
}
@@ -101,20 +101,20 @@ class DocumentLib
*/
public function mergePDF($files, $outFile)
{
$cmd = "gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$outFile ";
$cmd = 'gs -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sOutputFile=$outFile ';
$finfo = finfo_open(FILEINFO_MIME_TYPE);
// add all pdf files to the command
foreach ($files as $f)
{
$cmd .= $f." ";
$cmd .= $f.' ';
if (!file_exists($f))
{
return error("File not found: '$f'");
}
if (finfo_file($finfo, $f) != "application/pdf")
if (finfo_file($finfo, $f) != 'application/pdf')
{
return error("Wrong format(".finfo_file($finfo, $f)."): '$f'");
return error('Wrong format('.finfo_file($finfo, $f)."): '$f'");
}
}
@@ -144,13 +144,13 @@ class DocumentLib
// If it is set to use docsbox
if (defined('DOCSBOX_ENABLED') && DOCSBOX_ENABLED === true)
{
require_once(dirname(__FILE__).'/../application/libraries/DocsboxLib.php');
require_once(dirname(__FILE__).'/DocsboxLib.php');
$ret = DocsboxLib::convert($inFile, $outFile, $format);
}
else // otherwise use unoconv
{
if ($this->unoconv_version == '0.6')
if ($this->_unoconv_version == '0.6')
$command = 'unoconv -f %1$s %3$s > %2$s';
else
$command = 'unoconv -f %s --output %s %s 2>&1';
@@ -175,7 +175,7 @@ class DocumentLib
* @param string $outfile Path to Output (pdf) File.
* @return success or error object
*/
private function _jpegtopdf($filename, $outfile)
private function _jpegToPdf($filename, $outfile)
{
if (!file_exists($filename))
return error('File does not exists');
@@ -230,3 +230,4 @@ class DocumentLib
return true;
}
}
+168 -256
View File
@@ -1,6 +1,6 @@
<?php
/**
* Copyright (C) 2025 fhcomplete.org
* Copyright (C) 2022 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
@@ -19,7 +19,6 @@
if (! defined('BASEPATH')) exit('No direct script access allowed');
use \stdClass as stdClass;
use \PharData as PharData;
/**
* Library to manage core extensions
@@ -34,20 +33,11 @@ class ExtensionsLib
const EXTENSION_JSON_NAME = 'extension.json'; // file that contains extension data
const EXTENSIONS_DIR_NAME = 'extensions'; // name of the directories where will be created the symlinks
const PHRASES_DIRECTORY = 'phrases/'; // directory name where phrases files are
private $_ci;
const UPLOAD_PATH = 'tmp/';
private $_ci; // Code igniter instance
private $_errorOccurred; // boolean, true if an error occurred while installing an extension
private $_currentInstalledExtensionVersion; // contains the version of the current installation of an extension
// NOTE: the following have been declared as properties to maintain compatibility with previous PHP versions
// where arrays cannot be declared as constants
// Accepted file extensions for an uploaded extension
private $ARCHIVE_EXTENSIONS = array('.tgz', '.tbz2');
private $ARCHIVE_EXTENSIONS = array('.tgz', '.tbz2'); // accepted file extensions for an uploaded extension
private $UPLOAD_PATH; // temporary directory to store the upload file and checks the archive
private $EXTENSIONS_PATH; // directory where all the extensions are
// Directories that are part of the extension archive
private $SOFTLINK_TARGET_DIRECTORIES = array(
@@ -55,11 +45,16 @@ class ExtensionsLib
DOC_ROOT => array('public')
);
private $_errorOccurred; // boolean, true if an error occurred while installing an extension
private $_currentInstalledExtensionVersion; // contains the version of the current installation of an extension
/**
* Class constructor
*/
public function __construct()
{
$this->UPLOAD_PATH = APPPATH.'tmp/';
$this->EXTENSIONS_PATH = APPPATH.'extensions/';
// Get code igniter instance
$this->_ci =& get_instance();
@@ -68,8 +63,6 @@ class ExtensionsLib
// Loads EPrintfLib
$this->_ci->load->library('EPrintfLib');
// Loads PhrasesLib
$this->_ci->load->library('PhrasesLib');
// Loading models
$this->_ci->load->model('system/Extensions_model', 'ExtensionsModel');
@@ -77,13 +70,6 @@ class ExtensionsLib
// Set default values fot class properties
$this->_errorOccurred = false;
$this->_currentInstalledExtensionVersion = 0;
// If SERVER_NAME is _not_ declared or it is an empty string
if (!defined('SERVER_NAME') || (defined('SERVER_NAME') && isEmptyString(SERVER_NAME)))
{
$this->_printError('Global constant SERVER_NAME is not declared or it is not valid');
exit();
}
}
// -------------------------------------------------------------------------------------------------
@@ -96,44 +82,32 @@ class ExtensionsLib
* @param $extensionName string Name of Extension (optional)
* @param $filename Path to tgz Extension File (optional)
*/
public function installExtension($extensionName, $filename, $perform_sql)
public function installExtension($extensionName = null, $filename = null)
{
$extensionDB = null; // contains data from DB about an extension
$extensionJson = null; // contains the extension.json data
$this->_printInfo('WARNING!!! Please do not change page or stop this procedure before it is finished');
// Create an object with the given paramenters
$uploadData = new stdClass();
$uploadData->fullPath = $filename;
$uploadData->extensionName = $extensionName;
// If no extension name or file name are provided
if (is_null($extensionName) || is_null($filename))
if (!is_null($extensionName) && !is_null($filename))
{
$uploadData = new stdClass();
$uploadData->fullPath = $filename;
$uploadData->extensionName = $extensionName;
}
else
{
$this->_loadUploadLibrary(); // loads CI upload library
$uploadData = $this->_uploadExtension(); // perform the upload of the file and returns info about it
}
// If a file has been uploaded
if (isset($uploadData))
{
// If the given filename is the upper directory or the current one
if (trim($uploadData->fullPath) == '..' || trim($uploadData->fullPath) == '.')
{
$this->_printFailure('wrong file name: / has to be escaped with %2F');
$uploadData = null; // then it is a wrong one!
}
}
// If the no error occurred
if ($uploadData != null)
if ($uploadData != null) // if no error occurred
{
$this->_extractExtension($uploadData->fullPath); // extract the archive of the uploaded extension
if (!$this->_errorOccurred) // if no error occurred
{
// Retrieves data about any previous installation of this extension on this server
// Retives data about any previous installation of this extension
$extensionDB = $this->_loadPreviousInstallation($uploadData->extensionName);
}
@@ -154,17 +128,15 @@ class ExtensionsLib
$this->_printStart('Proceding with the installation of the extension: '.$extensionJson->name);
$this->_printEnd();
// Remove any previous installation from file system and database
$this->_cleanPreviousInstallation($extensionJson);
$this->_cleanPreviousInstallation($extensionJson); // cleans any previous installation
// Records extension data in DB
$this->_installExtension($extensionJson);
$this->_installExtension($extensionJson); // records extension data in DB
if (!$this->_errorOccurred && $perform_sql === true) // if no error occurred
if (!$this->_errorOccurred) // if no error occurred
{
// Loads and executes the needed SQL scripts
// Loads and executes neede SQL scripts
$this->_loadSQLs(
$this->_getUploadPath().$extensionJson->name.DIRECTORY_SEPARATOR.ExtensionsLib::SQL_DIRECTORY,
$this->UPLOAD_PATH.$extensionJson->name.'/'.ExtensionsLib::SQL_DIRECTORY,
$extensionJson
);
}
@@ -180,19 +152,20 @@ class ExtensionsLib
// Create the symlinks to the installed extension
$this->_createSymLinks($extensionJson->name);
}
if (!$this->_errorOccurred) // if no error occurred
{
// Create the symlinks to the installed extension
$this->_installPhrases($extensionJson->name);
}
}
else
{
$this->_errorOccurred = true;
}
}
else
{
$this->_errorOccurred = true;
}
if ($this->_errorOccurred === false) // if no errors occurred
{
// If a file has been uploaded then remove them
if (isset($uploadData) && !$this->_rrm($uploadData->fullPath))
if (!$this->_rrm($uploadData->fullPath)) // removes uploaded file
{
$this->_printInfo('Error while cleaning upload directory. Not a blocking error');
}
@@ -218,26 +191,19 @@ class ExtensionsLib
$result = $this->_ci->ExtensionsModel->load($extensionId);
if (hasData($result)) // if something was found
{
// If this server is _not_ the same where the extension was installed then exit with a failure
if (getData($result)[0]->server_kurzbz != SERVER_NAME) return false;
$extensionName = getData($result)[0]->name; // extension name
// Not to be checked, could fail if the extension is disabled
$this->_delSoftLinks($extensionName);
// Remove the extension from the extensions installation directory
$delExtension = $this->_rrm($this->_getExtensionsPath().$extensionName);
$extensionName = $result->retval[0]->name; // extension name
$this->_delSoftLinks($extensionName); // not to be checked, could fail if the extension is disabled
// remove the extension from the extensions installation directory
$delExtension = $this->_rrm($this->EXTENSIONS_PATH.$extensionName);
// Select all the version of this extension
$this->_ci->ExtensionsModel->addSelect('extension_id');
$result = $this->_ci->ExtensionsModel->loadWhere(array('name' => $extensionName, 'server_kurzbz' => SERVER_NAME));
$result = $this->_ci->ExtensionsModel->loadWhere(array('name' => $extensionName));
// If something was found
if (hasData($result))
{
foreach (getData($result) as $extension) // loops on them
// Loops on them
foreach ($result->retval as $extension)
{
// Remove them all
$result = $this->_ci->ExtensionsModel->delete($extension->extension_id);
@@ -254,57 +220,23 @@ class ExtensionsLib
*/
public function getInstalledExtensions()
{
$this->_ci->ExtensionsModel->addOrder('name', 'ASC');
$this->_ci->ExtensionsModel->addOrder('server_kurzbz', 'ASC');
$this->_ci->ExtensionsModel->addOrder('version', 'ASC');
return $this->_ci->ExtensionsModel->loadWhere(array('server_kurzbz' => SERVER_NAME));
return $this->_ci->ExtensionsModel->getInstalledExtensions();
}
/**
* To enable/disable an extension
* To enable an extension
*/
public function toggleExtension($extensionId, $enabled)
public function enableExtension($extensionId)
{
$_toggleExtension = false;
return $this->_toggleExtension($extensionId, true);
}
// Loads data from DB about the given extension
$result = $this->_ci->ExtensionsModel->load($extensionId);
if (hasData($result))
{
// If this server is _not_ the same where the extension was installed then exit with a failure
if (getData($result)[0]->server_kurzbz != SERVER_NAME) return false;
$extensionName = getData($result)[0]->name; // extension name
// If to be enabled
if ($enabled === true)
{
// Add the symlinks
$_toggleExtension = $this->_addSoftLinks($extensionName);
}
else // If to be disabled
{
// Remove all the symlinks
$_toggleExtension = $this->_delSoftLinks($extensionName);
}
if ($_toggleExtension) // if is a success
{
// Updates DB
$result = $this->_ci->ExtensionsModel->update($extensionId, array('enabled' => $enabled));
if (isSuccess($result))
{
$_toggleExtension = true;
}
else // if DB update fails remove symlinks from file system
{
$this->_delSoftLinks($extensionName);
}
}
}
return $_toggleExtension;
/**
* To disable an extension
*/
public function disableExtension($extensionId)
{
return $this->_toggleExtension($extensionId, false);
}
// -------------------------------------------------------------------------------------------------
@@ -318,7 +250,7 @@ class ExtensionsLib
$this->_ci->load->library(
'upload',
array(
'upload_path' => $this->_getUploadPath(),
'upload_path' => $this->UPLOAD_PATH,
'allowed_types' => '*',
'overwrite' => true
)
@@ -382,7 +314,7 @@ class ExtensionsLib
// Extracts the uploaded file
$pd = new PharData($uploadPath);
$pd->extractTo($this->_getUploadPath(), null, true);
$pd->extractTo($this->UPLOAD_PATH, null, true);
}
catch (UnexpectedValueException $uva)
{
@@ -390,16 +322,6 @@ class ExtensionsLib
$this->_printFailure('provided an invalid archive');
}
catch (PharException $pe)
{
$this->_errorOccurred = true;
$this->_printFailure('phar error occurred');
}
catch (InvalidArgumentException $iae)
{
$this->_errorOccurred = true;
$this->_printFailure('wrong file name');
}
catch (Exception $e)
{
$this->_errorOccurred = true;
$this->_printFailure('generic error occurred, check logs');
@@ -422,29 +344,24 @@ class ExtensionsLib
// Loads the last version of the previous installation of this extension
$this->_ci->ExtensionsModel->addOrder('version', 'DESC');
$this->_ci->ExtensionsModel->addLimit(1);
// Loads extensions installed on this server
$result = $this->_ci->ExtensionsModel->loadWhere(
array(
'name' => $extensionName,
'server_kurzbz' => SERVER_NAME
)
);
// In an error occurred
$result = $this->_ci->ExtensionsModel->loadWhere(array('name' => $extensionName));
if (isError($result))
{
$this->_errorOccurred = true;
$this->_printFailure('data base error: '.getData($result));
$this->_printFailure('data base error: '.$result->retval);
}
elseif (hasData($result))
else
{
$extensionDB = getData($result)[0];
if (hasData($result)) // if found
{
$extensionDB = $result->retval[0]; // return it!
}
else
{
$this->_printMessage('not found');
}
}
// If no data have been found
if ($extensionDB == null) $this->_printMessage('not found');
$this->_printSuccess(!$this->_errorOccurred);
$this->_printEnd();
@@ -460,10 +377,10 @@ class ExtensionsLib
$this->_printStart('Checking extension file system structure');
// Checks if the root directory of this archive has the same name of the extension
if (is_dir($this->_getUploadPath().$extensionName))
if (is_dir($this->UPLOAD_PATH.$extensionName))
{
// Checks if file extension.json exists inside the uploaded archive
if (!file_exists($this->_getUploadPath().$extensionName.DIRECTORY_SEPARATOR.ExtensionsLib::EXTENSION_JSON_NAME))
if (!file_exists($this->UPLOAD_PATH.$extensionName.'/'.ExtensionsLib::EXTENSION_JSON_NAME))
{
$this->_errorOccurred = true;
$this->_printFailure('missing extension.json');
@@ -485,14 +402,11 @@ class ExtensionsLib
*/
private function _chkExtensionJson($extensionName, $extensionDB)
{
// Set a default FHComplete version
$fhcomplete_version = 0;
$this->_printStart('Parsing and checking extension.json');
// Decodes extension.json
$extensionJson = json_decode(
file_get_contents($this->_getUploadPath().$extensionName.DIRECTORY_SEPARATOR.ExtensionsLib::EXTENSION_JSON_NAME)
file_get_contents($this->UPLOAD_PATH.$extensionName.'/'.ExtensionsLib::EXTENSION_JSON_NAME)
);
// Checks if the parameter name of the extension.json has the same value of the extension name
@@ -502,41 +416,36 @@ class ExtensionsLib
if (isset($extensionJson->version))
{
$extensionJson->currentInstalledVersion = 0; // default current installed version of this extension
// If a previous installation was found in DB
if ($extensionDB != null)
if ($extensionDB != null) // if no previous installation was found in DB
{
// Then get the data from database
$extensionJson->extension_id = $extensionDB->extension_id; // get the extension_id from DB
$extensionJson->currentInstalledVersion = $extensionDB->version; // get the current installed version from DB
// Prompt a summary
$this->_printMessage('Extension already installed!');
$this->_printMessage('Current version: '.$extensionDB->version);
$this->_printMessage('Version of the uploaded extension: '.$extensionJson->version);
// Check if the version of the uploaded extension is the same
// as the one from the dataabase
if ($extensionJson->version == $extensionDB->version)
{
$this->_printMessage('Updating the same version!');
}
elseif ($extensionJson->version > $extensionDB->version) // or it is higher
elseif ($extensionJson->version > $extensionDB->version)
{
$this->_printMessage('Updating to a new version!');
}
else // otherwise is lower, then the downgrade is not possible
else // downgrade is not possible
{
$extensionJson = null;
$this->_printFailure('downgrade must be performed manually');
}
}
else // otherwise if it is not installed on this server
else
{
$this->_printMessage('Version of the uploaded extension: '.$extensionJson->version);
}
// If no errors occurred then check the JSON file content within the uploaded extension
// If no errors occurred
if ($extensionJson != null)
{
// Default value
@@ -545,7 +454,7 @@ class ExtensionsLib
require_once('version.php'); // get the core version
// Checks if the required core version of the extension is the same of this system
if (isset($extensionJson->core_version) && version_compare($extensionJson->core_version, $fhcomplete_version, '<='))
if (isset($extensionJson->core_version) && version_compare($extensionJson->core_version, $fhcomplete_version,'<='))
{
$this->_printMessage('Required core version: '.$extensionJson->core_version);
$this->_printMessage('Current core version: '.$fhcomplete_version);
@@ -558,7 +467,7 @@ class ExtensionsLib
// Gets the required dependencies
$result = $this->_ci->ExtensionsModel->getDependencies($extensionJson->dependencies);
// If they are matcheds
if (hasData($result) && count(getData($result)) == count($extensionJson->dependencies))
if (hasData($result) && count($result->retval) == count($extensionJson->dependencies))
{
if (isset($extensionJson->dependencies))
{
@@ -653,7 +562,6 @@ class ExtensionsLib
{
$this->_printStart('Adding new entry in the DB');
// Insert into database the extension information
$result = $this->_ci->ExtensionsModel->insert(
array(
'name' => $extensionJson->name,
@@ -662,8 +570,7 @@ class ExtensionsLib
'license' => isset($extensionJson->license) ? $extensionJson->license : null,
'url' => isset($extensionJson->url) ? $extensionJson->url : null,
'core_version' => $extensionJson->core_version,
'dependencies' => isset($extensionJson->dependencies) ? $extensionJson->dependencies : null,
'server_kurzbz' => SERVER_NAME
'dependencies' => isset($extensionJson->dependencies) ? $extensionJson->dependencies : null
)
);
if (isSuccess($result))
@@ -699,16 +606,14 @@ class ExtensionsLib
// Loops through the versions
for ($sqlDir = $startVersion; $sqlDir <= $extensionJson->version; $sqlDir++)
{
// Gets all the SQL files in the directory having the same name of the version
$files = glob($pkgSQLsPath.DIRECTORY_SEPARATOR.$sqlDir.'/*'.ExtensionsLib::SQL_FILE_EXTENSION);
// If a directory with the same value of the version is present in the sql scripts directory
$files = glob($pkgSQLsPath.'/'.$sqlDir.'/*'.ExtensionsLib::SQL_FILE_EXTENSION);
if ($files != false)
{
{
// Loads every sql files
foreach ($files as $file)
{
$sql = file_get_contents($file); // gets the entire content of the file
$sql = file_get_contents($file); // gets the entire content of the file
$this->_printMessage('Executing query:');
$this->_printMessage($sql);
@@ -746,20 +651,17 @@ class ExtensionsLib
{
$this->_printStart('Moving the upload extension from upload folder to extension folder');
$this->_printMessage('Current extension directory: '.$this->_getUploadPath().$extensionName);
$this->_printMessage('Directory where it will be moved: '.$this->_getExtensionsPath().$extensionName);
$this->_printMessage('Current extension directory: '.$this->UPLOAD_PATH.$extensionName);
$this->_printMessage('Directory where it will be moved: '.$this->EXTENSIONS_PATH.$extensionName);
if (!file_exists($this->_getExtensionsPath().$extensionName))
if (rename($this->UPLOAD_PATH.$extensionName.'/', $this->EXTENSIONS_PATH.$extensionName))
{
if (rename($this->_getUploadPath().$extensionName.DIRECTORY_SEPARATOR, $this->_getExtensionsPath().$extensionName))
{
$this->_printSuccess(true);
}
else
{
$this->_errorOccurred = true;
$this->_printFailure('error while moving');
}
$this->_printSuccess(true);
}
else
{
$this->_errorOccurred = true;
$this->_printFailure('error while moving');
}
$this->_printEnd();
@@ -793,21 +695,13 @@ class ExtensionsLib
{
$_delSoftLinks = false;
// For every set of target directories where:
// rootPath: is the prefix of the absolute path for the target directory
// targetDirectories: is an array of target directories
foreach ($this->SOFTLINK_TARGET_DIRECTORIES as $rootPath => $targetDirectories)
{
// For every target directory in the current set
foreach ($targetDirectories as $targetDirectory)
{
// If the symlink exists
if (file_exists($rootPath.$targetDirectory.DIRECTORY_SEPARATOR.ExtensionsLib::EXTENSIONS_DIR_NAME.DIRECTORY_SEPARATOR.$extensionName))
if (file_exists($rootPath.$targetDirectory.'/'.ExtensionsLib::EXTENSIONS_DIR_NAME.'/'.$extensionName))
{
// Try to delete it
$_delSoftLinks = unlink(
$rootPath.$targetDirectory.DIRECTORY_SEPARATOR.ExtensionsLib::EXTENSIONS_DIR_NAME.DIRECTORY_SEPARATOR.$extensionName
);
$_delSoftLinks = unlink($rootPath.$targetDirectory.'/'.ExtensionsLib::EXTENSIONS_DIR_NAME.'/'.$extensionName);
}
}
}
@@ -820,23 +714,29 @@ class ExtensionsLib
*/
private function _rrm($dir)
{
// If the directory does not exist return success
if (!file_exists($dir)) return true;
// If it is not a directory then delete it and return the result
if (!is_dir($dir)) return unlink($dir);
// For each subdirectory
foreach (scandir($dir) as $subdir)
if (!file_exists($dir))
{
// If it is the same directory or the parent directory skip to the next one
if ($subdir == '.' || $subdir == '..') continue;
// Try to remove a subdirectory, if it fails then return a failure
if (!$this->_rrm($dir.DIRECTORY_SEPARATOR.$subdir)) return false;
return true;
}
if (!is_dir($dir))
{
return unlink($dir);
}
foreach (scandir($dir) as $item)
{
if ($item == '.' || $item == '..')
{
continue;
}
if (!$this->_rrm($dir.DIRECTORY_SEPARATOR.$item))
{
return false;
}
}
// Delete the directory and return the result
return rmdir($dir);
}
@@ -846,36 +746,27 @@ class ExtensionsLib
private function _addSoftLinks($extensionName)
{
$_addSoftLinks = false;
$extensionPath = $this->_getExtensionsPath().$extensionName.DIRECTORY_SEPARATOR;
$extensionPath = $this->EXTENSIONS_PATH.$extensionName.'/';
// For every set of target directories where:
// rootPath: is the prefix of the absolute path for the target directory
// targetDirectories: is an array of target directories
// For every target directory
foreach ($this->SOFTLINK_TARGET_DIRECTORIES as $rootPath => $targetDirectories)
{
// For every target directory in the current set
foreach ($targetDirectories as $targetDirectory)
{
// Checks if the link already exists
$_addSoftLinks = file_exists(
$rootPath.$targetDirectory.DIRECTORY_SEPARATOR.ExtensionsLib::EXTENSIONS_DIR_NAME.DIRECTORY_SEPARATOR.$extensionName
);
// If the symlink does not exist
if (!$_addSoftLinks)
// If destination of the symlink does not exist
if (!file_exists($rootPath.$targetDirectory.'/'.ExtensionsLib::EXTENSIONS_DIR_NAME.'/'.$extensionName))
{
// If the target directory does not exist than creates it
if (!is_dir($extensionPath.$targetDirectory)) mkdir($extensionPath.$targetDirectory);
// If the target directory does not exist than creates that
if (!is_dir($extensionPath.$targetDirectory))
{
mkdir($extensionPath.$targetDirectory);
}
// Create the symlink
$_addSoftLinks = @symlink(
// Target
$_addSoftLinks = symlink(
$extensionPath.$targetDirectory,
// Link
$rootPath.$targetDirectory.DIRECTORY_SEPARATOR.ExtensionsLib::EXTENSIONS_DIR_NAME.DIRECTORY_SEPARATOR.$extensionName
$rootPath.$targetDirectory.'/'.ExtensionsLib::EXTENSIONS_DIR_NAME.'/'.$extensionName
);
// On failure
if (!$_addSoftLinks)
{
log_message('error', 'Failed to create Symlink to '.$extensionPath.$targetDirectory);
@@ -905,9 +796,9 @@ class ExtensionsLib
$this->_printMessage('Removing the extracted data from the upload directory');
if ($uploadData != null
&& isset($uploadData->extensionName)
&& file_exists($this->_getUploadPath().$uploadData->extensionName))
&& file_exists($this->UPLOAD_PATH.$uploadData->extensionName))
{
$this->_rrm($this->_getUploadPath().$uploadData->extensionName);
$this->_rrm($this->UPLOAD_PATH.$uploadData->extensionName);
}
// If the upload of the file is a success and the extension name is present and no previous installation were found
@@ -921,13 +812,16 @@ class ExtensionsLib
{
// Remove them all from file system and DB
$this->_printMessage('Removing entries in the DB related to this extension and from extensions directory');
$this->delExtension(getData($result)[0]->extension_id);
$this->delExtension($result->retval[0]->extension_id);
}
}
// Otherwise remove them all only from DB
elseif ($extensionJson != null && isset($extensionJson->extension_id))
else // otherwise
{
$this->_ci->ExtensionsModel->delete($extensionJson->extension_id);
// Remove them all only from DB
if ($extensionJson != null && isset($extensionJson->extension_id))
{
$this->_ci->ExtensionsModel->delete($extensionJson->extension_id);
}
}
$this->_printMessage('Rollback finished');
@@ -936,19 +830,46 @@ class ExtensionsLib
}
/**
* Returns the absolute upload path
* To enable/disable an extension
*/
private function _getUploadPath()
private function _toggleExtension($extensionId, $enabled)
{
return APPPATH.self::UPLOAD_PATH;
}
$_toggleExtension = false;
/**
* Returns the absolute extensions path
*/
private function _getExtensionsPath()
{
return APPPATH.self::EXTENSIONS_DIR_NAME.DIRECTORY_SEPARATOR;
// Loads data from DB about the given extension
$result = $this->_ci->ExtensionsModel->load($extensionId);
if (hasData($result))
{
$extensionName = $result->retval[0]->name; // extension name
// If to be enabled
if ($enabled === true)
{
// Add the symlinks
$_toggleExtension = $this->_addSoftLinks($extensionName);
}
else // If to be disabled
{
// Remove all the symlinks
$_toggleExtension = $this->_delSoftLinks($extensionName);
}
if ($_toggleExtension) // if is a success
{
// Updates DB
$result = $this->_ci->ExtensionsModel->update($extensionId, array('enabled' => $enabled));
if (isSuccess($result))
{
$_toggleExtension = true;
}
else // if DB update fails remove symlinks from file system
{
$this->_delSoftLinks($extensionName);
}
}
}
return $_toggleExtension;
}
/**
@@ -1010,13 +931,4 @@ class ExtensionsLib
{
$this->_printInfo('------------------------------------------------------------------------------------------');
}
/**
* Install the phrases from the given extension
*/
private function _installPhrases($extensionName)
{
$this->_ci->phraseslib->installFrom($this->_getExtensionsPath().$extensionName.'/'.self::PHRASES_DIRECTORY);
}
}
+118 -458
View File
@@ -1,96 +1,98 @@
<?php
/**
* Copyright (C) 2025 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 3 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, see <https://www.gnu.org/licenses/>.
*/
if (! defined('BASEPATH')) exit('No direct script access allowed');
use \Netcarver\Textile\Parser as NTParser;
class PhrasesLib
{
// Directory name where all the category files are
const CORE_PHRASES_DIRECTORY = 'phrases/';
// Old config file used for the phrases
const CORE_PHRASES_LEGACY_CFG_FILE = 'system/phrasesupdate.php';
// Who adds phrases into the database
const INSERT_BY = 'PhrasesManager';
// Array elements names
const APP = 'app';
const CATEGORY = 'category';
const PHRASE = 'phrase';
const SPRACHE = 'sprache';
const TEXT = 'text';
const DESCRIPTION = 'description';
private $_ci; // Code igniter instance
private $_phrases; // Contains the retrieved phrases
/**
* Loads parser library
*/
public function __construct()
{
public function __construct()
{
$this->_ci =& get_instance();
$this->_phrases = null; // set the property _phrases as null by default
// CI parser
$this->_ci->load->library('parser');
// Loads EPrintfLib
$this->_ci->load->library('EPrintfLib');
// Loads the PhraseModel
$this->_ci->load->model('system/Phrase_model', 'PhraseModel');
// Loads the PhrasentextModel
$this->_ci->load->model('system/Phrasentext_model', 'PhrasentextModel');
// Workaround to use more parameters in the construct since PHP doesn't support many constructors
$this->_extendConstruct(func_get_args());
}
$this->_extend_construct(func_get_args());
}
// -----------------------------------------------------------------------------------------------------------------
// Public methods
/**
* getPhrase() - loads a specific Phrase
*/
public function getPhrase($phrase_id)
{
if (isEmptyString($phrase_id)) return error(MSG_ERR_INVALID_MSG_ID);
return $this->_ci->PhraseModel->load($phrase_id);
}
/**
* getSubMessages() - will return all Messages subordinated from a specified message.
*/
public function getPhraseByApp($app = null)
{
return $this->_ci->PhraseModel->loadWhere(array('app' => $app));
}
/**
* getPhraseInhalt
*/
public function getPhraseInhalt($phrase_id)
{
if (isEmptyString($phrase_id)) return error(MSG_ERR_INVALID_MSG_ID);
return $this->_ci->PhrasentextModel->loadWhere(array('phrase_id' => $phrase_id));
}
/**
* delPhrasentext
*/
public function delPhrasentext($phrasentext_id)
{
if (isEmptyString($phrasentext_id)) return error(MSG_ERR_INVALID_MSG_ID);
return $this->_ci->PhrasentextModel->delete(array('phrasentext_id' => $phrasentext_id));
}
/**
* Return the phrases in JSON format
*/
public function toJSON()
* savePhrase() - will save a spezific Phrase.
*/
public function savePhrase($phrase_id, $data)
{
if (isEmptyString($data)) return error(MSG_ERR_INVALID_MSG_ID);
return $this->_ci->PhraseModel->update($phrase_id, $data);
}
/**
* getVorlagetextByVorlage() - will load tbl_vorlagestudiengang for a spezific Template.
*/
public function getPhrasentextById($phrasentext_id)
{
return json_encode($this->_phrases);
}
if (isEmptyString($phrasentext_id)) return error('Not a valid phrasentext_id');
return $this->_ci->PhrasentextModel->load($phrasentext_id);
}
/**
* getPhrase() - loads a specific Phrase
*/
public function getPhrase($phrase_id)
{
if (isEmptyString($phrase_id)) return error(MSG_ERR_INVALID_MSG_ID);
return $this->_ci->PhraseModel->load($phrase_id);
}
/**
* getPhrases() - Retrieves phrases from the DB
* getPhrases() - Retrieves phrases from the DB
* The given parameter are the same needed to read from the table system.tb_phrase
*/
public function getPhrases($app, $sprache, $phrase = null, $orgeinheit_kurzbz = null, $orgform_kurzbz = null, $blockTags = null)
{
*/
public function getPhrases($app, $sprache, $phrase = null, $orgeinheit_kurzbz = null, $orgform_kurzbz = null, $blockTags = null)
{
if (isset($app) && isset($sprache))
{
$result = $this->_ci->PhraseModel->getPhrases($app, $sprache, $phrase, $orgeinheit_kurzbz, $orgform_kurzbz);
@@ -98,7 +100,7 @@ class PhrasesLib
if (hasData($result))
{
// Textile parser
$textileParser = new NTParser();
$textileParser = new \Netcarver\Textile\Parser();
for ($i = 0; $i < count($result->retval); $i++)
{
@@ -137,7 +139,31 @@ class PhrasesLib
}
return $result;
}
}
/**
* insertPhraseinhalt() - will load tbl_vorlagestudiengang for a spezific Template.
*/
public function insertPhraseinhalt($data)
{
return $this->_ci->PhrasentextModel->insert($data);
}
/**
* getVorlagetextById() - will load tbl_vorlagestudiengang for a spezific Template.
*/
public function getVorlagetextById($vorlagestudiengang_id)
{
return $this->_ci->VorlageStudiengangModel->load($vorlagestudiengang_id);
}
/**
* saveVorlagetext() - will load tbl_vorlagestudiengang for a spezific Template.
*/
public function updatePhraseInhalt($phrasentext_id, $data)
{
return $this->_ci->PhrasentextModel->update($phrasentext_id, $data);
}
/**
* Retrieves a phrases from the the property _phrases with the given parameters
@@ -150,7 +176,7 @@ class PhrasesLib
public function t($category, $phrase, $parameters = array(), $orgeinheit_kurzbz = null, $orgform_kurzbz = null)
{
// If the property _phrases is populated
if (!isEmptyArray($this->_phrases))
if (is_array($this->_phrases))
{
// Loops through the _phrases property
for ($i = 0; $i < count($this->_phrases); $i++)
@@ -176,107 +202,6 @@ class PhrasesLib
}
/**
* Install phrases from the core
*/
public function installFromCore()
{
$this->_installPhrases(APPPATH.self::CORE_PHRASES_DIRECTORY);
}
/**
* Install phrases from the given path
*/
public function installFrom($phrasesDirectory)
{
$this->_installPhrases($phrasesDirectory);
}
/**
* Creates/updates the phrases files under the directory application/phrases/
*/
public function syncFiles()
{
// Legacy phrases file absolute path
$legacyPhrasesFile = FHCPATH.self::CORE_PHRASES_LEGACY_CFG_FILE;
// Try to include the legacy file used to store the phrases
// It is using the @ to suppress errors in case the file is not readable or does not exist
// In case is not readable or does not exists it stops the execution and prompts a message
if ((@include_once $legacyPhrasesFile) === false)
{
$this->_ci->eprintflib->printError($legacyPhrasesFile.' not found or not readable!'."\n");
exit;
}
// If the phrases array exists and it is not empty, otherwise it stops the executions and prompts a message
if (!isset($phrases) || isEmptyArray($phrases))
{
$this->_ci->eprintflib->printError($legacyPhrasesFile.' does not contain a populated array called "$phrases"');
exit;
}
// For each phrases contained in the array
foreach ($phrases as $phrase)
{
// If it contains the element category
if (isset($phrase[self::CATEGORY]) && isset($phrase[self::PHRASE]))
{
//
$toAppend = false;
// Path and name of the phrases category file
$phrasesCategoryFile = APPPATH.self::CORE_PHRASES_DIRECTORY.$phrase[self::CATEGORY].'.php';
// Checks if a phrases file already exists for this category
if (file_exists($phrasesCategoryFile))
{
// Get the phrases file category content
$phrasesCategoryFileContent = file_get_contents($phrasesCategoryFile);
// If an error occurred
if ($phrasesCategoryFileContent === false)
{
$this->_ci->eprintflib->printError('Was not possible to get the content of: '.$phrasesCategoryFile);
exit;
}
// Check if the phrase already exists inside this file
if (stristr($phrasesCategoryFileContent, $phrase[self::PHRASE]) === false) $toAppend = true;
}
else // if not then
{
// Create the new phrases category file
if (!$this->_createPhraseToCategoryFile($phrasesCategoryFile))
{
$this->_ci->eprintflib->printError('Was not possible to create the phrases category file: '.$phrasesCategoryFile);
exit;
}
$this->_ci->eprintflib->printMessage('Created new phrases category file: '.$phrasesCategoryFile);
$toAppend = true;
}
// If the phrase is to be appended to the phrases category file
if ($toAppend)
{
// And then append the phrase to it
if (!$this->_appendPhraseToCategoryFile($phrase, $phrasesCategoryFile))
{
$this->_ci->eprintflib->printError('Was not possible to append to the phrases category file: '.$phrasesCategoryFile);
exit;
}
}
}
else // otherwise prompt an error message and continue
{
$this->_ci->eprintflib->printInfo('Missing "'.self::CATEGORY.'" or "'.self::PHRASE.'" for the following element:');
var_dump($phrase);
$this->_ci->eprintflib->printInfo('-------------------------------------------');
}
}
}
/*
* Workaround to reload the phrases array on an already constructed library.
* @parameters -> look for _setPhrases docs
*/
@@ -290,68 +215,6 @@ class PhrasesLib
// -----------------------------------------------------------------------------------------------------------------
// Private methods
/**
* Append a new phrases to the related phrases category file
*/
private function _appendPhraseToCategoryFile($phrase, $phrasesCategoryFile)
{
// Open the category phrases file and a temporary one
$srcFileHandle = @fopen($phrasesCategoryFile, 'r');
// In case exists then it is truncated
$dstFileHandle = @fopen($phrasesCategoryFile.'.tmp', 'w');
// If an error occurred then return false
if (!$srcFileHandle || !$dstFileHandle) return false;
$line = '';
// Read the file line by line
while (!feof($srcFileHandle))
{
// Read a single line from the source file
$line = fgets($srcFileHandle, 4096);
// If an error occurred then exit
if ($line === false && !feof($srcFileHandle)) return false;
// If the first phrase or the end of the array
if ($line == '$phrases = array();' || stristr($line, ');'))
{
$first_coma = ',';
if ($line == '$phrases = array();') $first_coma = '';
// If found then append the new phrase to the current line
// and replace the end of the array
$line = str_replace(');', $first_coma."\n".var_export($phrase, true)."\n".');', $line);
}
// In any case copy the line to the temp file
if (@fwrite($dstFileHandle, $line) === false) return false;
}
// Close the file handles
fclose($srcFileHandle);
fclose($dstFileHandle);
// Delete the old file
if (@unlink($phrasesCategoryFile) === false) return false;
// Rename the temp file as the old one
if (@rename($phrasesCategoryFile.'.tmp', $phrasesCategoryFile) === false) return false;
return true; // if everything was fine
}
/**
* Creates a new phrases category file with the given name
* and having an empy array called $phrases as content
*/
private function _createPhraseToCategoryFile($phrasesCategoryFile)
{
return !(file_put_contents(
$phrasesCategoryFile,
'<?php'."\n\n".'$phrases = array();'
) === false);
}
/**
* Extends the functionalities of the constructor of this class
* This is a workaround to use more parameters in the construct since PHP doesn't support many constructors
@@ -361,19 +224,22 @@ class PhrasesLib
* - could be an array of categories, and for each category there is an array of phrases
* language: optional parameter must be a string. It's used to load phrases
*/
private function _extendConstruct($params)
private function _extend_construct($params)
{
// Checks if the $params is an array with at least one element
if (!isEmptyArray($params))
if (is_array($params) && count($params) > 0)
{
$parameters = $params[0]; // temporary variable
$isIndexArray = false; //flag for indexed array
// If there are parameters
if (!isEmptyArray($parameters))
if (is_array($parameters) && count($parameters) > 0)
{
$categories = $parameters[0]; // categories is always the first parameter
// If it is not an array, then convert into one
if (!is_array($categories)) $categories = array($categories);
if (!is_array($categories)) // if it is not an array, then convert into one
{
$categories = array($categories);
}
// Retrieves the language of the logged user
$language = getUserLanguage(count($parameters) == 2 ? $parameters[1] : null);
@@ -413,7 +279,7 @@ class PhrasesLib
// If language is not default language and phrasentext is null -> fallback to default language
if ($language != DEFAULT_LANGUAGE)
{
// Get array with phrasentexte in the default language
// get array with phrasentexte in the default language
$defaultPhrases = null;
if ($isIndexArray)
{
@@ -424,19 +290,19 @@ class PhrasesLib
$defaultPhrases = $this->_ci->PhraseModel->getPhrasesByCategoryAndPhrasesAndLanguage($categories, DEFAULT_LANGUAGE);
}
// Combine array with phrasentexte in users language and in default language
// combine array with phrasentexte in users language and in default language
// (default used if phrasentext in users language is null or not set)
if (hasData($phrases) && hasData($defaultPhrases))
{
// Loop through phrases in default language
// loop through phrases in default language
foreach ($defaultPhrases->retval as $defaultPhrase)
{
$found = false; // flag for found phrase
// Loop through phrases in users language
// loop through phrases in users language
foreach ($phrases->retval as $phrase)
{
// If same phrase and category found and text is not null
// if same phrase and category found and text is not null
// use phrase in users language
if ($phrase->phrase == $defaultPhrase->phrase
&& $phrase->category == $defaultPhrase->category
@@ -447,11 +313,13 @@ class PhrasesLib
}
}
// Otherwise use phrase in default language
if (!$found) array_push($phrases->retval, $defaultPhrase);
// otherwise use phrase in default language
if (!$found)
{
array_push($phrases->retval, $defaultPhrase);
}
}
}
// Otherwise if only defaultPhrases have data
elseif (hasData($defaultPhrases))
{
$phrases = $defaultPhrases;
@@ -459,227 +327,19 @@ class PhrasesLib
}
// If there are phrases loaded then store them in the property _phrases
if (hasData($phrases)) $this->_phrases = $phrases->retval;
if (hasData($phrases))
{
$this->_phrases = $phrases->retval;
}
}
/**
* Install phrases from the given directory
* Returns the property _phrases JSON encoded
* @return json encoded property _phrases
*/
private function _installPhrases($phrasesDirectory)
public function getJSON()
{
$this->_ci->eprintflib->printInfo('------------------------------------------------------------------------------------------');
$this->_ci->eprintflib->printInfo('Phrases installation started from: '.$phrasesDirectory);
// If the given directory name does not exist
if (!is_dir($phrasesDirectory))
{
$this->_ci->eprintflib->printError('The directory '.$phrasesDirectory.' does not exist');
}
else // otherwise install the phrases from the given directory
{
// Get the list of category files from the given directory
$phrasesCategoryFiles = scandir($phrasesDirectory);
if ($phrasesCategoryFiles == false)
{
$this->_ci->eprintflib->printError('An error occurred while trying to access to the given directory: '.$phrasesDirectory);
}
else
{
// If no files are inside the given directory
if (count($phrasesCategoryFiles) == 2)
{
$this->_ci->eprintflib->printInfo('No phrases files are inside the given directory: '.$phrasesDirectory);
}
// For each file in this directory that represents a phrases category
foreach ($phrasesCategoryFiles as $phrasesCategoryFile)
{
// Gets the infos about the file
$pathInfo = pathinfo($phrasesDirectory.$phrasesCategoryFile);
// Skip the upper directory, the same directory and files that are not a php file
if ($phrasesCategoryFile != '.'
&& $phrasesCategoryFile != '..'
&& $pathInfo['extension'] == 'php')
{
$phrases = null; // define the variable
// Include the php file that contains phrases for that category
require_once($phrasesDirectory.$phrasesCategoryFile);
// If this file contains an array called phrases
if (isset($phrases) && is_array($phrases))
{
$addPhrases = $this->_addPhrases($phrases); // add them to the database
// If a blocking error occurred then print an error and stop the execution
if (isError($addPhrases))
{
$this->_ci->eprintflib->printError(getError($addPhrases));
break;
}
}
else // otherwise print an error and continue with the next file
{
$this->_ci->eprintflib->printInfo(
'The file '.$phrasesDirectory.$phrasesCategoryFile.' does not contain an array called "phrases"'
);
}
// Clean for the next file
unset($phrases);
}
}
}
}
$this->_ci->eprintflib->printInfo('Phrases installation ended');
$this->_ci->eprintflib->printInfo('------------------------------------------------------------------------------------------');
return json_encode($this->_phrases);
}
/**
* Add new phrases to the database
*/
private function _addPhrases($phrases)
{
// For eache given phrase
foreach ($phrases as $phrase)
{
$phrase_id = null; // The id of the new/existing phrase
// Checks the mandatory fields, if one of them is not valid continue with the next phrase
if (!$this->_isValidElement($phrase, self::APP)) continue;
if (!$this->_isValidElement($phrase, self::CATEGORY)) continue;
if (!$this->_isValidElement($phrase, self::PHRASE)) continue;
// Checks if the phrase already exists in the database
$phraseResult = $this->_ci->PhraseModel->loadWhere(
array(
'app' => $phrase[self::APP],
'category' => $phrase[self::CATEGORY],
'phrase' => $phrase[self::PHRASE]
)
);
// If an error occurred then return the error itself
if (isError($phraseResult)) return $phraseResult;
// If no phrase has been found
if (!hasData($phraseResult))
{
// Then add the phrase to the database
$phraseInsertResult = $this->_ci->PhraseModel->insert(
array(
'app' => $phrase[self::APP],
'category' => $phrase[self::CATEGORY],
'phrase' => $phrase[self::PHRASE],
'insertamum' => 'NOW()',
'insertvon' => self::INSERT_BY
)
);
// If an error occurred then return the error itself
if (isError($phraseInsertResult)) return $phraseInsertResult;
$phrase_id = getData($phraseInsertResult); // the phrase_id of the new added phrase
// Prints info about the new added phrase
$this->_ci->eprintflib->printMessage(
sprintf(
'A new phrase has been added into the database: '.
'phrase_id => %s | app => %s | category => %s | phrase => %s',
$phrase_id,
$phrase[self::APP],
$phrase[self::CATEGORY],
$phrase[self::PHRASE]
)
);
}
else // otherwise if the phrase already exists in the database
{
$phrase_id = getData($phraseResult)[0]->phrase_id; // gets the phrase_id
}
// If not a valid phrase_id
if ($phrase_id == null) return error('Not a valid phrase id');
// For each phrase text, one text for each language
foreach ($phrase['phrases'] as $phraseText)
{
// Checks the mandatory fields, if one of them is not valid continue with the next phrase text
if (!$this->_isValidElement($phraseText, self::SPRACHE)) continue;
if (!$this->_isValidElement($phraseText, self::TEXT)) continue;
// Set the not optional fields if they have not been set
if (!isset($phraseText[self::DESCRIPTION])) $phraseText[self::DESCRIPTION] = null;
// Checks if the phrase already exists in the database
$phraseTextResult = $this->_ci->PhrasentextModel->loadWhere(
array(
'phrase_id' => $phrase_id,
'sprache' => $phraseText[self::SPRACHE]
)
);
// If an error occurred then return the error itself
if (isError($phraseTextResult)) return $phraseTextResult;
// If no text for the phrase was found
if (!hasData($phraseTextResult))
{
// Then add the text phrase to the database
$phraseTextInsertResult = $this->_ci->PhrasentextModel->insert(
array(
'phrase_id' => $phrase_id,
'sprache' => $phraseText[self::SPRACHE],
'text' => $phraseText[self::TEXT],
'description' => $phraseText[self::DESCRIPTION],
'insertvon' => self::INSERT_BY,
'insertamum' => 'NOW()',
'orgeinheit_kurzbz' => null,
'orgform_kurzbz' => null
)
);
// If an error occurred then return the error itself
if (isError($phraseTextInsertResult)) return $phraseTextInsertResult;
// Prints info about the new added text phrase
$this->_ci->eprintflib->printMessage(
sprintf(
'A new text has been added into the database: '.
'phrase_id => %s | sprache => %s | text => %s | description => %s',
$phrase_id,
$phraseText[self::SPRACHE],
substr($phraseText[self::TEXT], 0, 42).'...',
substr($phraseText[self::DESCRIPTION], 0, 42).'...'
)
);
}
}
}
// If here then no blocking errors occurred
return success();
}
/**
* Checks if the given array element exists in the given array and if it is a valid string and then returns true
* Otherwise prints an info and then returns false
*/
private function _isValidElement($array, $elementName)
{
// If a not valid text is set
if ((isset($array[$elementName]) && isEmptyString($array[$elementName])) || !isset($array[$elementName]))
{
$this->_ci->eprintflib->printInfo('Not a valid element "'.$elementName.'":');
var_dump($array); // KEEP IT!!!
$this->_ci->eprintflib->printEOL();
return false;
}
return true;
}
}
}
+77 -9
View File
@@ -36,15 +36,7 @@ class SignatureLib
try
{
// Dont send Document if it is bigger than 30 MB (Limit of Signature Server)
if (filesize($inputFileName) > 30000000)
{
$returnObject = new stdClass();
$returnObject->code = 1;
$returnObject->error = 1;
$returnObject->retval = 'File to big';
return $returnObject;
}
if (filesize($inputFileName) > 30000000) return $this->_returnObject(1, 1, 'File too big');
// Get the content of the given file
$inputFileContent = file_get_contents($inputFileName);
@@ -82,4 +74,80 @@ class SignatureLib
// Otherwise return a null as error
return null;
}
/**
*
*/
public function sign($temp_folder, $inputFileName, $user, $profile)
{
// Load the File
$file_data = file_get_contents($inputFileName);
$data = new stdClass();
$data->document = base64_encode($file_data);
// Signatur Profil
if (!is_null($profile))
$data->profile = $profile;
else
$data->profile = SIGNATUR_DEFAULT_PROFILE;
// Username des Endusers der die Signatur angefordert hat
$data->user = $user;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, SIGNATUR_URL . '/' . SIGNATUR_SIGN_API);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 7);
curl_setopt($ch, CURLOPT_USERAGENT, "FH-Complete");
// SSL Zertifikatsprüfung deaktivieren
// Besser ist es das Zertifikat am Server zu installieren!
//curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
//curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
$data_string = json_encode($data, JSON_FORCE_OBJECT);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Content-Length:' . mb_strlen($data_string),
'Authorization: Basic ' . base64_encode(SIGNATUR_USER . ':' . SIGNATUR_PASSWORD)
]);
$result = curl_exec($ch);
if (curl_errno($ch)) {
curl_close($ch);
return $this->_returnObject(1, 1, 'CURL error');
}
curl_close($ch);
$resultdata = json_decode($result);
// If it is success
if (isset($resultdata->error) && $resultdata->error == 0)
{
$signed_filename = $temp_folder . '/signed.pdf';
file_put_contents($signed_filename, base64_decode($resultdata->retval));
return $this->_returnObject(0, 0, $signed_filename);
}
// Otherwise it is an error
return $this->_returnObject(1, 1, 'Error while signing the given document');
}
/**
*
*/
private function _returnObject($code, $error, $retval)
{
$returnObject = new stdClass();
$returnObject->code = $code;
$returnObject->error = $error;
$returnObject->retval = $retval;
return $returnObject;
}
}
+1 -56
View File
@@ -248,60 +248,5 @@ class Akte_model extends DB_Model
return success($dokumente->retval);
}
/**
* Liefert die Archivdokumente einer Person/mehrerer Personen
*
* @param integer/array $person_id
* @param boolean|null $signiert Wenn true werden nur Dokumente geliefert die digital signiert wurden.
* @param boolean|null $stud_selfservice Wenn true werden nur Dokumente geliefert die Studierende selbst herunterladen duerfen.
*
* @return stdClass
*/
public function getArchiv($person_id, $signiert = null, $stud_selfservice = null)
{
$this->addSelect('akte_id');
$this->addSelect('person_id');
$this->addSelect('dokument_kurzbz');
$this->addSelect('mimetype');
$this->addSelect('erstelltam');
$this->addSelect('gedruckt');
$this->addSelect('titel_intern');
$this->addSelect('anmerkung_intern');
$this->addSelect('titel');
$this->addSelect('bezeichnung');
$this->addSelect('updateamum');
$this->addSelect('insertamum');
$this->addSelect('updatevon');
$this->addSelect('insertvon');
$this->addSelect('uid');
$this->addSelect('dms_id');
$this->addSelect('anmerkung');
$this->addSelect('nachgereicht');
$this->addSelect('CASE WHEN inhalt is not null THEN true ELSE false END as inhalt_vorhanden', false);
$this->addSelect('nachgereicht_am');
$this->addSelect('ausstellungsnation');
$this->addSelect('formal_geprueft_amum');
$this->addSelect('archiv');
$this->addSelect('signiert');
$this->addSelect('stud_selfservice');
$this->addSelect('akzeptiertamum');
if ($signiert !== null)
$this->db->where('signiert', (boolean)$signiert);
if ($stud_selfservice !== null)
$this->db->where('stud_selfservice', (boolean)$stud_selfservice);
if (is_array($person_id))
$this->db->where_in('person_id', $person_id);
else
$this->db->where('person_id', $person_id);
$this->addOrder('erstelltam', 'DESC');
$this->addOrder('akte_id', 'DESC');
return $this->loadWhere([
'archiv' => true
]);
}
}
+16 -1
View File
@@ -26,6 +26,22 @@ class Extensions_model extends DB_Model
);
}
/**
*
*/
public function getInstalledExtensions()
{
$query = 'SELECT extension_id, e1.name, e1.version, description, license, url, core_version, dependencies, enabled
FROM system.tbl_extensions e1
INNER JOIN (
SELECT name, MAX(version) AS version
FROM system.tbl_extensions
GROUP BY name) e2
ON (e1.name = e2.name AND e1.version = e2.version)';
return $this->execQuery($query);
}
/**
*
*/
@@ -34,4 +50,3 @@ class Extensions_model extends DB_Model
return $this->execQuery($sql);
}
}
-268
View File
@@ -1,268 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'LvPlan',
'phrase' => 'previousWeek',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Vorherige Woche',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Previous week',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'LvPlan',
'phrase' => 'previousYear',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Vorheriges Jahr',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Previous year',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'LvPlan',
'phrase' => 'previousMonth',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Vorheriges Monat',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Previous month',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'LvPlan',
'phrase' => 'previousDay',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Vorheriger Tag',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Previous day',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'LvPlan',
'phrase' => 'nextDay',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Nächster Tag',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Next day',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'LvPlan',
'phrase' => 'nextWeek',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Nächste Woche',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Next week',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'LvPlan',
'phrase' => 'nextMonth',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Nächster Monat',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Next month',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'LvPlan',
'phrase' => 'nextYear',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Nächstes Jahr',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Next year',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'LvPlan',
'phrase' => 'modeDay',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Tages Ansicht',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Daily view',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'LvPlan',
'phrase' => 'modeWeek',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Wochen Ansicht',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Week view',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'LvPlan',
'phrase' => 'modeMonth',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Monats Ansicht',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Month view',
'description' => '',
'insertvon' => 'system',
),
),
),
);
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-141
View File
@@ -1,141 +0,0 @@
<?php
/* Copyright (C) 2013 FH Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
*/
$phrases = array(
array(
'app' => 'core',
'category' => 'account',
'phrase' => 'title',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Account Aktivierung',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Account Activation',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'account',
'phrase' => 'usage',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Bitte wählen Sie ein Passwort für Ihren Account.<br>Das Passwort muss zumindest 8 Zeichen enthalten, davon mindestens 1 Großbuchstabe, 1 Kleinbuchstabe und eine Ziffer.<br>Das Passwort darf keine Leerzeichen und Umlaute enthalten.<br>Erlaubte Sonderzeichen sind: -$#[]{}!().,*:;_',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Please choose a password for your account<br>The password must contain at least 8 characters, of which 1 must be upper case, 1 lower case and 1 a numeral.<br>The password may not include spaces or umlauts.<br>The following special characters are allowed: -$#[]{}!().,*:;_',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'account',
'phrase' => 'username',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Username',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Username',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'account',
'phrase' => 'code',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Code',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Code',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'account',
'phrase' => 'activate',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Abschicken',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Activate',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'account',
'phrase' => 'missingParameters',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Bitte geben Sie Benutzername, Code und Passwort ein',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Please enter username, code and password',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'account',
'phrase' => 'wrongActivationCode',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Der angegebene Aktivierungscode ist falsch',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'The provided activation code is wrong',
'description' => '',
)
)
)
);
-388
View File
@@ -1,388 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'admission',
'phrase' => 'admission_edit',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Aufnahmetermin bearbeiten',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Edit appointment for participation placement test',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'admission',
'phrase' => 'admission_delete',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Aufnahmetermin Löschen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Delete Admission Date',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'admission',
'phrase' => 'admission_new',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Termin für Teilnahme am Reihungstest anlegen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Create appointment for participation placement test',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'admission',
'phrase' => 'anmeldundRtAm',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Anmeldung zum Reihungstest am',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Registration for the ranking test on',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'admission',
'phrase' => 'rtAngetreten',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Zum Reihungstest angetreten',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Participated in the ranking test',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'admission',
'phrase' => 'rtAbsolviert',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Reihungstestverfahren absolviert',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Placement test procedure completed',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'admission',
'phrase' => 'gesamtpunkte',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Gesamtpunkte',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Total Points',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'admission',
'phrase' => 'gesamtpunkteBerechnen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Gesamtpunkte berechnen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Calculate total points',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'admission',
'phrase' => 'allgemein',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Allgemein',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Generally',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'admission',
'phrase' => 'headerRTVerwaltung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Zur Reihungstestverwaltung',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Administration Placement Test',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'admission',
'phrase' => 'loadZukuenftigeRT',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Nur zukünftige Reihungstests laden',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Show future placement tests only',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'admission',
'phrase' => 'getRTErgebnis',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Reihungstestergebnis holen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Get placement test result',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'admission',
'phrase' => 'stufe',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Stufe',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'level',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'admission',
'phrase' => 'anmeldedatum',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Anmeldedatum',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Registration Date',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'admission',
'phrase' => 'teilgenommen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'teilgenommen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'participated',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'admission',
'phrase' => 'stg_kurz',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Kürzel',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'shorthand',
'description' => '',
'insertvon' => 'system',
),
),
),
);
-76
View File
@@ -1,76 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'alert',
'phrase' => 'attention',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Achtung',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Attention',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'alert',
'phrase' => 'confirm_delete',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Möchten Sie wirklich löschen?',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Do you really want to delete?',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'alert',
'phrase' => 'systemerror',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Systemfehler',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'System Error',
'description' => '',
'insertvon' => 'system',
),
),
),
);
-220
View File
@@ -1,220 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'ampeln',
'phrase' => 'newestAmpeln',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Neueste Ampeln',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Newest Ampeln',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'ampeln',
'phrase' => 'allAmpeln',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Alle Ampeln',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'All Ampeln',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'ampeln',
'phrase' => 'overdue',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Überfällig: {count}',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Overdue: {count}',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'ampeln',
'phrase' => 'ampelnDeadline',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Stichtag: {value}',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Deadline: {value}',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'ampeln',
'phrase' => 'noOpenAmpeln',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Keine offenen Ampeln.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'No open Ampeln.',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'ampeln',
'phrase' => 'allMyAmpeln',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Alle meine Ampeln',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'All my Ampeln',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'ampeln',
'phrase' => 'mandatory',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Pflicht',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Mandatory',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'ampeln',
'phrase' => 'ampelBestaetigt',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Ampel bestätigt',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Ampel confirmed',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'ampeln',
'phrase' => 'super',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Super!',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Super!',
'description' => '',
'insertvon' => 'system',
),
),
),
);
File diff suppressed because it is too large Load Diff
-76
View File
@@ -1,76 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'betriebsmittel',
'phrase' => 'btn_printUebernahmebestaetigung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Übernahmebestätigung drucken',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Print acceptance confirmation',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'betriebsmittel',
'phrase' => 'btn_editBetriebsmittel',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Betriebsmittel bearbeiten',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Edit Resource',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'betriebsmittel',
'phrase' => 'btn_deleteBetriebsmittel',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Betriebsmittel löschen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Delete Resource',
'description' => '',
'insertvon' => 'system',
),
),
),
);
-28
View File
@@ -1,28 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'infocenter',
'category' => 'bewerbung',
'phrase' => 'erklaerungInvoices',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Ablauf und Zahlungsbedingungen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Procedure and terms of payment',
'description' => '',
'insertvon' => 'system',
),
),
),
);
-148
View File
@@ -1,148 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'bismeldestichtag',
'phrase' => 'stichtagHinzufuegen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Meldestichtag hinzufügen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Add report target date',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'bismeldestichtag',
'phrase' => 'stichtageVerwalten',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'BIS-Meldestichtage verwalten',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Manage report target dates',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'bismeldestichtag',
'phrase' => 'stichtagLoeschen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Meldestichtag löschen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Delete report target date',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'bismeldestichtag',
'phrase' => 'meldestichtag_erreicht',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Meldestichtag erreicht - Bearbeiten nicht mehr möglich',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'report target date reached - editing no longer possible',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'bismeldestichtag',
'phrase' => 'info_MeldestichtagStatusgrund',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Meldestichtag erreicht - ausschließlich Bearbeiten Statusgrund möglich',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Reporting deadline reached - only editing status reason possible',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'bismeldestichtag',
'phrase' => 'info_MeldestichtagStatusgrundSemester',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Meldestichtag erreicht - Bearbeiten Ausbildungssemester und Statusgrund möglich',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Edit education semester and status reason possible',
'description' => '',
'insertvon' => 'system',
),
),
),
);
-244
View File
@@ -1,244 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'bookmark',
'phrase' => 'newLink',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Neuer Link',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'New Link',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'bookmark',
'phrase' => 'saveLink',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Link speichern',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Save link',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'bookmark',
'phrase' => 'editLink',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Link bearbeiten',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Edit link',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'bookmark',
'phrase' => 'bookmarkDeleted',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Link gelöscht',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Link deleted',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'bookmark',
'phrase' => 'bookmarkAdded',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Link hinzugefügt',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Link added',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'bookmark',
'phrase' => 'bookmarkUpdated',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Link geändert',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Link updated',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'bookmark',
'phrase' => 'myBookmarks',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Meine Urls',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'My Urls',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'bookmark',
'phrase' => 'emptyBookmarks',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Du hast noch keine Bookmarks gesetzt',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'You have not set any bookmarks yet',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'bookmark',
'phrase' => 'invalidUrl',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Ungültiger Link',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Invalid link',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'bookmark',
'phrase' => 'invalidTitel',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Ungültiger Titel',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Invalid title',
'description' => '',
'insertvon' => 'system',
),
),
),
);
-76
View File
@@ -1,76 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'calendar',
'phrase' => 'kw',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'W',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'W',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'calendar',
'phrase' => 'year_kw',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => '{year} KW {week}',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => '{year} W {week}',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'calendar',
'phrase' => 'today',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Heute',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'today',
'description' => '',
'insertvon' => 'system',
),
),
),
);
-56
View File
@@ -1,56 +0,0 @@
<?php
/* Copyright (C) 2013 FH Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
*/
$phrases = array(
array(
'app' => 'core',
'category' => 'captcha',
'phrase' => 'label',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Tippen Sie die angezeigten<br>Zeichen in das untere Feld.',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Enter the characters in<br>the field below.',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'captcha',
'phrase' => 'reload',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Ich kann das Bild nicht lesen - neu laden',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Reload picture',
'description' => '',
)
)
)
);
-28
View File
@@ -1,28 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'personalverwaltung',
'category' => 'core',
'phrase' => 'unternehmen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Unternehmen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'company',
'description' => '',
'insertvon' => 'system',
),
),
),
);
-195
View File
@@ -1,195 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'dashboard',
'phrase' => 'general',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Allgemein',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'General',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dashboard',
'phrase' => 'addLine',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Weitere Zeile hinzufügen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Add another line',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dashboard',
'phrase' => 'custom',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Benutzerdefiniert',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Custom',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dashboard',
'phrase' => 'dashboardGeneralSectionDescription',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Hier befinden sich die vordefinierten Widgets',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Here are the predefined widgets',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dashboard',
'phrase' => 'dashboardCustomSectionDescription',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Hier befinden sich die Widgets Ihrer persönlichen Anpassungen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Here are the widgets of your personal cutomizations',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dashboard',
'phrase' => 'dashboardSectionDescription',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Hier befinden sich die Widgets der {0} Funktion',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Here are the widgets of the {0} function',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dashboard',
'phrase' => 'success_savePreset',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Voreinstellung erfolgreich aktualisiert',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Preset successfully updated',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'dashboard',
'phrase' => 'alert_deleteWidget',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Sind Sie sicher, dass Sie dieses Widget löschen möchten?',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Are you sure you want to delete this widget?',
'description' => '',
'insertvon' => 'system',
),
),
)
);
-39
View File
@@ -1,39 +0,0 @@
<?php
/* Copyright (C) 2013 FH Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
*/
$phrases = array(
array(
'app' => 'core',
'category' => 'dms',
'phrase' => 'informationsblattExterneLehrende',
'phrases' => array(
array(
'sprache' => 'German',
'text' => '<a href="../../../cms/dms.php?id={DMS_ID_INFOBLATT_EXTERNE_LEHRENDE}" target="_blank">Informationsblatt für externe Lehrende</a>',
'description' => '',
),
array(
'sprache' => 'English',
'text' => '<a href="../../../cms/dms.php?id={DMS_ID_INFOBLATT_EXTERNE_LEHRENDE}" target="_blank">Information sheet for external lecturers</a>',
'description' => '',
)
)
)
);
-340
View File
@@ -1,340 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'document_export',
'phrase' => 'error_unoconv',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Unoconv nicht gefunden - Bitte installieren sie Unoconv',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Unoconv not found - Please install Unoconv',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'document_export',
'phrase' => 'error_unoconv_version',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Unoconv Version konnte nicht ermittelt werden',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Could not get Unoconv Version',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'document_export',
'phrase' => 'error_conv_timeout',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Dokumentenkonvertierung ist derzeit nicht möglich. Bitte versuchen Sie es in einer Minute erneut oder kontaktieren Sie einen Administrator',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Document conversion is currently not possible. Please try again in a minute or contact an administrator',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'document_export',
'phrase' => 'error_sign_timeout',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Signaturserver ist derzeit nicht erreichbar',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Signature server is currently unavailable',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'document_export',
'phrase' => 'error_sign_pdf',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Derzeit können nur PDFs signiert werden',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Currently only PDFs can be signed',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'document_export',
'phrase' => 'error_outputformat_missing',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Ausgabeformat fehlt',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Outputformat is not defined',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'document_export',
'phrase' => 'error_template_missing',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Keine Vorlage gefunden',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'No template found',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'document_export',
'phrase' => 'error_headers',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Header wurden bereits gesendet -> Abbruch',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Header already sent -> Abort',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'document_export',
'phrase' => 'error_file_copy',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Kopieren fehlgeschlagen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Copy failed',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'document_export',
'phrase' => 'error_file_load',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Datei konnte nicht geladen werden',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Unable to load file',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'document_export',
'phrase' => 'error_xml_load',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'XML konnte nicht geladen werden: {url} XML: {xml} PARAMETER: {params}',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Unable to load xml: {url} XML: {xml} PARAMS: {params}',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'document_export',
'phrase' => 'error_xsl_load',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'XSL konnte nicht geladen werden',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Unable to load xsl',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'document_export',
'phrase' => 'error_styles_load',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Styles XSL konnte nicht geladen werden',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Unable to load styles xsl',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'document_export',
'phrase' => 'error_manifest',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Manifest ungültig',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Manifest file invalid',
'description' => '',
'insertvon' => 'system',
),
),
),
);
-603
View File
@@ -1,603 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'dokumente',
'phrase' => 'title',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Titel',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'title',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dokumente',
'phrase' => 'dokTyp',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Dokumententyp',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Document type',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dokumente',
'phrase' => 'nachreichungAm',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Nachreichung am',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Submission on',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dokumente',
'phrase' => 'dokDetails',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Dokumentendetails',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Document Details',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dokumente',
'phrase' => 'anmerkung_person',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Anmerkung der Person',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Notes of the Person',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dokumente',
'phrase' => 'dokumentAccept',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Akzeptieren',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Accept',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dokumente',
'phrase' => 'dokumentUnaccept',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Entakzeptieren',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Unaccept',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dokumente',
'phrase' => 'accepted',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Akzeptiert',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Accepted',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dokumente',
'phrase' => 'unaccepted',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Nicht Akzeptiert',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Not Accepted',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dokumente',
'phrase' => 'err_deleteDokHere',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Dieses Dokument darf hier nicht gelöscht werden',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'This document may not be deleted here',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dokumente',
'phrase' => 'err_updateNotAllowed',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Es können nur Eintraege geändert werden zu denen Dokumente hochgeladen wurden',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Only entries to which documents have been uploaded can be changed',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dokumente',
'phrase' => 'successAccepted',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Akzeptieren erfolgreich',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Successfully set to accepted',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dokumente',
'phrase' => 'successUnaccepted',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Entakzeptieren erfolgreich',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Successfully set to unaccepted',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dokumente',
'phrase' => 'successCountUnaccepted',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Entakzeptieren von {count} Dokument(en) erfolgreich',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => '{count} Document(s) successfully set to unaccepted',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dokumente',
'phrase' => 'successCountAccepted',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Akzeptieren von {count} Dokument(en) erfolgreich',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => '{count} Document(s) successfully set to accepted',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dokumente',
'phrase' => 'errorUnaccepted',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Fehler beim Entakzeptieren von Dokument {dokument_kurzbz}',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Error unaccepting document {dokument_kurzbz}',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dokumente',
'phrase' => 'errorAccepted',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Fehler beim Akzeptieren von Dokument {dokument_kurzbz}',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Error Accepting document {dokument_kurzbz}',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dokumente',
'phrase' => 'nachgereicht',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Nachgereicht',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Submitted later',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dokumente',
'phrase' => 'vorhanden',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Vorhanden',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Available',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dokumente',
'phrase' => 'datumAkzeptiert',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Akzeptiertdatum',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Accepted on',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dokumente',
'phrase' => 'akzeptiertVon',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Akzeptiert von',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Accepted by',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dokumente',
'phrase' => 'error_fileMissing',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Bitte eine Datei anhängen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Please attach a file',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dokumente',
'phrase' => 'error_fileType',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Nur Dateitypen JPEG, PNG oder PDF sind erlaubt',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Only JPEG, PNG, or PDF files are allowed.',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dokumente',
'phrase' => 'error_duplicateDokument_kurzbz',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Akzeptieren / Entakzeptieren von mehr als einem Dokument pro Dokumenttyp nicht zulässig',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Accepting / unaccepting more than one document per document type is not permitted',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'dokumente',
'phrase' => 'dokument_erstellen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Dokument erstellen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Create Document',
'description' => '',
'insertvon' => 'system',
),
),
)
);
-365
View File
@@ -1,365 +0,0 @@
<?php
/* Copyright (C) 2013 FH Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
*/
$phrases = array(
array(
'app' => 'core',
'category' => 'eucovidqr',
'phrase' => '3gNachweis',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Zertifikat hochladen",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "upload certificate",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'eucovidqr',
'phrase' => 'QrViaWebcam',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "QR-Code via Webcam scannen",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "scan qr code via webcam",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'eucovidqr',
'phrase' => 'oder',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "oder",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "or",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'eucovidqr',
'phrase' => 'ZertifikatAlsPdfHochladen',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Zertifikat als PDF hochladen (nur mit QR-Code, kein gescanntes Zertifikat)",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "upload certificate pdf (only with qrcode, no scanned certificate)",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'eucovidqr',
'phrase' => 'ValidierungsergebnisAktuellesGueltigkeitsdatum',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Validierungsergebnis / gespeichertes Gültigkeitsdatum",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "validation result / stored valid date",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'eucovidqr',
'phrase' => 'DateiZiehenUndAblegen',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Datei hier hinziehen und ablegen",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "drag & drop file here",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'eucovidqr',
'phrase' => 'KeinZugriffWebcam',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Zugriff auf die Webcam nicht möglich!",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "webcam access denied",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'eucovidqr',
'phrase' => 'gueltigBis',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "gültig bis",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "valid to",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'eucovidqr',
'phrase' => 'ZertifikatUngueltig',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Zertifikat ungültig",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "certificate invalid",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'eucovidqr',
'phrase' => 'ZertifikatKonnteNichtGeprueftWerden',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Das Zertifikat konnte nicht verifiziert werden. Stellen Sie bitte sicher, dass ein QR-Code enthalten ist.",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "certificate could not be verified. Please make sure it contains a qr-code.",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'eucovidqr',
'phrase' => 'Laedt',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Lädt",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "loading",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'eucovidqr',
'phrase' => '3G',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Covid19 Gültigkeitsdatum",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "covid19 valid date",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'eucovidqr',
'phrase' => 'FehlerBeimSpeichernDesGueltigkeitsdatums',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Fehler beim Speichern des Gültigkeitsdatum",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "error saving valid date",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'eucovidqr',
'phrase' => 'PersondatenInFH-CompleteStimmenNichtMitDemZertifikatUeberein',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Personendaten aus dem Zertifikat stimmen nicht dem angemeldeten Benutzer überein",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "person data from certificate does not match the logged in user",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'eucovidqr',
'phrase' => 'UploadSuccessful',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Das Gültigkeitsdatum wurde erfolgreich gespeichert.",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "validity date has been successfully stored.",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'eucovidqr',
'phrase' => 'UploadFailed',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Es wurde kein Gültigkeitsdatum gespeichert.",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "validity date has not been stored.",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'eucovidqr',
'phrase' => 'uploadbeschreibung',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Hier kann ein Digitales COVID-Zertifikat der EU mit QR-Code selbst erfasst werden.",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "an EU Digital COVID Certificate with QR code can be self registered here.",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'eucovidqr',
'phrase' => 'manualbeschreibung',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Falls das Zertifikat keinen QR-Code enthält oder die Selbst-Erfassung fehlschlägt, kann das Zertifkat beim Empfang manuell erfasst werden.",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "if the certificate does not contain a QR code or self registration fails, the certificate can be manually registered at the front desk.",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'eucovidqr',
'phrase' => 'supportbeschreibung',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Bei technischen Problemen kontaktieren Sie bitte: ",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "in case of technical issues please contact: ",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'eucovidqr',
'phrase' => 'maxtagebeschreibung',
'insertvon' => 'system',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "ACHTUNG seit Februar 2022 werden Zutrittskarten für maximal 60 Tage freigeschalten.",
'description' => '',
'insertvon' => 'system'
),
array(
'sprache' => 'English',
'text' => "ATTENTION since February 2022 a maximum of 60 days validity is granted for accesscards",
'description' => '',
'insertvon' => 'system'
)
)
)
);
-244
View File
@@ -1,244 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'exam',
'phrase' => 'add_pruefung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Prüfung hinzufügen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Add exam',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'exam',
'phrase' => 'edit_pruefung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Prüfung bearbeiten',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Edit exam',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'exam',
'phrase' => 'delete_pruefung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Prüfung löschen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Delete exam',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'exam',
'phrase' => 'newFromOld_pruefung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Prüfungskopie für neue Prüfung erstellen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Copy exam',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'exam',
'phrase' => 'hinweis_kommPrfg',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Bitte bei Neuanlage einer kommissionellen Prüfung das Datum der Noteneintragung (i. d. R. heute) eintragen, um den korrekten Fristenablauf der Wiederholung zu ermöglichen.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'When creating a new examination before a committee, please enter the date of the grade entry (usually today) to ensure that the deadline for repeating the exam is met correctly.',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'exam',
'phrase' => 'keineAuswahl',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'keine Auswahl',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'no selection',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'exam',
'phrase' => 'hinweis_changeAfterExamDate',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'ACHTUNG! Diese Prüfungsnote wurde nicht ins Zeugnis übernommen da die Zeugnisnote nach dem Prüfungsdatum verändert wurde',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'ATTENTION! This exam grade was not included in the certificate because the certificate grade was changed after the exam date',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'exam',
'phrase' => 'bitteLvteilWaehlen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Bitte Lv_Teil wählen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Please select teaching unit',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'exam',
'phrase' => 'punkte',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Punkte',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Points',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'exam',
'phrase' => 'filter_currentSem',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Nur aktuelles Studiensemester anzeigen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Display only current Semester',
'description' => '',
'insertvon' => 'system',
),
),
),
);
File diff suppressed because it is too large Load Diff
-155
View File
@@ -1,155 +0,0 @@
<?php
/* Copyright (C) 2013 FH Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
*/
$phrases = array(
array(
'app' => 'core',
'category' => 'filter',
'phrase' => 'filterEinstellungen',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Filter Einstellungen',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'filter settings',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'filter',
'phrase' => 'filterApply',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Filtern',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Apply',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'filter',
'phrase' => 'filterHinzufuegen',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Filter hinzufügen',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'add filter',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'filter',
'phrase' => 'feldHinzufuegen',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Feld hinzufügen',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'add field',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'filter',
'phrase' => 'filterBeschreibung',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Filter Beschreibung',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'filter description',
'description' => '',
)
)
)
,
array (
'app' => 'core',
'category' => 'filter',
'phrase' => 'filterDelete',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Filter zurücksetzen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'delete filter',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'filter',
'phrase' => 'filterActive',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Filter aktiv',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'filter active',
'description' => '',
'insertvon' => 'system',
),
),
)
);
-531
View File
@@ -1,531 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'lvevaluierung',
'category' => 'fragebogen',
'phrase' => 'loginTextCodeEingeben',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Bitte geben Sie Ihren Code ein, um die Evaluierung zu starten:',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Please enter your code to start the evaluation:',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'lvevaluierung',
'category' => 'fragebogen',
'phrase' => 'loginCodeEingeben',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Evaluierung-Code eingeben',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Enter your Evaluation-Code',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'lvevaluierung',
'category' => 'fragebogen',
'phrase' => 'loginTextLvevaluierung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => '
<div class="text-start mb-3">
<p>Die folgende LV-Evaluierung umfasst</p>
</div>
<ul class="text-start small">
<li>zwei (geschlossene) Pflichtfragen</li>
<li>die Möglichkeit, optional zu einzelnen Bereichen konkreteres Feedback zu geben</li>
<li>zwei optionale Freitextfragen</li>
</ul>
',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => '
<div class="text-start mb-3">
<p>The following course evaluation includes</p>
</div>
<ul class="text-start small">
<li>two (closed) mandatory questions</li>
<li>the opportunity to optionally provide more specific feedback on individual areas</li>
<li>two optional free-text questions</li>
</ul>
',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'lvevaluierung',
'category' => 'fragebogen',
'phrase' => 'loginTextAntwortoptionen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => '
<div class="text-start mb-3">
<p>Die Antwortoptionen umfassen 5 Stufen:</p>
</div>
<ul class="text-start small">
<li>Sehr gut</li>
<li>Gut</li>
<li>Mittel</li>
<li>Schlecht</li>
<li>Sehr schlecht</li>
</ul>
',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => '
<div class="text-start mb-3">
<p>The answer options comprise 5 levels:</p>
</div>
<ul class="text-start small">
<li>Excellent</li>
<li>Good</li>
<li>Satisfactory</li>
<li>Poor</li>
<li>Insufficient</li>
</ul>
',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'lvevaluierung',
'category' => 'fragebogen',
'phrase' => 'evaluierungPeriodeBeendet',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Der Evaluierungszeitraum endete am {date}',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Evaluation period was closed on {date}',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'lvevaluierung',
'category' => 'fragebogen',
'phrase' => 'evaluierungPeriodeStartetErst',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Der Evaluierungszeitraum startet erst am {date}',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Evaluation period starts on {date}',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'lvevaluierung',
'category' => 'fragebogen',
'phrase' => 'evaluierungEingereicht',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Die Evaluierung wurde am {date} eingereicht',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Evaluation was submitted on {date}',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'lvevaluierung',
'category' => 'fragebogen',
'phrase' => 'evaluierungNichtMehrVerfuegbar',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Diese Evaluierung ist nicht mehr verfügbar.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'This evaluation is no longer available.',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'lvevaluierung',
'category' => 'fragebogen',
'phrase' => 'evaluierungNichtVerfuegbar',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Diese Evaluierung ist nicht verfügbar.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'This evaluation is not available yet.',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'lvevaluierung',
'category' => 'fragebogen',
'phrase' => 'logoutTitle',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Danke!<br>Was passiert nun mit Ihrem Feedback?',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Thank you!<br>What happens to your feedback now?',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'lvevaluierung',
'category' => 'fragebogen',
'phrase' => 'logoutText',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => '
<p>Danke, dass Sie sich Zeit für das Feedback genommen haben! Ihre ehrliche und konstruktive Rückmeldung ist essenziell, damit Ihre Lehrenden und Ihre Studiengangsleitung die Lehrveranstaltung immer weiter verbessern und anpassen können!</p>
<p>Und was passiert jetzt mit Ihrem Feedback? Die Studiengangsleitung wird die Ergebnisse &amp; Maßnahmen zusammen mit Ihrer Jahrgangsvertretung besprechen. So tragen Sie aktiv dazu bei, die Lehrveranstaltung für zukünftige Semester noch spannender &amp; lehrreicher zu machen!</p>
<p>Gemeinsam für mehr Qualität in der Lehre!</p>
',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => '
<p>Thank you for taking the time to provide feedback! Your honest and constructive input is essential for your lecturers and degree program director to continuously improve and adapt the course.</p>
<p>What happens with your feedback? The degree program director will discuss the results and potential measures together with your academic year representatives. You have thus actively contributed to making the course even more engaging and educational for future semesters!</p>
<p>Working together for higher quality in teaching!</p>
',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'lvevaluierung',
'category' => 'fragebogen',
'phrase' => 'evaluierungZeitAbgelaufen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Die Evaluierungszeit ist abgelaufen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'The Evaluation time is over',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'lvevaluierung',
'category' => 'fragebogen',
'phrase' => 'evaluierungAntwortenNichtUebermittelt',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Ihre Antworten wurden nicht übermittelt.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Your responses were not submitted.',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'lvevaluierung',
'category' => 'fragebogen',
'phrase' => 'evaluierungCodeExistiertNicht',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Dieser Evaluierungscode exisitiert nicht',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'This evaluation code does not exist',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'lvevaluierung',
'category' => 'fragebogen',
'phrase' => 'evaluierungNichtAktiv',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Die Evaluierung ist nicht aktiv',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Evaluation is not active',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'lvevaluierung',
'category' => 'fragebogen',
'phrase' => 'zeitLaeuftAb',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Zeit läuft bald ab zum Speichern bitte Abschicken klicken',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Time is running out — please click Submit to save your answers',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'lvevaluierung',
'category' => 'fragebogen',
'phrase' => 'spracheAuswaehlen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Sprache auswählen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Select language',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'lvevaluierung',
'category' => 'fragebogen',
'phrase' => 'fhtwLogo',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'FH Technikum Wien Logo',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'UAS Technikum Wien Logo',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'lvevaluierung',
'category' => 'fragebogen',
'phrase' => 'evaluierungscodeEingeben',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Evaluierungscode eingeben',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Enter Evaluation code',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'lvevaluierung',
'category' => 'fragebogen',
'phrase' => 'pflichtantwortFehlt',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Pflichtantwort fehlt',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Mandatory answer missing',
'description' => '',
'insertvon' => 'system',
),
),
)
);
-220
View File
@@ -1,220 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'personalverwaltung',
'category' => 'fristenmanagement',
'phrase' => 'frist',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Frist',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Deadline',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'personalverwaltung',
'category' => 'fristenmanagement',
'phrase' => 'todo',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'To Do',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'To Do',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'personalverwaltung',
'category' => 'fristenmanagement',
'phrase' => 'fristStatusGespeichert',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Status gespeichert.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Status saved.',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'personalverwaltung',
'category' => 'fristenmanagement',
'phrase' => 'fristGespeichert',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Frist gespeichert.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Deadline saved.',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'personalverwaltung',
'category' => 'fristenmanagement',
'phrase' => 'fristGeloescht',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Frist gelöscht.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Deadline deleted.',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'personalverwaltung',
'category' => 'fristenmanagement',
'phrase' => 'fristenAktualisiert',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Fristen aktualisiert.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Deadlines updated.',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'personalverwaltung',
'category' => 'fristenmanagement',
'phrase' => 'termin_frist',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Termin/Frist',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Date/Deadline',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'personalverwaltung',
'category' => 'fristenmanagement',
'phrase' => 'ereignis',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Ereignis',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Event',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'personalverwaltung',
'category' => 'fristenmanagement',
'phrase' => 'mitarbeiterin',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'MitarbeiterIn',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Employee',
'description' => '',
'insertvon' => 'system',
),
),
),
);
-76
View File
@@ -1,76 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'funktion',
'phrase' => 'filter_active',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Nur aktive anzeigen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Display only active',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'funktion',
'phrase' => 'addFunktion',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Funktion hinzufügen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Add function',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'funktion',
'phrase' => 'editFunktion',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Funktion bearbeiten',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Edit function',
'description' => '',
'insertvon' => 'system',
),
),
),
);
-196
View File
@@ -1,196 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'personalverwaltung',
'category' => 'gehaltsband',
'phrase' => 'gehaltsband',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Gehaltsband',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Salary Range',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'personalverwaltung',
'category' => 'gehaltsband',
'phrase' => 'gueltig_von',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Gültig von',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Valid from',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'personalverwaltung',
'category' => 'gehaltsband',
'phrase' => 'gueltig_bis',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Gültig bis',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Valid to',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'personalverwaltung',
'category' => 'gehaltsband',
'phrase' => 'betrag_von',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Betrag von',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Amount from',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'personalverwaltung',
'category' => 'gehaltsband',
'phrase' => 'betrag_bis',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Gültig bis',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Valid to',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'personalverwaltung',
'category' => 'gehaltsband',
'phrase' => 'gehaltsband_gespeichert',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Gehaltsband gespeichert.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Salary range saved.',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'personalverwaltung',
'category' => 'gehaltsband',
'phrase' => 'gehaltsband_erstellt',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Gehaltsband hinzugefügt.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Salary range created.',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'personalverwaltung',
'category' => 'gehaltsband',
'phrase' => 'gehaltsband_geloescht',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Gehaltsband gelöscht.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Salary range deleted.',
'description' => '',
'insertvon' => 'system',
),
),
),
);
File diff suppressed because it is too large Load Diff
-339
View File
@@ -1,339 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'gruppenmanagement',
'phrase' => 'benutzerSchonZugewiesen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Benutzer ist bereits der Gruppe zugewiesen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'User is already assigned to the group',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'gruppenmanagement',
'phrase' => 'kurzbezeichnung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Kurzbezeichnung',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Short description',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'gruppenmanagement',
'phrase' => 'beschreibung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Beschreibung',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Description',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'gruppenmanagement',
'phrase' => 'zuweisenloeschen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Zuweisen/Entfernen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Assign/Remove',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'gruppenmanagement',
'phrase' => 'benutzergruppe',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Benutzergruppe',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'User group',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'gruppenmanagement',
'phrase' => 'benutzerHinzufuegen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Benutzer hinzufügen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Add user',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'gruppenmanagement',
'phrase' => 'aktiv',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'aktiv',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'active',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'gruppenmanagement',
'phrase' => 'nichtZumEditierenDerGruppeBerechtigt',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Nicht zum Editieren der Gruppe berechtigt',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'No authorization for editing the group',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'gruppenmanagement',
'phrase' => 'automatisch_generiert',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'automatisch generiert',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'automatically generated',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'gruppenmanagement',
'phrase' => 'error_deleteGeneratedGroups',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Automatisch generierte Gruppenzuordnungen können nicht gelöscht werden.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Automatically generated group assignments cannot be deleted.',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'gruppenmanagement',
'phrase' => 'special_groups',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Spezialgruppen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Special groups',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'gruppenmanagement',
'phrase' => 'add_group',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Gruppe hinzufügen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Add group',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'gruppenmanagement',
'phrase' => 'groups_added',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => '{n} Gruppen hinzufügen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Added {n} groups',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'gruppenmanagement',
'phrase' => 'error_alreadyInGroup',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Der Student {uid} ist bereits im {studiensemester_kurzbz} dieser Gruppe zugeteilt. Entfernen Sie vorher diese Zuteilung.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Student {uid} is already assigned to this group in {studiensemester_kurzbz}. Remove this assignment beforehand.',
'description' => '',
'insertvon' => 'system',
),
),
)
);
-75
View File
@@ -1,75 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'header',
'phrase' => 'error_fotoupload',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Fehler beim Speichern des Fotos',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Error saving photo',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'header',
'phrase' => 'alert_chooseFoto',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Bitte zuerst ein Bild auswählen!',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Please select an image first!',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'header',
'phrase' => 'error_noPhoto',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Kein Bild empfangen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'No picture received',
'description' => '',
'insertvon' => 'system',
),
),
)
);
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-124
View File
@@ -1,124 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'jointstudies',
'phrase' => 'gemeinsamesStudium',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Gemeinsames Studium',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Joint Study',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'jointstudies',
'phrase' => 'gemeinsameStudien',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Gemeinsame Studien',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Joint Studies',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'jointstudies',
'phrase' => 'studienprogramm',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Studienprogramm',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Study Program',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'jointstudies',
'phrase' => 'neuAnlegen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Gemeinsames Studium anlegen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Add Joint Study',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'jointstudies',
'phrase' => 'edit',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Gemeinsames Studium bearbeiten',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Edit Joint Study',
'description' => '',
'insertvon' => 'system',
),
),
),
);
-388
View File
@@ -1,388 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'konto',
'phrase' => 'buchung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Buchung',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Booking',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'konto',
'phrase' => 'buchungsdatum',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Buchungsdatum',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Booking date',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'konto',
'phrase' => 'buchungstext',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Buchungstext',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Booking text',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'konto',
'phrase' => 'betrag',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Betrag',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Amount',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'konto',
'phrase' => 'buchungstyp',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Buchungstyp',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Booking type',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'konto',
'phrase' => 'buchungsnr',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Buchungs Nummer',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Booking number',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'konto',
'phrase' => 'mahnspanne',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Mahnspanne',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Dunning margin',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'konto',
'phrase' => 'credit_points',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Credit Points',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Credit Points',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'konto',
'phrase' => 'reference',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Zahlungsreferenz',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Payment reference',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'konto',
'phrase' => 'confirm_overwrite',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Es ist bereits eine Buchung vorhanden:',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'A booking already exists:',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'konto',
'phrase' => 'confirm_overwrite_1_add_pers',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'und einer weiteren Person.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'and one additional person.',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'konto',
'phrase' => 'confirm_overwrite_x_add_pers',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'und {x} weiteren Personen.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'and {x} additional persons.',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'konto',
'phrase' => 'confirm_overwrite_proceed',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Trotzdem fortfahren?',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Proceed anyway?',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'konto',
'phrase' => 'error_missing',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Buchung #{buchungsnr} existiert nicht',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Booking #{buchungsnr} does not exist',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'konto',
'phrase' => 'error_counter_level',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Gegenbuchungen koennen nur auf die obersten Buchungen getaetigt werden',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Offsetting bookings can only be made on the top bookings',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'konto',
'phrase' => 'error_delete_level',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Bitte zuerst die zugeordneten Buchungen löschen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Please delete the assigned bookings first',
'description' => '',
'insertvon' => 'system',
),
),
),
);
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-148
View File
@@ -1,148 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'lvinfo',
'phrase' => 'lehrveranstaltungsinformationen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Lehrveranstaltungsinformationen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Course Information',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'lvinfo',
'phrase' => 'Moodleinformationen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Moodle Informationen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Moodle Information',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'lvinfo',
'phrase' => 'actionname',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Aktion',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Action',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'lvinfo',
'phrase' => 'overdue',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'überfällig',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'overdue',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'lvinfo',
'phrase' => 'overdueEvent',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Event ist überfällig',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Event is overdue',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'lvinfo',
'phrase' => 'moodleLink',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Moodle Link',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Moodle link',
'description' => '',
'insertvon' => 'system',
),
),
),
);
-315
View File
@@ -1,315 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'messages',
'phrase' => 'unread',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'ungelesen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'unread',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'messages',
'phrase' => 'archived',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'archiviert',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'archived',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'messages',
'phrase' => 'deleted',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'gelöscht',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'deleted',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'messages',
'phrase' => 'body',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Nachrichtentext',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Body',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'messages',
'phrase' => 'message_id',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Message ID',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Message ID',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'messages',
'phrase' => 'sender',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'SenderIn',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Sender',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'messages',
'phrase' => 'recipient',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'EmpfängerIn',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Recipient',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'messages',
'phrase' => 'senderId',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'SenderIn ID',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Sender ID',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'messages',
'phrase' => 'recipientId',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'EmpfängerIn ID',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Recipient ID',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'messages',
'phrase' => 'neueNachricht',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Neue Nachricht',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'New Message',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'messages',
'phrase' => 'meineFelder',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Meine Felder',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'My fields',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'messages',
'phrase' => 'errorEditorNotAvailable',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Editor-Instanz nicht verfügbar.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Editor instance is not available.',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'messages',
'phrase' => 'error_missingLogic',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Logik für Type ID {type} nicht implementiert.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'logic for type ID {type} not implemented.',
'description' => '',
'insertvon' => 'system',
),
),
)
);
-364
View File
@@ -1,364 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'mobility',
'phrase' => 'mobilitaetsprogramm',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Mobilitätsprogramm',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Mobility program',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'mobility',
'phrase' => 'gastnation',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Gastnation',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Host nation',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'mobility',
'phrase' => 'herkunftsland',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Herkunftsland',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Country of origin',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'mobility',
'phrase' => 'universitaet',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Universität',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'University',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'mobility',
'phrase' => 'ects_erworben',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Erworbene ECTS',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'ECTS acquired',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'mobility',
'phrase' => 'ects_angerechnet',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Angerechnete ECTS',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'ECTS credited',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'mobility',
'phrase' => 'zweck',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Zweck',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Purpose',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'mobility',
'phrase' => 'aufenthalt',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Aufenthalt Förderung',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Residency funding',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'mobility',
'phrase' => 'zweck_neu',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Mobilitätszweck anlegen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Create motivation for mobility',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'mobility',
'phrase' => 'foerderung_neu',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Förderung für Aufenthalt anlegen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Create funding for mobility',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'mobility',
'phrase' => 'kurzbz_program',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Programmkurzbezeichnung',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Program short description',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'mobility',
'phrase' => 'bisio_id',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Bisio ID',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Bisio ID',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'mobility',
'phrase' => 'error_existingEntryInExtension',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Dieser Datensatz wird von der Mobility Extension verwendet und muss zuerst dort gelöscht werden.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'This record is used by the Mobility Extension and must first be deleted there.',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'mobility',
'phrase' => 'mobility_anlegen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Mobilität anlegen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Create mobility',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'mobility',
'phrase' => 'mobility_bearbeiten',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Mobilität bearbeiten',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Edit mobility',
'description' => '',
'insertvon' => 'system',
),
),
),
);
-76
View File
@@ -1,76 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'news',
'phrase' => 'allNews',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Alle News',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'All News',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'news',
'phrase' => 'topNews',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Top Nachrichten',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Top News',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'news',
'phrase' => 'noSubject',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Kein Betreff vorhanden',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'No Subject available',
'description' => '',
'insertvon' => 'system',
),
),
),
);
-292
View File
@@ -1,292 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'notiz',
'phrase' => 'document',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Anhänge',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Attachments',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'notiz',
'phrase' => 'notiz_new',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Neue Notiz',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'New Note',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'notiz',
'phrase' => 'notiz_edit',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Notiz bearbeiten',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Edit Note',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'notiz',
'phrase' => 'notiz_delete',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Notiz löschen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Delete Note',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'notiz',
'phrase' => 'verfasser',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Verfasser*in',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'author',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'notiz',
'phrase' => 'bearbeiter',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Bearbeiter*in',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'editor',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'notiz',
'phrase' => 'erledigt',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'erledigt',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'completed',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'notiz',
'phrase' => 'letzte_aenderung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Letzte Änderung',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Last updated',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'notiz',
'phrase' => 'tag_rueckgaengig',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Rückgängig',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Undo',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'notiz',
'phrase' => 'tag_erledigt',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Erledigt',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Done',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'notiz',
'phrase' => 'tag_verfasser',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'angelegt von {0} am {1}',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Created by {0} on {1}',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'notiz',
'phrase' => 'tag_bearbeiter',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'bearbeitet von {0} am {1}',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Edited by {0} on {1}',
'description' => '',
'insertvon' => 'system',
),
),
),
);
-192
View File
@@ -1,192 +0,0 @@
<?php
/* Copyright (C) 2013 FH Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
*/
$phrases = array(
array(
'app' => 'core',
'category' => 'oehbeitrag',
'phrase' => 'oehbeitragsVerwaltung',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "ÖH-Beitragsverwaltung",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "Student Union Fee Management",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'oehbeitrag',
'phrase' => 'oehbeitragHinzufuegen',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Neuen ÖH-Beitrag hinzufügen",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "Add new student union fee",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'oehbeitrag',
'phrase' => 'studierendenbetrag',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "studierendenbetrag",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "student amount",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'oehbeitrag',
'phrase' => 'versicherungsbetrag',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "versicherungsbetrag",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "insurance amount",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'oehbeitrag',
'phrase' => 'oehbeitraegeFestgelegt',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "ÖH-Beiträge für alle Studiensemester festgelegt",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "show menu",
'description' => 'Student union fees set for all semesters',
)
)
),
array(
'app' => 'core',
'category' => 'oehbeitrag',
'phrase' => 'fehlerHolenOehbeitraege',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Fehler beim Holen der Öhbeiträge",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "Error when getting student union fees",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'oehbeitrag',
'phrase' => 'fehlerHolenSemester',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Fehler beim Holen der Semester",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "Error when getting semester",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'oehbeitrag',
'phrase' => 'fehlerHinzufuegenOehbeitrag',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Fehler beim Hinzufügen des ÖH-Beitrags",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "Error when adding student union fee",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'oehbeitrag',
'phrase' => 'fehlerAktualisierenOehbeitrag',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Fehler beim Aktualisieren des ÖH-Beitrags",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "Error when updating student union fee",
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'oehbeitrag',
'phrase' => 'fehlerLoeschenOehbeitrag',
'phrases' => array(
array(
'sprache' => 'German',
'text' => "Fehler beim Löschen des ÖH-Beitrags",
'description' => '',
),
array(
'sprache' => 'English',
'text' => "Error when deleting student union fee",
'description' => '',
)
)
)
);
-660
View File
@@ -1,660 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'emailFehlt',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Email fehlt',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Email is missing',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'emailUngueltig',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Email ist ungültig',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'The email is not valid',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'emailRegistriert',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Diese Email ist bereits registriert. Bitte verwenden sie eine andere Email oder loggen sie sich mit einer anderen Methode ein.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'The email is already registered. Please choose a different email or use a different login method.',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'bewerbungZugangEmailBetreff',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Zugang zu Ihrer Bewerbung',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Access to your application',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'bewerbungZugangEmailAnredeWeiblich',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Sehr geehrte Frau',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Dear Ms',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'bewerbungZugangEmailAnredeMaennlich',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Sehr geehrter Herr',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Dear Mr',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'bewerbungZugangEmailAnredeNeutral',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Sehr geehrte/r',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Dear',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'bewerbungVerifzieren',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Bewerbung verifizieren',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Verify application',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'bewerbungVerifizierungEinleitung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Wenn Ihre Daten stimmen, geben Sie bitte Ihre E-Mail Adresse ein und drücken Sie auf "Bewerbung verifizieren".
Danach erhalten Sie eine E-Mail mit dem Link zu Ihrer Bewerbung an die angegebene Adresse.
Dort können Sie Studienrichtungen hinzufügen, Ihre Daten vervollständigen, und sich unverbindlich bewerben.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'If your data is correct, please enter your email and click "Verify application".
We will then send you a link via e-mail to the address specified. There, you can add personal information or degree programs and submit non-binding applications.',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'bewerbungVerifizierungKontakthinweis',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Wenn Sie mehr Informationen benötigen, steht Ihnen unsere <a href="{0}" target="_blank">Studienberatung</a> gerne persönlich, telefonisch, per E-Mail oder WhatsApp zur Verfügung.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Should you require any additional information, please do not hesitate to contact our <a href="{0}" target="_blank">student counselling team</a> in person, by phone, or via e-mail or WhatsApp.',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'bewerbungVerifizierungDatenschutzhinweis',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Datenschutz-Hinweis',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Privacy information',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'bewerbungVerifizierungDatenschutzhinweisText',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Die uns von Ihnen zum Zwecke der Bewerbung bekanntgegebenen Daten werden von uns ausschließlich zur Abwicklung der Bewerbung auf der Grundlage von vor- bzw vertraglichen Zwecken verarbeitet und mit der unten beschriebenen Ausnahme bei Unklarheiten betreffend die Zugangsvoraussetzungen nicht an Dritte weitergegeben.
Kommt es zu keinem weiteren Kontakt bzw zu keiner Aufnahme, löschen wir Ihre Daten nach drei Jahren.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'The data communicated to us by you for the purpose of the application will be used by us exclusively for the processing of the application on the basis of pre-contractual or contractual purposes and will not be passed on to third parties with the exception described below in case of uncertainties regarding the entry requirements.
If there is no further contact or enrolment, your data will be deleted after three years.',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'bewerbungVerifizierungInformationenDatenschutzGrundverordnung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Informationen zu Ihren Betroffenenrechten finden Sie hier:',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Information on your data subject rights can be found here:',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'bewerbungVerifizierungDatenschutzFragen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Bei Fragen stehen wir Ihnen jederzeit unter folgender Mail zur Verfügung: ',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'If you have any questions, please contact us at ',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'vorname',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Vorname',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'First name',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'nachname',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Nachname',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Last name',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'geburtsdatum',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Geburtsdatum',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Birth date',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'emailAdresse',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'E-Mail Adresse',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'E-mail address',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'emailGesendet',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Die E-Mail mit dem Link zu Ihrer Bewerbung wurde erfolgreich an {0} verschickt.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'The email with the link to your application has been successfully sent to {0}.',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'emailGesendetHinweis',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'In der Regel erhalten Sie das Mail in wenigen Minuten. Wenn Sie nach <b>24 Stunden</b> noch kein Mail erhalten haben,
kontaktieren Sie bitte unsere {0}Studienberatung{1}',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'You should receive an e-mail within a few minutes. If you receive no e-mail within <b>24 hours</b> please contact
our {0}student counselling team{1}.',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'fehlerBeiRegistrierung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Fehler bei der Registrierung',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Error when registering',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'fehlerBeiRegistrierungText',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Es ist ein Fehler bei der Registrierung aufgetreten.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'An error occured during registration.',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'fehlerBeiRegistrierungNochmalVersuchen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Nochmals versuchen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Try again',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'zustimmungDatenuebermittlung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Können in Ausnahmefällen die Zugangsvoraussetzungen von der FH Technikum Wien nicht abschließend abgeklärt werden, erteile ich die Zustimmung, dass die FH Technikum Wien die Dokumente zur Überprüfung an die zuständigen Behörden weiterleiten kann.<br>
Ich wurde darüber informiert, dass ich nicht verpflichtet bin, der Übermittlung meiner Daten zuzustimmen. Diese Zustimmung ist allerdings notwendig, um die Bewerbung berücksichtigen zu können.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'If in exceptional cases the admission requirements can not be finally clarified by the UAS Technikum Wien, I give my consent that the UAS Technikum Wien can forward the documents to the competent authorities for verification.<br>
I have been informed that I am under no obligation to consent to the transmission of my data. However, this consent is necessary in order for the application to be considered.',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'zustimmungDatenschutzerklaerung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Ich habe die Datenschutzerklärung zu Kenntnis genommen.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'I have taken note of the privacy policy.',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'bitteDatenuebermittlungZustimmen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Sie müssen der Datenübermittlung zustimmen, um Ihre Bewerbung abschicken zu können.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'You have to consent the transmission of your data to send the application.',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'onboarding',
'phrase' => 'bitteDatenschutzerklaerungZustimmen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Sie müssen der Datenschutzerklärung zustimmen, um Ihre Bewerbung abschicken zu können.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'You have to consent to the privacy statement to send the application.',
'description' => '',
'insertvon' => 'system',
),
),
)
);
-447
View File
@@ -1,447 +0,0 @@
<?php
/* Copyright (C) 2013 FH Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
*/
$phrases = array(
array(
'app' => 'core',
'category' => 'password',
'phrase' => 'changeFor',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Passwort ändern für',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Changing password for',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'password',
'phrase' => 'usage',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Das Passwort muss zumindest 8 Zeichen enthalten, davon mindestens 1 Großbuchstabe, 1 Kleinbuchstabe und eine Ziffer.<br />Das Passwort darf keine Leerzeichen und Umlaute enthalten.<br />Erlaubte Sonderzeichen sind: -$#[]{}!().,*:;_',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'The password must contain at least 8 characters, of which 1 must be upper case, 1 lower case and 1 a numeral.<br><br>The password may not include spaces or umlauts.<br>The following special characters are allowed: -$#[]{}!().,*:;_',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'password',
'phrase' => 'extraUsage',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Weitere Informationen zur Passwort Policy finden Sie unter <a href="../../../../cms/dms.php?id={PASSWORD_POLICY_DMS}">diesem Link</a>',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'More information about the Password Policy can be found at <a href="../../../../cms/dms.php?id={PASSWORD_POLICY_DMS}">this link</a>',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'password',
'phrase' => 'password',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Passwort',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'password',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'password',
'phrase' => 'old',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Altes Passwort',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Old password',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'password',
'phrase' => 'new',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Neues Passwort',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'New password',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'password',
'phrase' => 'newRepeat',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Wiederholung des neuen Passworts',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Repeat new password',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'password',
'phrase' => 'change',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Passwort ändern',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Change password',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'password',
'phrase' => 'pageTitle',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Passwort ändern',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Changing password',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'password',
'phrase' => 'missingParameters',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Bitte geben Sie das alte und neue Passwort ein',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Please enter the old and the new password',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'password',
'phrase' => 'oldPasswordWrong',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Das alte Passwort ist nicht korrekt',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'The old password is incorrect',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'password',
'phrase' => 'newNotSameRepeat',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Passwörter stimmen nicht überein',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Passwords do not match',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'password',
'phrase' => 'length',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Das neue Passwort muss mindestens 8 Zeichen lang sein.',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'The new password must contain at least 8 characters.',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'password',
'phrase' => 'atLeastAUpperCase',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Das neue Passwort muss mindestens einen Grossbuchstaben enthalten.',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'The new password must contain at least 1 upper case character.',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'password',
'phrase' => 'atLeastANumber',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Es muss mindestens eine Ziffer vorhanden sein.',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'The new password must contain at least 1 numeral character.',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'password',
'phrase' => 'genericError',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Es ist ein Fehler aufgetreten. Passwortänderung fehlgeschlagen',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'An Error occured. Password change failed.',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'password',
'phrase' => 'changed',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Passwort wurde erfolgreich geändert',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Password successfully changed',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'password',
'phrase' => 'noBlanks',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Es darf kein Leerzeichen im Passwort vorkommen.',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'The password may not include spaces.',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'password',
'phrase' => 'noUmlauts',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Es dürfen keine Umlaute verwendet werden.',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'The password may not include umlauts.',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'password',
'phrase' => 'noSpecialCharacters',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Bitte verwenden Sie nur erlaubte Sonderzeichen',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Please use only permitted special characters.',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'password',
'phrase' => 'atLeastALowerCase',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Das neue Passwort muss mindestens einen Kleinbuchstaben enthalten.',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'The new password must contain at least 1 lower case character.',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'password',
'phrase' => 'newSameOld',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Das neue Passwort muss sich vom alten Passwort unterscheiden.',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'The new password must be different from the old password.',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'password',
'phrase' => 'wrongPassword',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Falsches Passwort',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Wrong password',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'password',
'phrase' => 'passwordMissing',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Passwort fehlt',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Password missing',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'password',
'phrase' => 'wrongCaptcha',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Captcha code falsch ',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Captcha code is wrong',
'description' => '',
)
)
)
);
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-987
View File
@@ -1,987 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'projektarbeitAnlegen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Projektarbeit anlegen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Create project work',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'projektarbeitBearbeiten',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Projektarbeit bearbeiten',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Edit project work',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'titel',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Titel',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'title',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'titelEnglisch',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Titel Englisch',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'title English',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'themenbereich',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Themenbereich',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'topic area',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'typ',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Typ',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'type',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'firma',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Firma',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'company',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'lehrveranstaltung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Lehrveranstaltung',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'course',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'lvTeil',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'LV-Teil',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'teaching unit',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'betreuer',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'BetreuerIn',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'assessor',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'betreuerGross',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'BetreuerIn',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Assessor',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'betreuerart',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Betreuerart',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'assessor type',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'note',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Note',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'grade',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'stunden',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Stunden',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'hours',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'stundensatz',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Stundensatz',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'hourly rate',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'beginn',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Beginn',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'start',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'ende',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Ende',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'end',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'freigegeben',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'freigegeben',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'approved',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'gesperrtBis',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Gesperrt bis',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'locked until',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'anmerkung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Anmerkung',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'annotation',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'firmaId',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Firma ID',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'company Id',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'error_betreuerNichtGeloescht',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Löschen nicht möglich, dieser Projektarbeit sind bereits BetreuerInnen zugewiesen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Deleting not possible, assessors were already assigned to this projekt work',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'error_paabgabeNichtGeloescht',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Löschen nicht möglich, für diese Projektarbeit gibt es bereits Projektarbeitsabgaben',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Deleting not possible, there are projekt submissions for this project work',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'error_invalidProjektbetreuer',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'ProjektbetreuerIn ungültig',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Invalid project assessors',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'error_betreuerHatVertrag',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Löschen nicht möglich, ProjektbetreuerIn hat bereits einen Vertrag',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Deleting not possible, project assessor has a contract already',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'neuePersonAnlegen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Neue Person anlegen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Create new person',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'kontaktdatenBearbeiten',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Kontaktdaten bearbeiten',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Edit contact data',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'projektbeurteilungErstellen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Projektbeurteilung erstellen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Create project assessment document',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'projektarbeitNochNichtBeurteilt',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Projektarbeit ist noch nicht beurteilt',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Projekt work was not assessed yet',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'betreuerBearbeiten',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'BetreuerIn bearbeiten',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Edit assessor',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'betreuerSpeichern',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'BetreuerIn speichern',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Save assessor',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'zurFirmenverwaltung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Zur Firmenverwaltung',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Company management',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'punkte',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Punkte',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'points',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'gesamtnote',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Gesamtnote',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'final grade',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'abgabeEndupload',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Abgabe Endupload',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'final submission upload',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'vertrag_id',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Vertrag ID',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'contract ID',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'projektarbeit_id',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Projektarbeit ID',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'project work ID',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'betreuerart_kurzbz',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Betreuerart Kurzbezeichnung',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'project assessor short name',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'typ_kurzbz',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Typ Kurzbezeichnung',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'type short name',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'betreuerZugewiesen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Betreuer*In ist bereits zugewiesen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'This project assessor is already assigned',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'projektarbeit',
'phrase' => 'error_paarbeitHatBeurteilung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Für diese Projektarbeit ist bereits eine Projektarbeitsbeurteilung eingetragen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'This project work has already been assessed',
'description' => '',
'insertvon' => 'system',
),
),
)
);
File diff suppressed because it is too large Load Diff
-172
View File
@@ -1,172 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'rauminfo',
'phrase' => 'raum_kurzbz',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Raum Kurzbezeichnung',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Room Shortname',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'rauminfo',
'phrase' => 'roomSearch',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Räume Suchen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Search Rooms',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'rauminfo',
'phrase' => 'minCapacity',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Mindestpersonenkapazität',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Minimum person capacity',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'rauminfo',
'phrase' => 'roomReservations',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Raum Reservierungen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Room Reservations',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'rauminfo',
'phrase' => 'personcap',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Personen Kapazität',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Person Capacity',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'rauminfo',
'phrase' => 'raumnummer',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Raumnummer',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Room Number',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'rauminfo',
'phrase' => 'keineRaumReservierung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Keine Raum Reservierungen gefunden',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'No Room Reservations found',
'description' => '',
'insertvon' => 'system',
),
),
),
);
-76
View File
@@ -1,76 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'sap',
'phrase' => 'error_noBuchung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Die Buchungsnr #{buchungsnr} is ungültig',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'The Buchungnr #{buchungsnr} is not valid',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'sap',
'phrase' => 'error_buchungLocked',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Die Buchung wurde bereits übertragen und darf nicht geändert werden',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'The Buchung was already submitted and can not be changed',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'sap',
'phrase' => 'msg_buchung_deleted',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Buchungszuordnung SAP geloescht: SalesOrder: {sap_sales_order_id}',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Buchungszuordnung SAP deleted: SalesOrder: {sap_sales_order_id}',
'description' => '',
'insertvon' => 'system',
),
),
),
);
File diff suppressed because it is too large Load Diff
@@ -1,172 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'studiengangInformation',
'phrase' => 'assistenz',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Studiengangsassistenz',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'degree program assistant',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'studiengangInformation',
'phrase' => 'geschaeftsfuehrende_leitung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Geschäftsführende Leitung',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Managing director',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'studiengangInformation',
'phrase' => 'stellvertretende_leitung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Stellvertretende Leitung',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Representative director',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'studiengangInformation',
'phrase' => 'geschaeftsfuehrende_stellvertretende_leitung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Geschäftsführende / Stellvertretende Leitung',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Managing / Representative director',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'studiengangInformation',
'phrase' => 'Jahrgangsvertretung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Jahrgangsvertretung',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Study year representative',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'studiengangInformation',
'phrase' => 'Studienvertretung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Studienvertretung',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Study representative',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'studiengangInformation',
'phrase' => 'Hochschulvertretung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Hochschulvertretung',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'University representative',
'description' => '',
'insertvon' => 'system',
),
),
),
);
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
-315
View File
@@ -1,315 +0,0 @@
<?php
/* Copyright (C) 2013 FH Technikum-Wien
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
*/
$phrases = array(
array(
'app' => 'core',
'category' => 'table',
'phrase' => 'spaltenEinAusblenden',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Spalten ein- und ausblenden',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Show and hide columns',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'table',
'phrase' => 'spaltenEinAusblendenMitKlickOeffnen',
'phrases' => array(
array(
'sprache' => 'German',
'text' => '
Mit einem Klick auf <button><i class="fa fa-cog"></i></button> werden die Einstellungen geöffnet.
',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Click on <button><i class = "fa fa-cog"></i></button> to open the settings',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'table',
'phrase' => 'spaltenEinAusblendenAufEinstellungenKlicken',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Auf Spalteneinstellungen klicken',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Click on column settings',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'table',
'phrase' => 'spaltenEinAusblendenMitKlickAktivieren',
'phrases' => array(
array(
'sprache' => 'German',
'text' => '
Durch (wiederholtes) Klicken auf ein Feld mit dem Spaltennamen wird die entsprechende Spalte in der
Tabelle ein- bzw. ausgeblendet
',
'description' => '',
),
array(
'sprache' => 'English',
'text' => '
By selecting / deselecting a column name, the corresponding column is shown / hidden in the table
',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'table',
'phrase' => 'spaltenEinAusblendenMitKlickSchliessen',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Mit einem Klick auf <button><i class="fa fa-cog"></i></button> werden die Einstellungen
wieder geschlossen.',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Click on <button><i class = "fa fa-cog"></i></button> to close the settings',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'table',
'phrase' => 'spaltenbreiteVeraendern',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Spaltenbreite verändern',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Change column width',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'table',
'phrase' => 'spaltenbreiteVeraendernText',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Um die Spaltenbreite zu verändern, fährt man im Spaltenkopf langsam mit dem Mauszeiger auf den
rechten Rand der entprechenden Spalte. <br>
Sobald sich der Mauszeiger in einen Doppelpfeil verwandelt, wird die Maustaste geklickt und mit
gedrückter Maustaste die Spalte nach rechts erweitert oder nach links verkleinert.',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'To change the column width, slowly hover with the mouse pointer on the right edge of the
corresponding column header. <br>
As soon as the mouse pointer changes into a double arrow, click the mouse button and keep it pressed
while expanding the column width to the right or reducing it to the left.',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'table',
'phrase' => 'spaltenbreiteVeraendernInfotext',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Alle individuellen Tabelleneinstellungen werden in Ihrem Browser Cache gespeichert. Wenn Sie Ihren
Browser Cache löschen, werden Ihre Einstellungen zurückgesetzt und müssen gegebenenfalls neu
eingestellt werden.',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'All individual table settings are saved in your browser cache. If you clear your browser
cache, your settings will be erased. You will then need to reset them again.',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'table',
'phrase' => 'zeilenAuswaehlen',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Zeilen auswählen',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Select rows',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'table',
'phrase' => 'zeilenAuswaehlenEinzeln',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Einzeln auswählen: <kbd>Strg</kbd> + Klick auf einzelne Zeile(n)',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Select individually: <kbd> Ctrl </kbd> + click on single line (s)',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'table',
'phrase' => 'zeilenAuswaehlenBereich',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Bereich auswählen: <kbd>Shift</kbd> + Klick auf Anfangs- und Endzeile',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Select a range: <kbd> Shift </kbd> + click on the start and end line',
'description' => '',
)
)
),
array(
'app' => 'core',
'category' => 'table',
'phrase' => 'zeilenAuswaehlenAlle',
'phrases' => array(
array(
'sprache' => 'German',
'text' => 'Alle auswählen: Button \'Alle auswählen\'',
'description' => '',
),
array(
'sprache' => 'English',
'text' => 'Select all: Button \'Select all \' ',
'description' => '',
)
)
)
,
array (
'app' => 'core',
'category' => 'table',
'phrase' => 'download',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Download',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Download',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'table',
'phrase' => 'reload',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Tabelle neu laden',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Reload table',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'table',
'phrase' => 'with_selected',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Mit {count} ausgewählten: ',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'With {count} selected: ',
'description' => '',
'insertvon' => 'system',
),
),
)
);
-412
View File
@@ -1,412 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'tools',
'phrase' => 'dokumente',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Dokumente',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Documents',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'tools',
'phrase' => 'erstelldatum',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Erstelldatum',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Creation date',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'tools',
'phrase' => 'bestaetigungenZeugnisse',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Bestätigungen/Zeugnisse',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Certificates/Transcripts',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'tools',
'phrase' => 'inskriptionsbestaetigung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Studienbestätigung',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Enrollment Confirmation',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'tools',
'phrase' => 'studienbeitragFuerSSBezahlt',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Studienbeitrag für das %1$s bezahlt',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'tuition fee for semester %1$s paid',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'tools',
'phrase' => 'studienbeitragFuerSSNochNichtBezahlt',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Studienbeitrag für das %1$s noch nicht bezahlt',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'tuition fee for semester %1$s not yet paid',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'tools',
'phrase' => 'studienbeitragFuerStgNochNichtBezahlt',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Studienbeitrag für %1$s noch nicht bezahlt',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'tuition fee for %1$s not yet paid',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'tools',
'phrase' => 'studienbeitragNochNichtBezahlt',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Studienbeitrag noch nicht bezahlt',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'tuition fee not yet paid',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'tools',
'phrase' => 'studienerfolgsbestaetigung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Studienerfolgsbestätigung',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Student progress report',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'tools',
'phrase' => 'studiensemesterAuswaehlen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Bitte wählen Sie das entsprechende Studiensemester aus',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Please select the corresponding semester',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'tools',
'phrase' => 'vorlageWohnsitzfinanzamt',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'zur Vorlage beim Wohnsitzfinanzamt',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'for submission to local tax office',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'tools',
'phrase' => 'studienbuchblatt',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Studienbuchblatt',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Student Record',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'tools',
'phrase' => 'alleStudiensemester',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Alle Studiensemester',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'All semester',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'tools',
'phrase' => 'abschlussdokumente',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Abschlussdokumente/Zeugnisse',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Final documents/Transcripts',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'tools',
'phrase' => 'nochKeineAbschlussdokumenteVorhanden',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Noch keine Abschlussdokumente vorhanden',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'No final documents available yet',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'tools',
'phrase' => 'keinStatusImStudiensemester',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Für das übergebene Studiensemester %1$s existiert kein Status. Bitte wählen Sie ein gültiges Studiensemester aus dem DropDown.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'No status found for %1$s. Please select a valid semester from the dropdown.',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'tools',
'phrase' => 'warnungDruckDigitaleSignatur',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => '<b>Hinweis!</b> Digital signierte Dokumente werden in manchen Browsern und PDF-Readern nicht korrekt angezeigt. <br/>Bitte verwenden Sie den <a href="https://get.adobe.com/de/reader/" target="_blank">Adobe Acrobat Reader</a>, wenn Sie das Dokument ausdrucken möchten.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => '<b>Note!</b> Digitally signed documents are not displayed correctly in some browsers and PDF readers. <br/>Please use the <a href="https://get.adobe.com/de/reader/" target="_blank">Adobe Acrobat Reader</a> if you want to print the document.',
'description' => '',
'insertvon' => 'system',
),
),
),
);
-532
View File
@@ -1,532 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'uhstat',
'phrase' => 'angabeFehlt',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Angabe fehlt',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Value is missing',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'uhstat',
'phrase' => 'ausbildungBildungsstaatUebereinstimmung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Höchster Abschluss (unterteilt in Österreich oder im Ausland/unbekannt) passt nicht zum Staat des höchsten Abschlusses.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Highest completed level of education (divided into those acquired in Austria and those abroad/unknown) does not match country of the highest completed level of education',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'uhstat',
'phrase' => 'erfolgreichGespeichert',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Erfolgreich gespeichert',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Saved successfully',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'uhstat',
'phrase' => 'fehlerBeimSpeichern',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Fehler beim Speichern',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Error when saving',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'uhstat',
'phrase' => 'uhstat1AnmeldungUeberschrift',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Erhebung bei der Anmeldung zu einem Studium oder bei Studienbeginn',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Survey when applying for a study or at the start of studies',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'uhstat',
'phrase' => 'rechtsbelehrung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'gemäß § 18 Absätzen 6 und 7 Bildungsdokumentationsgesetz 2020, BGBl. I Nr. 20/2021, in der gültigen Fassung, sowie § 141 Absatz 3 Universitätsgesetz 2002, BGBl. I Nr. 120/2002, in der gültigen Fassung.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'according to section 18 subsections 6 and 7 of the Bildungsdokumentationsgesetz 2020, Federal Law Gazette I No. 20/2021, in the current version, and section 141 subsection 3 of the Universitätsgesetz 2002, Federal Law Gazette I No. 120/2002, in the current version.',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'uhstat',
'phrase' => 'uhstat1AnmeldungEinleitungstext',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Das Senden der Daten ist nur möglich, wenn die Sozialversicherungsnummer (bzw. das Ersatzkennzeichen) gültig ist und alle Fragen beantwortet worden sind. Wenn Sie etwas nicht wissen, wählen Sie die Antwortmöglichkeit „unbekannt“, aber beantworten Sie bitte alle Fragen.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Sending the data is only possible if the social security number (or the substitute code) is valid and all questions have been answered. If you don\'t know something, choose the answer option “unknown”, but please answer all questions.',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'uhstat',
'phrase' => 'uhstat1EinleitungSvnrtext',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Laut Bildungsdokumentationsgesetz sind wir verpflichtet die Sozialversicherungsnummer zu erheben bzw. zu registrieren. Falls Sie über keine Sozialversicherungsnummer verfügen, fordert die FH Technikum Wien in Ihrem Namen ein Ersatzkenneichen an.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'According to the General Social Insurance Act, we are obliged to collect and register your national insurance number. If you do not have a national insurance number, UAS Technikum Wien will request a social insurance substitute code on your behalf.',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'uhstat',
'phrase' => 'angabenErziehungsberechtigte',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Angaben zu Ihren Erziehungsberechtigten',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Information about your legal guardians',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'uhstat',
'phrase' => 'angabenErziehungsberechtigteEinleitungstext',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Die folgenden Fragen beziehen sich auf Personen, welche für Sie erziehungsberechtigt waren oder sind (Eltern oder jene Personen, die für Sie eine entsprechende Rolle übernommen haben, wie z.B. Stief- oder Pflegeeltern).',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'The following issues refer to your legal guardians (parents or persons who were in the role of the parents, e.g. stepparents or foster parents).',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'uhstat',
'phrase' => 'bitteAuswaehlen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Bitte auswählen...',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'please select...',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'uhstat',
'phrase' => 'erziehungsberechtigtePersonEins',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Erziehungsberechtigte Person 1/Mutter',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Legal guardian 1/mother',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'uhstat',
'phrase' => 'geburtsjahr',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Geburtsjahr',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'year of birth',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'uhstat',
'phrase' => 'geburtsstaat',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Geburtsstaat',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'country of birth',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'uhstat',
'phrase' => 'inDenHeutigenGrenzen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'in den heutigen Grenzen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'in today\'s borders',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'uhstat',
'phrase' => 'hoechsterAbschlussStaat',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Staat des höchsten Abschlusses',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Country of the highest completed level of education',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'uhstat',
'phrase' => 'wennAbschlussInOesterreich',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Falls der höchste Bildungsabschluss in Österreich erworben wurde',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'If the highest level of education was completed in Austria:',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'uhstat',
'phrase' => 'wennAbschlussNichtInOesterreich',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Falls das Land des höchsten erworbenen Bildungsabschlusses unbekannt oder nicht Österreich ist',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'If the country of the highest completed level of education is unknown or not Austria:',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'uhstat',
'phrase' => 'erziehungsberechtigtePersonZwei',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Erziehungsberechtigte Person 2/Vater',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Legal guardian 2/father',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'uhstat',
'phrase' => 'pruefenUndSpeichern',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Prüfen und Speichern',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Check and submit',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'uhstat',
'phrase' => 'datenLoeschen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Daten löschen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Delete data',
'description' => '',
'insertvon' => 'system',
),
),
),
array (
'app' => 'core',
'category' => 'uhstat',
'phrase' => 'erfolgreichGeloescht',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Erfolgreich gelöscht',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Deleted successfully',
'description' => '',
'insertvon' => 'system',
),
),
),
);
File diff suppressed because it is too large Load Diff
-28
View File
@@ -1,28 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'personalverwaltung',
'category' => 'vbform',
'phrase' => 'oder',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'oder',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'or',
'description' => '',
'insertvon' => 'system',
),
),
),
);
-699
View File
@@ -1,699 +0,0 @@
<?php
$phrases = array(
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'addVertrag',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Neuen Vertrag erstellen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Add new contract',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'editVertrag',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Vertrag bearbeiten',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Edit contract',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'deleteVertrag',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Vertrag löschen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Delete contract',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'addStatus',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Vertragstatus hinzufügen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Add contract status',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'editStatus',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Vertragstatus bearbeiten',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Edit contract status',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'deleteStatus',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Vertragstatus löschen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Delete contract status',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'deleteLehrauftrag',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Lehrauftrag löschen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Delete teaching assignment',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'datum_vertrag',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Vertragsdatum',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'contract date',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'vertrag_urfassung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Vertrags-Urfassung',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'original version of the contract',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'filter_offeneVertraege',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Nur offene Verträge anzeigen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Show only open contracts',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'error_addOrUpdateLehrauftraege',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Fehler beim Hinzufügen bzw. Aktualisieren von Lehraufträgen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Error while adding or updating teaching assignments',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'error_insertOrUpdateStatusVertrag',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Fehler beim Hinzufügen bzw. Aktualisieren des Vertragsstatus',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Error while adding or updating the contract status',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'error_statusVorhanden',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Status bereits vorhanden',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Status already existing',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'vertragErstellen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Vertrag erstellen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Create contract',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'vertragDetails',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Vertragdetails',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Contract Details',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'text_explainLehrauftrag',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Die folgenden Lehraufträge sind noch keinem Vertrag zugeordnet. Markieren Sie die Lehraufträge um diese dem Vertrag zuzuordnen:',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'The following teaching assignments have not yet been assigned to a contract. Mark the teaching assignments to assign them to the contract:',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'text_addLehrauftrag',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Folgende Lehraufträge werden hinzugefügt:',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'The following teaching assignments will be added:',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'vertragsverwaltung',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Vertragsverwaltung',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Contract management',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'nurAktiveMaAnzeigen',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Nur aktive Mitarbeiter:innen anzeigen',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Show only active employees',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'printHonorarvertrag',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Honorarvertrag drucken',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Print fee agreement',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'alertMindestensZweiVertraege',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Bitte mindestens 2 Verträge auswählen!',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Please select at least 2 contracts!',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'alertOnlyApprovedContracts',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Alle Verträge müssen genehmigt sein.',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'All contracts must be approved.',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'vertragsarten',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Vertragsarten',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Types of Contracts',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'idsDienstverhaeltnisse',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'IDs Dienstverhältnis',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'IDs employment relationship',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'vertragstyp',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Vertragstyp',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Contract Type',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'vertragsdatum_iso',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Vertragsdatum Iso',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Contract Date Iso',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'vertragsstunden',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'Vertragsstunden',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Contract hours',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'vertragsstunden_studiensemester',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'vertragsstunden Studiensemester',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'Contract hours study semester',
'description' => '',
'insertvon' => 'system',
),
),
)
,
array (
'app' => 'core',
'category' => 'vertrag',
'phrase' => 'abgerechnet',
'insertvon' => 'system',
'phrases' =>
array (
0 =>
array (
'sprache' => 'German',
'text' => 'abgerechnet',
'description' => '',
'insertvon' => 'system',
),
1 =>
array (
'sprache' => 'English',
'text' => 'billed',
'description' => '',
'insertvon' => 'system',
),
),
)
);

Some files were not shown because too many files have changed in this diff Show More