[[Rotation]]
 

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
de:create:rotation [11.12.2019 15:29] – [Zufällige Rotation] anna.kravchykde:create:rotation [06.03.2020 20:23] admin
Zeile 21: Zeile 21:
  
  
-===== Rotation der Items oder Optionen einer Frage =====+===== Rotation der Items oder Optionen ===== 
 + 
 +==== Rotation in einer Frage ====
  
 Die Randomisierung oder Rotation von Items in einer Frage wird wie folgt aktiviert: Die Randomisierung oder Rotation von Items in einer Frage wird wie folgt aktiviert:
Zeile 37: Zeile 39:
  
  
-===== Manuelle Rotation von Items oder Optionen =====+==== Manuelle Rotation von Items oder Optionen ====
  
 Sie können die Items bzw. Optionen einer Frage auch mittels PHP-Code rotieren. Dazu wird zunächst mittels ''[[:de:create:functions:getitems]]'' eine Liste der Items/Optionen abgerufen, dann per ''shuffle()'' gemischt und schließlich wird die Frage mittels ''[[:de:create:functions:question]]'' mit der gewünschten Item-Abfolge als Parameter angezeigt. Sie können die Items bzw. Optionen einer Frage auch mittels PHP-Code rotieren. Dazu wird zunächst mittels ''[[:de:create:functions:getitems]]'' eine Liste der Items/Optionen abgerufen, dann per ''shuffle()'' gemischt und schließlich wird die Frage mittels ''[[:de:create:functions:question]]'' mit der gewünschten Item-Abfolge als Parameter angezeigt.
Zeile 63: Zeile 65:
  
  
-===== Parallele Rotation von zwei Fragen =====+==== Parallele Rotation von Items in zwei Fragen ====
  
 Mit der manuellen Rotation (s. oben) können Sie in zwei oder mehr Fragen dieselbe rotierte Item-Abfolge verwenden. Falls die Fragen auf unterschiedlichen Seiten stehen, verwenden Sie auch hierfür ''[[:de:create:functions:registervariable]]'' -- genau wie im Beispiel oben -- um die Abfolge für weitere PHP-Code-Elemente verfügbar zu machen. Mit der manuellen Rotation (s. oben) können Sie in zwei oder mehr Fragen dieselbe rotierte Item-Abfolge verwenden. Falls die Fragen auf unterschiedlichen Seiten stehen, verwenden Sie auch hierfür ''[[:de:create:functions:registervariable]]'' -- genau wie im Beispiel oben -- um die Abfolge für weitere PHP-Code-Elemente verfügbar zu machen.
Zeile 83: Zeile 85:
  
  
-===== Rotation von Items über mehrere Seiten =====+==== Rotation von Items über mehrere Seiten ====
  
 Falls Sie in einer Frage sehr viele Items haben, möchten Sie diese vielleicht auf mehrere Seiten verteilen. Normalerweise würden Sie das erledigen, indem Sie die Frage beim **Fragebogen zusammenstellen** mehrfach einfügen und jeweils bei den Anzeige-Einstellungen ({{:button.settings.png?nolink|Anzeige-Einstellungen}}-Knopf) unterschiedliche Items angeben, z.B. "1-10", "11-20", etc. Falls Sie in einer Frage sehr viele Items haben, möchten Sie diese vielleicht auf mehrere Seiten verteilen. Normalerweise würden Sie das erledigen, indem Sie die Frage beim **Fragebogen zusammenstellen** mehrfach einfügen und jeweils bei den Anzeige-Einstellungen ({{:button.settings.png?nolink|Anzeige-Einstellungen}}-Knopf) unterschiedliche Items angeben, z.B. "1-10", "11-20", etc.
Zeile 125: Zeile 127:
  
  
-===== Rotation mehrerer Fragen =====+===== Rotation von Fragen =====
  
