<?php
/**
 * @copyright (c) Kufer Software GmbH, Loisachstrasse 4, D-84453 Mühldorf
 */

$sortId = 5;
$toolId = $this->toolID;
$listId = 1;

$subgroupKopfbereich = 'Kopfbereich';
$subgroupTabelle = 'Teilnehmertabelle';
$subgroupFusszeilen = 'Fußzeilen';
$subgroupSonstiges = 'Sonstige Einstellungen';

$settingsArray = array();
$list = new Anwesenheitsliste(false, $toolId);
$list->loadSettings();

$vars = get_object_vars($list->settings->tnDarstellung);


$setting = new Setting();
$setting->name = 'caption';
$setting->description = 'Überschrift';
$setting->className = 'Anwesenheitsliste';
$setting->subGroup = $subgroupKopfbereich;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_INPUTNORMAL);
$setting->value = $list->settings->caption;
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'header';
$setting->description = 'Kopfbereich';
$setting->subGroup = $subgroupKopfbereich;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_MULTIHYBRID);
$varsKopfbereich = get_object_vars($list->settings->kopfbereich);
$setting->disabled = array();
$resultkopfbereich = array();
foreach ($varsKopfbereich as $nameKopfbereich => $value) {
  $displayNameKopfbereich = $list->getKopfbereichText($nameKopfbereich);
  $resultkopfbereich[$nameKopfbereich] = $displayNameKopfbereich;
  $setting->disabled[$nameKopfbereich] = !$list->getKopfbereichEnabled($nameKopfbereich);
}
$setting->config->items['checkbox'] = $resultkopfbereich;
array_push($settingsArray, $setting);




$setting = new Setting();
$setting->name = 'columns';
$setting->description = 'Spaltenanordnung';
$setting->subGroup = $subgroupTabelle;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_MULTIHYBRID);
$vars2 = get_object_vars($list->settings->spaltenanordnung);
$setting->disabled = array();
foreach ($vars2 as $name2 => $value2) {
  $displayNameSpalten = $list->getSpaltenanordnungText($name2);
  if (trim($displayNameSpalten ?? '') != '') {
    $resultSpalten["sp_$name2"] = $displayNameSpalten;
    $setting->disabled["sp_$name2"] = !$list->getSpaltenanordnungEnabled($name2);
  }
}
$setting->config->items['checkbox'] = $resultSpalten;
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'druckTnListeSettings';
$setting->description = 'Text von Spaltenanordnung';
$setting->help = 'Damit die entsprechende Spalte auch angezeigt wird, müssen Sie den entsprechenden Haken setzen';
$setting->subGroup = $subgroupTabelle;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_MULTIHYBRID);
$setting->descriptionBeforeInput = true;
$resultSpalten = array();
$resultValueSpalten = array();
$setting->config->items['text'] = array();
foreach ($vars2 as $name2 => $value2) {
  if (!\StringOperations::endsWith($name2, '_text')) {
    continue;
  }

  $option = \StringOperations::substr($name2, 0, -\StringOperations::strlen('_text'));

  $displayNameSpalten = $list->getSpaltenanordnungText($option);
  if (trim($displayNameSpalten ?? '') != '' && $list->getSpaltenanordnungEnabled($option) && $list->getSpaltenanordnungTextEnabled($option)) {
    $setting->config->items['text'][$name2 . $listId] = "Text von \"$displayNameSpalten\" ";
  }
}
array_push($settingsArray, $setting);

array_push($settingsArray, \Kufer\Web\Admin\Classes\Settings\Helper\Tools\TeilnehmerlisteSettings::createDruckTnListeSettingsKursendeSettings($listId, $toolId, $subgroupTabelle));

array_push($settingsArray, \Kufer\Web\Admin\Classes\Settings\Helper\Tools\TeilnehmerlisteSettings::createDruckTnListeSettingsKursbeginnSetting($listId, $toolId, $subgroupTabelle));

