Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
de:create:functions:setpageorder [14.11.2016 19:36] – 1 anselm.von.schelihade:create:functions:setpageorder [14.11.2016 19:59] – alte Version wieder hergestellt (03.11.2016 16:37) admin
Zeile 3: Zeile 3:
 Normalerweise werden die Seiten im Fragebogen von der ersten bis zur letzten Seite sequenziell abgearbeitet, falls diese Reihenfolge nicht durch ''[[:de:create:functions:setnextpage|setNextPage()]]'' oder ''[[:de:create:functions:gotopage|goToPage()]]'' unterbrochen wird. Normalerweise werden die Seiten im Fragebogen von der ersten bis zur letzten Seite sequenziell abgearbeitet, falls diese Reihenfolge nicht durch ''[[:de:create:functions:setnextpage|setNextPage()]]'' oder ''[[:de:create:functions:gotopage|goToPage()]]'' unterbrochen wird.
  
-Mit der Funktion ''setPageOrder()'' lässt sich von vornherein eine andere Seitenabfolge festlegen. Dies kann zu einem beliebigen Zeitpunkt im Fragebogen geschehen. Die neue //Seitenabfolge// wird ab den nächsten Klick auf "Weiter" verwendet (der Fragebogen startet also in jedem Fall mit Seite 1).+Mit der Funktion ''setPageOrder()'' lässt sich von vornherein eine andere Seitenabfolge festlegen. Dies kann zu einem beliebigen Zeitpunkt im Fragebogen geschehen. Die neue //Seitenabfolge// wird ab den nächsten Klick auf "Weiterverwendet (der Fragebogen startet also in jedem Fall mit Seite 1).
  
 ''void **setPageOrder**(mixed //Seitenabfolge//)'' ''void **setPageOrder**(mixed //Seitenabfolge//)''
Zeile 17: Zeile 17:
 |'''pageA-pageD,pageE,pageC,end'''|Zeigt zunächst alle Seiten von ''pageA'' bis ''pageD'', dann nacheinander die Seiten ''pageE'' und ''pageC'' und beendet dann den Fragebogen mit der letzten Seite.| |'''pageA-pageD,pageE,pageC,end'''|Zeigt zunächst alle Seiten von ''pageA'' bis ''pageD'', dann nacheinander die Seiten ''pageE'' und ''pageC'' und beendet dann den Fragebogen mit der letzten Seite.|
  
-Nachdem die definierte Seitenabfolge abgearbeitet wurde, wird die Seite angezeigt, die in der "normalen" Abfolge auf die letzte Seite der Seitenabfolge folgt.+Nachdem die definierte Seitenabfolge abgearbeitet wurde, wird die Seite angezeigt, die in der "normalenAbfolge auf die letzte Seite der Seitenabfolge folgt.
  
 **Wichtig:** Die Befehle ''setNextPage()'', ''loopPage()'' und ''setPageOrder()'' unterbrechen eine Seitenabfolge: **Wichtig:** Die Befehle ''setNextPage()'', ''loopPage()'' und ''setPageOrder()'' unterbrechen eine Seitenabfolge:
  
-  * Der Befehl ''setNextPage()'' unterbricht eine Seitenabfolge und kehrt nach der angegeben Seite zur "normalen" Seitenfolge zurück. +  * Der Befehl ''setNextPage()'' unterbricht eine Seitenabfolge und kehrt nach der angegeben Seite zur "normalenSeitenfolge zurück. 
-  * Der Befehl ''loopPage()'' unterbricht eine Seitenabfolge und kehrt nach der wiederholten Seite zur "normalen" Seitenfolge zurück. +  * Der Befehl ''loopPage()'' unterbricht eine Seitenabfolge und kehrt nach der wiederholten Seite zur "normalenSeitenfolge zurück. 
-  * Wird innerhalb einer Seitenabfolge eine neue Seitenabfolge mittels ''setPageOrder()'' definiert, so wird die aktuelle Seitenabfolge unterbrochen und die neue Seitenabfolge verwendet. Nach Abschluss der neuen Seitenabfolge wird mit der "normalen" Seitenabfolge fortgesetzt.+  * Wird innerhalb einer Seitenabfolge eine neue Seitenabfolge mittels ''setPageOrder()'' definiert, so wird die aktuelle Seitenabfolge unterbrochen und die neue Seitenabfolge verwendet. Nach Abschluss der neuen Seitenabfolge wird mit der "normalenSeitenabfolge 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.+**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 "normalenSeitenabfolge fortgesetzt.
  
 ===== Beispiel 1 ===== ===== Beispiel 1 =====
Zeile 37: Zeile 37:
 Für das Szenario wurde eine Urne mit der Kennung ''reihenfolge'' definiert mit folgendem Inhalt: Für das Szenario wurde eine Urne mit der Kennung ''reihenfolge'' definiert mit folgendem Inhalt:
  
-&amp;lt;code&amp;gt;+<code>
 1 1
 2 2
-&amp;lt;/code&amp;gt;+</code>
  
-Zum Speichern der Urnen-Ziehung wurde eine Frage mit der Kennung ''IV01'' vom Typ &amp;quot;interne Variablen&amp;quot; definiert und innerhalb dieser Frage eine Variable mit der Kennung ''IV01_01''.+Zum Speichern der Urnen-Ziehung wurde eine Frage mit der Kennung ''IV01'' vom Typ "interne Variablendefiniert und innerhalb dieser Frage eine Variable mit der Kennung ''IV01_01''.
  
 ==== PHP-Code ==== ==== PHP-Code ====
Zeile 48: Zeile 48:
 Folgender PHP-Code wird nun auf Seite 4 (oder früher im Fragebogen) verwendet: Folgender PHP-Code wird nun auf Seite 4 (oder früher im Fragebogen) verwendet:
  
-&amp;lt;code php&amp;gt;+<code php>
 urnDraw('reihenfolge', 'IV01'); urnDraw('reihenfolge', 'IV01');
 $zahl = value('IV01_01'); $zahl = value('IV01_01');
Zeile 56: Zeile 56:
   setPageOrder('startB-endeB, startA-endeA, demografie');   setPageOrder('startB-endeB, startA-endeA, demografie');
 } }
-&amp;lt;/code&amp;gt;+</code>
  
  
Zeile 71: Zeile 71:
 Auf der Seite, die vor ''PA'' kommt, wird folgender PHP-Code platziert. Auf der Seite, die vor ''PA'' kommt, wird folgender PHP-Code platziert.
  
-&amp;lt;code php&amp;gt;+<code php>
 if (!isset($seiten)) { if (!isset($seiten)) {
   $seiten = array('PA', 'PB', 'PC', 'PD', 'PE');   $seiten = array('PA', 'PB', 'PC', 'PD', 'PE');
Zeile 79: Zeile 79:
 } }
 setPageOrder($seiten); setPageOrder($seiten);
-&amp;lt;/code&amp;gt;+</code>
  
-Das ''isset()'' in Kombination mit dem ''registerVariable()'' sorgt dafür, dass die Reihenfolge beim Neu-Laden der Seite (z.B. weil der Fragebogen einen &amp;quot;Zurück&amp;quot;-Knopf erlaubt) nicht verändert wird.+Das ''isset()'' in Kombination mit dem ''registerVariable()'' sorgt dafür, dass die Reihenfolge beim Neu-Laden der Seite (z.B. weil der Fragebogen einen "Zurück"-Knopf erlaubt) nicht verändert wird.
  
 Mit ''shuffle()'' wird die Liste der 5 Seiten gemischt, anschließend wird die Seite ''PX'' an die Liste angehängt, damit diese stets als letzte gezeigt wird. Mit ''shuffle()'' wird die Liste der 5 Seiten gemischt, anschließend wird die Seite ''PX'' an die Liste angehängt, damit diese stets als letzte gezeigt wird.
Zeile 87: Zeile 87:
 **Hinweis:** Falls im Fragebogen eine weitere Rotation zum Einsatz kommen soll, muss dafür eine andere Variable als ''$seiten'' verwendet werden. So könnte man z.B. für die erste Rotation ''$seiten1'' und in der zweiten Rotation ''$seiten2'' verwenden. **Hinweis:** Falls im Fragebogen eine weitere Rotation zum Einsatz kommen soll, muss dafür eine andere Variable als ''$seiten'' verwendet werden. So könnte man z.B. für die erste Rotation ''$seiten1'' und in der zweiten Rotation ''$seiten2'' verwenden.
  
-Falls der Fragebogen keinen &amp;quot;Zurück&amp;quot;-Knopf erlaubt, kann der PHP-Code noch ein wenig vereinfacht werden.+Falls der Fragebogen keinen "Zurück"-Knopf erlaubt, kann der PHP-Code noch ein wenig vereinfacht werden.
  
  
-&amp;lt;code php&amp;gt;+<code php>
 $seiten = array('PA', 'PB', 'PC', 'PD', 'PE'); $seiten = array('PA', 'PB', 'PC', 'PD', 'PE');
 shuffle($seiten); shuffle($seiten);
 $seiten[] = 'PX'; $seiten[] = 'PX';
 setPageOrder($seiten); setPageOrder($seiten);
-&amp;lt;/code&amp;gt;+</code>
  
  
Zeile 112: Zeile 112:
 Die Seite mit einem allgemeinen Teil, der nach Block R5 folgt, bekommt die Kennung ''demografie''. Die Seite mit einem allgemeinen Teil, der nach Block R5 folgt, bekommt die Kennung ''demografie''.
  
-Zum Speichern der Reihenfolge wird eine Frage mit der Kennung ''IV01'' vom Typ &amp;quot;interne Variablen&amp;quot; angelegt. Darin werden fünf Variablen angelegt (Beschreibung &amp;quot;R1&amp;quot; bis &amp;quot;R5&amp;quot;), welche später die Position des jeweiligen Blocks speichern sollen.+Zum Speichern der Reihenfolge wird eine Frage mit der Kennung ''IV01'' vom Typ "interne Variablenangelegt. Darin werden fünf Variablen angelegt (Beschreibung "R1bis "R5"), welche später die Position des jeweiligen Blocks speichern sollen.
  
 ==== PHP-Code ==== ==== PHP-Code ====
  
-&amp;lt;code php&amp;gt;+<code php>
 $parts = array( $parts = array(
-  'R1' =&amp;gt; 'R1start-R1ende', +  'R1' ='R1start-R1ende', 
-  'R2' =&amp;gt; 'R2start-R2ende', +  'R2' ='R2start-R2ende', 
-  'R3' =&amp;gt; 'R3start-R3ende', +  'R3' ='R3start-R3ende', 
-  'R4' =&amp;gt; 'R4start-R4ende', +  'R4' ='R4start-R4ende', 
-  'R5' =&amp;gt; 'R5start-R5ende'+  'R5' ='R5start-R5ende'
 ); );
 // Die Schlüssel des obigen Arrays mischen // Die Schlüssel des obigen Arrays mischen
Zeile 145: Zeile 145:
   'demografie'   'demografie'
 ); );
-&amp;lt;/code&amp;gt;+</code>
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