SoSci Survey
Übersetzungen dieser Seite:
 

Fortgeschrittene Ablaufsteuerung

Tipp: Die Kapitel Variablen und Platzhalter liefern eine Einführung für den Umgang mit den Funktionen zur fortgeschrittenen Ablaufsteuerung.

  • set() und get() - Wert (Variable) für einen Platzhalter speichern
  • registerVariable() - PHP-Variable für die Verwendung auf weiteren Seiten registrieren
  • getItems() - Listet die Items einer Frage nach bestimmten Kriterien auf
  • getQuestions() - Listet die Fragen einer Rubrik auf
  • getItemtext() - Beschriftung eines Items oder einer Antwortoption abfragen
  • caseNumber() - Nummer der aktuellen Interviews
  • caseSerial() - Für das Interview verwendete Seriennummer
  • caseTime() - Verweildauer auf einer oder mehreren Seiten
  • caseToken() - Interne Kennung des Interviews
  • reference() - Evtl. im Link zum Fragebogen übergebene Referenz abfragen
  • readGET() - Eine übertragene Variable aus dem Link auslesen
  • readAPI() - Zugriff auf APIs anderer Dienstleister
  • serialCheck() - Status einer Seriennummer abfragen
  • getAnswerMissing() - Information ob die Seite wegen einer Pflichtfrage wiederholt wird
  • listFails() - Liste der nicht ausgefüllten Pflichtfragen
  • setNextPage() - Seite nach dem Weiter-Klick festlegen
  • getLanguage() - Aktuelle Sprachversion ermitteln
  • setLanguage() - Sprachversion ändern
  • dbGet() - Daten aus der Datenbank für Inhalte abrufen
  • dbKeys() - Schlüssel aus der Datenbank für Inhalte auflisten
  • dbSet() - Daten in der Datenbank für Inhalte abspeichern
  • dbTouch() - Zeitstempel für einen Eintrag in der Datenbank aktualisieren

set()

void set(mixed Wert, string Speicherkennung)

Mittels set() lässt sich der Text für einen Platzhalter festlegen. Außerdem kann man set() in Kombination mit get() verwenden, um den Wert einer Variable auf einer Seite des Fragebogens zu speichern und auf einer anderen Seite bzw. in einem anderen PHP-Code Elemente wieder auszulesen.

Tipp: Bitte lesen Sie zur korrekten Verwendung dieser Funktionen das Kapitel Variablen.

Hinweis: Variablen lassen sich mit der Funktion registerVariable() über mehrere Fragebogen-Seiten hinweg nutzen. Dies ist meist deutlich einfacher als die Verwendung von set() und get().

Hinweis: Wenn Sie den Wert einer Variable in der Auswertung benötigen, verwenden Sie interne Variablen und die Funktion put().

  • Wert
    Der Inhalt, den man speichern möchte. Falls man den Text für einen Platzhalter speichern will, sollte der Wert ein string sein.
  • Speicherkennung
    Die Kennung, unter der der Wert abgespeichert wird. Erlaubt sind Buchstaben, zahlen und Leerzeichen – allerdings darf die Kennung weder mit einem Leerzeichen beginnen noch enden und maximal 32 Zeichen lang sein.

Details zur Verwendung von Platzhaltern erklärt das Kapitel Platzhalter.

get()

mixed get(string Speicherkennung)

Das Pendant zu set() ist die Funktion get(). Mit dieser Funktion kann der gespeicherte Wert wieder ausgelesen und z.B. in einem Filter verwendet werden.

Hinweis: Um eine Antwort des Befragten auszuwerten (z.B in einer Filterfrage), dient ausschließlich die Funktion value(). Die Funktion get() liefert nur den Inhalt eines Platzhalters.

Übergeben von Variablen zwischen PHP-Code Elementen

