Ergebnis 1 bis 2 von 2

Thema: Eigene Functions in Templates

  1. #1
    Contao-Nutzer Avatar von quenn
    Registriert seit
    28.03.2013.
    Ort
    Köln
    Beiträge
    130

    Standard Eigene Functions in Templates

    Hallo,

    ich rufe auf einer Seite mehrfach das gleiche Rocksolid Custom Elements Template, in das ich eine Function geschrieben habe. Dann bekomme ich einen Fehler "cannot redeclare function" etc.

    Es ist an dieser Stelle extrem nützlich eine Funktion zu schreiben, um mich nicht ständig zu wiederholen. Ich habe es jetzt vorübergehend mit einer anonymen function und am Ende des Templates unset gelöst.

    Gibt es hier einen saubereren Weg?

    PHP-Code:
    $calcImageSize = function($item) {
        
    //
        //    6 column grid: set image width
        //
        
    if (intval($item->image_width) + intval($item->image_start) > 6)
        {
            
    $image_width 6;
        }
            else {
            
    $image_width intval($item->image_width);
        }

        return 
    $image_width;
    }

    ...

    unset(
    $calcImageSize

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

    Standard

    PHP-Code:
    // src/EventListener/ParseTemplateListener.php
    namespace App\EventListener;

    use 
    Contao\CoreBundle\ServiceAnnotation\Hook;
    use 
    Contao\Template;

    /**
     * @Hook("parseTemplate")
     */
    class ParseTemplateListener
    {
        public function 
    __invoke(Template $template): void
        
    {
            
    $template->calcImageSize = function(object $item): int {
                
    // …
            
    }
        }

    PHP-Code:
    <?php /* rsce_foobar.html5 */ ?>

    <?php $imagesize $this->calcImageSize($item?>
    https://docs.contao.org/dev/referenc...parseTemplate/
    » 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
  •