Standardmäßig wird der gerade aktuelle Monat aufgerufen, es besteht jedoch die Möglichkeit monatsweise vor und zurück zu blättern.

Eine "Live-Demo" könnt ihr euch hier anschauen: http://www.seamless-design.de/cms/front ... swahl=2011. Voreinstellung ist Dezember 2011, damit auch ein paar Termine sichtbar sind...
Die zip-Datei mit allen Bestandteilen gibt es hier: http://www.seamless-design.de/cms/front ... p?idcat=73
INSTALLATION
* Download des Modulpakets und entpacken
* Anlegen der Module "terminkalender_sd" und "terminkalender_sd_terminliste" durch die Importfunktion
* Anlegen des Modultemplates "terminkalender_sd_terminliste.html"
* Einfügen der CSS-Infos aus der Datei "terminkalender_sd.css" in die eigene CSS-Datei
* Upload der Grafiken in ein beliebiges Verzeichnis
* Anpassen folgender Variablen im Output des Moduls "terminkalender_sd":
$url="http://www.MEINEDOMAIN.de/cms/front_content.php";
$terminkalender_sd_idart=idart des Artikels der den Kalender enthält;
$grafik_vormonat="Pfad zur Datei pfeil_vormonat.gif";
$grafik_kommender_monat="Pfad zur Datei pfeil_kommender_monat.gif";
* Anpassen folgender CSS-Klasse:
a.terminkalender_sd_ein_termin,
a.terminkalender_sd_mehrere_termine {
...
background-image: url('Pfad zur Datei bullet_termin.gif');
...
}
* Anlegen eines neuen Templates, dass die Module "terminkalender_sd" und direkt darunter "terminkalender_sd_terminliste" enthält
ANLEGEN DES TERMINKALENDERS UND DER TERMINE
* Anlegen der Kategorie "Terminkalender" mit der Unterkategorie "Termine"
* Anlegen mehrerer, normaler Artikel in der Unterkategorie "Termine", deren Titel im Reiter Eigenschaften mit einem Datum nach dem Schema JJJJ-MM-TT beginnt (Beispiel: 2010-04-16 - Eröffnungsfeier) Das ist zwingend notwendig, da die Selektion der Termine nach diesem Schema erfolgt.

* Anlegen des Artikels "Terminkalender" in der Kategorie "Terminkalender" mit folgender Konfiguration

Hinweis
Je nach Version von Contenido kann es bei der Terminliste zu einer Fehlermeldung kommen: "Fatal error: Class 'Contenido_Url' not found in..." In diesem Fall wird Contenido in einer Version < 4.8.12 installiert sein, die die o.g. Class nicht "kennt". In diesem Fall bitte den Output des Moduls "terminkalender_sd_terminliste" durch diesen hier ersetzen: output_terminkalender_sd_terminliste_fix_class_contenido_url.txt
Wer die Einzelheiten nicht aus der zip-Datei holen möchte, findet hier das was er sucht:
Modul "terminkalender_sd"-INPUT
Code: Alles auswählen
?><?php
/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname   :     terminkalender_sd
* Author(s)   :     Markus Hübner, Seamless-Design
* Copyright   :     Markus Hübner, Seamless-Design
* Created     :     20.04.2010
************************************************/
#Select category
$cms_idcat = "CMS_VALUE[1]";
echo '<table cellpadding="0" cellspacing="0" border="0">';
echo '<tr><td class="text_medium" style="padding:5px">Kategorie wählen: </td></tr>
      <tr><td class="text_medium" style="padding:5px">';
echo buildCategorySelect("CMS_VAR[1]", "CMS_VALUE[1]");
echo ' <input type="image" src="images/submit.gif">';
echo '</td></tr>';     
echo "<tr><td colspan=\"2\"><u>Einzeltermine anteasern oder direkt öffnen?</u> <br/>";
if ("CMS_VALUE[20]" != "true") { 
   echo '          <input type="radio" name="CMS_VAR[20]" value="true"> anteasern'; 
} else { 
   echo '          <input type="radio" name="CMS_VAR[20]" value="true" checked> anteasern'; 
   }
if ("CMS_VALUE[20]" != "false") { 
   echo '          <input type="radio" name="CMS_VAR[20]" value="false"> direkt öffnen'; 
} else { 
   echo '          <input type="radio" name="CMS_VAR[20]" value="false" checked> direkt öffnen'; 
   }