// Eine Zahl zwischen 1 und 3 würfeln und in der PHP-Variable $version ablegen
$version = random(1,3);
// Die Zahl in der Interview-Variable mit der Speicherkennung "version" ablegen
set($version, 'version');
// Wert von Speicherplatz "version" auslesen
$version = get('version');
// Wert in einer Filterfunktion verwenden
if ($version == 1) {
  text('stimulus1');
} elseif ($version == 2) {
  text('stimulus2');
} else {
  text('stimulus3');
}

Wichtig: Die Funktion set() speichert einen Wert nur für die Dauer des Interviews. Wenn Sie den Wert später im Datensatz benötigen, verwenden Sie die Funktion put().

Im folgenden Anwendungsbeispiel wird auf Seite 1 ein Wert gewürfelt, der entscheidet, ob Frage „AA01“ oder „AA02“ gestellt wird. Auf Seite 2 muss Frage „BB01“ gestellt werden, wenn auf Seite 1 „AA01“ gefragt wurde. Deshalb wird nicht neu gewürfelt, sondern der gewürfelte Wert am Ende von Seite 1 mit set() gespeichert. Zu Beginn von Seite 2 wird er mit get() wieder geladen.

// Speichert zufällig die Zahl 1 oder 2 in der Variable $version
$version = random(1,2);
// Stellt - je nach gewürfelter Zahl - eine von 2 Fragen
if ($version == 1) {
   question("AA01");
} else {
   question("AA02");
}
// Legt die gewürfelte Zahl unter der Speicherkennung "version" ab
set($version, 'version');
/ Lädt aus dem Speicherplatz gespeicherte Variable
$version = get('version');
// Stellt - je nach gewürfelter Zahl - eine von 2 Fragen
if ($version == 1) {
  question("BB01");
} else {
  question("BB02");
}
// Der Filter lässt sich natürlich auch direkt mit get() kombinieren
if (get('version') == 1) {
  question("CC01");
}

registerVariable()

void registerVariable(string VariablenName)

Mittels registerVariable() kann man eine Variable bei SoSci Survey zur weiteren Nutzung „anmelden“. Damit steht diese Variable in allen weiteren PHP-Code Elementen auf allen Seiten zur Verfügung.

Wichtig: Der VariablenName darf nicht die Variable selbst sein (z.B. $item), sondern muss ein String mit dem Namen der Variable sein (z.B. 'item').

// Eine Itemliste ermitteln
$itemliste = random_items('AB01', 3);
// Die entsprechende Frage anzeigen
question('AB01', $itemliste);
// Variable registrieren
registerVariable('itemliste');
// Einfach mit der Variable $itemliste weiterarbeiten
// z.B. eine andere Frage mit den Items in derselben Reihenfolge wie bei AB01 zeigen
question('AB02', $itemliste);

getItems()

array getItems(string FrageKennung, string VergleichsModus, [int AntwortCode])

Mit Hilfe der Funktion getItems() können Sie bequem ermitteln, welche Items in einer Frage vorhanden sind oder welche Items einer Frage angekreuzt wurden.

