blog.bartlweb - a technologist's external brain

eigene PHP-Funktionen in Typoscript einbinden

Es ist durch aus möglich eigene PHP-Funktionen in Typoscript einzubinden, um komplexe Ausgaben zu erzeugen oder komplexe Bedingungen für Conditions zu erstellen.

eigene Funktionen

Um eigene Funktionen überhaupt in Typoscript einbinden zu können, muss zunächst die entsprechende PHP-Datei, in der diese definiert sind, eingebunden werden.

includeLibs.<beliebigername> = directory/user_<yourclassname>.php

Die Benennung der Klasse (und damit des Dateinamens, der der Klasse entsprechen sollte) unterliegt der Einschränkung, dass diese immer mit user_ zu beginnen hat.

Die Klassen und Funktionendefinition sieht im Grundstock so aus:

class user_myclassname {
  function myFunction($param, $conf){
    ...
  }
}

Und das folgende Typoscript ruft die oben definierte Funktion nun auf. Dabei darf die Funktion als USER oder USER_INT, je nach Caching-Bedarf eingebunden werden.

page = PAGE
page.10 = USER
page.10.userFunc = user_myclassname->myFunction

Neben dem reinen Aufruf ist es auch möglich Parameter an die Funktion zu übergeben, die in der Funktion über das Array $conf erreichbar sind.

page.10.userFunc.param = value
page.10.userFunc.param2 = value

eigene Conditions

Um eigene Conditions zu generieren können Sie selbst definierte Funktionen für diese nutzen. Dabei ist darauf zu achten, dass die Funktion in der localconf.php definiert wird und der Name immer mit user_ beginnt. Ein guter Ansatz ist die Definition von einer Funktion für Conditions und dort per Parameter die jeweilige Abfrage bestimmen. Wichtig ist auch, dass die Funktion nur true oder false als Ergebnis zurückliefert.

Condition

[userFunc = user_condition(checkLocalIP)]
  ...
[global]

Funktion

function user_condition($cmd) {
  switch($cmd) {
    case "checkThis":
      if(..) {
        return true;
      } else {
        return false;
      }
    break;
    case "checkThat":
        ...
    break;
  }
}

Dieser Artikel hat Dir deinen Tag gerettet?

... und mühevolles Probieren, Recherchieren und damit Stunden an Zeit gespart? Oder einfach nur Dein Problem gelöst?

Dann würde ich mich freuen, wenn Du meine Zeit für die Erstellung dieses Blogartikels mit einer kleinen Anerkennung honorierst:

Zahlung mit PayPal oder Kreditkarte.

Hinweis zur Verwendung

Die Übermittlung einer Zahlung ist eine persönliche Anerkennung Ihrerseits an den Entwickler (Christian Bartl, Privatperson). Eine Zahlung ist nicht zweckgebunden und es ist keine Gegenleistung zu erwarten. Bitte beachten Sie, dass für eine übermittelte Zahlung keine Quittung ausgestellt werden kann.

Über den Autor

Christian Bartl

Christian Bartl Requirements Engineer
& Solution Architect für Online und Mobile

Als Technologie-Enthusiast und begeisterter Programmierer entwickle ich in meiner Freizeit Websites, Software und IT-Lösungen, die mir selbst und anderen den Alltag vereinfachen.

mehr auf christian.bartl.me

Kommentare

  1. Danke für die Erklärung! Das Einbinden klappt bei mir. Wie kann ich nun das Script einem MARKER aus meinem HTML-Template aufrufen und darstellen lassen?

    kommentieren

    1. Hallo Joshua,
      du rufst nicht innerhalb des PHP-Skripts den Marker auf sondern du weißt deinem Marker die Ausgabe (also den Rückgabewert) der PHP-Funktion zu. Das funktioniert sowohl mit den klassischen Markern als auch mit TemplaVoila.

      marker = USER
      marker.userFunc = user_myclassname->myFunction

      lg Christian

      kommentieren

Kommentar schreiben

Der hier angegebene Name wird gemeinsam mit deinem Kommentar auf der Website veröffentlicht.

Deine E-Mail-Adresse wird zur einmaligen Benachrichtigung bei Veröffentlichung des Kommentars genutzt.

Benachrichtigung per E-Mail über Antworten auf meinen Kommentar erhalten.

Bitte tippe die Zahlenkombination "4827" ein, nur dann kann ich deinen Kommentar entgegennehmen.

Bitte fülle dieses Feld nicht aus, nur dann kann ich deinen Kommentar entgegennehmen.