> Sicherlich ließe sich hier gut mit if else Befehlen arbeiten, oder?
Nein, das wird bei 12x4 Seiten ein ewig langer Baum. Ich hätte stattdessen eher mit einem Array gearbeitet, wo für jeden Durchgang die passenden Daten hinterlegt sind.
$blocks = [
'A1' => ['Bild1a.jpg', 'TX01', 'Bild1b.jpg', 'TX02', 'TX03'],
'A2' => ['Bild2a.jpg', 'TX04', 'Bild2b.jpg', 'TX05', 'TX06'],
// u.s.w.
];
Wie viele Informationen das genau sind, die man pro Block braucht, wissen Sie. Ich habe hier mal exemplarisch 5 eingetragen.
In die Abfolge würde man jetzt für jeden Block nicht nur ein Element legen, sondern 4, eines pro Seite. Also statt
$abfolgePlus[] = $blockID;
dann
$abfolgePlus[] = $blockID.'/1';
$abfolgePlus[] = $blockID.'/2';
$abfolgePlus[] = $blockID.'/3';
$abfolgePlus[] = $blockID.'/4';
Und der Einfachheit halben zählen wir nun auch nicht die (2) Blöcke, sondern die 8 Seiten:
if ($countA % 8 == 0) {
Schon haben Sie ein Array, das alle einzelnen Seiten beinhaltet. Das können Sie jetzt per loopPage() gemütlich abarbeiten. Sie müssen dann nur noch in Block und Seitennummer teilen:
$page = loopPage($abfolgePlus);
if (substr($page, 0, 6) == 'Bonus-A') {
// Inhalt der Bonus-Seite A
} elseif (substr($page, 0, 6) == 'Bonus-B') {
// Inhalt der Bonus-Seite B
} else {
$info = explode('/', $page); // Das macht aus A2/3 ein Array ['A2', '3']
$block = $info[0];
$blockPage = (int)$info[1];
$data = $pages[$block]; // Und hier rufen wir die Zeile aus dem Array $pages von oben ab
if ($blockPage == 1) {
html('<div><img src="'.$data[0].'"></div>');
question($data[1]);
}
// u.s.w.
}
Das ist nicht so wahnsinnig viel Code und spart Ihnen etwa 59 Seiten im Fragebogen.