Ergebnis 1 bis 4 von 4

Thema: Über Parameter Content Elemen ein-/ausblenden

  1. #1
    Contao-Nutzer
    Registriert seit
    22.08.2011.
    Beiträge
    40

    Frage Über Parameter Content Elemen ein-/ausblenden

    Hallo Leute,

    ich möchte gerne ein Contentelement (in dem Fall ein Layer das über die Startseite geht) abhängig von einem Parameter einblenden. D.h. die normalen Besucher sehen dieses Layer nicht, wenn man mit einem URL Paramter auf die Startseite kommt, sieht man das Layer.

    z.B.: www.test.de/?quelle=1

    Wie schaffe ich es nun dieses Layer einzublenden?

    Meine Grundüberlegung:

    - Parameter über {{env::request}} im Template auslesen
    - mit einer if Bedingung zeige ich dann das Contentelement an (über die ID) oder eben nicht

    Ich weiß nur leider nicht ob der Ansatz funktioniert und komme leider auch nicht wirklich weiter. Derzeit scheitere ich daran, dass ich nicht weiß wie ich auf {{env::request}} im Template überhaupt zugreifen kann.


    Wäre super wenn ihr mir sagen könnt ob der Weg so sind macht und wie ich da hinkomme :-).


    Danke und schöne Grüße

    Flo

  2. #2
    Contao-Nutzer Avatar von Maschmo
    Registriert seit
    16.05.2011.
    Ort
    Linz (Österreich)
    Beiträge
    15

    Standard

    Hallo,

    Würde dir eine Javascript Variante auch weiterhelfen?
    Geändert von Maschmo (18.10.2012 um 15:59 Uhr)

  3. #3
    Contao-Nutzer
    Registriert seit
    05.10.2012.
    Beiträge
    213

    Standard

    Hallo Flo,

    wenn die Url so aussieht, wie du das beschreibst, dann brauchst du doch gar nicht über env::request gehen, sondern kannst einfach die $_GET Variable auslesen? Siehe hier.
    Ansonsten geht's über die Request URI.

    Ansonsten sollte das so schon funktionieren. Arg elegant ist es vielleicht nicht. Könntest du nicht auch ein Duplikat der Startseite in deiner Seitenstruktur erstellen, dass dann halt zusätzlich das gewünschte Overlay hat? Dann müsstest du nicht das Template ändern.

    Grüße,
    Philip

  4. #4
    Contao-Nutzer
    Registriert seit
    16.08.2012.
    Beiträge
    41

    Standard

    Hi Flo,

    bist Du schon weitergekommen?

    Bezüglich Insert-Tags findest Du hier was http://de.contaowiki.org/Insert-Tags. Da steht auch ganz unten wie Du einen InsertTag innerhalb eines Templates parsen lassen kannst.
    PHP-Code:
    $this->replaceInsertTags('{{link::1}}'
    Das iTag "{{env::request}}" Würde Dir hier nur bedingt helfen, da hier z.b. "meineseite.html?quelle=1" ankommen würde. Du müsstest also den query-string selbst abgreifen. Vielleicht gibt es eine Methode irgendwo die da macht, weiß ich aber nicht.

    Dein Problem selbst könntet Du folgendermaßen lösen.
    Du kopierts also erstmal das entsprechende Template es ce in Dein eigenes Template-Verzeichnis und fügst oben z.B. folgendes ein:
    PHP-Code:
    <?php
    if( (int)$this->id === 51
        
    && ( !isset($_GET['quelle']) || $_GET['quelle'] !== '1' ) )
    {
        return 
    null;
    }
    ?>
    "$this->id" ist die ID des ce und der Rest erklärt sich von selbst oder? Das mit dem "return null" weiß ich nicht ganz genau weil ich noch nicht untersucht habe wie die ces geparst werden. Klappt aber zumindest bei mir. kannst alternativ natürlich die komplette Ausgabe in ein else-Block stecken.

    hasta luego, Stefan

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
  •