$setting = new Setting();
$setting->name = 'teilnehmer';
$setting->description = 'TeilnehmerIn-Darstellung';
$setting->subGroup = $subgroupTabelle;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_MULTIHYBRID);
$objsettings = ToolSettingsAPI::getToolSettings(\ToolsAPI::TOOL_KURSUEBERSICHT_DOZ);
$knr = GetOperations::getVarValue('nr');
$vars = get_object_vars($list->settings->tnDarstellung);
$setting->disabled = array();
foreach ($vars as $name => $value) {
  $displayName = $list->getTNDarstellungText($name);
  $setting->disabled[$name] = !$list->getTNDarstellungEnabled($name);
  $setting->config->items['checkbox'][$name] = $displayName;
}
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'comment';
$setting->description = 'Bemerkung';
$setting->subGroup = $subgroupTabelle;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_MULTIHYBRID);
$bemerkungOptions = $list->getBemerkungOptions();
$setting->disabled = array();
$resultBemerkung = array();
foreach ($bemerkungOptions as $wert => $displayNameBemerkung) {
  $resultBemerkung[$wert] = $displayNameBemerkung;
  $setting->disabled[$wert] = !$list->getBemerkungEnabled($wert);
}
$setting->config->items['radio'] = $resultBemerkung;
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'auffuellen';
$setting->description = 'Druckbereich auffüllen mit Leerzeilen';
$setting->subGroup = $subgroupTabelle;
$setting->toolId = $toolId;
$setting->disabled = !$list->getDruckbereichEnabled('auffuellen');
$setting->config->loadConfiguration(SC_CHECKBOX);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'padding';
$setting->description = 'Optionen für den Druckbereich auffüllen mit Leerzeilen';
$setting->subGroup = $subgroupTabelle;
$setting->help = '';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_MULTIHYBRID);
$art = $list->getAuffuellOptions();
$setting->disabled = array();
foreach ($art as $value => $display) {
  $resultAuffuell[$value] = $display;
  $setting->disabled[$value] = !$list->getDruckbereichEnabled("auffuellArt_$value");
}
$setting->config->items['radio'] = $resultAuffuell;
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'sort';
$setting->description = 'Sortierung';
$setting->subGroup = $subgroupTabelle;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_RADIO);

$sortierungOptions = $list->getSortierungOptions();
foreach ($sortierungOptions as $wert => $displayNameSortierung) {
  $resultSortierung["$wert"] = $displayNameSortierung;
}
$setting->config->items = $resultSortierung;
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'filter';
$setting->description = 'Umfang';
$setting->subGroup = $subgroupTabelle;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_RADIO);

$tndarstellung = new TNListen('', $toolId, 237);
$tndarstellungs = $tndarstellung->_getTNDarstellung($list);
$resultUmfang['A'] = 'alle angemeldeten';
$resultUmfang['*'] = 'alle';
$resultUmfang['C'] = 'alle mit Status';
$setting->config->items = $resultUmfang;
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'customState';
$setting->description = 'Umfang: Statuskürzel für "alle mit Status"';
$setting->help = 'Vorsicht: Diese Einstellung wird nur berücksichtigt falls "alle mit Status" '
                . 'im Punkt "Umfang" ausgewählt wurde.';
$setting->subGroup = $subgroupTabelle;
$setting->toolId = $toolId;
$setting->descriptionBeforeInput = true;
$setting->config->loadConfiguration(SC_INPUTNORMAL);
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'druckTnListeSettings';
$setting->description = 'Anwesenheiten anzeigen';
$setting->help = 'Falls diese Einstellung gesetzt wird, werden die in der Anwesenheitskontrolle erfassten Hauptanwesenheiten als Buchstabenk&uuml;rzel am jeweiligen Kurstag angezeigt.';
$setting->subGroup = $subgroupTabelle;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_MULTIHYBRID);
$setting->descriptionBeforeInput = true;
$setting->config->items['checkbox'] = array('anwAnzeigen' . $listId => '');
array_push($settingsArray, $setting);



$setting = new Setting();
$setting->name = 'footer';
$setting->description = 'Fußzeile anzeigen';
$setting->subGroup = $subgroupFusszeilen;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_MULTIHYBRID);
$resultFusszeile[1] = 'auf allen Seiten' . BR_WT;
$resultFusszeile[2] = 'nur letzte Seite' . BR_WT;
$resultFusszeile[0] = 'ohne Fußzeilen';
$setting->disabled = array();
foreach ($resultFusszeile as $fzValue => $text) {
  $setting->disabled[$fzValue] = !$list->getFusszeileEnabled($fzValue);
}
$setting->config->items['radio'] = $resultFusszeile;
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = array('SpaltenUeb1', 'SpaltenUeb2');
$setting->group = 'Zusatzspalten';
$setting->description = 'Zusatzspalten';
$setting->subGroup = 'Zusatzspalten';
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_FIELDSET);
$setting->config->fieldsetName = 'Zusatzspalten';
$SpaltenUeb = 'SpaltenUeb';
$temp = '';
for ($i = 1; $i <= 2; $i++) {
  $temp = $SpaltenUeb . $i;
  $setting->config->items["textarea$i"][$temp] = "Zusatzspalte $i:";
}
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = array('footer1', 'footer1size', 'footer1bold', 'footer2', 'footer2size', 'footer2bold', 'footer3', 'footer3size', 'footer3bold',
    'footer4', 'footer4size', 'footer4bold', 'footer5', 'footer5size', 'footer5bold');
