Contao-Camp 2024
Ergebnis 1 bis 4 von 4

Thema: Modultyp: Kalender --> 2 Monate anzeigen

  1. #1
    Contao-Nutzer
    Registriert seit
    21.08.2017.
    Beiträge
    54

    Standard Modultyp: Kalender --> 2 Monate anzeigen

    Hallo liebe Community,

    gibt es eine Möglichkeit beim "Modul: Kalender" immer 2 Monate anzeigen zu lassen.
    Aktuell ist nur das aktuelle Monat ersichtlich.
    Siehe https://www.efgleibnitz.at/kalender.html

    Für die Anzeige habe ich die Standartvorlage (cal_default.html5) so umgeschrieben, dass ich eine vertikale Ansicht habe.

    Es sollte dann so aussehen: Kalenderdarstellung.png

    Ich habe leider keine Ahnung wo ich ansetzen kann bzw. wie ich so etwas umsetzten kann.

    Danke
    Christian

  2. #2
    Contao-Nutzer
    Registriert seit
    21.08.2017.
    Beiträge
    54

    Standard

    Hallo,

    in 1ter Linie währe super, wenn ich 2 Monate auf einer Seite anzeigen könnte.

  3. #3
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    34.061
    Partner-ID
    10107

    Standard

    Das ist kein Problem. Du kannst nämlich einfach die entsprechenden GET Parameter, wodurch die Anzeige des Monats gesteuert wird, vor der Ausgabe des Moduls manipulieren. Beispiel mit mehreren Kalendern: https://www.engarde-training.com/de/kalender.html

    Dazu bindest du nicht das Modul direkt ein, sondern erzeugst dir zuerst ein eigenes Template namens ce_html_double_calendar bspw. mit folgendem Inhalt:
    PHP-Code:
    <?php

    use Contao\Controller;
    use 
    Contao\Input;

    $intCalendarModuleId // use the ID of your calendar module here
    $intMonth intval(date('n'));
    $intYear intval(date('Y'));

    for (
    $i=0$i<2; ++$i)
    {
      if (
    $intMonth 12)
      {
        ++
    $intYear;
        
    $intMonth 1;
      }

      
    $strYearMonth $intYear str_pad($intMonth++, 2'0'STR_PAD_LEFT);

      
    Input::setGet('month'$strYearMonth);
      echo 
    Controller::getFrontendModule($intCalendarModuleId);
    }
    (ungetestet)

    Dieses Template fügst du als HTML Inhaltselement auf deiner Seite ein (dort wählst du das Template aus).
    Geändert von Spooky (06.04.2018 um 11:12 Uhr)

  4. #4
    Contao-Nutzer
    Registriert seit
    21.08.2017.
    Beiträge
    54

    Standard

    Danke Spooky,

    habe das Template (ce_html_...) etwas abgeändert.

    PHP-Code:
     <?php

    use Contao\Controller;
    use 
    Contao\Input;

    $intCalendarModuleId = ..; // use the ID of your calendar module here
    $intMonth intval(date('n'));
    $intYear intval(date('Y'));

    if (
    $intMonth == 0) {
        
    $intMonth--;
    }

    for (
    $i=0$i<2; ++$i)
    {
      if (
    $intMonth 12)
      {
        ++
    $intYear;
        
    $intMonth 1;
      }

      
    $strYearMonth $intYear str_pad($intMonth++, 2'0'STR_PAD_LEFT);

      
    Input::setGet('month'$strYearMonth);
      echo 
    Controller::getFrontendModule($intCalendarModuleId);
    }
    und Ihn in einem Artikel als
    > Elementtyp --> HTML
    > Indiv. Template --> Das Template oben (ce_html_...) und
    > den HTML-Code --> {{insert_module:XY}} eingebunden. XY = use the ID of your calendar module here

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
  •