Die Bereiche q1, q2, q3 und mainStart waren nur Beispiele von Ihrer Hilfeseite.
Es wäre gut gewesen, das gleich in der ersten Frage zu verraten :)
Wenn ich Sie korrekt verstehe, brauchen Sie also überhaupt gar kein setPageOrder()
. Sie möchten nur je nach Experimentalbedingung einen unterschiedlichen Pool von Fragen rotieren.
Das können Sie ganz einfach haben. Hier ist nochmal der Code aus Ihrer ersten Frage - also den, die Sie (evtl.?) tatsächlich verwenden wollten:
// Teil 1: Liste der Fragen erstellen und mischen
if (!isset($fragen)) {
$fragen = array( // Liste der Frage-Kennungen
'KO01',
'KO02',
'KO03',
'KO04',
'KO05',
'KO06',
'KO07',
'KO08',
'KO09',
'KO10'
);
// Die Liste zufällig mischen
shuffle($fragen);
// Die Rotation für eine eventuelle Wiederholung der Seite zwischenspeichern
registerVariable($fragen);
}
// Teil 2: Fragen anzeigen
$i = loopPage(count($fragen));
question($fragen[$i]);
Das einzige, was Sie entsprechend der Experimentalgruppe ändenr müssen, ist die Liste der Fragen-IDs.
// Zufallszahl
$zahl = value('ZU01');
// Teil 1: Liste der Fragen erstellen und mischen
if (!isset($fragen)) {
if ($zahl == 1) {
$fragen = [
'qK01', 'qK02', 'qK03', 'qK04', 'qK05',
'qK06', 'qK07', 'qK08', 'qK09', 'qK10'
];
} elseif ($zahl == 2) {
$fragen = [
'qR01', 'qR02', 'qR03', 'qR04', 'qR05',
'qR06', 'qR07', 'qR08', 'qR09', 'qR10'
];
} else {
$fragen = [
'qU01', 'qU02', 'qU03', 'qU04', 'qU05',
'qU06', 'qU07', 'qU08', 'qU09', 'qU10'
];
}
// Die Liste zufällig mischen
shuffle($fragen);
// Die Rotation für eine eventuelle Wiederholung der Seite zwischenspeichern
registerVariable($fragen);
}
// Teil 2: Fragen anzeigen
$i = loopPage(count($fragen));
question($fragen[$i]);
Sagen Sie doch gleich, dass Sie es gar nicht komplizierter brauchen :)