Ich habe den Code von Obicom benutzt, um meine Anrufliste der Fritzbox im Designer darzustellen. Es ist zwar leicht angepaßt, weil sich scheinbar einiges in JFritz geändert hat, aber für meine Bedürfnisse reicht es aus.
In seinem Vorschlag dazu hier im Forum hat er in 2 Zeilen die Formatierung der Ausgabe angegeben. Leider zerreist es mir die Ausgabe total wenn der Name des Anrufers relativ lang ist … und da nicht alle Namen gleich lang sind, siehts dann mit den nachfolgenden oder vorherigen Spalten nicht so toll aus
<?
/*
*******************************
IP-SYMCON Event Scripting
*******************************
File : Anrufliste.ips.php
Trigger : FB_Init Script -> bei Änderungen von -> (string)Var=Fritzbox
Interval : Einmalige Ausführung nach 30 Sekunden verzögerung.
*/
// Jetzt gehts los ....
IPS_SetScriptTimer('Anrufliste_FB',0) ;
if (file_exists('C:\Programme\JFritz\jfritz.calls.xml'))
{
// Ggfs. Pfad anpassen !!!
$xml = simplexml_load_file('C:\Programme\JFritz\jfritz.calls.xml');
}
else {
exit("Konnte Datei nicht laden. ");}
$count=1;
setlocale (LC_ALL, 'German_Germany.1252');
$Fritzlog = strftime('Aktualisiert am %A, den %d.%m.%Y, um %H:%M Uhr');
$Fritzcache = "Zeitpunkt Rufnummer Name auf MSN Calltype
\r" ;
$Fritzlog = $Fritzlog."
\r".$Fritzcache."
" ;
// Ab hier wird die XML Datei (jfritz.calls.xml) zerlegt.
foreach ($xml->entry as $entry) {
// Hier wird die Zeilenanzahl festgelegt.
if ($count == 30)
{
// SetValueString("Fritzlog",$Fritzlog);
echo $Fritzlog ;
return ;
}
$calltype = $entry->attributes() ;
$date = $entry->date ;
$caller = $entry->caller ;
if ($caller == "") {$caller = "Keine Nummer" ;}
$name = findNumberJF($caller) ;
$caller = str_replace ( '+49', '0', $caller) ;
if (($name == "Unbekannt") && ($caller != "Keine Nummer")) {
$name = findNumberDE($caller) ; }
$port = $entry->port ;
$route = $entry->route ;
$duration = $entry->duration ;
// die $route Abfrage filtert z.B. (bei mir) eine Faxnumer aus.
if ((($calltype == "call_in") OR ($calltype == "call_in_failed")) && $route != "24") {
$count = $count+1 ;
// Übersetzung von deutschen Umlauten
$name = str_replace("Ä","Ä",$name) ;
$name = str_replace("ä","ä",$name) ;
$name = str_replace("Ö","Ö",$name) ;
$name = str_replace("ö","ö",$name) ;
$name = str_replace("%F6","ö",$name) ;
$name = str_replace("%FC","ü",$name) ; //neu
$name = str_replace("Ãœ","Ü",$name) ;
$name = str_replace("ü","ü",$name) ;
$name = str_replace("ß","ß",$name) ;
$Fritzlog = $Fritzlog.$date." ".$caller." ".$name." ".$route." ".$calltype."
";
}
}
SetValueString("Fritzlog",$Fritzlog);
echo $Fritzlog ;
Das hier sollten die 2 Zeilen sein:
Für die Überschrift der Spalten
$Fritzcache = "Zeitpunkt Rufnummer Name auf
und
Die Ausgabe der Zeilen
$Fritzlog.$date." ".$caller." ".$name." ".$route." ".$calltype."
"
Welche Möglichkeiten habe ich um das sauber auszugeben? Kann man irgendwie die Namensfelder mit Leerzeichen „auffüllen“ oder das alles als Tabelle ausgeben, wo sich die Zellen dann automatisch an die längste anpassen?
Mit den habe ich schon experimentiert, aber dann werden auch die verschoben, die eigentlich passen.
Gruß
Jens