Ergebnis 1 bis 11 von 11

Thema: Pagetrail in Filter verwenden.

  1. #1
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Standard Pagetrail in Filter verwenden.

    Ich möchte gerne Metamodelsinhalt über den Seitenbaum vererben.
    Derzeit realisiere ich das mehr schlecht als recht über das Template.

    Der bessere Weg sollte allerdings über einen mm-Filter sein.

    Ich habe dazu versucht, die globale Variable $GLOBALS['objPage']->trail zu verwenden welche über das Template auch funktioniert.
    Hier komme ich über:
    Code:
    implode(',',$GLOBALS['objPage']->trail
    an eine kommagetrennte Ausgabe des Trails ran.

    Dies wollte ich nun über einen filter in der Art:
    Code:
    SELECT id
    FROM {{table}}
    WHERE FIND_IN_SET ('{{page::id}}', '.$GLOBALS['objPage']->trail.')
    oder eben
    Code:
    SELECT id
    FROM {{table}}
    WHERE FIND_IN_SET ('{{page::id}}', '.implode(',',$GLOBALS['objPage']->trail.')
    realisieren.

    leider scheint es so, als könnte man im Filter nicht auf die $GLOBALS zugreifen.

    Die Parameterquellen für die Filter scheinen sich auf mm-Tabellen zu konzentrieren. Somit kann ich diese hier nicht einsetzen.
    Hat jemand vielleicht eine Idee?
    Gruß
    Hauge

  2. #2
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Hauge Beitrag anzeigen
    Ich möchte gerne Metamodelsinhalt über den Seitenbaum vererben.
    kannst Du bitte ausführen, was "Ziel der Übung" ist? vererben bedeutet "wenn Elternseite Modul", dann Kinderseiten auch? oder Detailseite? warum nicht per Merger² oder Inhaltsbox?

  3. #3
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Standard

    Hallo Zonky,

    klar:
    Etwa im Sinne der Erweiterung pageimage:

    Ein Bild pro Seite festlegen

    Nach der Installation dieser Erweiterung kann in der Seitenstruktur für jede Seite ein Bild gewählt werden. Mit Hilfe des entsprechenden Frontend-Moduls kann dieses Bild dann auf der Website an der gewünschten Stelle angezeigt werden. Falls für eine Seite kein Bild vorhanden ist, kann auf Wunsch das Bild der übergeordneten Seite angezeigt werden.
    sollte nicht nur ein Bild, sondern etwas mehr Inhalt kategoriebezogen vererbt werden.
    Da die Inhalte mit mm praktisch an den Seitenbaum gehängt werden können, möchte ich das ganze mit mm umsetzen.

  4. #4
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Standard

    p.S. -> Merger?

  5. #5
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    zu Merger²:

    https://contao.org/en/extension-list...erger2.en.html

    http://www.youtube.com/watch?v=Rt7lxS-rsNA

    cooles Ding!


    zur Frage: du müsstest dann in jeder Seite ein MM-Modul haben, welches im Seitenbaum "nach oben" guckt, was da so angesagt ist (ggf. wenn nix gefunden, ein "Default-Ass" aus dem Ärmel ziehen"

    somit gäbe es zwei Aufgaben
    a) hole mir MM-Daten per Filter
    b) "guck nach oben" und besorge mir Filterparameter

    Man bräuchte dann sicher einen Zusammenhang zwischen eingebautem MM und Page-ID... kann man sich wahrscheinlich irgendwie hinbasteln...

    einfacher scheint mir hier die Arbeit mit "Inhaltsboxen" oder Merger² (Funktion "Vererben")

  6. #6
    Contao-Yoda Avatar von MacKP
    Registriert seit
    15.06.2009.
    Ort
    Duisburg
    Beiträge
    13.292
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Nur der vollständigkeit halber: Du könntest auch ein Modul in ein Seitenlayout einbinden und das Seitenlayout dann allen Seiten zuweisen, die diese Funktion bei dir brauchen. Dann sparst du dir eventuell eine der Erweiterungen ;-)

    Ansonsten würde ich das glaube ich auch eher im Template lösen als mit Filtern, da du ja für die verschiedenen Ebenen verschiedene Filter brauchen würdest.

    Viele Grüße
    Contao Pool | C-C-A | MetaModels | [Internetseite -> Mediendepot Ruhr]
    [Arbeitet bei -> Paus Design & Medien]
    "I can EXPLAIN it to you, but I can't UNDERSTAND it for you."

  7. #7
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Standard

    Hallo und guten Morgen,

    hab jetzt eine - zumindest schon bessere - Lösung als zuvor gefunden (Denke ich :-) ):
    Hab mir eine file pagetrail_reverse.php angelegt, welche den reversed trail ausgibt:
    Code:
    $pageid = $this->replaceInsertTags( '{{page::id}}' ); 
    $this->import('Database');
    $pagetrail_reverse = array_reverse($objPage->trail);
    $matches = implode(',', $pagetrail_reverse);
    echo $matches;
    diesen hol ich mir dann in den Filtern und Sortiere nach dem Pagetrail. Aufgrund des offsets von 1 im Modul erhalte ich dann die passende Ausgabe.
    Hier noch der Filter:
    Code:
    SELECT id
    FROM {{table}}
    WHERE FIND_IN_SET ('{{page::id}}', '{{file::pagetrail_reverse.php}}')
    ORDER BY field(pid,{{file::pagetrail_reverse.php}})DESC
    hab mich da jetzt überall mal ein bisschen durchgeklickt und das scheint zu funktionieren.

    Vielen Dank für Eure Hilfe.
    Gruß
    Hauge

  8. #8
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    das wäre dann die a+b Variante aus #5

    Nachtrag:
    für was
    PHP-Code:
    $pageid $this->replaceInsertTags'{{page::id}}' ); 
    $this->import('Database'); 
    ?

  9. #9
    Contao-Fan Avatar von Hauge
    Registriert seit
    31.01.2010.
    Beiträge
    643

    Standard

    zu:
    Nachtrag:
    das waren noch "Altlasten" -> habs bereinigt...

    zu:
    Merger²
    hört sich echt gut an!
    Das muss ich mir mal zu Gemüte führen!

    Gruß
    Hauge

  10. #10
    Contao-Urgestein
    Registriert seit
    29.10.2009.
    Ort
    Magdeburg
    Beiträge
    2.020
    Partner-ID
    626
    User beschenken
    Wunschliste

    Standard

    PHP-Code:
    $pageid $this->replaceInsertTags'{{page::id}}' ); 
    Ich sehe immer wieder solche Konstrukte, selbst in Themes von einen der "großen" Contao-Theme-Anbieter...

    Warum wird hier nur der Umweg über die InsertTags genommen, wenn man eh schon in PHP ist. Die aktuelle Seite ist über $GOBALS['objPage'] verfügbar. Die ID über $GOBALS['objPage']->id.

  11. #11
    Contao-Urgestein Avatar von zonky
    Registriert seit
    19.03.2010.
    Ort
    Berlin, Rdf
    Beiträge
    9.719
    User beschenken
    Wunschliste

    Standard

    ein
    PHP-Code:

    $objRes 
    = \Database::getInstance()
                    ->
    prepare("my sql")
                    ->
    execute(); 
    wäre auch "aktueller"

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
  •