Ergebnis 1 bis 3 von 3

Thema: Custom Twig Funktion - Best Practice in Contao?

  1. #1
    Contao-Nutzer
    Registriert seit
    09.11.2011.
    Beiträge
    50

    Standard Custom Twig Funktion - Best Practice in Contao?

    Hi Contao-Community!

    Ich möchte eine Variable mittels Twig-Funktion zur Verfügung stellen und bin der offiziellen Dokumentation gefolgt:
    https://symfony.com/doc/5.2/templati...extension.html

    Allerdings funktioniert der Weg in Contao 4.13 so nicht. Womöglich habe ich meine File in einem falschen Verzeichnis abgelegt und bin noch grün hinter den Ohren.

    Was möchte ich machen und warum?
    In Twig kann man nicht auf globale Variablen wie $GLOBALS['objPage']->megaMenuId zugreifen. (Es handelt sich bei der "megaMenuId" um eine DCA-Anpassung in der tl_page)

    Nun möchte ich mittels einer globalen Twig-Funktion den Value der Variable auslesen. Dazu habe ich mir folgendes File geschrieben:

    PHP-Code:
    namespace MyProject\MegaMenuIDExtension;

    use 
    Twig\Extension\AbstractExtension;
    use 
    Twig\TwigFunction;

    class 
    MegaMenuIDExtension extends AbstractExtension
    {
        public function 
    getFunctions()
        {
            return [
                new 
    TwigFunction('getMegaMenuID', [$this'megaMenuID']),
            ];
        }

        public function 
    megaMenuID()
        {
            return 
    $GLOBALS['objPage']->megaMenuID;
        }


    Doch wo muss ich mein File im Contao-Verzeichnis ablegen?

    Ich bedanke mich vorab für eure Ratschläge!

    Beste Grüße
    Andi

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

    Standard

    Hier hast du ein Beispiel: https://symfony.com/doc/6.4/template...twig-extension

    Die Pfadangabe und den Namespace musst du so übernehmen, es sei denn du hast etwas eigenes definiert.
    Geändert von Spooky (24.12.2023 um 08:45 Uhr) Grund: grammar
    » sponsor me via GitHub or PayPal or Revolut

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

    Standard

    Übrigens, ich glaube das PageModel kannst du ohne Twig Extension oder eigene Twig Global Variable doch abgreifen - und zwar über die App Global. Es gibt nämlich ein pageModel Request Attribute - und das sollte in Contao 5.2 auch immer eine PageModel Instanz sein. Also dann insgesamt
    Code:
    {{ app.request.attributes.pageModel.megaMenuID }}
    » sponsor me via GitHub or PayPal or Revolut

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
  •