Terminkalender mit Mehrfachterminen und Blätterfunktion
Verfasst: Di 20. Apr 2010, 22:42
Der Kalender zeigt den aktuellen Tag in jedem Monat an, ebenso Samstag/ Sonntag und auch bundesweite Feiertage der Jahre 2010 bis 2012. Tage, an denen mindestens ein Termin vorhanden ist, werden entsprechend der CSS-Klassen gekennzeichnet. Sofern nur ein Termin vorhanden ist, kann die Datumszahl direkt mit dem Terminartikel verlinkt werden oder, wie im Falle von mehreren Terminen, zunächst ein Anteasern unterhalb des Kalenders erfolgen. Über den/ die Teaser kann der gewünschte Termin aufgerufen werden.
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
Modul "terminkalender_sd"-OUTPUT
Modul "terminkalender_sd_terminliste"-INPUT
Modul "terminkalender_sd_terminliste"-OUTPUT
Modul-Template "terminkalender_sd_terminliste.html"
CSS-Datei "terminkalender_sd.css"
Für den Fall, dass der o.g. "Contenido_Url"-Fehler bei einer älteren 4.8er auftritt:
output_terminkalender_sd_terminliste_fix_class_contenido_url.txt
Viel Spass damit und tonnenweise Termine!
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>';
?><?php
Code: 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>';
?><?php
Code: 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
?>