Hallo, der Beitrag ist schon etwas älter aber ich hoffe mir kann trotzdem jemand helfen:
Habe den Calender eingebaut. Mein Problem ist nun dass im Kalenderselbst nur der erste Termin in der Terminliste angezeigt, alles weiteren Termine können im Kalender nicht angeklickt werden, bzw. erscheinen auch nicht... woran kann das liegen?
Hier mein code:
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
terminkalender_sd Output
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.wgk.bz.it/cms/front_content.php";
$terminkalender_sd_idart=71;
$monate=array('Januar','Februar','März','April','Mai','Juni','Juli','August','September','Oktober','November','Dezember');
$grafik_vormonat="../cms/images/pfeil_vormonat.gif";
$alternativtext_grafik_vormonat="zum Vormonat";
$grafik_kommender_monat="../cms/images/pfeil_kommender_monat.gif";
$alternativtext_grafik_kommender_monat="zum kommenden Monat";
$feiertage=array(
'2012-05-01',
'2012-05-17',
'2012-05-28',
'2012-10-03',
'2012-12-25',
'2012-12-26',
'2013-01-01',
'2013-04-06',
'2013-04-09',
'2013-05-01',
'2013-05-17',
'2013-05-28',
'2013-10-03',
'2013-12-25',
'2013-12-26'
);
/*
$feiertage_txt=file("../cms/upload/test/feiertage.txt");
$feiertage=array();
foreach ($feiertage_txt as $value) {$feiertage[]=$value;}
*/
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 '<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>';
?>
terminkalender_sd_terminliste input
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$
*
* Modified for terminkalender_sd_terminliste_gesamt: Markus Hübner 2010-04-30 (Zusammenspiel mit Modulen terminkalender_sd und terminkalender_sd_terminliste
* forum: http://forum.contenido.org/viewtopic.php?f=60&t=30263&p=144294#p144294
*/
#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>';
// mod anfang
/*
#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>
*/
//mod anfang
#termine nur ab heute
echo '
<tr>
<td class="text_medium" style="padding:5px;">'.mi18n("Termine nur ab heute").':</td>
<td style="padding:5px;">';
if ("CMS_VALUE[100]" != "ja")
{
echo '<input type="checkbox" name="CMS_VAR[100]" value="ja"> ja';
} else {
echo '<input type="checkbox" name="CMS_VAR[100]" value="ja" checked> ja';
}
echo' </td>
</tr>';
//mod ende
echo ' <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
terminkalender_sd_terminliste output
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_terminliste_gesamt: Markus Hübner 2010-04-30 (Zusammenspiel mit Modulen terminkalender_sd und terminkalender_sd_terminliste
* forum: http://forum.contenido.org/viewtopic.php?f=60&t=30263&p=144294#p144294
*/
//mod anfang
$termine_nur_ab_heute="CMS_VALUE[100]";
$timestamp = time();
$datum_heute = date("Y-m-d", $timestamp);
if($termine_nur_ab_heute!="ja") $datum_heute="";
//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]";
$template = "terminkalender_sd_terminliste.html";
// anzahl der zeichen text
$mxtext = 200;
$limit = "CMS_VALUE[15]";
$cms_sort_direction = "CMS_VALUE[16]";
if ($cms_sort_direction == '') {
$cms_sort_direction = 'desc';
}
//mod anfang
if ("CMS_VALUE[3]" == "sortdate") {
$order = 'lastmodified';
} else {
$order = 'artsort';
}
// mod ende
$order = 'title';
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);
//mod anfang
if($article_title>=$datum_heute)
{
// 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
}
//mod ende
} // end for
$tpl->generate('templates/'.$template);
}
}
?>
DAnke schon mal wenn mir jemand helfen kann...
Gruß