Die Funktion gibt ein Array der Item-Kennungen zurück, z.B. (1,2,4,5,6,9,10). Diese Kennungen können mit dem Befehl question() direkt in eine andere Frage übergeben werden. So kann man z.B. in einer zweiten Frage nur jene Items anzeigen, die eine Person vorher als relevant ausgewählt hat (z.B. nur Bewertung von Zeitschriften, die der Teilnehmer auch liest, s. Items in eine anderen Frage übernehmen).

  • FrageKennung
    Die Kennung der Frage, z.B. „AB01“
  • VergleichsModus
    Legt fest, nach welchem Kriterium die Items gelistet werden. Wichtig ist, dass der Modus in Anführungszeichen steht.
    • 'all' Listet alle Items der Frage auf, nützlich z.B. für Randomisierung. Ein AntwortCode wird in diesem Fall nicht angegeben.
    • '>' Listet alle Items auf, die einen Antwortcode größer als dem angegeben AntwortCode erhalten haben. So würde ein '>' in Verbindung mit dem AntwortCode 3 in einer 5er-Skala nur jene Items heraussuchen, bei denen ein Wert über der Mitte angekreuzt wurde.
    • '>=' oder 'min' Listet alle Items, die mindestens den angegeben AntwortCode erreicht haben.
    • '<=' oder 'max' Items, die höchstens den AntwortCode erreicht haben. Items mit fehlenden Werten (z.B. „keine Antwort“), die technisch gesehen den Antwortcode -1 haben, werden hier allerdings nicht (!) gelistet.
    • '<' Items, die eine gültige Antwort und weniger als den angegeben AntwortCode erreicht haben.
    • '==', '=' 'is' oder 'equal' Items, die genau einen gegebenen AntwortCode erreicht haben.
    • 'valid' Items, die eine gültige Antwort erhalten haben – also nicht leer belassen wurden oder eine Antwort „weiß nicht“ bekamen. Hinweis: Bei einer Mehrfachauswahl ist auch kein Kreuzchen eine gültige Antwort. Verwenden Sie hier '==' in Verbindung mit dem Antwortcode 2.
    • 'invalid' Items, die leer belassen wurden oder ein „weiß nicht“ bekommen haben.

Hinweis: Wie auch bei value() kann diese Funktion Antworten des Teilnehmers erst auf der Seite nach einer Frage ermitteln. Verwendet man die Funktion auf derselben Seite wie die Frage, so funktioniert es nicht korrekt, weil die Antworten noch gar nicht mit „Weiter“ zum Server übermittelt wurden.

Das folgende Beispiel setzt voraus, dass AB02 genauso viele Items hat wie AB01 und dass zusammengehörige Items auch dieselben Kennung haben. So könnte das Item 1 in beiden Fragen „Spiegel“, das Item 2 in beiden Fragen „Stern“ sein.

Tipp: Am einfachsten erreicht man das, indem man eine Frage anlegt, dann die Frage dupliziert und in der Kopie nur noch Fragetyp und -texte ändert.

// Seite 1: Frage stellen
// Eine Skala mit 1=nie, 2=selten, 3=häufig, 4=täglich
question('AB01');
// Seite 2: In der Frage nur jene Items abfragen, die mindestens "selten" genutzt wurden
// Mindestens selten (2)
$itemliste = getItems('AB01', 'min', 2);
// Nur die Items in AB02 anzeigen, für die der Teilnehmer
// in AB01 angegeben hat, sie mindestens "selten" zu nutzen 
question('AB02', $itemliste);
// Seite 3: Items, für die min. "häufig" ausgewählt wurde
$itemlisteB = getItems('AB01', 'min', 3);
// Nur die Items in AB04 anzeigen, für die der Teilnehmer
// angegeben hat, sie mindestens "häufig" zu nutzen 
question('AB04', $itemlisteB);

Weitere Beispiele

// Liste der Items, für die genau "nie" ausgewählt wurde
$itemliste = getItems('AB01', '==', 1);
// Liste der Items, für die maximal "selten" gewählt wurde
$itemliste = getItems('AB01', '<=', 2);
// Liste aller Items mit gültiger Antwort
$itemliste = getItems('AB01', 'valid');
// Liste aller Items der Frage
$itemliste = getItems('AB01', 'all');
html('<p>Die Frage zeigt '.count($itemliste).' Items.</p>');
// Liste aller Items, die mit nie oder täglich beantwortet wurden
$liste1 = getItems('AB01', '==', 1);
$liste2 = getItems('AB01', '==', 4);
$itemliste = array_merge($liste1, $liste2);

getQuestions()

array getQuestions(string Rubrik-Kennung)

Die Funktion liefert eine Liste aller Frage-Kennungen in der angegeben Rubrik.

$questions = getQuestions('AB');
// Liefert z.B. AB01, AB02, AB04, AB05
foreach ($questions as $qID) {
  question($qID);
}