-In seltenen Fällen sollen nicht nur die Items einer Frage rotiert werden, sondern gleich die Fragen. Dies erfordert ein wenig Programmierung mittels [[php|PHP-Code]].+Im nachfolgenden wir erklärt, wie nicht nur die Items einer Frage rotiert werden, sondern wie die Reihenfolge ganzer Fragen rotiert wird. Dies erfordert ein wenig Programmierung mittels [[php|PHP-Code]]. 
 + 
 +**Wichtig:** Der PHP-Code wird auf einer eigenen Seite unter "Fragebogen zusammenstellen" eingefügt. Die Fragen, die rotiert werden sollen, sind im **Fragen-Katalog** angelegt, sie werden aber -- anders als andere Fragen -- __nicht__ beim Fragebogen-Zusammenstellen eingefügt (sie werden nicht in die Fragebogen-Seiten gezogen). Auf der Seite nach dem PHP-Code geht es mit den unrotierten Bestandteilen des Fragebogens weiter. 
 + 
 + 
 +==== Mehrere Fragen auf einer Seite ====
  
 Das folgende Beispiel zeigt, wie man die Reihenfolge von 5 Fragen auf einer Seite im Fragebogen rotieren kann (zur Erklärung von Arrays s. [[filter-items#arrays|Items in eine anderen Frage übernehmen]]): Das folgende Beispiel zeigt, wie man die Reihenfolge von 5 Fragen auf einer Seite im Fragebogen rotieren kann (zur Erklärung von Arrays s. [[filter-items#arrays|Items in eine anderen Frage übernehmen]]):
  
 <code php> <code php>
 +// Teil 1: Liste der Fragen erstellen und mischen
 if (!isset($fragen)) { if (!isset($fragen)) {
   $fragen = array(  // Liste der Frage-Kennungen   $fragen = array(  // Liste der Frage-Kennungen
Zeile 145: Zeile 153:
   registerVariable($fragen);   registerVariable($fragen);
 } }
 +
 +// Teil 2: Fragen anzeigen
 // Die Liste der Fragen Kennung für Kennung durchgehen // Die Liste der Fragen Kennung für Kennung durchgehen
 // und jeweils die entsprechende Frage anzeigen // und jeweils die entsprechende Frage anzeigen
Zeile 155: Zeile 165:
  
  
-===== Fragen über mehrere Seiten rotieren =====+==== Eine Frage pro Seite ==== 
 + 
 +Falls Sie die Fragen einzeln auf jeweils einer eigenen Seite anzeigen möchten, kann dies mittels ''[[:de:create:functions:looppage|loopPage()]]'' relativ einfach erledigt werden. Das folgende Code-Beispiel setzt nach der Definition der Reihenfolge an (also zwei Zeilen unter dem ''registerVariable()'' im obigen PHP-Code) 
 + 
 +<code php> 
 +// Teil 1: Liste der Fragen erstellen und mischen 
 +// (s. oben) 
 + 
 +// Teil 2: Fragen anzeigen 
 +$i = loopPage(count($fragen)); 
 +question($fragen[$i]); 
 +</code> 
 + 
 + 
 +==== Fragen über mehrere Seiten rotieren ====
        
 Die Rotation von Fragen über mehrere Seiten ist nur geringfügig anspruchsvoller. Das folgende Beispiel zeigt, wie 6 Fragen auf 2 Seiten verteilt werden können: Die Rotation von Fragen über mehrere Seiten ist nur geringfügig anspruchsvoller. Das folgende Beispiel zeigt, wie 6 Fragen auf 2 Seiten verteilt werden können:
Zeile 162: Zeile 186:
 // PHP-Code auf Seite 1 // PHP-Code auf Seite 1
  
-// Das Mischen der Liste nur einmalig ausführen+// Teil 1: Erstellen und mischen der Liste nur einmalig ausführen
 if (!isset($fragen)) { if (!isset($fragen)) {
   // Liste der Frage-Kennungen erstellen   // Liste der Frage-Kennungen erstellen
Zeile 176: Zeile 200:
 } }
  
 +// Teil 2a
 // Die ersten drei Kennungen der Liste anzeigen // Die ersten drei Kennungen der Liste anzeigen
 question($fragen[0]); question($fragen[0]);
Zeile 184: Zeile 209:
 <code php> <code php>
 // PHP-Code auf Seite 2 // PHP-Code auf Seite 2
 +// Hier ist Teil 1 nicht (!) erneut erforderlich
  
 +// Teil 2b
 // Die nächsten drei Kennungen der Liste anzeigen // Die nächsten drei Kennungen der Liste anzeigen
 question($fragen[3]); question($fragen[3]);
Zeile 191: Zeile 218:
 </code> </code>
  
-Falls Sie die Fragen einzeln auf jeweils einer eigenen Seite anzeigen möchten, kann dies mittels ''[[:de:create:functions:looppage|loopPage()]]'' relativ einfach erledigt werden. Das folgende Code-Beispiel setzt nach der Definition der Reihenfolge an (also zwei Zeilen unter dem ''registerVariable()'' im obigen PHP-Code) 
- 
-<code php> 
-$i = loopPage(count($fragen)); 
-question($fragen[$i]); 
-</code> 
  
  
Zeile 341: Zeile 362:
 setPageOrder($blocks); setPageOrder($blocks);
 </code> </code>
 +
 +
 +===== Weitere Anwendungen =====
 +
 +Je nach Anwendungsfall können weitere Programmierungen erforderlich sein. Hier einige Beispiele:
 +
 +  * [[:de:create:rotation-itemmix]]
de/create/rotation.txt · Zuletzt geändert: 08.06.2021 08:14 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