echo "</td></tr>"; 
echo '</table>';
?><?phpCode: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname   :     terminkalender_sd
* Author(s)   :     Markus Hübner, Seamless-Design
* Copyright   :     Markus Hübner, Seamless-Design
* Created     :     20.04.2010
************************************************/
$einzeltermine_anteasern="CMS_VALUE[20]";
//$einzeltermine_anteasern="true";
/************************* Auslesen der Artikel-Titel *****************************/  
cInclude('classes', 'class.article.php');
$sql = "SELECT
            htmlpath, frontendpath
        FROM
            ".$cfg["tab"]["clients"]." 
        WHERE
            idclient = ".$client." ";
$db->query($sql);
if ($db->next_record()) {
    $htmlpath = $db->f('htmlpath');
    $frontendpath = $db->f('frontendpath');
}
$selcat = "CMS_VALUE[1]"; // selected category
//$limit = "CMS_VALUE[15]";
$cms_sort_direction = 'asc';
$order = 'title';
$with_start = false;
$array="";
$url="http://www.seamless-design.de/cms/front_content.php";
$terminkalender_sd_idart=93;
$monate=array('Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
$grafik_vormonat="../cms/upload/bullets/pfeil_vormonat.gif";
$alternativtext_grafik_vormonat="zum Vormonat";
$grafik_kommender_monat="../cms/upload/bullets/pfeil_kommender_monat.gif";
$alternativtext_grafik_kommender_monat="zum kommenden Monat";
$feiertage=array(
'2010-01-01',
'2010-04-02',
'2010-04-05',
'2010-05-01',
'2010-05-13',
'2010-05-24',
'2010-10-03',
'2010-12-25',
'2010-12-26',
'2011-01-01',
'2011-04-22',
'2011-04-25',
'2011-05-01',
'2011-06-02',
'2011-06-13',
'2011-10-03',
'2011-12-25',
'2011-12-26',
'2012-01-01',
'2012-04-06',
'2012-04-09',
'2012-05-01',
'2012-05-17',
'2012-05-28',
'2012-10-03',
'2012-12-25',
'2012-12-26'
);
if (strlen($selcat) > 0 && $selcat != '0') {
    $options = array ('idcat' => $selcat, "start" => $with_start, "order" => $order, "direction" => $cms_sort_direction);
    $list = new ArticleCollection($options);
    $count = $list->count;
    if ($count > 0) {
        if (is_numeric($limit) AND strlen($limit) > 0) {
            if ($limit < $list->count) {
                $limit_art = $limit;
            }
            else {
                $limit_art = $list->count;
            }
        } // if (is_numeric($limit) AND strlen($limit) > 0)
        else {
            $limit_art = $list->count;
        }
        for ($i = 0; $i < $limit_art; $i ++) {
            $article = $list->nextArticle();
            $article_title = $article->getField('title');
            $article_id = $article->getField('idart');
            $article_title=substr($article_title,0,10);
            $array[]=$article_title;
            $array[]=$article_id;
            //echo $i;
        } // end for
    } // if ($count > 0)
    
} // if (strlen($selcat) > 0 && $selcat != '0')
/*
$anzahl_array_elemente=count($array);
echo "<br/>Anzahl der Array-Elemente: ".$anzahl_array_elemente;
*/
/************************* Kalenderdaten *****************************/  
$monat_auswahl=htmlspecialchars($_GET['monat_auswahl']);
$jahr_auswahl=htmlspecialchars($_GET['jahr_auswahl']);
if ($monat_auswahl!="")
  {
  if(is_numeric($monat_auswahl)) $monat=$monat_auswahl;
  else die;
  if($monat>12) $monat=12;
  if($monat<1) $monat=1;
  }
  else $monat=date('n');
  
if ($jahr_auswahl!="")
  {
  if(is_numeric($jahr_auswahl)) $jahr=$jahr_auswahl;
  else die;
  }
  else $jahr=date('Y');
$aktueller_wochentag=date('w');
$erster=date('w', mktime(0,0,0,$monat,1,$jahr)); // auf welchen Wochentag fällt der erste des Monats
$insgesamt=date('t', mktime(0,0,0,$monat,1,$jahr));
$heute=date('d');
/*
echo "<hr>";
echo "monat: ".$monat."<br/>";
echo "jahr: ".$jahr."<br/>";
echo "aktueller_wochentag: ".$aktueller_wochentag."<br/>";
echo "erster fällt auf wochentag: ".$erster."<br/>";
echo "anzahl der tage des monats: ".$insgesamt."<br/>";
echo "tag heute: ".$heute."<br/>";
*/
if($erster==0){$erster=7;} //Sonntag, "amerikanische" Woche fängt nicht mit Montag sondern Sonntag an
/************************ Ziele Blätterfunktion ************************/
$vormonat=$monat-1;
$vorjahr=$jahr;
if ($vormonat=="0") {$vormonat="12";$vorjahr=$jahr-1;}
$kommender_monat=$monat+1;
$kommendes_jahr=$jahr;
if ($kommender_monat=="13") {$kommender_monat="1";$kommendes_jahr=$jahr+1;}
/************************ Darstellung des Kalenders ************************/
echo '<table class="monatsterminkalender_sd_sd">';
echo '<tr><th class="terminkalender_sd_vormonat"><a class="terminkalender_sd_vormonat" href="front_content.php?idart='.$terminkalender_sd_idart.'&monat_auswahl='.$vormonat.'&jahr_auswahl='.$vorjahr.'"><img src="'.$grafik_vormonat.'" alt="'.$alternativtext_grafik_vormonat.'" title="'.$alternativtext_grafik_vormonat.'"/></a></th>
      <th class="terminkalender_sd_aktueller_monat" colspan="5">'.$monate[$monat-1].' '.$jahr.'</th>
      <th class="terminkalender_sd_kommender_monat"><a class="terminkalender_sd_kommender_monat" href="front_content.php?idart='.$terminkalender_sd_idart.'&monat_auswahl='.$kommender_monat.'&jahr_auswahl='.$kommendes_jahr.'"><img src="'.$grafik_kommender_monat.'" alt="'.$alternativtext_grafik_kommender_monat.'" title="'.$alternativtext_grafik_kommender_monat.'"/></a></th></tr>'; // $monat - 1 da die erste Arrayposition nicht mit 1 sondern Null angesteuert wird
echo '<tr>
      <td class="terminkalender_sd_tage_woche">Mo</td>
      <td class="terminkalender_sd_tage_woche">Di</td>
      <td class="terminkalender_sd_tage_woche">Mi</td>
      <td class="terminkalender_sd_tage_woche">Do</td>
      <td class="terminkalender_sd_tage_woche">Fr</td>
      <td class="terminkalender_sd_tage_wochenende">Sa</td>
      <td class="terminkalender_sd_tage_wochenende">So</td>
      </tr><tr>';
if ($monat<10) {$monat="0".$monat;} // formatierung von einstelligen monaten auf zwei stellen: 4 -> 04
/* Auffüllen der <tr> mit Leerzellen bis der Monatserste in der passenden Spalte erreicht wird */
$i=1;
while($i<$erster){echo '<td class="terminkalender_sd_zelle_leer"> </td>'; $i++;}
/* Ausgabe der Datumsziffern */
$i=1;
$arrayzeiger_idart_zum_termin=-1;
while($i<=$insgesamt)
{
$rest=($i+$erster-1)%7;
if ($rest==1) {echo "<tr>";}
if($i==$heute){echo '<td class="terminkalender_sd_zelle_heute">';}
else{echo '<td class="terminkalender_sd_zelle_standard">';}
if ($i<10) {$tag="0".$i;} // formatierung von einstelligen tagen auf zwei stellen für das checkdatum: 4 -> 04
else {$tag=$i;}
/* Prüfung, ob ein oder mehrere Termine auf Datum fallen, entsprechender <a>-Tag */
$checkdatum=$jahr.'-'.$monat.'-'.$tag;
if ($einzeltermine_anteasern=="false")
{
  if (count(array_keys($array, $checkdatum))==1){
  $arrayzeiger_idart_zum_termin=$arrayzeiger_idart_zum_termin+2;
  $artikel_idart=$array[$arrayzeiger_idart_zum_termin];
  echo '<a class="terminkalender_sd_ein_termin" href="'.$url.'?idart='.$artikel_idart.'">';
  $inarray="true";
  }
}
if ($einzeltermine_anteasern=="true")
{
$switch=0;
}
else
{
$switch=1;
}
if (count(array_keys($array, $checkdatum))>$switch){
$arrayzeiger_idart_zum_termin=$arrayzeiger_idart_zum_termin+count(array_keys($array, $checkdatum))*2;
//echo $array[$arrayzeiger_idart_zum_termin];
echo '<a class="terminkalender_sd_mehrere_termine" href="'.$url.'?idart='.$terminkalender_sd_idart.'&termindatum='.$checkdatum.'&monat_auswahl='.$monat_auswahl.'&jahr_auswahl='.$jahr_auswahl.'">';
$inarray="true";
}
/* Ausgabe der Datumszahl */
$feiertag_ja="false";
if (in_array($checkdatum, $feiertage)) {$feiertag_ja="true";}
if($i==$heute){
    if($feiertag_ja=="true") {echo '<span class="terminkalender_sd_heute_feiertag">'.$i.'</span>';}
    else echo '<span class="terminkalender_sd_heute">'.$i.'</span>';
    }
else if($rest==6){
    if($feiertag_ja=="true") {echo '<span class="terminkalender_sd_samstag_feiertag">'.$i.'</span>';}
    else echo '<span class="terminkalender_sd_samstag">'.$i.'</span>';
    }
else if($rest==0){
    if($feiertag_ja=="true") {echo '<span class="terminkalender_sd_sonntag_feiertag">'.$i.'</span>';}
    else echo '<span class="terminkalender_sd_sonntag">'.$i.'</span>';
    }
else{
    if($feiertag_ja=="true") {echo '<span class="terminkalender_sd_normal_feiertag">'.$i.'</span>';}
    else echo '<span class="terminkalender_sd_normal">'.$i.'</span>';
    }
/* Schließen des <a>-Tags */
if ($inarray=="true") {echo "</a>";}
$inarray="false";
echo "</td>"; // Schließen der Zelle
if($rest==0){echo '</tr>';}
$i++;
}
/* Auffüllen der <tr> mit Leerzellen wenn das Enddatum des Monats erreicht ist */
$p=7-$rest;
$q=0;
if ($rest!=0) 
  {
  while ($q<$p)
    {
    echo '<td class="terminkalender_sd_zelle_leer"> </td>';
    $q++;
    }
  }
  
echo '</tr>';
echo '</table>';
?>  Code: Alles auswählen
?><?php
/**
* $RCSfile$
*
* Description: Newslist / ArticleList. Module "Input".
*
* @version 1.0.0
* @author Andreas Lindner
* @copyright four for business AG <www.4fb.de>
*
* {@internal
* created 2005-08-12
* }}
*
* $Id$
*/
#Select category
$cms_idcat = "CMS_VALUE[1]";
echo '<table cellpadding="0" cellspacing="0" border="0">';
echo '
        <tr><td class="text_medium" style="padding:5px">Kategorie wählen: </td></tr>
        <tr><td class="text_medium" style="padding:5px">';
echo buildCategorySelect("CMS_VAR[1]", "CMS_VALUE[1]");
echo ' <input type="image" src="images/submit.gif">';
echo '</td></tr>';
#Select sort field and sort order
$sortdate = 'checked';
$cms_imgsize = "CMS_VALUE[14]";
$cms_limit_articles = "CMS_VALUE[15]";
$cms_sort_direction = "CMS_VALUE[16]";
if ("CMS_VALUE[17]" != '') {
    $cms_include_start_article = ' checked';
} else {
    $cms_include_start_article = '';
}
if ("CMS_VALUE[3]" == 'sortdate') {
    $sortdate = 'checked';
    $sortnum = '';
}
elseif ("CMS_VALUE[3]" == 'sortnum') {
    $sortdate = '';
    $sortnum = 'checked';
}
echo '
        <tr>
          <td class="text_medium" style="padding:5px;">'.mi18n("Sortierung nach Datum").':</td>
          <td style="padding:5px;"><input type="radio" name="CMS_VAR[3]" value="sortdate" '.$sortdate.'></td>
        </tr>
        <tr>
          <td class="text_medium" style="padding:5px;">'.mi18n("Sortierung nach Nummer").':</td>
          <td style="padding:5px;"><input type="radio" name="CMS_VAR[3]" value="sortnum" '.$sortnum.'></td>
        </tr>
        <tr>
          <td class="text_medium" style="padding:5px;">'.mi18n("Sortierung aufsteigend").':</td>
          <td style="padding:5px;">';
if (strtolower($cms_sort_direction) == 'desc') {
    echo '<input type="radio" name="CMS_VAR[16]" value="asc"/>';
} else {
    echo '<input type="radio" name="CMS_VAR[16]" value="asc" checked/>';
}
echo '</td>
        </tr>
        <tr>
          <td class="text_medium" style="padding:5px;">'.mi18n("Sortierung absteigend").':</td>
          <td style="padding:5px;">';
if (strtolower($cms_sort_direction) == 'desc') {
    echo '<input type="radio" name="CMS_VAR[16]" value="desc" checked/>';
} else {
    echo '<input type="radio" name="CMS_VAR[16]" value="desc"/>';
}
echo '</td>
        </tr>';
$noimg = '';
if ("CMS_VALUE[13]" == 'true') {
    $noimg = 'checked';
}
#Headline
echo '
        <tr><td class="text_medium" style="padding:5px;">'.mi18n("Überschrift").': </td></tr>
        <tr><td style="padding:5px;"><input type="text" name="CMS_VAR[4]" value="CMS_VALUE[4]"></td></tr>
        <tr>
          <td colspan="2" class="text_medium" style="padding:5px;"><b><u>'.mi18n("Bild für Teaser").':</u></b></td>
        </tr>
        <tr>
          <td colspan="2" class="text_medium" style="padding:5px;">'.mi18n("Es wird das erste Bild des Artikels angezeigt.").'</td>
        </tr>';
#Image width
echo '
        <tr><td class="text_medium" style="padding:5px;">'.mi18n("Bildbreite").': </td></tr>
        <tr><td style="padding:5px;"><input type="text" name="CMS_VAR[14]" value="'.$cms_imgsize.'" maxlength="3"></td></tr>';
#Disable images
echo '
        <tr>
          <td class="text_medium" style="padding:5px;">'.mi18n("Kein Bild anzeigen").':</td>
          <td style="padding:5px;"><input type="checkbox" name="CMS_VAR[13]" value="true" '.$noimg.'></td>
        </tr>';
#Number of articles
echo '
        <tr>
          <td class="text_medium" style="padding:5px;">'.mi18n("Anzahl Artikel begrenzen").':</td>
          <td style="padding:5px;"><input type="text" name="CMS_VAR[15]" value="'.$cms_limit_articles.'"></td>
        </tr>';
#Include start article
echo '
        <tr>
          <td class="text_medium" style="padding:5px;">'.mi18n("Startartikel in Liste einbeziehen").':</td>
          <td style="padding:5px;"><input type="checkbox" name="CMS_VAR[17]" value="yes"'.$cms_include_start_article.'></td>
        </tr>';
echo '</table>';
?><?phpCode: Alles auswählen
<?php
/**
* $RCSfile$
*
* Description: Newslist / ArticleList. Module "Output".
*
* @version 1.1.0
* @author Andreas Lindner
* @copyright four for business AG <www.4fb.de>
*
* {@internal
* created 2005-08-12
* modified 2009-01-16 Rudi Bieller Added new Contenido_Url for creating URLs
* }}
*
* $Id$
*
* Modified for terminkalender_sd: Markus Hübner 2010-04-13
*/
//mod anfang
$datum=htmlspecialchars($_GET['termindatum']);
if ($datum!="")
{
//mod ende
cInclude('classes', 'class.article.php');
cInclude('includes', 'functions.api.string.php');
cInclude('includes', 'functions.api.images.php');
if (!isset($tpl) || !is_object($tpl)) {
    $tpl = new Template();
}
$tpl->reset();
$sql = "SELECT
            htmlpath, frontendpath
        FROM
            ".$cfg["tab"]["clients"]." 
        WHERE
            idclient = ".$client." ";
$db->query($sql);
if ($db->next_record()) {
    $htmlpath = $db->f('htmlpath');
    $frontendpath = $db->f('frontendpath');
}
// selected category
$selcat = "CMS_VALUE[1]";
//mod anfang
//$template = "teaser-standard.html";
$template = "terminkalender_sd_terminliste.html";
//mod ende
// anzahl der zeichen text
$mxtext = 200;
$limit = "CMS_VALUE[15]";
$cms_sort_direction = "CMS_VALUE[16]";
if ($cms_sort_direction == '') {
    $cms_sort_direction = 'desc';
}
if ("CMS_VALUE[3]" == "sortdate") {
    $order = 'lastmodified';
} else {
    $order = 'artsort';
}
if ("CMS_VALUE[17]" != '') {
    $with_start = true;
} else {
    $with_start = false;
}
$newsheadline = "CMS_VALUE[4]";
$tpl->set('s', 'TITLE', $newsheadline);
if (strlen($selcat) > 0 && $selcat != '0') {
    $options = array ('idcat' => $selcat, "start" => $with_start, "order" => $order, "direction" => $cms_sort_direction);
    $list = new ArticleCollection($options);
    $count = $list->count;
    if ($count > 0) {
        if (is_numeric($limit) AND strlen($limit) > 0) {
            if ($limit < $list->count) {
                $limit_art = $limit;
            } else {
                $limit_art = $list->count;
            }
        } else {
            $limit_art = $list->count;
        }
        for ($i = 0; $i < $limit_art; $i ++) {
        
            $article = $list->nextArticle();
            $article_id = $article->getField('idart');
//mod anfang
$article_title = $article->getField('title');
$article_title=substr($article_title,0,10);
if ($article_title==$datum)
{
//mod ende
            $teaser_img = '';
            if ($noimg != 'true') {
                $text_html = $article->getContent('CMS_HTML', 1);
                $regEx = "/<img[^>]*?>.*?/i";
                $match = array ();
                preg_match($regEx, $text_html, $match);
                $regEx = "/(src)(=)(['\"]?)([^\"']*)(['\"]?)/i";
                $img = array ();
                preg_match($regEx, $match[0], $img);
                $img_src = preg_split("/\//", $img[0]);
                $img_name = $img_src[count($img_src) - 1];
                $img_name = preg_replace("/\"/", "", $img_name);
                $img_split = preg_split("/\./", $img_name);
                $img_type = $img_split[count($img_split) - 1];
                $img_split2 = preg_split("/_/", $img_split[0]);
                $name = $img_name;
                if (count($img_split2) > 1) {
                    $img_x = $img_split2[count($img_split2) - 1];
                    $img_y = $img_split2[count($img_split2) - 2];
                    if (is_numeric($img_x) AND is_numeric($img_y)) {
                        $suffix = "_".$img_x."_".$img_y.".".$img_type;
                        $name = preg_replace("/$suffix/", "", $img_name);
                        $name = $name.".[a-zA-Z]{3}";
                    }
                }
                $img_teaser = '';
                if (strlen($name) > 0) {
                    $sql = "SELECT
                                                    *
                                                FROM
                                                    ".$cfg["tab"]["upl"]." 
                                                WHERE
                                                    filename REGEXP '$name' ";
                    //echo "<pre>"; print_r($sql); echo "</pre>";
                    $db->query($sql);
                    if ($db->next_record()) {
                        $filename = $db->f('filename');
                        $dirname = $db->f('dirname');
                    }
                    $img_path = $cfgClient[$client]["upl"]["path"].$dirname.$filename;
                    $img_size = "CMS_VALUE[14]";
                    $img_teaser = capiImgScale($img_path, $img_size, $img_size, $crop = false, $expand = false, $cacheTime = 1000, $wantHQ = false);
                } // end if strlen
                if (strlen($img_teaser) > 0) {
                    $teaser_img = '<img src="'.$img_teaser.'" class="teaser_img">';
                } else {
                    $teaser_img = '';
                }
            } // end if noimg       
            $headline = strip_tags($article->getContent('CMS_HTMLHEAD', 1));
            $headline = str_replace($replace, " ", $headline);
            /*          $subheadline = strip_tags($article->getContent('CMS_HTMLHEAD', 2));
                        $subheadline = str_replace($replace, " ", $subheadline);*/
            $teaserheadline = /*$subheadline." - ".*/
            $headline;
            // this is just for sample client - modify to your needs!
            if ($cfg['url_builder']['name'] == 'front_content') {
                $aParams = array('lang' => $lang, 'idcat' => $selcat, 'idart' => $article_id);
            } else {
                $aParams = array('b' => array('lang' => $lang, 'idcat' => $selcat, 'idart' => $article_id), 
                                'idcat' => $selcat, // needed to build category path
                                'lang' => $lang, // needed to build category path
                                'level' => 1); // needed to build category path
            }
            try {
                $href = Contenido_Url::getInstance()->build($aParams);
            } catch (InvalidArgumentException $e) {
                $href = $sess->url("front_content.php?idcat=$selcat&idart=$article_id");
            }
            $teasertext = $article->getField('summary');
            if (strlen(trim($teasertext)) == 0) {
                $teasertext = strip_tags($article->getContent('CMS_HTML', 1));
                $teasertext2 = $teasertext;
                $teasertext = capiStrTrimAfterWord($teasertext, $mxtext);
                if ($teasertext!=$teasertext2) {
                    $teasertext.= '...';
                }
                
            } // end if             
            $teasertext = $teasertext." ";
            $tpl->set('d', 'HEADLINE', $teaserheadline);
            $tpl->set('d', 'TEXT', $teasertext);
            $tpl->set('d', 'HREF', $href);
            $tpl->set('d', 'IMG', $teaser_img);
            $tpl->set('d', 'MORE', mi18n("mehr"));
            $tpl->next();
//mod anfang
} //if ($article_title==$datum)
//mod ende
        } // end for
        $tpl->generate('templates/'.$template);
    }
}
//mod anfang
}// if ($datum!="")
//mod ende
?>Code: Alles auswählen
<div class="terminkalender_sd_terminliste_title">
  {TITLE}
</div>
<div class="terminkalender_sd_terminliste_block">
<!-- BEGIN:BLOCK -->
   <a class="terminkalender_sd_terminliste_headline" href="{HREF}">{HEADLINE}</a><br/>
   <p>{IMG}{TEXT} <a class="terminkalender_sd_terminliste_mehr" href="{HREF}" title="{MORE}">{MORE} ›</a></p>
<!-- END:BLOCK -->
</div>Code: Alles auswählen
/********************* terminkalender_sd_sd und terminliste **********************/
span.terminkalender_sd_samstag,
span.terminkalender_sd_sonntag,
span.terminkalender_sd_normal_feiertag,
span.terminkalender_sd_samstag_feiertag,
span.terminkalender_sd_sonntag_feiertag,
span.terminkalender_sd_heute_feiertag {
color: #ff0000;
font-weight: 900;
}
span.terminkalender_sd_normal {}
span.terminkalender_sd_heute {}
a.terminkalender_sd_vormonat,
a.terminkalender_sd_kommender_monat {}
a.terminkalender_sd_vormonat:hover,
a.terminkalender_sd_kommender_monat:hover {}
a.terminkalender_sd_ein_termin,
a.terminkalender_sd_mehrere_termine {
font-weight: 900;
background-image: url('../upload/bullets/bullet_termin.gif');
background-repeat: no-repeat;
background-position: 25px 5px;
display: block;
text-decoration:none;
color: #000000;
}
table.terminkalender_sd  {
background-color: #ffffff;
}
th.terminkalender_sd_vormonat,
th.terminkalender_sd_kommender_monat {
border-bottom: 1px dotted #555555;
}
th.terminkalender_sd_aktueller_monat {
font-weight: 900;
color: #555555;
font-size: 16px;
border-bottom: 1px dotted #555555;
}
td.terminkalender_sd_tage_woche {
color: #555555;
width: 35px;
}
td.terminkalender_sd_tage_wochenende {
color: #555555;
font-weight: 900;
width: 35px;
}
td.terminkalender_sd_zelle_leer {
background-color: #ffffff;
}
td.terminkalender_sd_zelle_heute {
background-color: #999999;
color: #000000;
}
td.terminkalender_sd_zelle_standard {
border: 1px solid #999999;
}
div.terminkalender_sd_terminliste_title {
color: #000000;
text-decoration: underline;
margin-top: 10px;
margin-bottom: 10px;
}
div.terminkalender_sd_terminliste_block {}
a.terminkalender_sd_terminliste_headline {
color: #555555;
font-weight: 900;
text-decoration: none;
}
a.terminkalender_sd_terminliste_headline:hover {
text-decoration: underline;
}
a.terminkalender_sd_terminliste_mehr {
text-decoration: none;
}
a.terminkalender_sd_terminliste_mehr:hover {
text-decoration: underline;
}output_terminkalender_sd_terminliste_fix_class_contenido_url.txt
Code: Alles auswählen
<?php
/**
* $RCSfile$
*
* Description: Newslist / ArticleList. Module "Output".
*
* @version 1.0.0
* @author Andreas Lindner
* @copyright four for business AG <www.4fb.de>
*
* {@internal
* created 2005-08-12
* }}
*
* $Id$
*
* Modified for terminkalender_sd: Markus Hübner 2010-04-13
*/
//mod anfang
$datum=htmlspecialchars($_GET['termindatum']);
if ($datum!="")
{
//mod ende
cInclude('classes', 'class.article.php');
cInclude('includes', 'functions.api.string.php');
cInclude('includes', 'functions.api.images.php');
if (!isset($tpl) || !is_object($tpl)) {
    $tpl = new Template();
}
$tpl->reset();
$sql = "SELECT
            htmlpath, frontendpath
        FROM
            ".$cfg["tab"]["clients"]." 
        WHERE
            idclient = ".$client." ";
$db->query($sql);
if ($db->next_record()) {
    $htmlpath = $db->f('htmlpath');
    $frontendpath = $db->f('frontendpath');
}
// selected category
$selcat = "CMS_VALUE[1]";
//mod anfang
//$template = "teaser-standard.html";
$template = "terminkalender_sd_terminliste.html";
//mod ende
// anzahl der zeichen text
$mxtext = 200;
$limit = "CMS_VALUE[15]";
$cms_sort_direction = "CMS_VALUE[16]";
if ($cms_sort_direction == '') {
    $cms_sort_direction = 'desc';
}
if ("CMS_VALUE[3]" == "sortdate") {
    $order = 'lastmodified';
} else {
    $order = 'artsort';
}
if ("CMS_VALUE[17]" != '') {
    $with_start = true;
} else {
    $with_start = false;
}
$newsheadline = "CMS_VALUE[4]";
$tpl->set('s', 'TITLE', $newsheadline);
if (strlen($selcat) > 0 && $selcat != '0') {
    $options = array ('idcat' => $selcat, "start" => $with_start, "order" => $order, "direction" => $cms_sort_direction);
    $list = new ArticleCollection($options);
    $count = $list->count;
    if ($count > 0) {
        if (is_numeric($limit) AND strlen($limit) > 0) {
            if ($limit < $list->count) {
                $limit_art = $limit;
            } else {
                $limit_art = $list->count;
            }
        } else {
            $limit_art = $list->count;
        }
        for ($i = 0; $i < $limit_art; $i ++) {
            $article = $list->nextArticle();
            $article_id = $article->getField('idart');
//mod anfang
$article_title = $article->getField('title');
$article_title=substr($article_title,0,10);
if ($article_title==$datum)
{
//mod ende
            $teaser_img = '';
            if ($noimg != 'true') {
                $text_html = $article->getContent('CMS_HTML', 1);
                $regEx = "/<img[^>]*?>.*?/i";
                $match = array ();
                preg_match($regEx, $text_html, $match);
                $regEx = "/(src)(=)(['\"]?)([^\"']*)(['\"]?)/i";
                $img = array ();
                preg_match($regEx, $match[0], $img);
                $img_src = preg_split("/\//", $img[0]);
                $img_name = $img_src[count($img_src) - 1];
                $img_name = preg_replace("/\"/", "", $img_name);
                $img_split = preg_split("/\./", $img_name);
                $img_type = $img_split[count($img_split) - 1];
                $img_split2 = preg_split("/_/", $img_split[0]);
                $name = $img_name;
                if (count($img_split2) > 1) {
                    $img_x = $img_split2[count($img_split2) - 1];
                    $img_y = $img_split2[count($img_split2) - 2];
                    if (is_numeric($img_x) AND is_numeric($img_y)) {
                        $suffix = "_".$img_x."_".$img_y.".".$img_type;
                        $name = preg_replace("/$suffix/", "", $img_name);
                        $name = $name.".[a-zA-Z]{3}";
                    }
                }
                $img_teaser = '';
                if (strlen($name) > 0) {
                    $sql = "SELECT
                                                    *
                                                FROM
                                                    ".$cfg["tab"]["upl"]." 
                                                WHERE
                                                    filename REGEXP '$name' ";
                    //echo "<pre>"; print_r($sql); echo "</pre>";
                    $db->query($sql);
                    if ($db->next_record()) {
                        $filename = $db->f('filename');
                        $dirname = $db->f('dirname');
                    }
                    $img_path = $cfgClient[$client]["upl"]["path"].$dirname.$filename;
                    $img_size = "CMS_VALUE[14]";
                    $img_teaser = capiImgScale($img_path, $img_size, $img_size, $crop = false, $expand = false, $cacheTime = 1000, $wantHQ = false);
                } // end if strlen
                if (strlen($img_teaser) > 0) {
                    $teaser_img = '<img src="'.$img_teaser.'" class="teaser_img">';
                } else {
                    $teaser_img = '';
                }
            } // end if noimg       
            $headline = strip_tags($article->getContent('CMS_HTMLHEAD', 1));
            $headline = str_replace($replace, " ", $headline);
            /*          $subheadline = strip_tags($article->getContent('CMS_HTMLHEAD', 2));
                        $subheadline = str_replace($replace, " ", $subheadline);*/
            $teaserheadline = /*$subheadline." - ".*/
            $headline;
            $href = $sess->url("front_content.php?idcat=$selcat&idart=$article_id");
            $teasertext = $article->getField('summary');
            if (strlen(trim($teasertext)) == 0) {
                $teasertext = strip_tags($article->getContent('CMS_HTML', 1));
                $teasertext2 = $teasertext;
                $teasertext = capiStrTrimAfterWord($teasertext, $mxtext);
                if ($teasertext!=$teasertext2) {
                    $teasertext.= '...';
                }
                
            } // end if             
            $teasertext = $teasertext." ";
            $tpl->set('d', 'HEADLINE', $teaserheadline);
            $tpl->set('d', 'TEXT', $teasertext);
            $tpl->set('d', 'HREF', $href);
            $tpl->set('d', 'IMG', $teaser_img);
            $tpl->set('d', 'MORE', mi18n("mehr"));
            $tpl->next();
//mod anfang
} //if ($article_title==$datum)
//mod ende
        } // end for
        $tpl->generate('templates/'.$template);
    }
}
//mod anfang
}// if ($datum!="")
//mod ende
?>