$setting->subGroup = $subgroupFusszeilen;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_FIELDSET);
$setting->config->fieldsetName = 'Fusszeilen';
$i = 1;
if (isset($list->settings->fusszeilen)) {
  foreach ($list->settings->fusszeilen as $fusszeile) {
    if (!isset($fusszeile->text)) {
      $fusszeile->text = '';
    }
    if (!isset($fusszeile->size)) {
      $fusszeile->size = '';
    }
    if (!isset($fusszeile->bold)) {
      $fusszeile->bold = false;
    }

    $resultFusszeilenText["footer$i"] = "Fusszeile $i:";
    $resultFusszeilen['footer' . $i . 'size'] = "<label class=\"l_fusszeile_size\" for=\"sizefusszeile$i\">Schriftgröße:</label>";
    $resultFusszeilenCheckbox['footer' . $i . 'bold'] = 'Fett';
    $resultFusszeilen[] = BR_WT;
    $setting->config->size .= "sizefusszeile$i=2&";
    $setting->config->items["text$i"]["footer$i"] = "Fusszeile $i:";
    $setting->config->items["text2$i"]['footer' . $i . 'size'] = 'Schriftgröße:';
    $setting->config->items["checkbox$i"]['footer' . $i . 'bold'] = 'Fett';
    $i++;
  }
}
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'portrait';
$setting->description = 'Druckbereich';
$setting->subGroup = $subgroupSonstiges;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_MULTIHYBRID);
$resultdruckBereich['1'] = 'Hochformat';
$resultdruckBereich['0'] = 'Querformat';
$setting->disabled = array();
$setting->disabled[1] = !$list->getDruckbereichEnabled('hochformat');
$setting->disabled[0] = !$list->getDruckbereichEnabled('hochformat');
$setting->config->items['radio'] = $resultdruckBereich;
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'druckTnListeSettings';
$setting->description = 'Bezeichnung';
$setting->help = 'Falls angegeben, wird die Bezeichnung der TeilnehmerInnenlisten beim Auswahl-Fenster für den Druck der TeilnehmerInnenlisten'
        . 'in den Kursübersichten bzw. Kursdetails ersetzt.<br /><br />Falls nichts angegeben, so wird folgende '
        . 'Standardbezeichnung verwendet: <b><i>' . $tndarstellung->listen['Anwesenheitsliste'] . '</i></b>';
$setting->subGroup = $subgroupSonstiges;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_MULTIHYBRID);
$setting->descriptionBeforeInput = true;
$setting->config->items['text'] = array('tnListeBezeichnung' . $listId => 'Bezeichnung der TeilnehmerInnenliste im Auswahl-Fenster:');
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'druckTnListeSettings';
$setting->description = 'Nur Kurstage Filter anzeigen';
$setting->help = 'In den Einstellungen zu der Druckliste, wird nur das Feld angezeigt, mit dem auf Kurstage eingeschränkt werden kann.';
$setting->subGroup = $subgroupSonstiges;
$setting->toolId = $toolId;
$setting->config->loadConfiguration(SC_MULTIHYBRID);
$setting->descriptionBeforeInput = true;
$setting->config->items['checkbox'] = array('nurkurstagefilter' . $listId => '');
array_push($settingsArray, $setting);

$setting = new Setting();
$setting->name = 'kopieKuferSQL';
$setting->description = 'Die in KuferSQL zu dieser Liste getroffenen Einstellungen verwenden';
$setting->help = 'Vorsicht: Beim Klick auf "Von KuferSQL kopieren" werden die bisherigen Einstellungen zu dieser Liste verworfen, und durch die von KuferSQL ersetzt.' . BR_WT
                 . 'In KuferSQL finden Sie die Einstellungen zu dieser Liste unter "Einstellungen / Einstellungen für die TN-Listen / Anwesenheitsliste mit Kurstagen".';
$setting->subGroup = 'Einstellungen von KuferSQL kopieren';
$setting->toolId = $toolId;
$setting->saveButtonTitle = 'vonsqlkopieren';
array_push($settingsArray, $setting);