Hier ist eine individuelle Antwortprüfung erforderlich.
Konkret benötigen Sie einen PHP-Code, der für jedes Item prüft, ob min. ein Kreuzchen gesetzt wurde.
$missing = [];
foreach (getItems('SN03', 'all') as $item) {
$any = false;
foreach (array('SN03', 'SN04', 'SN05', 'SN06', 'SN07') as $question) {
if (value(id($question, $item)) == 2) {
$any = true; // Min. ein Kreuzchen gesetzt
}
}
if (!$any) {
$missing[] = $item;
}
}
if (count($missing) > 0) {
foreach ($missing as $item) {
markFail(id('SN03', $item));
}
repeatPage();
}
Zugegene, das ist aufgrund der beiden verschachtelten FOREACH-Schleifen nicht ganz einfach zu lesen. Die obere Hälfte des Codes geht alle Items (und für jedes Item alle Fragen) durch und prüft, ob irgendwo ein Kreuzchen ist. Wenn ein Item kein Kreuzchen hat, wird es im Array $missing
vermerkt.
Der untere Teil prüft, ob fehlender Items vermerkt wurden und markiert diese als fehlend.