Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision |
de:create:functions:looppage [27.07.2019 22:45] – admin | de:create:functions:looppage [17.09.2019 14:01] – admin |
---|
| |
''int **loopPage**(int //Wiederholungen//)'' | ''int **loopPage**(int //Wiederholungen//)'' |
| |
| ''mixed **loopPage**(array //Elemente//)'' |
| |
Wiederholt die Seite -- beginnend mit dem //Startwert// -- in einer Schleife so oft, bis der //Endwert// erreicht ist. Der jeweils aktuelle Wert wird zurückgegeben. | Wiederholt die Seite -- beginnend mit dem //Startwert// -- in einer Schleife so oft, bis der //Endwert// erreicht ist. Der jeweils aktuelle Wert wird zurückgegeben. |
* //Inkrement//\\ (optional) Veränderung des Wertes bei jedem Schleifendurchlauf (Standard: 1) -- mit dem //Inkrement// 0 können Sie eine unendliche Schleife erzeugen, die mittels ''setNextPage('next')'' beendet werden kann. | * //Inkrement//\\ (optional) Veränderung des Wertes bei jedem Schleifendurchlauf (Standard: 1) -- mit dem //Inkrement// 0 können Sie eine unendliche Schleife erzeugen, die mittels ''setNextPage('next')'' beendet werden kann. |
| |
Falls nur ein Parameter (//Wiederholungen//) angegeben ist, wird die Seite so oft wie angegeben wiederholt. Die Zählvariable beginnt in diesem Fall mit 0. | Falls nur ein numerischer Parameter (//Wiederholungen//) angegeben ist, wird die Seite so oft wie angegeben wiederholt. Die Zählvariable beginnt in diesem Fall mit 0. |
| |
* //Wiederholungen//\\ Anzahl der Wiederholungen | * //Wiederholungen//\\ Anzahl der Wiederholungen |
| |
| |
| Falls nur ein Array als Parameter (//Elemente//) angegeben ist, wird die Seite für jedes Element des Arrays einmal angezeigt und die Funktion ''loopPage()'' gibt jeweils das Element des Arrays zurück. |
| |
| * //Elemente//\\ Elemente, die durchlaufen werden sollen |
| |
**Hinweis:** Um mehrere Seiten zu wiederholen, verwenden Sie ''[[looptopage]]''. | **Hinweis:** Um mehrere Seiten zu wiederholen, verwenden Sie ''[[looptopage]]''. |
**Hinweis:** Beispiel-Code zur Verwendung finden Sie in der Anleitung zu ''[[looptopage]]''. | **Hinweis:** Beispiel-Code zur Verwendung finden Sie in der Anleitung zu ''[[looptopage]]''. |
| |
===== Beispiel ===== | ===== Beispiel: Alle Fragen einer Rubrik in zufälliger Abfolge ===== |
| |
| <code php> |
| if (!isset($fragen)) { |
| // Liste aller Fragen aus Rubrik RS |
| $fragen = getQuestions('RS'); |
| // Die Liste der Fragen (Array) mischen und zwischenspeichern |
| shuffle($fragen); |
| registerVariable($fragen); |
| } |
| // Alle Kennungen aus der Liste $fragen abarbeiten |
| $frage = loopPage($fragen); |
| question($frage); |
| </code> |
| |
| |
| ===== Beispiel: Fragen in zufälliger Abfolge präsentieren II ===== |
| |
<code php>// PHP-Code auf einer der ersten Seiten im Fragebogen | <code php>// PHP-Code auf einer der ersten Seiten im Fragebogen |
question($fragen[$i]); | question($fragen[$i]); |
</code> | </code> |
| |
| In diesem Beispiel wird die Liste der Fragen bereits weiter vorne im Fragebogen definiert und gemischt. Dadurch entfällt die IF-Konstruktion mit ''isset()'', welche im obigen Beispiel ein erneutes Mischen der Liste verhindert. |
| |
| |
| ===== Beispiel: Fragen in zufälliger Abfolge mit Verweildauer ===== |
| |
**Hinweis:** Weil dieselbe Seite immer wieder angezeigt wird, werden die Antwortzeiten für alle Wiederholungen addiert. Falls Sie die Bearbeitungszeiten getrennt erheben möchten, müssen Sie anstatt ''loopPage()'' mehrere Seiten verwenden. | **Hinweis:** Weil dieselbe Seite immer wieder angezeigt wird, werden die Antwortzeiten für alle Wiederholungen addiert. Falls Sie die Bearbeitungszeiten getrennt erheben möchten, müssen Sie anstatt ''loopPage()'' mehrere Seiten verwenden. |
| |
| <code php>// PHP-Code auf einer der ersten Seiten im Fragebogen |
| // Liste mit Fragen erstellen, mischen und zwischenspeichern |
| $fragen = array( |
| 'AB01', 'AB02', 'AB03', |
| 'AB04', 'AB05', 'AB06' |
| ); |
| shuffle($fragen); |
| registerVariable($fragen);</code> |
| |
<code php>// PHP-Code später im Fragebogen - Seite 21 | <code php>// PHP-Code später im Fragebogen - Seite 21 |