So hab mal schnell die Termin.ips geupdatet. Ist jetzt auf dem aktuellen Stand und zeigt auch Termine für morgen an.
Deine Sprachausgabe oder was Du für die einzelnen Terminmodis so machst bitte wieder einfügen.
include(IPS_GetScriptFile("Konstanten"));
//--------------------- Termine für Designer bereinigen -----------------------
$var_integer = array
(
"term_anz1_stunde",
"term_anz1_minute",
"term_anz1_tag",
"term_anz1_monat",
"term_anz2_stunde",
"term_anz2_minute",
"term_anz2_tag",
"term_anz2_monat",
"term_anz3_stunde",
"term_anz3_minute",
"term_anz3_tag",
"term_anz3_monat",
"term_anz4_stunde",
"term_anz4_minute",
"term_anz4_tag",
"term_anz4_monat",
"term_anz5_stunde",
"term_anz5_minute",
"term_anz5_tag",
"term_anz5_monat"
);
foreach($var_integer as $value)
{
SetValueInteger($value, 0);
}
$var_string = array
(
"term_anz1_inhalt",
"term_anz2_inhalt",
"term_anz3_inhalt",
"term_anz4_inhalt",
"term_anz5_inhalt"
);
foreach($var_string as $value)
{
SetValueString($value, "-");
}
$var_bool = array
(
"Term",
"Term_mor",
"Term_mod1_Ansage",
"Term_mod2_Ansage",
"Term_mod3_Ansage",
"Term_mod4_Ansage",
"Term_mod5_Ansage",
"Term_mod6_Ansage"
);
foreach($var_bool as $value)
{
SetValueBoolean($value, false);
}
//------------------------------ Daten holen ----------------------------------
$termfile = file_get_contents(IPS_GetKernelDir()."termine.txt"); //Termine in Variable einlesen
$term_arr_komplett = explode("
", $termfile); // nach Zeilenumbruch trennen und in array
//----------------------------- Termine suchen --------------------------------
$Term_Zahl = 0;
$erg = "";
//alle Termine durchlaufen
foreach($term_arr_komplett as $value)
{
$term_arr = explode(",", $value); // einzelnen Datensatz in Daten zerlegen
$term_mo = (bool)$term_arr[3];
$term_di = (bool)$term_arr[4];
$term_mi = (bool)$term_arr[5];
$term_do = (bool)$term_arr[6];
$term_fr = (bool)$term_arr[7];
$term_sa = (bool)$term_arr[8];
$term_so = (bool)$term_arr[9];
$term_aktiv = (bool)$term_arr[10];
$term_stunde = (int)$term_arr[11];
$term_minute = (int)$term_arr[12];
$term_tag = (int)$term_arr[13];
$term_monat = (int)$term_arr[14];
$term_inhalt = $term_arr[15];
if($term_aktiv) //wenn aktiver Termin gefunden => prüfen
{
//Timestamp von heute
$heute = mktime (0,0,0,date("m"),date("d"),date("y"));
//Timestamp des Termins aus der for Schleife
$termin_dat = mktime (0,0,0, $term_monat, $term_tag ,date("y"));
//schauen ob Termin auf heute($erg = 0) oder morgen fällt ($erg = -1)
$diff = $heute-$termin_dat;
$erg = $diff/((60*60)*24);
//heutigen Tag ermitteln
$tag = (date("w"));
//wiederkehrende Wöchentliche Termine die auf heute fallen prüfen
if ($tag == 0 and $term_so == 1 or $tag == 1 and $term_mo == 1 or
$tag == 2 and $term_di == 1 or $tag == 3 and $term_mi == 1 or
$tag == 4 and $term_do == 1 or $tag == 5 and $term_fr == 1 or
$tag == 6 and $term_sa == 1)
{
$erg = 0;
}
//wiederkehrende Wöchentliche Termine die auf morgen fallen prüfen
if ($tag == 6 and $term_so == 1 or $tag == 0 and $term_mo == 1 or
$tag == 1 and $term_di == 1 or $tag == 2 and $term_mi == 1 or
$tag == 3 and $term_do == 1 or $tag == 4 and $term_fr == 1 or
$tag == 5 and $term_sa == 1)
{
$erg = -1;
}
//------------------ Termine für den Designer Startscreen ----------------
if ($erg == 0 or $erg == -1)
{
SetValueInteger("Term_Zahl", $Term_Zahl+1);
$Term_Zahl = GetValueInteger("Term_Zahl");
SetValueInteger("term_anz".$Term_Zahl."_stunde",$term_stunde);
SetValueInteger("term_anz".$Term_Zahl."_minute",$term_minute);
SetValueInteger("term_anz".$Term_Zahl."_tag",$term_tag);
SetValueInteger("term_anz".$Term_Zahl."_monat",$term_monat);
SetValueString("term_anz".$Term_Zahl."_inhalt",$term_inhalt);
}
//------------------- Termine für die einzelnen Modi vorlesen ------------
$Terminmodus = GetValueInteger("Terminmodus");
//---------------------- jährliche Termine ermitteln ---------------------
if((int)$term_arr[11] != 0) //einmaliger Termin zu einer bestimmten Zeit
{
$jetzt = mktime (date("H"),date("i"),0,date("m"),date("d"),date("y"));
$term_ber = mktime ((int)$term_arr[11],(int)$term_arr[12],0,date("m"),date("d"),date("y"));
}
else //jährlicher Termin
{
$term_ber =0;
$jetzt =0;
}
//--- Terminmodus 1 ---------
if($Terminmodus == 1 and $erg == -1)
{
SetValueBoolean("Term_mod1_Ansage", true);
}
//--- Terminmodus 2 ---------
if($Terminmodus == 2 and $erg == -1)
{
SetValueBoolean("Term_mod2_Ansage", true);
SetValueBoolean("Term_mor", true);
}
//--- Terminmodus 3 ---------
if($Terminmodus == 3 and $erg == 0 and $term_ber >= $jetzt)
{
SetValueBoolean("Term_mod3_Ansage", true);
}
//--- Terminmodus 4 ---------
if ($Terminmodus == 4 and $erg == 0 and $term_ber >= $jetzt)
{
SetValueBoolean("Term_mod4_Ansage", true);
}
//--- Terminmodus 5 ---------
if ($Terminmodus == 5 and $erg == 0 and $term_ber >= $jetzt)
{
SetValueBoolean("Term_mod5_Ansage", true);
SetValueString("Ansagetext_wav_SK2", "Achtung Termin heute".$term_inhalt.",Sprache");
SK2_wait(2); // Laufzeit der Winamp Ausgabe
}
//--- Terminmodus 6 ---------
if ($Terminmodus == 6 and $erg == 0 and $term_ber >= $jetzt)
{
SetValueBoolean("Term_mod6_Ansage", true);
}
}
//---------------------------------------------------------------------------
} // foreach Schleife beenden
//---------------------------- Feiertage --------------------------------------
$feiertag = array
(
"Ostersonntag",
"Ostermontag",
"Karfreitag",
"Christi Himmelfahrt",
"Pfingstsonntag",
"Pfingstmontag",
"Neujahr",
"Tag der Arbeit",
"Tag der deutschen Einheit",
"Reformationstag",
"Heiligabend",
"1. Weihnachtsfeiertag",
"2. Weihnachtsfeiertag",
"Silvester"
);
foreach($feiertag as $value)
{
$feiert = explode(".", TT_Feiertage($value, (int)date("Y"))); // in array (tag.monat.jahr)
//Timestamp von heute
$heute = mktime (0,0,0,date("m"),date("d"),date("y"));
//Timestamp des Feiertages
$termin_dat = mktime (0,0,0,(int)$feiert[1],(int)$feiert[0],date("y"));
//schauen ob Termin auf heute($erg = 0) oder morgen fällt ($erg = -1)
$diff = $heute-$termin_dat;
$erg = $diff/((60*60)*24);
//Feiertag gefunden => hier speichern
if ($erg == 0)
{
SetValueInteger("Term_Zahl", $Term_Zahl+1);
$Term_Zahl = GetValueInteger("Term_Zahl");
SetValueInteger("term_anz".$Term_Zahl."_stunde", 0);
SetValueInteger("term_anz".$Term_Zahl."_minute", 0);
SetValueInteger("term_anz".$Term_Zahl."_tag", (int)date("d"));
SetValueInteger("term_anz".$Term_Zahl."_monat", (int)date("m"));
SetValueString("term_anz".$Term_Zahl."_inhalt",$value);
}
//--------------------- Feiertag für die einzelnen Modi vorlesen ------------
//--- Terminmodus 1 ---------
if($erg == -1 and $Terminmodus == 1)
{
SetValueBoolean("Term_mod1_Ansage", true);
}
//--- Terminmodus 2 ---------
if($erg == -1 and $Terminmodus == 2)
{
SetValueBoolean("Term_mod2_Ansage", true);
}
//--- Terminmodus 3 ---------
if($erg == 0 and $Terminmodus == 3)
{
SetValueBoolean("Term_mod3_Ansage", true);
}
//--- Terminmodus 4 ---------
if ($erg == 0 and $Terminmodus == 4)
{
SetValueBoolean("Term_mod4_Ansage", true);
}
//--- Terminmodus 5 ---------
if ($erg == 0 and $Terminmodus == 5)
{
SetValueBoolean("Term_mod5_Ansage", true);
}
//--- Terminmodus 6 ---------
if ($erg == 0 and $Terminmodus == 6)
{
SetValueBoolean("Term_mod6_Ansage", true);
}
//---------------------------------------------------------------------------
if ("term_anz1_inhalt" != "-")
{
SetValueBoolean("Term", true);
}
} //for Schleife beenden
//------------------------- Terminmodus beenden -------------------------------
SetValueInteger("Terminmodus", 0);
IPS_SetScriptTimer("Termin", 0);
//-----------------------------------------------------------------------------