In meinem Projekt werden 3 Blöcke und die Seiten innerhalb der Blöcke rotiert.
Zusätzlich steht am Start jedes Blocks eine Instruktionscheck (inkl. Counter, der die Fehlversuche zählt), welcher richtig beantwortet werden muss, um mit dem Experiment fortfahren zu können.
Bei falschem Ausfüllen dieses Checks scheint aber die setPageOrder nicht mehr zu greifen.
Code für den Instruktionscheck (auf 2 Seiten):
// Page 1 'InsSub' Initiate instruction check failure counter
if(!isset($nFailSub)){
$nFailSub = 0;
registerVariable($nFailSub);
put('IV08_03', $nFailSub);
}
// Page 2 'SubCheck 'Check if instruction check is solved, Display 'IC06' on Page 'InsSub' if wrong
if (value('IC01_01') != 2 || value('IC01_02') != 1 || value('IC01_03') != 2 || value('IC01_04') != 2) {
$nFailSub += 1;
registerVariable($nFailSub);
put('IV08_01', $nFailSub);
text('IC06');
goToPage('InsSub');
}
// Randomisierung
$rotation = array(
'add' => array('InsAdd', 'AddCheck', 'add1', 'add2', 'add3'),
'sub' => array('InsSub', 'SubCheck', 'sub1', 'sub2', 'sub3'),
'dis' => array('InsDis', 'DisCheck', 'dis1', 'dis2', 'dis3')
);
foreach ($rotation as $key => $pages) {
$firstTwo = array_slice($pages, 0, 2);
$rest = array_slice($pages, 2);
shuffle($rest);
$pages = array_merge($firstTwo, $rest);
$rotation[$key] = $pages;
}
shuffle($rotation);
setPageOrder($rotation, 'demo');
So wie ich das sehe, scheint dies am goToPage-Befehl zu liegen. repeatPage('IC06') ist eine Alternative die zwar setPageOrder intakt lässt, dort ist aber das Problem, dass der Fehlversuche-Counter bei 1 stehen bleibt.
Wie kann erreichen, dass ich sowohl eine intakte setPageOrder und einen funktionierenden Fehlversuche-Counter in meinem Experiment habe?
Vielen Dank!