getItemtext()

string getItemtext(string FrageKennung, int Item)

Mit dieser Funktion kann man die Beschriftung eines Items bzw. einer Auswahloption ermitteln – z.B. um ihn in einer anderen Frage anzuzeigen.

  • FrageKennung
    Die Kennung einer Frage, z.B. „AB01“
  • Item
    Die Kennung eines Items in dieser Frage, z.B. 2 für das Item „AB01_02“

Die Funktion erwartet als Frage eine Fragekennung (z.B. AB01) und als Item die Kennung des Items. Um den Text des Items AB01_02 abzufragen würde man für das Item also die Kennung 2 angeben.

Im folgende Beispiel ist AB01 eine längere Auswahl, z.B. ein Dropdown. Dort wählt der Befragte seine Lieblings-Sendung aus. In der Frage ist eingestellt, dass der Befragte eine Antwort geben muss. Der Titel dieser Sendung soll in Frage AB02 angezeigt werden. Dafür enthält AB02 im Fragetext einen Platzhalter %title%. Damit dieser den Titel anzeigt, muss der ausgewählte Titel zunächst mit getItemtext() ermittelt und mit set() gespeichert werden.

Hinweis: Die Funktion value() kann seit Version 2.3.05 die Antwort eines Teilnehmers als Text (z.B. gewählte Option) ausgeben. In den meisten Anwendungsfällen ist value() einfacher und flexibler als getItemtext().

// Auf Seite 1 die Auswahl zeigen
question('AB01');
// Auf Seite 2 den ausgewählten Text verwenden
$auswahl = value('AB01');  // Auswahl des Befragten als Zahl
$titel = getItemtext('AB01', $auswahl);
set($titel, 'title');  // Platzhalter vorbereiten
question('AB02');  // Frage AB02 stellen

caseNumber()

int caseNumber()

Jedes Interview im Befragungsprojekt hat eine eindeutige Nummer, die auch im Datensatz erscheint. Mit der Funktion caseNumber() kann diese Nummer abgefragt werden.

html('<p>Dies ist das Interview Nummer '.caseNumber().'</p>');
// Weiterleitung zu einem anderen Fragebogen mit Übermittelung der Fallnummer
$num = caseNumber();
$url = 'https://www.soscisurvey.de/followup/?r='.$num;
redirect($url);

caseSerial()

string caseSerial()

Sofern zum Start des Interviews eine Seriennummer verwendet wurde (wahlweise im Link übergeben oder per Hand eingegeben), kann diese mit caseSerial() abgefragt werden. Dies ist zum Beispiel sinnvoll, wenn man dem Befragten einen personalisierten Link zu einem weiteren Fragebogenprojekt geben möchte.

