use language index for tags

This commit is contained in:
ma0068
2026-07-21 10:41:27 +02:00
parent 68292b60af
commit 7cda22f807
3 changed files with 46 additions and 22 deletions
@@ -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;
}
}
+9 -3
View File
@@ -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,
+4 -4
View File
@@ -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,