Hier einmal der Code. Ich bin mir sicher, dass ich das nicht sehr effizient gemacht habe, es war eher etwas herumprobieren.
Ziel war eigentlich
1. zu überprüfen, ob die 4 Fragen (SD01-04) auf der Seite zuvor beantwortet wurden, sie
2. anzuzeigen, falls nicht und
3. einen Warnungstextbaustein (WA) anzuzeigen, der die Teilnehmer*in darüber informiert, dass und welche Items noch fehlen.
Dazu enthält WA den Platzhalter %fehlt%, in dem ich die fehlenden Items aufzählen möchte. Da das ganze aber in einem Satz passiert, soll das Letzte Element des arrays, dass ich da in den Platzhalter einfüge ein "und" enthalten, damit es mehr nach einem echten Satz klingt.
Ich hoffe das ist einigermaßen verständlich :)
$bezeichnungen = array();
registerVariable('bezeichnungen');
if (value('SD01') == '-9') {
question('SD01');
markFail('SD01');
$bezeichnungen[1] = 'Geschlecht';
}
if (value('SD02') == '-9') {
question('SD02');
markFail('SD02');
$bezeichnungen[2] = 'Beruf';
}
if (value('SD03') == '0') {
question('SD03');
markFail('SD03');
$bezeichnungen[3] = 'Studienfach';
}
if (value('SD04_01') == '') {
question('SD04_01');
markFail('SD04_01');
$bezeichnungen[4] = 'Alter';
}
if (end($bezeichnungen) == 'Alter' && count($bezeichnung) >= 2) {
end($bezeichnungen) = 'und Alter';
if (count($bezeichnungen) == 4){
$bezeichnungen[2] = 'Beruf,';
$bezeichnungen[1] = 'Geschlecht,';
}
if ($bezeichnungen[3] == 'Studienfach' || $bezeichnungen[2] == 'Beruf') && $bezeichnungen[1] == 'Geschlecht'){
$bezeichnungen[1] = 'Geschlecht,';
}
if ($bezeichnungen[2] == 'Beruf' && $bezeichnungen[3] == 'Studienfach'){
$bezeichnungen[2] = 'Beruf,';
}
}
elseif (end($bezeichnungen) == 'Studienfach' && count($bezeichnung) >= 2) {
end($bezeichnungen) = 'und Studienfach';
if (count($bezeichnungen) == 3) {
$bezeichnungen[2] = 'Beruf,';
}
}
elseif (end($bezeichnungen) == 'Beruf') {
end($bezeichnungen) = 'und Beruf';
}
if ($bezeichnungen != ''){
$bezeichnungen = implode(' ', $bezeichnungen);
replace('%fehlt%', $bezeichnungen);
text('WA');
}