Ergebnis 1 bis 7 von 7

Thema: Neue Werte an bestehendes Template senden?

  1. #1
    Contao-Fan Avatar von Stranger
    Registriert seit
    20.06.2009.
    Ort
    Blankenburg
    Beiträge
    746
    Partner-ID
    5635
    User beschenken
    Wunschliste

    Standard Neue Werte an bestehendes Template senden?

    Hallo,

    Ich würde gerne in meiner Datei MyClass.php dem Core-News-Template "news_latest" noch einen Wert übergeben damit ich im Template bspw. angeben kann: <?php echo $this->test; ?>

    Leider krieg ich das absolut nicht hin...
    Habs mit folgenden Dingen versucht:

    - outputFrontendTemplate
    - parseFrontendTemplate
    - http://www.contao.glen-langer.de/Hilfsklasse.html

    Oder geht das nur mit neuen, eigenen Templates, die sich im aktuellen Modul-Ordner befinden?

    Viele Grüße
    Du willst dich bei mir bedanken?
    Ich freue mich über Geschenke von meiner Amazon-Wunschliste.

    Contao-Anwender seit 2008
    Contao-Entwickler seit 2013, mehr als 50 Contao Erweiterungen programmiert

    Mein Unternehmen aus Blankenburg (Harz): Fast & Media

  2. #2
    Contao-Fan Avatar von Zero
    Registriert seit
    25.05.2010.
    Ort
    Korntal
    Beiträge
    520
    User beschenken
    Wunschliste

    Standard

    Probiere es mal hiermit:
    PHP-Code:
    // config.php
    $GLOBALS['TL_HOOKS']['parseTemplate'][] = array('class''method')

    // class.php
    function method ($objTemplate) {
        if (
    $objTemplate->getName() == "template_name")
        {
            
    // do something
        
    }


    // Edit: Der Hook wird in der Template.php aufgerufen, bevor der Code geparst wird.
    Geändert von Zero (09.07.2013 um 21:02 Uhr) Grund: Code korrigiert
    Mein Blog -> brothers-project.de

  3. #3
    Contao-Fan Avatar von Stranger
    Registriert seit
    20.06.2009.
    Ort
    Blankenburg
    Beiträge
    746
    Partner-ID
    5635
    User beschenken
    Wunschliste

    Standard

    Hey,

    danke für die Antwort. Nur leider erhalte ich dann immer die Fehlermeldung
    "Recoverable error: Argument 1 passed to Module::__construct() must be an instance of Database_Result, none given"

    Es ist übrigens Contao 2.11.5 installiert
    Geändert von Stranger (09.07.2013 um 17:56 Uhr)
    Du willst dich bei mir bedanken?
    Ich freue mich über Geschenke von meiner Amazon-Wunschliste.

    Contao-Anwender seit 2008
    Contao-Entwickler seit 2013, mehr als 50 Contao Erweiterungen programmiert

    Mein Unternehmen aus Blankenburg (Harz): Fast & Media

  4. #4
    Contao-Fan Avatar von Zero
    Registriert seit
    25.05.2010.
    Ort
    Korntal
    Beiträge
    520
    User beschenken
    Wunschliste

    Standard

    Ein blick in die Template Klasse hätte dich erhellt .

    PHP-Code:
    $objTemplate->getName() 
    Hatte es falsch im Kopf...

    Edit: Habe es oben auch korrigiert für all die Forum Sucher
    Mein Blog -> brothers-project.de

  5. #5
    Contao-Fan Avatar von Stranger
    Registriert seit
    20.06.2009.
    Ort
    Blankenburg
    Beiträge
    746
    Partner-ID
    5635
    User beschenken
    Wunschliste

    Standard

    Besten Dank. Das funktioniert. Ungünstig ist allerdings noch, dass jetzt bei $this-showTemplateVars(); auch alles aufgelistet wird was sich in der localconfig.php befindet. Also dadurch ist dann sogar das Datenbank-Passwort usw. zu sehen. Das ist dann irgendwie ein riesen Sicherheitsrisiko.
    Hat das was mit der Contao Version 2.11.5 zu tun oder hab ich muss ich noch was anders machen?

    Liegt das evtl. an folgendem?
    class TestClass extends Frontend {
    }

    Leider kommt bei folgendem immer die gleiche Fehlermeldung wie oben bereits erwähnt:
    class TestClass extends ModuleNewsList {
    }
    Geändert von Stranger (10.07.2013 um 19:25 Uhr)
    Du willst dich bei mir bedanken?
    Ich freue mich über Geschenke von meiner Amazon-Wunschliste.

    Contao-Anwender seit 2008
    Contao-Entwickler seit 2013, mehr als 50 Contao Erweiterungen programmiert

    Mein Unternehmen aus Blankenburg (Harz): Fast & Media

  6. #6
    Contao-Urgestein Avatar von Toflar
    Registriert seit
    15.06.2009.
    Beiträge
    4.471
    Partner-ID
    8667
    User beschenken
    Wunschliste

    Standard

    Nein, das ist in Contao einfach so. Das ist abhängig vom Call-Stack der Objekte die ans Template übergeben werden.

    Aber ein Sicherheitsrisiko ist es nicht. Du musst ja ein Backend-Zugang haben.
    Jeder der Templates bearbeiten kann, kann sich zum Administrator machen mit einer Zeile Code. Das wissen wir ja aber alle
    Contao Core-Entwickler @terminal42 gmbh
    Wir sind Contao Premium-Partner!
    Für Individuallösungen kannst du uns gerne kontaktieren.
    PS: Heute schon getrakked?

  7. #7
    Contao-Fan Avatar von Stranger
    Registriert seit
    20.06.2009.
    Ort
    Blankenburg
    Beiträge
    746
    Partner-ID
    5635
    User beschenken
    Wunschliste

    Standard

    Ja, da hast du recht, man kann ja auch normale DB Abfragen direkt im Template eintragen und auf diese Weise Zugangsdaten auslesen, aber das ist ja nicht das Problem wie du schon sagst, da man Backend Zugang braucht.

    Problematisch sehe ich halt nur, dass bei Verwendung von $GLOBALS['TL_HOOKS']['parseTemplate'][] bei showTemplateVars() auch alles aus der localconfig angezeigt wird.
    Ohne diese Funktion, ist bei showTemplateVars() nichts aus der localconfig zu sehen.

    Und es ist insofern ein Risiko, weil hier im Forum an vielen Stellen der Tipp gegeben wird, die möglichen Variablen auf diese Weise sichtbar zu machen.

    Wenn das jetzt jemand einsetzt ohne bspw. davor zu schreiben...
    PHP-Code:
    if($_SERVER['REMOTE_ADDR'] == '57.117.302.166') {
    $this->showTemplateVars();

    ... wird's böse. Manchmal macht man das auf die schnelle ja auch und wenn in dem Moment der Rechner abstürzt oder das Inet abkackt... isses passiert.

    Warum kann ich im Template eigentlich nicht folgendes schreiben?
    PHP-Code:
     if(BE_USER_LOGGED_IN)  {
    $this->showTemplateVars();

    Abgesehen davon finde ich, es müsste im Core grundsätzlich so geregelt sein, dass $this->showTemplateVars(); nur ausgegeben wird, wenn man im BE eingeloggt ist.
    Geändert von Stranger (14.07.2013 um 13:05 Uhr)
    Du willst dich bei mir bedanken?
    Ich freue mich über Geschenke von meiner Amazon-Wunschliste.

    Contao-Anwender seit 2008
    Contao-Entwickler seit 2013, mehr als 50 Contao Erweiterungen programmiert

    Mein Unternehmen aus Blankenburg (Harz): Fast & Media

Aktive Benutzer

Aktive Benutzer

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

Berechtigungen

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