vielen Dank für den Hinweis. Wir haben die array erweitert und es funktioniert :-}
Hier die Aktualisierung.
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : Termin sKalender universal
* Version : 2.6
* Author : schlaucher
* Created : 02-08-2006
* Modified : 06-10-2008
* Modified : 29-11-2010 / is_array andy-man
************************************************/
cInclude('frontend', 'includes/functions.terminliste.php');
if ($_REQUEST['MOD_sK_newdate']) // Datum wurde über den sKalender neu gesetzt
{
$MOD_sK_newdate_array = explode("-",$_REQUEST['MOD_sK_newdate']); // yyyy-m-t oder mm tt
$MOD_sK_checkdate_von = date("Y-m-d", mktime (0,0,0, $MOD_sK_newdate_array[1], 1, $MOD_sK_newdate_array[0]));
$MOD_sK_tag_max = date( "t", mktime(0,0,0, $MOD_sK_newdate_array[1], 1, $MOD_sK_newdate_array[0]));
$MOD_sK_checkdate_bis = date("Y-m-d", mktime (0,0,0, $MOD_sK_newdate_array[1], $MOD_sK_tag_max, $MOD_sK_newdate_array[0]));
}
else // aktuelles Datum verwenden
{
$MOD_sK_heute = getdate();
$MOD_sK_checkdate_von = date("Y-m-d", mktime (0,0,0, $MOD_sK_heute["mon"], 1, $MOD_sK_heute["year"]));
$MOD_sK_tag_max = date( "t", mktime(0,0,0, $MOD_sK_heute["mon"], 1, $MOD_sK_heute["year"]));
$MOD_sK_checkdate_bis = date("Y-m-d", mktime (0,0,0, $MOD_sK_heute["mon"], $MOD_sK_tag_max, $MOD_sK_heute["year"]));
}
//echo 'Anzeige von: '.$MOD_sK_checkdate_von.' bis '.$MOD_sK_checkdate_bis.'<br>';
$MOD_sK_zaehler = 0;
$MOD_sK_zaehler2 = 0;
$MOD_sK_tage= array(mi18n("So"),mi18n("Mo"),mi18n("Di"),mi18n("Mi"),mi18n("Do"),mi18n("Fr"),mi18n("Sa"));
// Variablen aus Input Bereich
if ("CMS_VALUE[4]" == '') // Link zu den Terminen aktiv
$MOD_sK_linkyn = false;
else
$MOD_sK_linkyn = true;
if ("CMS_VALUE[7]" == 'datum') // Anzeigemodus Datum oder Status// Überprüfung ob zusätzliche Kategorien gewählt wurden
$MOD_sK_anzeigemodus = true;
else
$MOD_sK_anzeigemodus = false;
if ("CMS_VALUE[9]" == '') // Dropdown-Feld aktiv
$MOD_sK_ddownyn = false;
else
$MOD_sK_ddownyn = true;
$MOD_sK_idcat = "CMS_VALUE[1]";
$MOD_sK_idcatart = "CMS_VALUE[3]";
$MOD_sK_add_tree = "CMS_VALUE[5]"; // zusätzliche Kategorien anzeigen
$MOD_sK_add_tree_ids = "CMS_VALUE[6]"; // ids der zusätzlichen Kategorien
$MOD_sk_ddown = "CMS_VALUE[8]"; // Angezeigte Jahre im Dropdown Feld
if ($MOD_sK_add_tree == "" || ($MOD_sK_add_tree_ids == "" && $MOD_sK_add_tree == "auswahl"))
$MOD_sK_add_tree = 'keine';
if (eregi(',', $MOD_sk_ddown))
$MOD_sk_arry_down = explode(",", $MOD_sk_ddown);
else
$MOD_sk_arry_down[0] = $MOD_sk_ddown;
// zusätzliche Kategorien ermitteln
$MOD_sK_sel_tree = "'".$MOD_sK_idcat."'";
switch ($MOD_sK_add_tree)
{
case "unterhalb":
$MOD_sK_tree_level = -1;
$MOD_sK_sql_tree = "SELECT CAT.idcat AS idcat, CATTREE.level AS level ";
$MOD_sK_sql_tree .= "FROM ".$cfg["tab"]["cat"]." AS CAT,";
$MOD_sK_sql_tree .= " ".$cfg["tab"]["cat_tree"]." AS CATTREE ";
$MOD_sK_sql_tree .= "WHERE CAT.idcat = CATTREE.idcat ";
$MOD_sK_sql_tree .= "ORDER BY CATTREE.idtree";
$db->query($MOD_sK_sql_tree);
while($db->next_record())
{
if ($db->f("idcat") == $MOD_sK_idcat)
$MOD_sK_tree_level = $db->f("level");
else if ($MOD_sK_tree_level > -1 && $db->f("level") > $MOD_sK_tree_level)
$MOD_sK_sel_tree .= ",'".$db->f("idcat")."'";
else if ($db->f("level") <= $MOD_sK_tree_level)
break;
}
break;
case "auswahl":
$MOD_sK_add_tree_array = explode(",",$MOD_sK_add_tree_ids);
foreach ($MOD_sK_add_tree_array as $MOD_sK_add_tree_value)
{
if (is_numeric($MOD_sK_add_tree_value))
$MOD_sK_sel_tree .= ",'".$MOD_sK_add_tree_value."'";
}
break;
default:
}
// Alle Artikel der Kategorie einlesen, die nicht Startartikel sind
$MOD_sK_sql = "SELECT ARTLANG.idart, CONTENT.value, CONTENT.typeid, ARTLANG.idartlang, CONTENT.idtype ";
$MOD_sK_sql .= "FROM ".$cfg["tab"]["cat_art"]." AS CATART,";
$MOD_sK_sql .= " ".$cfg["tab"]["art_lang"]." AS ARTLANG,";
$MOD_sK_sql .= " ".$cfg["tab"]["cat"]." AS CAT,";
$MOD_sK_sql .= " ".$cfg["tab"]["content"]." AS CONTENT,";
$MOD_sK_sql .= " ".$cfg["tab"]["cat_lang"]." AS CATLANG ";
$MOD_sK_sql .= "WHERE ARTLANG.idart = CATART.idart ";
$MOD_sK_sql .= "AND CATART.idcat = CAT.idcat ";
$MOD_sK_sql .= "AND ARTLANG.idartlang = CONTENT.idartlang ";
$MOD_sK_sql .= "AND ARTLANG.idlang = '".$lang."' ";
$MOD_sK_sql .= "AND CAT.idcat IN (".$MOD_sK_sel_tree.") ";
$MOD_sK_sql .= "AND CAT.idclient = '".$client."' ";
$MOD_sK_sql .= "AND ARTLANG.online = '1' ";
$MOD_sK_sql .= "AND CATART.idcat = CATLANG.idcat ";
if ($cfg["is_start_compatible"] == true)
$MOD_sK_sql .= "AND CATART.is_start = '0' ";
else
$MOD_sK_sql .= "AND CONTENT.idartlang != CATLANG.startidartlang ";
$MOD_sK_sql .= "ORDER BY ARTLANG.idart, CONTENT.typeid ASC";
$db->query($MOD_sK_sql);
// weiter, wenn Artikel gefunden wurden
if ($db->num_rows() > 0)
{
$MOD_sK_termine = array(array()); // Array erzeugen, in dem die Termine abgelegt werden;
while ($MOD_sK_datensaetze < $db->num_rows()) // alle Datensätze durchlaufen
{
$db->next_record();
if ($db->f("idart") > $MOD_sK_termine["idart"][$MOD_sK_zaehler])
$MOD_sK_zaehler++;
if (isStartArticle($db->f("idartlang"),$MOD_sK_durchlaufdcat,$lang)==FALSE)
{
$MOD_sK_linktyp = $db->f("idtype");
switch ($db->f("typeid"))
{
case 0: // Anfangstermin
if ($MOD_sK_linktyp == '3') // Text
{
$MOD_sK_termine["datum1"][$MOD_sK_zaehler] = $db->f("value");
if (strlen($MOD_sK_termine["datum1"][$MOD_sK_zaehler]) < 10) // falsches oder kein Datum
$MOD_sK_termine["datum1"][$MOD_sK_zaehler] = '1970-01-01';
$MOD_sK_termine["idart"][$MOD_sK_zaehler] = $db->f("idart");
$MOD_sK_termine["zyklus"][$MOD_sK_zaehler] = 'no';
$MOD_sK_termine["datum2"][$MOD_sK_zaehler] = '';
$MOD_sK_termine["status"][$MOD_sK_zaehler] = '0';
$MOD_sK_termine["xtag"][$MOD_sK_zaehler] = '';
$MOD_sK_termine["aliste"][$MOD_sK_zaehler] = '';
$MOD_sK_termine["zutermine"][$MOD_sK_zaehler] = '';
}
break;
case 2: // Endtermin
if ($MOD_sK_linktyp == '3') // Text
$MOD_sK_termine["datum2"][$MOD_sK_zaehler] = $db->f("value");
break;
case 10: // Termin Zyklus
if ($MOD_sK_linktyp == '3') // Text
$MOD_sK_termine["zyklus"][$MOD_sK_zaehler] = $db->f("value");
break;
case 11: // Zyklus Wochentage
if ($MOD_sK_linktyp == '3') // Text
$MOD_sK_termine["wtagezyklus"][$MOD_sK_zaehler] = $db->f("value");
break;
case 12: // 1., 2., ... Wochentag im Monat
if ($MOD_sK_linktyp == '3') // Text
$MOD_sK_termine["wtagemon"][$MOD_sK_zaehler] = $db->f("value");
break;
case 15: // Status
if ($MOD_sK_linktyp == '3') // Text
$MOD_sK_termine["status"][$MOD_sK_zaehler] = $db->f("value");
break;
case 16: // Zyklus xten Tag
if ($MOD_sK_linktyp == '3') // Text
$MOD_sK_termine["xtag"][$MOD_sK_zaehler] = $db->f("value");
break;
case 17: // Ausschlussliste
if ($MOD_sK_linktyp == '3') // Text
$MOD_sK_termine["aliste"][$MOD_sK_zaehler] = $db->f("value");
break;
case 22: // zusätzliche Termine
if ($MOD_sK_linktyp == '3') // Text
$MOD_sK_termine["zutermine"][$MOD_sK_zaehler] = $db->f("value");
break;
}
}
$MOD_sK_datensaetze++;
}
// Ermittlung der zyklischen Termine und Löschen von Datensätzen, die nicht angezeigt werden müssen
$MOD_sK_zaehler2 = $MOD_sK_zaehler+1; // zweiten Zähler anlegen
for ($MOD_sK_durchlauf=0; $MOD_sK_durchlauf<=$MOD_sK_zaehler; $MOD_sK_durchlauf++)
{
if (($MOD_sK_termine["zyklus"][$MOD_sK_durchlauf] != 'no' || $MOD_sK_termine["zutermine"][$MOD_sK_durchlauf] != '') && $MOD_sK_termine["idart"][$MOD_sK_durchlauf] != '' ) // Zyklischer Termin
{
$MOD_sK_zdate_array = makedatearray($MOD_sK_termine["datum1"][$MOD_sK_durchlauf],$MOD_sK_termine["datum2"][$MOD_sK_durchlauf],
$MOD_sK_termine["zyklus"][$MOD_sK_durchlauf],$MOD_sK_termine["xtag"][$MOD_sK_durchlauf],
$MOD_sK_termine["aliste"][$MOD_sK_durchlauf],$MOD_sK_checkdate_von,$MOD_sK_checkdate_bis,
$MOD_sK_termine["wtagezyklus"][$MOD_sK_durchlauf],$MOD_sK_termine["wtagemon"][$MOD_sK_durchlauf],$MOD_sK_termine["zutermine"][$MOD_sK_durchlauf]);
for ($MOD_sK_durchlauf2=0; $MOD_sK_durchlauf2<count($MOD_sK_zdate_array); $MOD_sK_durchlauf2++)
{
if($MOD_sK_zdate_array[$MOD_sK_durchlauf2] && ($MOD_sK_zdate_array[$MOD_sK_durchlauf2] != $MOD_sK_termine["datum1"][$MOD_sK_durchlauf]))
{
$MOD_sK_termine["datum1"][$MOD_sK_zaehler2] = $MOD_sK_zdate_array[$MOD_sK_durchlauf2];
$MOD_sK_termine["datum2"][$MOD_sK_zaehler2] = ' ';
$MOD_sK_termine["idart"][$MOD_sK_zaehler2] = $MOD_sK_termine["idart"][$MOD_sK_durchlauf];
$MOD_sK_termine["status"][$MOD_sK_zaehler2] = $MOD_sK_termine["status"][$MOD_sK_durchlauf];
$MOD_sK_zaehler2++;
}
}
if ($MOD_sK_termine["zyklus"][$MOD_sK_durchlauf] != 'no')
$MOD_sK_termine["datum2"][$MOD_sK_durchlauf] = ' ';
}
}
// Prüfung ob Termin im aktuellen Anzeigezeitrahmen ist
for ($MOD_sK_durchlauf=0; $MOD_sK_durchlauf<=$MOD_sK_zaehler2; $MOD_sK_durchlauf++)
{
if (!(($MOD_sK_termine["datum1"][$MOD_sK_durchlauf] >= $MOD_sK_checkdate_von && $MOD_sK_termine["datum1"][$MOD_sK_durchlauf] <= $MOD_sK_checkdate_bis) ||
($MOD_sK_termine["datum2"][$MOD_sK_durchlauf] >= $MOD_sK_checkdate_von && $MOD_sK_termine["datum2"][$MOD_sK_durchlauf] <= $MOD_sK_checkdate_bis ) ||
($MOD_sK_termine["datum1"][$MOD_sK_durchlauf] < $MOD_sK_checkdate_von && $MOD_sK_termine["datum2"][$MOD_sK_durchlauf] > $MOD_sK_checkdate_bis)))
{
unset ($MOD_sK_termine["datum1"][$MOD_sK_durchlauf]);
unset ($MOD_sK_termine["datum2"][$MOD_sK_durchlauf]);
unset ($MOD_sK_termine["idart"][$MOD_sK_durchlauf]);
unset ($MOD_sK_termine["status"][$MOD_sK_durchlauf]);
}
}
}
else
{
// Bugfix, da sonst Fehlermeldung beim prüfen der belegten Termine
$MOD_sK_termine["datum1"][0] = '1970-01-01';
$MOD_sK_termine["datum2"][0] = '1970-01-01';
$MOD_sK_termine["idart"][0] = '0';
$MOD_sK_termine["status"][0] = '0';
}
if( !empty($MOD_sK_termine["datum1"]) )
{
array_multisort ( $MOD_sK_termine["datum1"], SORT_ASC, SORT_STRING,
$MOD_sK_termine["datum2"], SORT_ASC, SORT_STRING,
$MOD_sK_termine["idart"],
$MOD_sK_termine["status"]);
}
$sKalender = new sKalender();
$sKalender->setDate( $MOD_sK_newdate_array[2], $MOD_sK_newdate_array[1], $MOD_sK_newdate_array[0] );
$sKalender->printCalender();
class sKalender
{
var $MOD_sK_akt_datum;
var $MOD_sK_admin;
function sKalender()
{
// Verhindert mögliche Endlosloops Ausführungszeit max 1 Sek.
//set_time_limit( 1 );
// wird der Funktion eine Parameter übergeben, wird diese dem Key "MOD_sK_admin" zugeordent
if( func_num_args() == 1 )
$this->MOD_sK_admin = func_get_arg( 0 );
else
$this->MOD_sK_admin = false;
// aktuelles Datum in Array MOD_sK_akt_datum schreiben
$this->MOD_sK_akt_datum = getdate();
}
function setDate( $MOD_sK_tag, $MOD_sK_monat, $MOD_sK_jahr )
{
// prüft, ob alle Werte übergeben wurden und schreibt diese dann ins Array
if( $MOD_sK_tag != "" && $MOD_sK_monat != "" && $MOD_sK_jahr != "" )
{
$this->MOD_sK_akt_datum["mday"] = $MOD_sK_tag*1; // führende Nullen entfernen
$this->MOD_sK_akt_datum["mon"] = $MOD_sK_monat*1; // führende Nullen entfernen
$this->MOD_sK_akt_datum["year"] = $MOD_sK_jahr;
return true;
}
else
return false;
}
function getDateByMonth( $MOD_sk_neuer_monat )
{
$MOD_sK_neues_datum = mktime (0,0,0, ($this->MOD_sK_akt_datum["mon"] + $MOD_sk_neuer_monat), $this->MOD_sK_akt_datum["mday"], $this->MOD_sK_akt_datum["year"] );
return $MOD_sK_neues_datum;
}
function printCalender()
{
// Globale Variablen definieren
global $MOD_sK_linkyn;
global $idcatart;
global $MOD_sK_idcatart;
global $MOD_sk_arry_down;
global $MOD_sK_ddownyn;
if( $this->MOD_sK_akt_datum == "" )
return false;
else
$MOD_sK_datum = $this->MOD_sK_akt_datum;
$MOD_sK_wochenbeginn = 2; // Die Woche beginnt mit Montag, PHP beginnt mit Sonntag = 1
$MOD_sK_admin = "&MOD_sK_admin=" . $this->MOD_sK_admin;
$MOD_sK_monatsnamen = array("",mi18n("Januar"),mi18n("Februar"),mi18n("März"),mi18n("April"),mi18n("Mai"),mi18n("Juni"),mi18n("Juli"),mi18n("August"),mi18n("September"),mi18n("Oktober"),mi18n("November"),mi18n("Dezember"));
echo '<div id="mod_sK" style="margin-bottom:20px">
<table style="background-color:#eeeeee" >
<tr>';
// Einen Monat zurück
$MOD_sK_neues_datum = $this->getDateByMonth( -1 );
$MOD_sK_newdate = date("Y", $MOD_sK_neues_datum ).'-'.date("n", $MOD_sK_neues_datum ).'-1';
echo '<td class="navl"><a style="color:#000000" href="front_content.php?idcatart='.$idcatart.'&MOD_sK_newdate='.$MOD_sK_newdate.'" title="'.mi18n("vorheriger Monat").'"> <<</a></td>';
// aktueller Monat
$MOD_sK_neues_datum = $this->getDateByMonth( 0 );
$MOD_sK_newdate = date("Y", $MOD_sK_neues_datum ).'-'.date("n", $MOD_sK_neues_datum ).'-1';
// Dropdownfeld aufbauen
$MOD_sk_arry_years = count($MOD_sk_arry_down); // Anzahl der Jahre
$MOD_sk_dropdown = '<select name="MOD_sK_newdate" onchange="parent.frames.top.location.href = this.value">';
$MOD_sk_dropdown .= '<option value="'.$MOD_sK_newdate.'">'.$MOD_sK_monatsnamen[ $MOD_sK_datum["mon"] ].' '.$MOD_sK_datum["year"].'</option>';
for( $MOD_sK_dyears = 0; $MOD_sK_dyears < $MOD_sk_arry_years; $MOD_sK_dyears++ )
{
for( $MOD_sK_dmonth = 1; $MOD_sK_dmonth <= 12; $MOD_sK_dmonth++ )
{
$MOD_sk_dropdown .= '<option value="front_content.php?client='.$client.'&parent='.$parent.'&subid='.$subid.'&idcatart='.$idcatart.'&MOD_sK_newdate='.$MOD_sk_arry_down[$MOD_sK_dyears].'-'.$MOD_sK_dmonth.'-1">'.$MOD_sK_monatsnamen[$MOD_sK_dmonth].' '.$MOD_sk_arry_down[$MOD_sK_dyears].'</option>';
}
}
$MOD_sk_dropdown .= '</select>';
if(!$MOD_sK_ddownyn)
echo '<td class="navm"><a style="color:#000000" href="front_content.php?idcatart='.$MOD_sK_idcatart.'&MOD_sK_newdate='.$MOD_sK_newdate.'&MOD_sK_show=m" title="'.mi18n("Monatsuebersicht anzeigen.").'">'.$MOD_sK_monatsnamen[ $MOD_sK_datum["mon"] ].' '.$MOD_sK_datum["year"].'</a></td>';
else
echo '<td class="navm">'.$MOD_sk_dropdown.'</td>';
// Einen Monat vor
$MOD_sK_neues_datum = $this->getDateByMonth( +1 );
$MOD_sK_newdate = date("Y", $MOD_sK_neues_datum ).'-'.date("n", $MOD_sK_neues_datum ).'-1';
echo '<td class="navr"><a style="color:#000000" href="front_content.php?idcatart='.$idcatart.'&MOD_sK_newdate='.$MOD_sK_newdate.'" title="'.mi18n("naechster Monat").'">>> </a></td>';
echo '
</tr>
</table>
<table style="border-left:1px solid #dddddd">';
// Ermittle die maximalen Tage für den aktuellen Monat
$MOD_sK_tag_max = date( "t", mktime( 0, 0, 0, $MOD_sK_datum["mon"], 1, $MOD_sK_datum["year"] ) );
for( $MOD_sK_tag_aktuell = 1; $MOD_sK_tag_aktuell <= $MOD_sK_tag_max; $MOD_sK_tag_aktuell++ )
{
$MOD_sK_tag_nummer = date("w", mktime(0, 0, 0, $MOD_sK_datum["mon"], $MOD_sK_tag_aktuell, $MOD_sK_datum["year"])) + 1;
if ($MOD_sK_tag_aktuell == 1)
{
echo '
<tr class="sk_wtag">
<td class="wtag">'.mi18n("Mo").'</td>
<td class="wtag">'.mi18n("Di").'</td>
<td class="wtag">'.mi18n("Mi").'</td>
<td class="wtag">'.mi18n("Do").'</td>
<td class="wtag">'.mi18n("Fr").'</td>
<td class="wtag">'.mi18n("Sa").'</td>
<td class="wtag">'.mi18n("So").'</td>
</tr>';
// Leere Felder am Anfang / Ende
echo '<tr class="sk_wtag" style="border-left:1px solid #dddddd">';
for( $MOD_sK_check_tag = $MOD_sK_wochenbeginn; $MOD_sK_tag_nummer != $MOD_sK_check_tag; $MOD_sK_check_tag++ )
{
echo '<td> </td>';
if( $MOD_sK_tag_nummer == 1 && $MOD_sK_check_tag == 7 ) // Workaround !!!
{
echo( $this->getCell( $MOD_sK_tag_aktuell ) );
break;
}
if( $MOD_sK_check_tag > 15 ) // Workaround !!!
break;
}
if ($MOD_sK_tag_nummer == $MOD_sK_check_tag)
echo( $this->getCell( $MOD_sK_tag_aktuell ) );
}
else if ($MOD_sK_tag_nummer == $MOD_sK_wochenbeginn)
{
echo '
</tr>
<tr>';
echo( $this->getCell( $MOD_sK_tag_aktuell ) );
}
else
echo( $this->getCell( $MOD_sK_tag_aktuell ) );
}
$MOD_sK_tag_aktuell = $MOD_sK_tag_aktuell - 6;
$MOD_sK_tag_nummer = date("w", mktime(0, 0, 0, $MOD_sK_datum["mon"], $MOD_sK_tag_aktuell, $MOD_sK_datum["year"]));
while( $MOD_sK_tag_nummer != $MOD_sK_wochenbeginn )
{
echo ' <td> </td>';
$MOD_sK_tag_aktuell++;
$MOD_sK_tag_nummer = date("w", mktime(0, 0, 0, $MOD_sK_datum["mon"], $MOD_sK_tag_aktuell, $MOD_sK_datum["year"]));
}
echo '
</tr>
</table>
</div>';
return true;
}
function checkDayFor1( $MOD_sK_datum_check )
{
global $MOD_sK_termine;
$MOD_sk_status_ok = false;
if(is_array($MOD_sK_termine["datum1"])){
$MOD_sK_array_keys = (array_keys ($MOD_sK_termine["datum1"], $MOD_sK_datum_check));
foreach($MOD_sK_array_keys as $MOD_sK_array_key => $MOD_sK_array_key_value)
{
if ($MOD_sK_termine["datum2"][$MOD_sK_array_key_value] == '')
$MOD_sk_status_ok = true;
}
}
return $MOD_sk_status_ok;
}
function checkDayFor2( $MOD_sK_datum_check )
{
global $MOD_sK_termine;
$MOD_sK_anzahl = count($MOD_sK_termine["datum1"]);
$MOD_sk_check_ok = false;
for ($MOD_sK_durchlauf = 0; $MOD_sK_durchlauf <= $MOD_sK_anzahl-1; $MOD_sK_durchlauf++)
{
if ( $MOD_sK_datum_check >= $MOD_sK_termine["datum1"][$MOD_sK_durchlauf] && $MOD_sK_datum_check <= $MOD_sK_termine["datum2"][$MOD_sK_durchlauf] )
$MOD_sk_check_ok = true;
}
return $MOD_sk_check_ok;
}
function checkStatus1( $MOD_sK_datum_check ) // Tag mit reservierten Terminen
{
global $MOD_sK_termine;
$MOD_sk_status_ok = false;
if(is_array($MOD_sK_termine["datum1"])){
$MOD_sK_array_keys = (array_keys ($MOD_sK_termine["datum1"], $MOD_sK_datum_check));
foreach($MOD_sK_array_keys as $MOD_sK_array_key => $MOD_sK_array_key_value)
{
if ($MOD_sK_termine["status"][$MOD_sK_array_key_value] == '1')
$MOD_sk_status_ok = true;
}
}
return $MOD_sk_status_ok;
}
function checkStatus2( $MOD_sK_datum_check ) // Tag mit gebuchten Terminen
{
global $MOD_sK_termine;
$MOD_sk_status_ok = false;
if(is_array($MOD_sK_termine["datum1"])){
$MOD_sK_array_keys = (array_keys ($MOD_sK_termine["datum1"], $MOD_sK_datum_check));
foreach($MOD_sK_array_keys as $MOD_sK_array_key => $MOD_sK_array_key_value)
{
if ($MOD_sK_termine["status"][$MOD_sK_array_key_value] == '2')
$MOD_sk_status_ok = true;
}
}
return $MOD_sk_status_ok;
}
function getCell( $MOD_sK_tag )
{
global $MOD_sK_linkyn;
global $MOD_sK_anzeigemodus;
$MOD_sK_datum_aktuell= date("Y-m-d", mktime(0, 0, 0, date("m", $this->getDateByMonth( 0 ) ), $MOD_sK_tag, date("Y", $this->getDateByMonth( 0 ) ) ) );
$MOD_sK_datum_title= date("d.m.Y", mktime(0, 0, 0, date("m", $this->getDateByMonth( 0 ) ), $MOD_sK_tag, date("Y", $this->getDateByMonth( 0 ) ) ) );
$MOD_sK_wochentag = date("w", mktime(0, 0, 0, date("m", $this->getDateByMonth( 0 ) ), $MOD_sK_tag, date("Y", $this->getDateByMonth( 0 ) ) ) );
$MOD_sK_termin_ok = false;
if ($MOD_sK_anzeigemodus)
{
if( $MOD_sK_wochentag == 6 || $MOD_sK_wochentag == 0 ) // Wochenende
$MOD_sK_style = "wochenende";
else // Normal
$MOD_sK_style = "wochentag";
if( date("Y-m-d") == $MOD_sK_datum_aktuell) // Heute
$MOD_sK_style = "heute";
if( $this->checkDayFor1($MOD_sK_datum_aktuell ) ) // Tag mit direkten Terminen
{
$MOD_sK_termin_ok = true;
if( $MOD_sK_wochentag == 6 || $MOD_sK_wochentag == 0 ) // Wochenende
$MOD_sK_style = "belegtwe";
else
$MOD_sK_style = "belegt";
}
else
{
if( $this->checkDayFor2($MOD_sK_datum_aktuell ) ) // Tag mit indirekten Terminen
{
$MOD_sK_termin_ok = true;
if( $MOD_sK_wochentag == 6 || $MOD_sK_wochentag == 0 ) // Wochenende
$MOD_sK_style = "tangiertwe";
else
$MOD_sK_style = "tangiert";
}
}
}
else
{
$MOD_sK_style = "wochentag"; //
if( $this->checkStatus1( $MOD_sK_datum_aktuell ) ) // Tag mit reservierten Terminen
{
$MOD_sK_termin_ok = true;
$MOD_sK_style = "tangiert";
}
if( $this->checkStatus2( $MOD_sK_datum_aktuell ) ) // Tag mit gebuchten Terminen
{
$MOD_sK_termin_ok = true;
$MOD_sK_style = "belegt";
}
}
global $MOD_sK_idcatart;
if ($MOD_sK_termin_ok)
{
if($MOD_sK_linkyn)
$MOD_sK_val = '<td class="'.$MOD_sK_style.'"><a class="tag" href="front_content.php?idcatart='.$MOD_sK_idcatart.'&MOD_sK_newdate='.$MOD_sK_datum_aktuell.'&MOD_sK_show=t" title="'.mi18n("Termine für den").' '.$MOD_sK_datum_title.' '.mi18n("anzeigen").'.">'.$MOD_sK_tag.'</a></td>';
else
{
if ($MOD_sK_anzeigemodus)
$MOD_sK_val = '<td class="'.$MOD_sK_style.'"><a class="tag" title="'.mi18n("Für den").' '.$MOD_sK_datum_title.' '.mi18n("existieren Termine").'.">'.$MOD_sK_tag.'</a></td>';
else
$MOD_sK_val = '<td class="'.$MOD_sK_style.'"><a class="tag" title="'.mi18n("gebucht").'">'.$MOD_sK_tag.'</a></td>';
}
}
else
{
if ($MOD_sK_anzeigemodus)
$MOD_sK_val = '<td class="'.$MOD_sK_style.'"><a class="tag" title="'.mi18n("Für den").' '.$MOD_sK_datum_title.' '.mi18n("existieren keine Termine.").'">'.$MOD_sK_tag.'</a></td>';
else
$MOD_sK_val = '<td class="'.$MOD_sK_style.'"><a class="tag" title="'.mi18n("frei").'">'.$MOD_sK_tag.'</a></td>';
}
return $MOD_sK_val;
}
}
?>