html('
  <p>rufen Sie nächste Woche bitte diesen
  <a href="http://www.soscisurvey.de/project2/?s='.caseSerial().'">
  Fragebogen</a> auf!</p>
');

Hinweis: Die Seriennummer wird (sofern angegeben) unabhängig davon gespeichert, ob der Fragebogen nur via Seriennummer zugänglich ist. Zum Übergeben einer Kennung, die keine Seriennummer ist, sollte allerdings besser die dafür ausgelegte Referenz verwendet werden.

caseTime()

int caseTime(string Seitenkennung)

Ermittelt die Verweildauer auf einer bestimmten Seite oder die Zeit, die der Teilnehmer bislang mit dem Interview verbracht hat. Die Zeit wird jeweils in Sekunden ermittelt.

  • Seitenkennung
    Kennung der Seite, für welche die Verweildauer ermittelt werden soll.
    • <Kennung einer Seite>
      Verweildauer für die Seite mit der angegebenen Kennung. Beachten Sie, dass die Kennungen 'previous', 'this', 'hitherto', 'break' und 'begin' eine besondere Bedeutung haben und nicht die Verweildauer für eine eventuell gleichnamige Seite ermitteln.
    • 'previous'
      Seite, die (im normalen Ablauf) vor der aktuellen Seite ausgefüllt wurde.
    • 'this'
      Die aktuelle Seite. Dieser Wert ist 0, falls die Seite das erste Mal angezeigt wird.
    • 'hitherto'
      Verweildauer auf allen Seiten, die der Teilnehmer (im normalen Ablauf) vor der aktuellen Seite ausgefüllt hat.
    • 'begin'
      Zeit, die seit Beginn des Interviews vergangen ist. Beachten Sie, dass dieser Wert auch ohne Verwendung des „Zurück“-Knopfes und der wiederholten Anzeige einer Seite vom all-Wert abweichen kann, da hier auch die Zeit enthalten ist, die der Server zur Verarbeitung und Erstellung der Seiten benötigt.
    • 'break'
      Zeit, die vergangen ist, seitdem zuletzte eine Seite angezeigt wurde. Im normalen Interviewverlauf entspricht der Wert der Verweildauer auf der vorhergehenden Seite (previous). Falls die vorige Seite wiederholt angezeigt wurde, ist es die Zeit seit deren letzten Anzeige. Falls die aktuelle Seite wiederholt angezeigt wird (z.B. wegen unvollständiger Angaben oder weil das Interview unterbrochen wurde), ist es die Zeit seit der vorhergehenden Anzeige der Seite.

Hinweis: Wenn im folgenden vom „normalen“ Ablauf die Rede ist, dann ist jener Weg zur aktuellen Seite gemeint, den ein Teilnehmer ohne Verwendung eines eventuell vorhandenen „Zurück“-Knopfes gegangen ist. Wurde also z.B. auf der dritten Seite den „Zurück“-Knopf gedrückt und wird wieder Seite zwei angezeigt, so ist die vorhergehende Seite im normalem Ablauf Seite eins (nicht Seite drei).

// Prüfung, ob für die vorige Seite mindestens 10 Sekunden benötigt wurden
if (caseTime('previous') < 10) {
  text('too quick');
  buttonHide();
}
 
// Prüfung, ob für alle vorhergehenden Seiten min. 1 Minute gebraucht wurde
if (caseTime('hitherto') < 60) {
  // Hinweis-Text
  text('please check');
  // Nach dem "Weiter" zur Seite "start"
  setNextPage('start');
}

Hinweis: Falls ein Teilnehmer eine Seite mehrfach besucht (z.B. weil Antworten fehlten oder durch Verwendung des „Zurück“-Knopfes), werden die Verweildauern für die Seite addiert.

Hinweis: Wenn der Fragebogen mittels goToPage() zu einer Seite springt, so wird die Verweildauer der Seite angerechnet, die zuerst angezeigt wurde. Wenn also auf der Seite „eins“ ein Filter steht, der den Teilnehmer direkt weiter zu Seite „zwei“ leitet, so wird die Verweildauer dennoch für Seite „eins“ gespeichert.

caseToken()

string caseToken()

Jedes Interview hat eine interne Kennung, anhand derer es im Verlauf der Befragung identifiziert wird. Diese Kennung ist notwendig, wenn der eigentliche Fragebogen im Laufe des Interviews verlassen wird (z.B. um eine umfangreiche Stimulus-Website zu präsentieren oder einen Teil der Befragung auf einem anderen Server durchzuführen) und später fortgesetzt werden soll.

reference()

string reference()

Falls im Link zum Fragebogen eine Referenz übergeben wurde gibt die Funktion reference() diese zurück.

html('<p>Ihre Referenz: <strong>'.reference().'</strong></p>');

Die Verwendung der Referenz kann nützlich sein, wenn darin weitere Informationen kodiert sind. Im folgenden Beispiel hätten Sozialwissenschaftler z.B. eine Referenz „Axxx“ und Naturwissenschaftler eine Referen „Bxxx“ bekommen.

// Referenz in Großbuchstaben umwandeln
$ref = strtoupper(reference());
// Filter je nach Referenz
if ($ref{0} == 'A') {
  // Frage für Sozialwissenschaftler
  question('AB01');
} elseif ($ref{0} == 'B') {
  // Frage für Naturwissenschaftler
  question('AB02');
} else {
  // Keine gültige Referenz bekommen
  goToPage('next');
}

serialCheck()

int serialCheck(string Seriennummer)

Die Funktion serialCheck() verrät, ob eine Seriennummer gültig ist und ob sie bereits verwendet wurde. Diese Funktion kann hilfreich sein, wenn man eine Seriennummer manuell abfragen möchte. Als Ergebnis erhält man einen der folgenden Codes:

  • -1 - Es wurde keine Seriennummer angegeben
  • 0 - Die Seriennummer ist im Befragungsprojekt nicht bekannt
  • 1 - Die Seriennummer wurde bereits verbraucht (ein Fragebogen damit abgeschlossen)
  • 2 - Mit der Seriennummer wurde bereits ein Fragebogen aufgerufen, aber nicht abgeschlossen
  • 3 - Die Seriennummer wurde noch nicht verwendet

Wichtig: Mit der Funktion kann lediglich der Status einer Seriennummer geprüft werden – die Seriennummer wird am Ende des Interviews nicht als „verbraucht“ markiert.

// Auf der vorhergehenden Seite 1 'start' wurde
// in der Textfrage AB01_01 eine Seriennummer abgefragt
$serial = value('AB01_01');
$status = serialCheck($serial);
 
if ($status == -1) {
  text('serialVoid');
  goToPage('start');
} elseif ($status == 0) {
  text('serialWrong');
  goToPage('start');
} elseif ($status == 1) {
  text('serialUsed');
  goToPage('end');
}

readGET()

string readGET(string Kennung)

Die Funktion readGET() erlaubt das Einlesen einer Variable, die via POST oder GET an den Fragebogen übermittelt wurde.

Wurde also z.B. die Variable panelID mit dem Wert „12345“ übermittelt (z.B. https://www.soscisurvey.de/demo/?panelID=12345), so kann man den Wert „12345“ mit readGET('panelID') ermitteln.

if (!isset($id)) {
  $id = readGET('panelID');
}
// Variable zur späteren Verwendung registrieren
// (alternativ mittels put() in eine interne Variable speichern)
registerVariable('id');

Wichtig: Das Einlesen funktioniert nur auf der ersten Seite des Fragebogens oder auf einer Seite, die mittels option('resume', true) auf eine Unterbrechung vorbereitet wurde.

Wichtig: Einige Variablen haben eine besondere Bedeutung und sollten nicht für die Übermittlung benutzerdefinierter Daten verwendet werden sollten, s. Der Link zum Fragebogen.

Warnung: Prüfen Sie vor der Verwendung von readGET(), ob nicht bereits ein Wert gespeichert wurde. Im Code-Beispiel oben wird dafür isset() verwendet. Falls Sie z.B. auf der ersten Seite im Fragebogen eine Pflichtfrage einsetzen, wird die erste Seite (bei fehlenden Antworten) erneut angezeigt, aber readGET() kann keinen Wert mehr einlesen. Dieses „kein Wert“ würde den bereits korrekt hinterlegten Wert überschreiben.

readAPI()

array readAPI(string API-ID, string Request, [string API-Schlüssel])

APIs (standardisierte Schnittstellen, Application Programming Interface) erlauben die Einbindung der Dienste von Drittanbietern in die eigene Software bzw. in den eigenen Fragebogen. Mit der Funktion readAPI() kann man direkt innerhalb des Fragebogens auf solche Dienste zugreifen.

  • API-ID
    Die Kennung für den Dienst, der verwendet werden soll. Derzeit unterstützt SoSci Survey folgende APIs:
  • Request
    Die Anfrage an die API, kodiert im GET-Format
  • API-Schlüssel
    Sofern die Nutzung der API die Angabe eines Schlüssels erfordert, wird dieser als dritter Parameter angegeben. Ein Schlüssel dient i.d.R. der Abrechnung von API-Dienstleistungen.

Die Funktion übersetzt die Antwort der API direkt in ein Array, welches unter PHP relativ einfach verwendet werden kann. Nutzen Sie die Funktion debug(), um den Inhalt der Antwort anzuzeigen.

// Anfrage an Googe Maps (Suche einer Straße anhand der Koordinaten)
$v = readAPI('google.maps.v3','latlng=40.714224,-73.961452&sensor=false');
debug($v);
// Ausgabe der gefundenen Straße
html('<p>Straße: '.$v['results'][0]['address_components'][1]['long_name'].'</p>');
 
// Anfrage an Cloudmade
$v = readAPI('cloudmade.geocoding.v2','around=52.4870,13.4248&distance=closest&object_type=address&return_location=true','API-KEY');
debug($v);

getAnswerMissing()

boolean getAnswerMissing()

Mit der Funktion getAnswerMissing() kann man ermitteln, ob eine Seite wiederholt angezeigt wird, weil eine Antwort fehlte oder nicht das vorgegeben Format erfüllte. Diese Funktion kann z.B. eingesetzt werden, um eine zusätzliche Information anzuzeigen.

if (getAnswerMissing()) {
  text('info AB01');
}
question('AB01');

listFails()

array listFails()

Diese Frage verrät, welche Variablen dafür verantwortlich sind, dass die Seite erneut abgefragt werden muss. Die Funktion liefert ein Array mit den entsprechenden Variablen-Kennungen.

Hinweis: Manche Ursachen für die erneute Anzeige einer Seite können nicht als Variablen-Kennungen wiedergegeben werden, z.B. wenn in einer Mehrfachauswahl weniger als die geforderte Anzahl Optionen gewählt wurde oder wenn die Seite durch einen eigenen Filter wiederholt wird.

$fails = listFails();
if (in_array('AB01_01', $fails)) {
  // Weitere Informationen zum speziell in AB01_01 geforderten Antwortformat
  text('info AB01_01');
}
question('AB01');

setNextPage()

void setNextPage(string SeitenKennung)

Legt fest, welche Seite nach dem Klick auf „Weiter“ angezeigt werden soll. Damit kann die aktuelle Seite beispielsweise wiederholt werden, um mehrere Items einer Frage abzuarbeiten. Mit setNextPage(„end“) werden nachfolgende Seiten nicht mehr angezeigt.

  • SeitenKennung
    Kennung der Fragebogen-Seite zu der gesprungen werden soll. Die Kennung muss beim Zusammenstellen des Fragebogens oben in der Seite eingetragen werden.

Hinweis: Für die Programmierung von Filterfragen ist die Funktion goToPage() oftmals besser geeignet.

getLanguage()

string getLanguage()

Ermittelt, in welcher Sprache der Fragebogen gerade angezeigt wird. Diese Funktion ist insbesondere hilfreich, wenn die Teilnehmer zu Beginn der Befragung aus unterschiedlichen Sprachversionen wählen können.

Die Funktion gibt den dreistelligen Sprachcode nach ISO 639-2 zurück.

Siehe Mehrsprachige Befragungen.

setLanguage()

void setLanguage(string SprachCode)

Legt fest, in welcher Sprache der Fragebogen ab sofort angezeigt werden soll. Diese Funktion ist hilfreich, wenn man die Fragebogen-Sprache in Abhängigkeit z.B. einer Filterfrage ändern möchte.

  • SprachCode
    Der Sprachcode besteht jeweils aus 3 Buchstaben, entsprechend ISO 639-2 (bibliographische Varianten). Die relevanten Kürzel sind in mehrsprachigen Projekten unter SprachversionenSprachen verwalten angegeben.

Hinweis: Es ist sinnvoll, diese Funktion bzw. den entsprechenden Filter auf einer Fragebogen-Seite ganz oben einzufügen. Wird die Funktion zwischen den Fragen verwendet, erscheinen die oberen Fragen in der bisherigen Sprache, die nachfolgenden Fragen in der neuen.

Siehe Mehrsprachige Befragungen.

dbGet()

Diese Funktion erlaubt es, Daten aus der Datenbank für Inhalte abzurufen.

array|false dbGet(string Schlüssel)

  • Schlüssel
    Der Datenbank-Schlüssel, für den Daten hinterlegt wurden

Die Funktion gibt jeweils ein Array zurück, auch wenn nur ein Wert für den Schlüssel hinterlegt wurde. Falls der Schlüssel in der Datenbank nicht gefunden wird, gibt die Funktion false zurück. Im Debug-Modus, nicht jedoch im fertigen Fragebogen, wird außerdem eine Warnung angezeigt, wenn der Schlüssel nicht gefunden wurde.

Details und beispiele finden Sie im Kapitel Datenfragmente im PHP-Code verwenden.

dbKeys()

Diese Funktion listet alle Schlüssel auf, die in der Datenbank für Inhalte hinterlegt wurden. Sofern ein Teilschlüssel angegeben wird, liefert die Funktion alle Schlüssel, die mit diesem Teilschlüssel beginnen.

array dbKeys([string Teilschlüssel])

  • Teilschlüssel (optional)
    Wird ein Teilschlüssel angegeben, so werden nur Schlüssel gelistet, die mit diesem Teilschlüssel beginnen. Lautet der Teilschlüssel z.B. 'A', so erhalten Sie „A001“, „A002“, „AA00“, „Alpha“, etc., nicht aber „B001“ oder „100“

Details und Beispiele finden Sie im Kapitel Datenfragmente im PHP-Code verwenden.

dbSet()

Während der Befragung können mit dbSet() auch Daten in die Datenbank für Inhalte geschrieben werden. Falls schon ein gleichnamiger Eintrag existiert, wird dieser aktualisiert – sonst wird ein neuer Eintrag angelegt.

Mit dieser Funktion kann auch ein Eintrag aus der Datenbank gelöscht werden.

Hinweis: Jeder Eintrag in der Datenbank besitzt Zeitstempel mit Datum und Uhrzeit der letzten Änderung. Bei einer Aktualisierung mittels dbSet() (auch wenn die Daten dieselben bleiben!) wird auch der Zeitstempel aktualisiert. Falls Sie nur den Zeitstempel aktualisieren möchten, verwenden Sie dbTouch.

void dbSet(string Schlüssel, false|string|array Daten)

  • Schlüssel
    Der Datenbank-Schlüssel, der angelegt, aktualisiert oder gelöscht werden soll
  • Daten
    • false Der Datenbank-Eintrag wird gelöscht, falls er vorhanden ist
    • <string> Wird ein Text angegeben, wird dieser als erstes (und einziges) Element für den Schlüssel gespeichert
    • <array> Wird ein Array als Daten übergeben, so werden alle Elemente als Eintrag für den Schlüssel gespeichert

dbTouch()

Jeder Eintrag in der Datenbank für Inhalte besitzt Zeitstempel mit Datum und Uhrzeit der letzten Änderung. Mit dbTouch() wird dieser Zeitstempel aktualisiert ohne dass die gespeicherten Inhalte verändert werden.

Diese Funktion kann z.B. in Kombination mit einer erweiterten Auswahl eingesetzt werden. So kann die gewählte Option mit einem aktuellen Zeitstempel versehen werden – Optionen, die für eine bestimmte Zeit nicht ausgewählt wurden, können dann anhand des Zeitstempels gelöscht werden.

de/create/functions-proc.txt · Zuletzt geändert: 21.01.2014 14:40 von msd-media
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 3.0 Unported
Driven by DokuWiki