Aktions-Response

Mithilfe eines Aktions-Response geben Sie dem 2FOLKS Client ihre Antwort auf eine Aktion.

Hierfür erstellen Sie eine neue Instanz der Klasse ActionResponse. Der Instanz übergeben Sie bei der Konstruktion zwei Parameter.

1) Der Response-Result, sozusagen die Kurzfassung des Ergebnisses.

  • _ACTION_RESULT_OK_
    Alles ist gut gelaufen und die Aktion ist beendet.
  • _ACTION_RESULT_CANCEL_
    Bei der Durchführung der Aktion sind Umstände aufgetreten, die eine weitere Verarbeitung durch den Client abbrechen sollen. Dieses Ergebnis ist vorrangig interessant für implizite Aktionen. Hiermit kann z.B. das Löschen eines Dokuments mit einer Before-Delete Aktion aus bestimmten Gründen verhindert werden.
  • _ACTION_RESULT_ERROR_
    Es kam zu einem Fehler beim durchführen der Aktion.
  • _ACTION_RESULT_PENDING_
    Diese Rückgabe weist den Client an, bei kommenden mehrstufigen Dialogen, die Parameter des Dialogs zu sammeln und die gleiche Aktion mit den gesammelten Parametern erneut aufzurufen. Auf diese Weise können mehrstufige Dialog realisiert werden.

2) Ein Response-Typ, welcher dem 2FOLKS Client mitteilt, was nun zu tun ist. Weitere Informationen folgen weiter unten.

Dann können Sie Ihre Antwort an den Client senden, indem Sie die Send() Mehthode des Response Objektes benutzen.

Der zweite Parameter, teilt durch seinen Typ dem Client mit, was er zu tun hat. Hier gibt es zur Zeit vier verschiedene Response-Typen.

  1. ActionMessage
    Mit diesem Objekt können Sie dem Redakteur eine Mitteilung zukommen lassen.
  2. ActionHtml
    Bei diesem Response-Typ erstellen Sie im Laufe der Aktion eigenes HTML, welches Sie zurückgeben. Das HTML wird dann im Client in einem Formular anzgezeigt. Das lässt sich gut verwenden, um z.B. Listen darzustellen oder Statistiken.
  3. ActionUri
    Hier geben Sie einen URI zurück. Die Anzeige erfolgt wahlweise in einem Formular oder durch einen Browser. Bei diesem Typ können Sie den ActionKey nutzen, um eine Authentizierung des Benutzers zu implementieren. 
  4. ActionFile
    Mit diesem Response-Typ können Sie Downloads ermöglichen.

Als kleines Beispiel soll an dieser Stelle eine Aktion gezeigt werden, die dem Redakteur den Link auf ein Dokument zurückliefert. Da die Aktion als globale Aktion erstellt werden soll, muss zunächst geprüft werden, ob ein Dokument selektiert wurde. Ist dies nicht der Fall, wird eine ActionMessage zurückgegeben, die in der StatusBar (Default-Einstellung) angezeigt wird. Ist ein Dokument übergeben worden, so wird ein wenig HTML geschrieben und als ActionHtml zurückgegeben. Nun geht im Client ein Formular auf, welches das HTML anzeigt und dem Redakteur den Link auf das Dokument präsentiert.

 global $toFolks; 

 $doc = $actionRequest->document;
 if ($doc == null)
 {
  $actionResponseType = new ActionMessage("Bitte wählen Sie ein Dokument aus.");
  $actionResponse = new ActionResponse(_ACTION_RESULT_CANCEL_, $actionResponseType);
  $actionResponse->Send();
 }
 else
 {
  $url = $toFolks->domain.$doc->url;
  $html = '<html><body style="font-family:arial">Die URL auf das Dokument lautet:<br/><a target="_blank" href="'.$url.'">'.$url.'</a></body></html>';
  $actionResponseType = new ActionHtml($html);
  $actionResponseType->caption = "Hier die URL des Dokuments";
  $actionResponseType->height = 120;
  $actionResponse = new ActionResponse(_ACTION_RESULT_OK_, $actionResponseType);
  $actionResponse->Send();
 }