Ergebnis 1 bis 3 von 3

Thema: Eventliste nur für bestimmten Kalender ausgeben lassen

  1. #1
    Contao-Nutzer
    Registriert seit
    21.06.2009.
    Beiträge
    19

    Standard Eventliste nur für bestimmten Kalender ausgeben lassen

    Hallo,

    ist es irgendwie möglich, die Events eines bestimmten Kalenders im Frontend anzeigen zu lassen? Wir nutzen die einzelnen Kalender als Veranstaltungsorte und pflegen darin die jeweilen Events. Jetzt müssten wir im Frontend nur noch die Möglichkeit der Filterung haben (das wäre ja das DB-Feld "pid").

    Ein eigenes Modul für jeden Kalender anzulegen ist nicht möglich, da immer wieder Kalender (also bei uns Veranstaltungsorte) von Redakteuren nachgepflegt werden können.

  2. #2
    Contao-Urgestein Avatar von cliffparnitzky
    Registriert seit
    08.10.2010.
    Ort
    Lüneburg
    Beiträge
    2.451
    User beschenken
    Wunschliste
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Vlt. kannst du das per Auflistungsmodul machen.

    Wenn du für durchsuchbare Felder "pid" angibst kannst du mittels URL Paramete "for=<CALENDAR-ID>" sogar per Link filtern.

    Ggf. die Suchbox per CSS ausblenden, oder das Template entsprechend anpassen.

    Bleibt nur die Frage, wieviel du vom Event darstellen willst.

    Entweder reicht dir der Teaser (den bekommst du ja auch der Tabelle tl_calendar_event) oder du musst mittel CalendarModel oder Inserttag mehr Infos ranholen.

    Gruß, Cliff

  3. #3
    Contao-Nutzer
    Registriert seit
    21.06.2009.
    Beiträge
    19

    Standard

    Hallo,

    habe es hinbekommen, indem ich die Klasse ModuleEventlist erweitert habe:

    PHP-Code:
    class ModuleMyEventlist extends ModuleEventlist
    {
        public function 
    generate()
        {
            global 
    $objPage;
            
    // Erlaube die Filterung nur auf der Seite 123 (ID), sonst wären alle Seiten mit einem Modul "Eventliste" durch Frontend-Besucher filterbar (was nicht Sinn der Sache ist).
            
    if($objPage->id == 123)
            {
                if(!isset(
    $_GET['pid']))
                {
                    return 
    parent::generate();
                }
                
    $intPid intval(\Input::get('pid'));
                
    $this->cal_calendar = array($intPid);
                return 
    parent::generate();
            }
        }

    Wenn man nun an die URL z.B. "pid=17" anhängt, erhält man nur die Events vom Kalender mit der ID 17. Ansonsten (kein Parameter an der URL), was im Backend angegeben ist. Die Liste aller Kalender ist ganz ohne Programmierung mit dem Modul "Auflistung" möglich.
    Geändert von querschlaeger (24.01.2015 um 23:52 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
  •