Ergebnis 1 bis 6 von 6

Thema: wo gehört eine neue php-Funktionalität hin?

  1. #1
    Contao-Nutzer
    Registriert seit
    12.10.2011.
    Beiträge
    13

    Standard wo gehört eine neue php-Funktionalität hin?

    Hallo,

    ich möchte mich vorab schon einmal für die Frage entschuldigen ... Ich habe nun verschiedene Quellen gelesen, aber so richtig klar ist es mir immer noch nicht geworden.

    Wo gehört eine neue PHP-Funktionalität hin? Auf einer alten Webseite, hatte ich via PHP die Anzeige, wie lange unsere Einrichtung noch geöffnet ist: "Wir haben noch bis xx Uhr geöffnet." Da diese sich nach den tagesaktuellen Öffnungszeiten richtet, ist dies ja keine statische Anzeige, die mittels HTML funktioniert.

    Nach dem Umstieg auf Contao vermissen wir nun diese Anzeige auf der Webseite und ich frage mich nun, welchen Weg ich gehen muss, um diese Funktionalität auch in Contao realisieren zu können.

    Ist es ein Modul, Template oder gar eine Extension?

    Auch der Unterschied zwischen Modul und Template ist mir nicht zu 100% klar. Was ich weiß ist, dass ein Modul über ein Template dargestellt bzw. ausgegeben wird, d.h. jedes Modul benötigt ein Template. Welche Aufgabe hat an dieser Stelle dann das Modul und welche das Template? Warum der Weg über diese beiden "Objekte" und kein Modul, dass direkt auf PHP-Code besteht bzw. diesen verarbeitet?

    MfG mmue

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.088
    Partner-ID
    10107

    Standard

    Du implementierst dazu entweder einen eigenen Insert-Tag oder ein eigenes Inhaltselement, oder ein eigenes Frontend Modul. Je nach dem was für dich am besten passt.
    » sponsor me via GitHub or PayPal or Revolut

  3. #3
    Contao-Urgestein Avatar von do_while
    Registriert seit
    15.06.2009.
    Ort
    Berlin | Deutschland
    Beiträge
    3.612
    Partner-ID
    1081
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Zusammenhang Modul und Template:
    Ein Modul oder auch ein Inhaltselement (funktioniert sehr ähnlich) stellen die betreffenden Daten für das Template bereit. Diese Daten werden über das $this->... in das Template übertragen.
    Diese Daten haben keinerlei Ausgabeformatierung, man könnte sie als XML-Datei oder aber auch als Teil eines HTML-Layouts ausgeben lassen.

    Das Template definiert üblicherweise die Ausgabe in HTML, also wie sind die einzelenen Daten angeordnet und ausgezeichnet (mit IDs, Klassen usw.).
    Durch diese Trennung ist es sehr einfach in Contao eine völlig andere Darstellung als die übliche zu wählen (Kunden haben ja immer Spezialwünsche). Ebenso kann die gleiche Datenbasis an verschiedenen Stellen unterschiedlich dargestellt werden, indem man einfach 2 Templates zur Auswahl anbietet.
    Dabei bleibt die Aufbereitung der Daten im Modul immer gleich und unangetastet.

  4. #4
    Contao-Nutzer
    Registriert seit
    12.10.2011.
    Beiträge
    13

    Standard

    Hallo,

    ok, der einfachste Weg scheint dann der foglende zu sein:

    {{file::*}} -> "Dieses Tag wird mit dem Inhalt einer .php- oder .html5-Datei aus dem templates-Verzeichnis ersetzt (ersetze * mit dem Namen). Bei Bedarf kannst du Argumente übergeben: {{file::file.php?arg1=val}}. Mittels UUID kann außerdem der Pfad einer Datei aus der Datenbank abgefragt werden: {{file::6939a448-9b30-11e4-bcba-079af1e9baea}}."

    Korrekt?

    Ich merke gerade, dass ich mich mit den Begriffen immer noch etwas schwer tue. Es gibt die Folgenden:

    Template
    Inhaltselement
    Modul
    Frontend Module
    Template

    Beschreiben einige davon das gleiche Etwas?

    MfG mmue

  5. #5
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.088
    Partner-ID
    10107

    Standard

    Zitat Zitat von mmue Beitrag anzeigen
    Hallo,

    ok, der einfachste Weg scheint dann der foglende zu sein:

    {{file::*}} -> "Dieses Tag wird mit dem Inhalt einer .php- oder .html5-Datei aus dem templates-Verzeichnis ersetzt (ersetze * mit dem Namen). Bei Bedarf kannst du Argumente übergeben: {{file::file.php?arg1=val}}. Mittels UUID kann außerdem der Pfad einer Datei aus der Datenbank abgefragt werden: {{file::6939a448-9b30-11e4-bcba-079af1e9baea}}."

    Korrekt?
    Das ist halt die billige, nicht so schöne Variante
    » sponsor me via GitHub or PayPal or Revolut

  6. #6
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.717
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von mmue Beitrag anzeigen
    Es gibt die Folgenden:

    Template
    Inhaltselement
    Modul
    Frontend Module
    Template

    Beschreiben einige davon das gleiche Etwas?
    Es gibt verschiedene Betrachtungsweisen bzw. Ordnungsmöglichkeiten... z.B.:

    Es gibt bei der Seiten-Ausgabe

    * fixe Sachen, die über das Seitentemplate kommen - dort wird das Template fe_page eingebunden sowie Elemente wie Artikel oder FE-Module (Module und FE-Module würde ich als identisch setzen)
    * individuelle Sachen die über die Hierarchie Seite > Artikel > Inhaltselement (CE, Content-Element) kommen. Bei den Inhaltselementen gibt es verschiedene Typen wie Text, Bilder, Formular usw. und auch wieder FE-Module

    Im Grunde haben alle Inhaltselemente und auch FE-Module ein spezifisches Template, welches die Ausgabe/Anzeige auf der Websseite steuert. Die Templates können generell überschrieben werden, wenn der Name gleich bleibt, oder mit einem individuellen Namensteil spezifischer gemacht werden(z.B. fe_page_startseite.html5). In den Inhaltselementen oder FE-Modulen steht dann das neue Template mit zur Auswahl.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •