- Added method dropdownListValuesToString to udf.class.php

- Added enum element to UDF definition in method _getUDFDefinition
- Exports now show the values of dropdowns and not the id
This commit is contained in:
Paolo
2017-08-07 11:18:41 +02:00
parent 2edcfae0af
commit db63dd1dd0
3 changed files with 98 additions and 11 deletions
+16 -3
View File
@@ -223,11 +223,24 @@ foreach ($mitarbeiterDAO->result as $mitarbeiter)
{
if (isset($udfPerson[$udfTitle['name']]))
{
if (mb_strlen($udfPerson[$udfTitle['name']]) > $maxlength[$col])
if (is_string($udfPerson[$udfTitle['name']]) || is_numeric($udfPerson[$udfTitle['name']]))
{
$maxlength[$col] = mb_strlen($udfPerson[$udfTitle['name']]);
if (mb_strlen($udfPerson[$udfTitle['name']]) > $maxlength[$col])
{
$maxlength[$col] = mb_strlen($udfPerson[$udfTitle['name']]);
}
$worksheet->write($zeile, $col, $udfPerson[$udfTitle['name']]);
}
else if(is_array($udfPerson[$udfTitle['name']]) && isset($udfTitle['enum']))
{
$toWrite = $udf->dropdownListValuesToString($udfPerson[$udfTitle['name']], $udfTitle['enum']);
if (mb_strlen($toWrite) > $maxlength[$col])
{
$maxlength[$col] = mb_strlen($toWrite);
}
$worksheet->write($zeile, $col, $toWrite);
}
$worksheet->write($zeile, $col, $udfPerson[$udfTitle['name']]);
}
$col++;
}
@@ -241,7 +241,7 @@ function draw_content($row)
global $zeile, $worksheet;
global $zgv_arr, $zgvmas_arr;
global $studiensemester_kurzbz;
global $udfTitlesPerson, $udfTitlesPrestudent;
global $udfTitlesPerson, $udfTitlesPrestudent, $udf;
$db = new basis_db();
$prestudent = new prestudent();
@@ -558,11 +558,24 @@ function draw_content($row)
{
if (isset($udfPerson[$udfTitle['name']]))
{
if (mb_strlen($udfPerson[$udfTitle['name']]) > $maxlength[$i])
if (is_string($udfPerson[$udfTitle['name']]) || is_numeric($udfPerson[$udfTitle['name']]))
{
$maxlength[$i] = mb_strlen($udfPerson[$udfTitle['name']]);
if (mb_strlen($udfPerson[$udfTitle['name']]) > $maxlength[$i])
{
$maxlength[$i] = mb_strlen($udfPerson[$udfTitle['name']]);
}
$worksheet->write($zeile, $i, $udfPerson[$udfTitle['name']]);
}
else if(is_array($udfPerson[$udfTitle['name']]) && isset($udfTitle['enum']))
{
$toWrite = $udf->dropdownListValuesToString($udfPerson[$udfTitle['name']], $udfTitle['enum']);
if (mb_strlen($toWrite) > $maxlength[$i])
{
$maxlength[$i] = mb_strlen($toWrite);
}
$worksheet->write($zeile, $i, $toWrite);
}
$worksheet->write($zeile, $i, $udfPerson[$udfTitle['name']]);
}
$i++;
}
@@ -577,11 +590,24 @@ function draw_content($row)
{
if (isset($udfPrestudent[$udfTitle['name']]))
{
if (mb_strlen($udfPrestudent[$udfTitle['name']]) > $maxlength[$i])
if (is_string($udfPrestudent[$udfTitle['name']]) || is_numeric($udfPrestudent[$udfTitle['name']]))
{
$maxlength[$i] = mb_strlen($udfPrestudent[$udfTitle['name']]);
if (mb_strlen($udfPrestudent[$udfTitle['name']]) > $maxlength[$i])
{
$maxlength[$i] = mb_strlen($udfPrestudent[$udfTitle['name']]);
}
$worksheet->write($zeile, $i, $udfPrestudent[$udfTitle['name']]);
}
else if(is_array($udfPrestudent[$udfTitle['name']]) && isset($udfTitle['enum']))
{
$toWrite = $udf->dropdownListValuesToString($udfPrestudent[$udfTitle['name']], $udfTitle['enum']);
if (mb_strlen($toWrite) > $maxlength[$i])
{
$maxlength[$i] = mb_strlen($toWrite);
}
$worksheet->write($zeile, $i, $toWrite);
}
$worksheet->write($zeile, $i, $udfPrestudent[$udfTitle['name']]);
}
$i++;
}
+49 -1
View File
@@ -172,6 +172,45 @@ class UDF extends basis_db
return $prestudentHasUDF;
}
/**
* Concatenates a list of values of a dropdown element to a string
*/
public function dropdownListValuesToString($listValues, $enum)
{
$toWrite = '';
foreach ($listValues as $value)
{
foreach ($enum as $element)
{
if (is_object($element))
{
if ($element->id == $value)
{
$toWrite .= $element->description;
break;
}
}
else if (is_array($element))
{
if ($element[0] == $value)
{
$toWrite .= $element[1];
break;
}
}
else if ($element == $value)
{
$toWrite .= $element;
break;
}
}
$toWrite .= ' ';
}
return $toWrite;
}
/**
* Loads the UDF definitions related to the given schema and table
*/
@@ -243,7 +282,16 @@ class UDF extends basis_db
{
if (isset($udfJsonShema->name) && isset($udfJsonShema->title))
{
$names[] = array('name' => $udfJsonShema->name, 'title' => $udfJsonShema->title);
$tmpArray = array('name' => $udfJsonShema->name, 'title' => $udfJsonShema->title);
if (isset($udfJsonShema->type)
&& ($udfJsonShema->type == 'dropdown' || $udfJsonShema->type == 'multipledropdown')
&& isset($udfJsonShema->listValues) && isset($udfJsonShema->listValues->enum))
{
$tmpArray['enum'] = $udfJsonShema->listValues->enum;
}
$names[] = $tmpArray;
}
}
}