Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Letzte ÜberarbeitungBeide Seiten der Revision
de:create:functions:setpageorder [14.11.2016 19:59] – alte Version wieder hergestellt (03.11.2016 16:37) adminde:create:functions:setpageorder [19.12.2017 09:05] – [PHP-Code] admin
Zeile 27: Zeile 27:
 **Hinweis:** Innerhalb der Seitenabfolge können Filter mittels ''goToPage()'' eingesetzt werden. Falls der Filter zu einer Seite innerhalb der laufenden Seitenabfolge springt, wird die Seitenfolge dort fortgesetzt. Falls der Filter auf eine Seite außerhalb der Seitenabfolge springt, wird die Befragung ab dieser Seite in der "normalen" Seitenabfolge fortgesetzt. **Hinweis:** Innerhalb der Seitenabfolge können Filter mittels ''goToPage()'' eingesetzt werden. Falls der Filter zu einer Seite innerhalb der laufenden Seitenabfolge springt, wird die Seitenfolge dort fortgesetzt. Falls der Filter auf eine Seite außerhalb der Seitenabfolge springt, wird die Befragung ab dieser Seite in der "normalen" Seitenabfolge fortgesetzt.
  
-===== Beispiel 1 =====+Nachfolgend wird die Verwendung von ''setPageOrder()'' in Verbindung mit einer [[:de:create:randomization]] oder [[:de:create:rotation]] anhand mehrere Beispiele veranschaulicht. 
 + 
 + 
 +===== Zwei mögliche Abläufe =====
  
 Folgendes Szenario soll mittels ''setPageOrder()'' realisiert werden: Im Fragebogen gibt es zwei Frageblöcke, die einmal 5 Seiten umfassen und einmal 7 Seiten. In der Hälfte der Interviews soll zunächst Block A und dann Block B angezeigt werden, bei der anderen Hälfte der Interviews soll zunächst Block B und dann Block A angezeigt werden. Folgendes Szenario soll mittels ''setPageOrder()'' realisiert werden: Im Fragebogen gibt es zwei Frageblöcke, die einmal 5 Seiten umfassen und einmal 7 Seiten. In der Hälfte der Interviews soll zunächst Block A und dann Block B angezeigt werden, bei der anderen Hälfte der Interviews soll zunächst Block B und dann Block A angezeigt werden.
Zeile 59: Zeile 62:
  
  
-===== Beispiel 2 =====+===== Zufällige Abfolge I =====
  
 Im Befragungsprojekt gibt es 5 Seiten, die in zufälliger Reihenfolge angezeigt werden sollen.  Im Befragungsprojekt gibt es 5 Seiten, die in zufälliger Reihenfolge angezeigt werden sollen. 
Zeile 95: Zeile 98:
 $seiten[] = 'PX'; $seiten[] = 'PX';
 setPageOrder($seiten); setPageOrder($seiten);
 +</code>
 +
 +===== Zufällige Abfolge II =====
 +
 +In diesem Beispiel gibt es 3 Blöcke (A, B, C) mit 3 bis 5 Seiten (A1, A2, A3, B1, ...). Die Reihenfolge der Blöcke soll zufällig gemischt werden und zusätzlich sollen innerhalb jedes Blocks die Seiten gemischt werden -- nur die erste soll immer zu Beginn bleiben.
 +
 +**Hinweis:** Sehen Sie sich zu diesem Beispiel auch das Beispiel unter Rotation -> [[:de:create:rotation#rotation_und_mischen_von_bloecken|Rotation und Mischen von Blöcken]] an.
 +
 +==== Vorbereitung ====
 +
 +Wenn die einzelnen Seiten rotiert werden sollen, benötigt jede Seite eine eigene [[:de:glossary#seitenkennung|Seiten-Kennung]]. Für das Beispiel wurden die Seiten wie folgt benannt: A1, A2, A3, B1 bis B5, C1 bis C4 und nach C4 folgt noch die Seite D1, wo es nach der Rotation immer weitergehen soll.
 +
 +==== PHP-Code ====
 +
 +<code php>
 +// Erst einmal die Seitenkennungen als Array speichern
 +$rotation = array(
 +  'A' => array('A1','A2','A3'),
 +  'B' => array('B1','B2','B3','B4','B5'),
 +  'C' => array('C1','C2','C3','C4')
 +);
 +// Jeden Block einzeln mischen
 +foreach ($rotation as $key => $pages) {
 +  // Die erste Seite aus dem Array $pages herausnehmen
 +  $first = array_shift($pages);
 +  // Den Rest mischen
 +  shuffle($pages);
 +  // Beides wieder zusammenfügen
 +  array_unshift($pages, $first);
 +  // Und in das Array $rotation zurückspeichen
 +  $rotation[$key] = $pages;
 +}
 +
 +// Jetzt noch die Reihenfolge der Blöcke zufällig mischen
 +shuffle($rotation);
 +
 +// Jetzt das Ergebnis noch als Seitenabfolge festlegen
 +// Weiter soll es anschließend mit Seite 'D1' gehen
 +setPageOrder($rotation, 'D1');
 </code> </code>
  
  
-===== Beispiel 3 =====+===== Reihenfolge speichern =====
  
 Im Befragungsprojekt gibt es fünf thematische Frageblöcke. Der Einfachheit halber wurden diese in die Rubriken ''R1'' bis ''R5'' gepackt (das ist optional). Die Frageblöcke umfassen eine unterschiedliche Anzahl an Fragen. Im Befragungsprojekt gibt es fünf thematische Frageblöcke. Der Einfachheit halber wurden diese in die Rubriken ''R1'' bis ''R5'' gepackt (das ist optional). Die Frageblöcke umfassen eine unterschiedliche Anzahl an Fragen.
de/create/functions/setpageorder.txt · Zuletzt geändert: 04.06.2022 09:35 von admin
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 4.0 International
Driven by DokuWiki