Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
de:create:rotation-itemmix [06.03.2020 20:21] adminde:create:rotation-itemmix [25.04.2025 13:05] (aktuell) – [Anzeige auf mehreren Seiten] expra_gr4
Zeile 24: Zeile 24:
 foreach ($questions as $qstID) { foreach ($questions as $qstID) {
   $qstItems = getItems($qstID, 'all');   $qstItems = getItems($qstID, 'all');
-  foreach ($qstItem as $itemID) {+  foreach ($qstItems as $itemID) {
     $items[] = [$qstID, $itemID];     $items[] = [$qstID, $itemID];
   }   }
Zeile 46: Zeile 46:
 </code> </code>
  
-Diiese Liste wird nun mittels ''shuffle()'' gemischt. Durch ''isset()'' und ''registerItems()'' wird sichergestellt, dass die Liste nur einmal erstellt und gemischt wird und nicht erneut, wenn die Seite nochmals geladen wird (z.B. weil nicht alle Items beantwortet worden sind).+Diese Liste wird nun mittels ''shuffle()'' gemischt. Durch ''isset()'' und ''registerItems()'' wird sichergestellt, dass die Liste nur einmal erstellt und gemischt wird und nicht erneut, wenn die Seite nochmals geladen wird (z.B. weil nicht alle Items beantwortet worden sind).
  
 Weiterhin sorgt der folgende PHP-Code dafür, dass für jedem Listeneintrag (''foreach'') mittels ''question()'' das jeweilige Item aus der Liste angezeigt wird. Weiterhin sorgt der folgende PHP-Code dafür, dass für jedem Listeneintrag (''foreach'') mittels ''question()'' das jeweilige Item aus der Liste angezeigt wird.
Zeile 69: Zeile 69:
  
 <code php> <code php>
-if (isset($items)) {+if (!isset($items)) {
   $questions = ['AB01', 'AB02', 'AB03'];   $questions = ['AB01', 'AB02', 'AB03'];
   // Liste mit allen Items erstellen   // Liste mit allen Items erstellen
Zeile 75: Zeile 75:
   foreach ($questions as $qstID) {   foreach ($questions as $qstID) {
     $qstItems = getItems($qstID, 'all');     $qstItems = getItems($qstID, 'all');
-    foreach ($qstItem as $itemID) {+    foreach ($qstItems as $itemID) {
       $items[] = [$qstID, $itemID];       $items[] = [$qstID, $itemID];
     }     }
Zeile 99: Zeile 99:
  
 <code php> <code php>
-if (isset($itemBlocks)) {+if (!isset($itemBlocks)) {
   $questions = ['AB01', 'AB02', 'AB03'];   $questions = ['AB01', 'AB02', 'AB03'];
   // Liste mit allen Items erstellen   // Liste mit allen Items erstellen
Zeile 105: Zeile 105:
   foreach ($questions as $qstID) {   foreach ($questions as $qstID) {
     $qstItems = getItems($qstID, 'all');     $qstItems = getItems($qstID, 'all');
-    foreach ($qstItem as $itemID) {+    foreach ($qstItems as $itemID) {
       $items[] = [$qstID, $itemID];       $items[] = [$qstID, $itemID];
     }     }
Zeile 144: Zeile 144:
 } }
 </code> </code>
 +
 +
 +===== Verankerung scrollen =====
 +
 +Bei Fragen können Sie normalerweise einstellen, dass die Verankerung mit der Seite scrollt. Das funktioniert hier nicht mehr, weil jedes Item als seine eigene Frage dargestellt wird. Falls dennoch eine mitscrollende Verankerung benötigt wird, muss diese manuell eingebunden werden.
 +
 +(1) Deaktivieren Sie in Ihren Fragen die Option, dass die Kopfzeile mitscrollen soll. Wählen Sie aus, dass sie nur einmal oben angezeigt wird.
 +
 +(2) Ergänzen Sie in Ihrem PHP-Code zwei `replace()` - einmal für die erste Frage und einmal für das letzte Item auf der Seite.
 +
 +<code php>
 +$firstItem = $items[0];
 +$lastItem = $items[count($items) - 1];
 +replace('%questionID%', $firstItem[0]);
 +replace('%lastItem%', id($lastItem[0], $lastItem[1]);
 +</code>
 +
 +(3) Ergänzen Sie außerdem einen PHP-Befehl, um die passende JavaScript-Bibliothek einzubinden.
 +
 +<code php>
 +library('TitleScroller');
 +</code>
 +
 +(4) Unter dem PHP-Code ergänzen Sie den eigenlichen JavaScript-Code (als HTML-Code).
 +
 +<code javascript>
 +<script>
 +<!--
 +var scroller = new S2TitleScroller("%questionID%");
 +scroller.addItem("%lastItem%");
 +// -->
 +</script>
 +</code>
 +
 +
de/create/rotation-itemmix.1583522513.txt.gz · Zuletzt geändert: 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