diff --git a/application/controllers/api/frontend/v1/stv/Students.php b/application/controllers/api/frontend/v1/stv/Students.php index e77e20889..f822c7205 100644 --- a/application/controllers/api/frontend/v1/stv/Students.php +++ b/application/controllers/api/frontend/v1/stv/Students.php @@ -103,6 +103,8 @@ class Students extends FHCAPI_Controller */ public function getIncoming($studiensemester_kurzbz) { + $index_bezeichnung_mehrsprachig = $this->_getLanguageIndex(); + $this->addMeta('ci_method', __FUNCTION__); $this->addMeta('ci_params', [ 'studiensemester_kurzbz' => $studiensemester_kurzbz @@ -135,7 +137,7 @@ class Students extends FHCAPI_Controller $this->addFilter($studiensemester_kurzbz); - $result = $this->studentlistlib->execute($studiensemester_kurzbz); + $result = $this->studentlistlib->execute($studiensemester_kurzbz, $index_bezeichnung_mehrsprachig); $data = $this->getDataOrTerminateWithError($result); $this->decodeTagsJsonInResult($data); @@ -149,6 +151,8 @@ class Students extends FHCAPI_Controller */ public function getOutgoing($studiensemester_kurzbz) { + $index_bezeichnung_mehrsprachig = $this->_getLanguageIndex(); + $this->addMeta('ci_method', __FUNCTION__); $this->addMeta('ci_params', [ 'studiensemester_kurzbz' => $studiensemester_kurzbz @@ -194,7 +198,7 @@ class Students extends FHCAPI_Controller $this->addFilter($studiensemester_kurzbz); - $result = $this->studentlistlib->execute($studiensemester_kurzbz); + $result = $this->studentlistlib->execute($studiensemester_kurzbz, $index_bezeichnung_mehrsprachig); $data = $this->getDataOrTerminateWithError($result); $this->decodeTagsJsonInResult($data); @@ -208,6 +212,7 @@ class Students extends FHCAPI_Controller */ public function getGemeinsamestudien($studiensemester_kurzbz) { + $index_bezeichnung_mehrsprachig = $this->_getLanguageIndex(); $this->addMeta('ci_method', __FUNCTION__); $this->addMeta('ci_params', [ 'studiensemester_kurzbz' => $studiensemester_kurzbz @@ -239,7 +244,7 @@ class Students extends FHCAPI_Controller $this->addFilter($studiensemester_kurzbz); - $result = $this->studentlistlib->execute($studiensemester_kurzbz); + $result = $this->studentlistlib->execute($studiensemester_kurzbz, $index_bezeichnung_mehrsprachig); $data = $this->getDataOrTerminateWithError($result); $this->decodeTagsJsonInResult($data); @@ -290,6 +295,8 @@ class Students extends FHCAPI_Controller { $stdsemEsc = $studiensemester_kurzbz ? $this->PrestudentModel->escape($studiensemester_kurzbz) : 'NULL'; + $index_bezeichnung_mehrsprachig = $this->_getLanguageIndex(); + $selectRT = " SELECT 1 FROM public.tbl_rt_person @@ -444,7 +451,7 @@ class Students extends FHCAPI_Controller $this->addFilter($studiensemester_kurzbz); - $result = $this->studentlistlib->execute($studiensemester_kurzbz); + $result = $this->studentlistlib->execute($studiensemester_kurzbz, $index_bezeichnung_mehrsprachig); $data = $this->getDataOrTerminateWithError($result); $this->decodeTagsJsonInResult($data); @@ -547,6 +554,7 @@ class Students extends FHCAPI_Controller $gruppe_kurzbz = null, $orgform_kurzbz = null ) { + $index_bezeichnung_mehrsprachig = $this->_getLanguageIndex(); $this->load->model('organisation/Studiensemester_model', 'StudiensemesterModel'); if (!$this->StudiensemesterModel->isValidStudiensemester($studiensemester_kurzbz)) @@ -591,10 +599,8 @@ class Students extends FHCAPI_Controller } } - $this->addFilter($studiensemester_kurzbz); - - $result = $this->studentlistlib->execute($studiensemester_kurzbz); + $result = $this->studentlistlib->execute($studiensemester_kurzbz, $index_bezeichnung_mehrsprachig); $data = $this->getDataOrTerminateWithError($result); $this->decodeTagsJsonInResult($data); @@ -620,6 +626,7 @@ class Students extends FHCAPI_Controller */ public function getPrestudent($studiensemester_kurzbz, $prestudent_id) { + $index_bezeichnung_mehrsprachig = $this->_getLanguageIndex(); $this->addMeta('ci_method', __FUNCTION__); $this->addMeta('ci_params', array( 'studiensemester_kurzbz' => $studiensemester_kurzbz, @@ -647,10 +654,8 @@ class Students extends FHCAPI_Controller $this->studentlistlib->addWhere('tbl_prestudent.prestudent_id', $prestudent_id); - $this->addFilter($studiensemester_kurzbz); - - $result = $this->studentlistlib->execute($studiensemester_kurzbz); + $result = $this->studentlistlib->execute($studiensemester_kurzbz, $index_bezeichnung_mehrsprachig); $data = $this->getDataOrTerminateWithError($result); $this->decodeTagsJsonInResult($data); @@ -664,6 +669,7 @@ class Students extends FHCAPI_Controller */ public function getStudent($studiensemester_kurzbz, $student_uid) { + $index_bezeichnung_mehrsprachig = $this->_getLanguageIndex(); $this->addMeta('ci_method', __FUNCTION__); $this->addMeta('ci_params', array( 'studiensemester_kurzbz' => $studiensemester_kurzbz, @@ -679,11 +685,9 @@ class Students extends FHCAPI_Controller $this->studentlistlib->addWhere('s.student_uid', $student_uid); - $this->addFilter($studiensemester_kurzbz); - - $result = $this->studentlistlib->execute($studiensemester_kurzbz); + $result = $this->studentlistlib->execute($studiensemester_kurzbz, $index_bezeichnung_mehrsprachig); $data = $this->getDataOrTerminateWithError($result); $this->decodeTagsJsonInResult($data); @@ -698,6 +702,8 @@ class Students extends FHCAPI_Controller */ public function getPerson($studiensemester_kurzbz, $person_id) { + $index_bezeichnung_mehrsprachig = $this->_getLanguageIndex(); + $this->addMeta('ci_method', __FUNCTION__); $this->addMeta('ci_params', array( 'studiensemester_kurzbz' => $studiensemester_kurzbz, @@ -717,7 +723,7 @@ class Students extends FHCAPI_Controller $this->addFilter($studiensemester_kurzbz); - $result = $this->studentlistlib->execute($studiensemester_kurzbz); + $result = $this->studentlistlib->execute($studiensemester_kurzbz, $index_bezeichnung_mehrsprachig); $data = $this->getDataOrTerminateWithError($result); $this->decodeTagsJsonInResult($data); @@ -731,6 +737,7 @@ class Students extends FHCAPI_Controller */ public function search($studiensemester_kurzbz) { + $index_bezeichnung_mehrsprachig = $this->_getLanguageIndex(); $this->addMeta('ci_method', __FUNCTION__); $this->addMeta('ci_params', array( 'studiensemester_kurzbz' => $studiensemester_kurzbz @@ -786,7 +793,7 @@ class Students extends FHCAPI_Controller $this->addFilter($studiensemester_kurzbz); - $result = $this->studentlistlib->execute($studiensemester_kurzbz); + $result = $this->studentlistlib->execute($studiensemester_kurzbz, $index_bezeichnung_mehrsprachig); $data = $this->getDataOrTerminateWithError($result); $this->decodeTagsJsonInResult($data); @@ -818,4 +825,15 @@ class Students extends FHCAPI_Controller } } } + + private function _getLanguageIndex() + { + $this->load->model('system/Sprache_model', 'SpracheModel'); + $this->SpracheModel->addSelect('index'); + $result = $this->SpracheModel->loadWhere(array('sprache' => getUserLanguage())); + $language = hasData($result) ? getData($result)[0]->index : 1; + $index_bezeichnung_mehrsprachig = $language - 1; + + return $index_bezeichnung_mehrsprachig; + } } diff --git a/application/core/Tag_Controller.php b/application/core/Tag_Controller.php index c4c5afa88..0600200c8 100644 --- a/application/core/Tag_Controller.php +++ b/application/core/Tag_Controller.php @@ -42,6 +42,9 @@ class Tag_Controller extends FHCAPI_Controller public function getTag($readonly_tags = null) { + $language = $this->_getLanguageIndex(); + $index_bezeichnung_mehrsprachig = $language - 1; + $id = $this->input->get('id'); if (is_array($readonly_tags) && !isEmptyArray($readonly_tags)) @@ -66,7 +69,7 @@ class Tag_Controller extends FHCAPI_Controller $this->NotizModel->addSelect( "tbl_notiz.titel, tbl_notiz.text, - array_to_json(bezeichnung_mehrsprachig::varchar[])->>0 as bezeichnung, + array_to_json(bezeichnung_mehrsprachig::varchar[])->>". $index_bezeichnung_mehrsprachig . " as bezeichnung, tbl_notiz.notiz_id, tbl_notiz_typ.style, tbl_notiz_typ.automatisiert, @@ -96,10 +99,11 @@ class Tag_Controller extends FHCAPI_Controller public function getTags($tags = null) { $language = $this->_getLanguageIndex(); + $index_bezeichnung_mehrsprachig = $language - 1; $this->NotiztypModel->addSelect( "typ_kurzbz as tag_typ_kurzbz, - array_to_json(bezeichnung_mehrsprachig::varchar[])->>0 as bezeichnung, + array_to_json(bezeichnung_mehrsprachig::varchar[])->>". $index_bezeichnung_mehrsprachig . " as bezeichnung, style, beschreibung, tag, @@ -283,6 +287,8 @@ class Tag_Controller extends FHCAPI_Controller } public function getAllTags($readonly_tags = false){ + $language = $this->_getLanguageIndex(); + $index_bezeichnung_mehrsprachig = $language - 1; $prestudent_id = $this->input->get('prestudent_id'); //TODO check for readonly: necessary? @@ -307,7 +313,7 @@ class Tag_Controller extends FHCAPI_Controller $this->NotizModel->addSelect( "tbl_notiz.titel, tbl_notiz.text, - array_to_json(bezeichnung_mehrsprachig::varchar[])->>0 as bezeichnung, + array_to_json(bezeichnung_mehrsprachig::varchar[])->>". $index_bezeichnung_mehrsprachig . " as bezeichnung, tbl_notiz.notiz_id, tbl_notiz_typ.style, tbl_notiz_typ.automatisiert, diff --git a/application/libraries/stv/StudentListLib.php b/application/libraries/stv/StudentListLib.php index 432b75bd4..de84cda0b 100644 --- a/application/libraries/stv/StudentListLib.php +++ b/application/libraries/stv/StudentListLib.php @@ -251,9 +251,9 @@ class StudentListLib * * @return stdClass result of the query */ - public function execute($studiensemester_kurzbz) + public function execute($studiensemester_kurzbz, $index_bezeichnung_mehrsprachig=0) { - $this->addSelectAndJoinForTagsIfConfigured($studiensemester_kurzbz); + $this->addSelectAndJoinForTagsIfConfigured($studiensemester_kurzbz, $index_bezeichnung_mehrsprachig); $stdsemEsc = $studiensemester_kurzbz ? $this->_ci->PrestudentModel->escape($studiensemester_kurzbz) : 'NULL'; @@ -302,7 +302,7 @@ class StudentListLib * @param string studiensemester_kurzbz * */ - protected function addSelectAndJoinForTagsIfConfigured($studiensemester_kurzbz) + protected function addSelectAndJoinForTagsIfConfigured($studiensemester_kurzbz, $index_bezeichnung_mehrsprachig) { if (defined('STV_TAGS_ENABLED') && STV_TAGS_ENABLED) { $this->_ci->load->config('stv'); @@ -326,7 +326,7 @@ class StudentListLib SELECT DISTINCT ON (n.notiz_id) n.notiz_id AS id, nt.typ_kurzbz, - array_to_json(nt.bezeichnung_mehrsprachig)->>0 AS beschreibung, + array_to_json(nt.bezeichnung_mehrsprachig)->>". $index_bezeichnung_mehrsprachig . " AS beschreibung, n.text AS notiz, nt.style, n.erledigt AS done,