Contao-Camp 2024
Ergebnis 1 bis 4 von 4

Thema: Template anpassen / Event / Tags / Contao 4.4

  1. #1
    Contao-Nutzer
    Registriert seit
    12.02.2014.
    Beiträge
    192

    Standard Template anpassen / Event / Tags / Contao 4.4

    Hallo,

    wie kann ich ein Eventlist-Template so anpassen, dass ich über Angabe eines Tags oder mehrer Tags als Variable innerhalb des Templates nur die entsprechenden Events ausgegeben bekomme?

    ich habe mir die vorhanden Templates Tags betreffend angeschaut und komme aber nicht weiter.

    Vielen Dank,

    Misios

  2. #2
    Contao-Fan Avatar von Ainschy
    Registriert seit
    24.06.2009.
    Ort
    Wenden
    Beiträge
    793
    Partner-ID
    5666
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    In der Docu findest du einen Weg dir die Variablen des Templates ausgeben zu lassen:

    https://docs.contao.org/dev/framewor...#template-data

  3. #3
    Contao-Nutzer
    Registriert seit
    12.02.2014.
    Beiträge
    192

    Standard

    Hatte ich schon gemacht und es hat mir leider nichts gebracht, weil nirgends eine Variable "tag" auftaucht.

    Gibt es keine Möglichkeit über eine im Template gesetzte Variable den gleichen Effekt zu erreichen wie über das Anhängen per URL?

    Über https://domain.de/irgendwas.html?tag=kat1 kann ich ja eine Liste gefiltert nach "kat1" anzeigen lassen. Ich hätte jetzt aber gerne, dass das "tag=kat1" innerhalb des Templates gesetzt wird, damit ich z.b. die tag-Angabe anders steuern kann, anstatt über die URL. Ich will vermeiden für jedes zu filternde tag ein eigenes Modul anlegen zu müssen. Wann das in innerhalb des templates ginge, dann könnte ich z.b. über eine CSS-Klasse die tag-Filterausgabe steuern.
    Geändert von Misios (08.06.2020 um 16:23 Uhr)

  4. #4
    Contao-Nutzer
    Registriert seit
    12.02.2014.
    Beiträge
    192

    Standard

    Ich hab es jetzt für mich so gelöst (nicht updatesicher, ich weiss).

    Im system/modules/tags das File ModuleEventlistTags.php so angepasst, um die Bodyklassen auszulesen und als tag zu hinterlegen:

    PHP-Code:
    ...
    class 
    ModuleEventlistTags extends \ModuleEventlist
    {
        
    /**
         * Generate module
         */
        
    protected function getAllEvents($arrCalendars$intStart$intEnd)
        {
            
    $arrAllEvents parent::getAllEvents($arrCalendars$intStart$intEnd);
            if ((
    $this->tag_ignore) && !strlen($this->tag_filter)) return $arrAllEvents;
            
            global 
    $objPage
            
    $CSS_TAGS = [];
            
    $CSS_ARRAY explode(" ",$objPage->cssClass);
            foreach (
    $CSS_ARRAY as $key => $value) {
                if (
    strpos($value,"tag_") !== false){
                    
    $_T explode("tag_",$value);
                    
    array_push($CSS_TAGSstr_replace("_"" "$_T[1]));
                }
            }
            
            
            if (
    strlen(\TagHelper::decode(\Input::get('tag'))) || strlen($this->tag_filter || count($CSS_TAGS)>0))
            {
                
    $limit null;
                
    $offset 0;
                
    $tagids = array();
                if (
    strlen($this->tag_filter)) $tagids $this->getFilterTags();

                
    $relatedlist = (strlen(\TagHelper::decode(\Input::get('related')))) ? preg_split("/,/", \TagHelper::decode(\Input::get('related'))) : array();
                
    $tagArray = (strlen(\TagHelper::decode(\Input::get('tag')))) ? array(\TagHelper::decode(\Input::get('tag'))) : array();
                
                
                
    $alltags array_merge($tagArray$relatedlist$CSS_TAGS);
    ... 
    Jetzt können die zu filternden Tags als CSS-Klasse der Seite hinterlegt werden in der Form "t_tagname".
    Sollte ein Tag ein Leerzeichen enthalten, so muss das mit einem Unterstrich als CSS-Klasse gesetzt werden, also z.b. das Tag wäre "Montag Abend", dann wäre die Klasse "t_Montag_Abend".
    Sonderzeichen sind noch nicht vorgesehen, kann man aber dann noch anpassen.

    Es gibt sicher eine elegantere Lösung, aber ich finde auf die Schnelle leider keine und das tag-Forum scheint mir etwas verwaist zu sein.

    Bin für jeden Verbesserungsvorschlag dankbar.
    Geändert von Misios (08.06.2020 um 18:35 Uhr)

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
  •