Ergebnis 1 bis 10 von 10

Thema: Template-Variable wird nicht angezeigt

  1. #1
    Contao-Nutzer
    Registriert seit
    17.07.2010.
    Beiträge
    127

    Standard Template-Variable wird nicht angezeigt

    Hallo zusammen,

    habe ein seltsames Problem angetroffen:
    Ich habe eine Template-Variable mit $this->Template->foo = 'bar', die aber im Template nicht zur Verfügung steht.

    ModuleNewsReaderExtended.php:
    PHP-Code:
    // die("Before"); // geht
    $this->Template->foo 'bar'// <-- wird nicht im Template angezeigt!
    // die("After"); // geht ebenfalls 
    news_full.html5:
    PHP-Code:
    [...]
    TEST:
    <?php echo $this->foo?>
    Es werden sowohl die die() angezeigt (falls auskommentiert) als auch TEST: im Template.
    Aber nichts für foo. Auch keine Fehlermeldung.

    $this->showTemplateVars() zeigt mir auch keine foo an. Oder werden damit nur die Datenbankfelder angezeigt?

    Hat jemand eine Idee wo das Problem liegt?

    Mfg
    sans

  2. #2
    Contao-Fan Avatar von Bandyt
    Registriert seit
    22.04.2010.
    Ort
    Bremen
    Beiträge
    808

    Standard

    Hi,

    wäre es möglich, dass du den ganzen Code postest?
    Meine Erweiterungen: League Manager | Forum

  3. #3
    Contao-Nutzer
    Registriert seit
    17.07.2010.
    Beiträge
    127

    Standard

    Klar, ich habe im Anhang einen aufs nötigste reduzierten Test.

    Ich möchte nochmal erwähnen dass Code in der Klasse ausgeführt wird und auch HTML-Änderungen im Template direkt angezeigt werden. Nur meine Variable wird nicht dargestellt.

    Struktur:
    Code:
    /news_ext
    - /config
    -- config.php
    - /templates
    -- news_full.html
    - ModuleNewsZip.php
    config.php
    PHP-Code:
    $GLOBALS['FE_MOD']['news']['newsreader'] = 'ModuleNewsZip'
    news_full.html5
    PHP-Code:
    <?php echo $foo// geht nicht ?>
    <?php 
    echo $this->foo// geht nicht ?>
    <?php 
    echo $bar// geht nicht ?>
    <?php 
    echo $this->bar// geht nicht ?>
    <h1>baz</h1> <!-- GEHT!!! -->
    ModuleNewsZip.php
    PHP-Code:
        protected function compile()
        {
            
    parent::compile();

            
    $this->Template->foo 'foo'// wird im Template nicht angezeigt.
            
    $this->bar 'bar';

            
    ChromePhp::log($this->Template->foo); // zeigt hier 'foo'. Geht im Template aber nicht.
            
    ChromePhp::log($this->bar); // zeigt hier 'bar'. Geht im Template aber auch nicht.
        

    Interessant ist - wie in einem anderen Thread mit Tim G´s Hilfe herausgefunden - dass wenn ich ModuleNewsList erweitere, alles funktioniert.

    Edit:
    Ähm... wenn ich die Templatezuweisung direkt im Original ModuleNewsReader in der compile() vornehme wird die auch nicht angezeigt. Bin ich in der falschen Klasse?
    Angehängte Dateien Angehängte Dateien
    Geändert von sans (26.04.2012 um 19:46 Uhr)

  4. #4
    Contao-Fan Avatar von Bandyt
    Registriert seit
    22.04.2010.
    Ort
    Bremen
    Beiträge
    808

    Standard

    Dein Template hat die falsche Dateiendung. Für 2.11 wäre .html5 oder .xhtml korrekt.

    Probiere mal, ob das das Problem löst.
    Meine Erweiterungen: League Manager | Forum

  5. #5
    Contao-Nutzer
    Registriert seit
    17.07.2010.
    Beiträge
    127

    Standard

    Sorry das war ein Schreibfehler. Mein Template hat die Endung .html5.

  6. #6
    Contao-Fan Avatar von Bandyt
    Registriert seit
    22.04.2010.
    Ort
    Bremen
    Beiträge
    808

    Standard

    Du gibst das Template in der Klasse nicht an.

    Fügt noch
    Code:
    protected $strTemplate = 'news_full';
    zur Klasse hinzu.
    Meine Erweiterungen: League Manager | Forum

  7. #7
    Contao-Nutzer
    Registriert seit
    17.07.2010.
    Beiträge
    127

    Standard

    Mit der Angabe des Templates werden nun die Variablen angezeigt (Danke!), aber die ganzen Zuweisungen aus parent::compile() erscheinen nicht mehr im Template. Also das HTML-Gerüst schon noch, aber ohne Content.

    Nochmal kurz zusammengefasst was ich machen möchte:
    Ich möchte der bestehenden Newsansicht eine weitere Template-Variable hinzufügen, deren Inhalt mit PHP generiert wird.

  8. #8
    Contao-Nutzer
    Registriert seit
    17.07.2010.
    Beiträge
    127

    Standard

    Ich muss den Thread leider nochmal hervorholen, da ich immer noch keine Lösung gefunden habe.

    Mit protected $strTemplate = 'news_full'; werden zwar meine Variablen angezeigt, aber kein Content. Ohne habe ich zwar den Content der News, aber meine Variable nicht mehr...

  9. #9
    Contao-Nutzer Avatar von petra
    Registriert seit
    10.01.2010.
    Ort
    Herford
    Beiträge
    194

    Standard

    Hallo sans,

    stehe aktuell vor dem gleichen Problem: Weißt Du noch, wie Du es damals gelöst hast, wenn überhaupt? Das ist ein Ärger mit dem NewsReader...

    Für alle anderen: Wie erweitert man die Newsanzeige (news_full) um weitere Felder, die mit PHP "bearbeitet" werden müssen? Stehe schon seit Stunden auf dem Schlauch

    Vielen Dank im Voraus für eine Antwort!
    Petra

  10. #10
    Contao-Nutzer
    Registriert seit
    17.07.2010.
    Beiträge
    127

    Standard

    Hallo Petra, ich habe damals keine Lösung gefunden, dann aber auch nicht weiterverfolgt.

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
  •