Hallo Franky76,
hier nun der „Basiscode“:
<?
// In dieser Variablen steht "zentral" der aktuelle Wochentag als Zahl
$AktuellerWochentag = GetValueInteger(37151 /*[Sonstige Daten\Variablen\Sonstige Variablen\Aktueller Wochentag (Nr)]*/ );
// In dieser Variablen steht "zentral" die aktuelle Kalenderwoche als Zahl
$AktuelleKalenderwoche = GetValueInteger(36714 /*[Sonstige Daten\Variablen\Sonstige Variablen\Kalenderwoche des Jahres]*/ );
// Wenn eine Onlineverbindung besteht...
If (GetValueBoolean(18029 /*[Fritz!Box\DSL\Status]*/) == True)
{
// Wenn Montag bis Freitag ist, dann zeige die aktuelle Kalenderwoche...
If (($AktuellerWochentag >= 1) and ($AktuellerWochentag <= 5))
{
$ModKalenderwoche = $AktuelleKalenderwoche;
}
//...ansonsten den der nächsten Kalenderwoche
else
{
$ModKalenderwoche = $AktuelleKalenderwoche + 1;
}
//Echo $AktuellerWochentag." ".$AktuelleKalenderwoche." ".$ModKalenderwoche;
// Wenn die Kalenderwoche kleiner als 10 ist, muss vor die Zahl noch eine führende Null gestellt werden
If ($ModKalenderwoche < 10)
{
$ModKalenderwoche = "0".$ModKalenderwoche;
}
//echo $ModKalenderwoche;
$Antwort = file_get_contents("http://Benutzername:Passwort@...Link.../stundenplan/plan/$ModKalenderwoche/c/c00001.htm");
If ($Antwort == False)
{
SetvalueString(34075 /*[BRGS\Stundenplan]*/ , "Es ist ein Fehler aufgetreten!");
}
else
{
// Korrektur einiger Werte...
$StundenplanArray = get_mark($Antwort, "</head>*</TR></TABLE><TABLE");
$Stundenplan = $StundenplanArray[0];
$Stundenplan = str_Replace('color="#000000"', '', $Stundenplan);
$Stundenplan = str_Replace('color="#FF0080"', '', $Stundenplan);
$Stundenplan = str_Replace('bgcolor="#FFFFFF"', '', $Stundenplan);
$Stundenplan = str_Replace('border="3"', 'border="1"', $Stundenplan);
$Stundenplan = str_Replace('Arial', GetValueString(32181 /*[Server\Einstellungen\Webfront Einstellungen\Schriftart]*/ ), $Stundenplan);
// setzen der Variablen
SetvalueString(34075 /*[BRGS\Stundenplan]*/ , $Stundenplan);
$Datum = GetValueString(23632 /*[Sonstige Daten\Variablen\Sonstige Variablen\Aktuelles Datum]*/ );
$Uhrzeit = GetValueString(37001 /*[Sonstige Daten\Variablen\Sonstige Variablen\Aktuelle Uhrzeit]*/ );
SetValueString(33832 /*[BRGS\Letzte Aktualisierung]*/ , $Datum." ".$Uhrzeit);
$Kalenderwochenbeginn = date("d.m.Y", getKW($ModKalenderwoche, date("Y")));
$Kalenderwochenende = date("d.m.Y",(strtotime("+6 day", strtotime($Kalenderwochenbeginn))));
SetValueString(23148 /*[BRGS\Kalenderwoche]*/ , $Kalenderwochenbeginn." - ".$Kalenderwochenende);
echo $Stundenplan;
}
}
return;
// Diese Funktion trennt die relevanten Bereiche aus dem Ausschnitt heraus $string ist dabei der zu durchsuchende Gesamtstring,
// in $Mark sind durch "*" getrennt der Beginn des zu suchenden Strings und das Ende des zu suchende Abschnittes. Beispiel für den Text "<div>*</div></li>"
function get_mark($string,$mark)
{
$ausgabe = array();
$template = explode("*",$mark);
$mark = $template[0];
$end = $template[1];
$string = strstr($string,$mark);
$temp = explode($mark,$string);
$a = 1;
foreach ($temp as $tempx)
{
$tempx = explode($end,$tempx);
$tempx = $tempx[0];
if ($tempx)
{
array_push ($ausgabe,$tempx);
}
}
return $ausgabe;
}
// Diese Function ermittelt den ersten Montag des Jahres für den Beginn der ersten Kalenderwoche (kann auch im Vorjahr liegen!)
function firstMonday($year = null)
{
if(is_null($year)) $year = date("Y");
$date = mktime(0,0,0,1,4,$year);
return mktime(0,0,0,1, date("d", $date) + (date("w", $date) == 0 ? -6 : (1 - date("w", $date))), $year);
}
// Diese Funktion ermittelt den Montag einer bestimmten Kalenderwoche und -jahr
function getKW($kw, $year = null)
{
if(is_null($year)) $year = date("Y");
return firstMonday($year) + 604800 * ($kw - 1);
}
?>
Hier noch mal die Berechnung der aktuellen Kalenderwoche:
// *** Kalenderwoche setzen ***
SetValueInteger(36714 /*[Sonstige Daten\Variablen\Sonstige Variablen\Kalenderwoche des Jahres]*/ , intval(date("W")));
So, ich hoffe Du kannst damit etwas anfangen. Bei Fragen bitte fragen!
Ansonsten interessiert mich selbstverständlich auch falls Du dort noch weitere Features entdeckst.
Joachim