Wer kann bei Perl-Script helfen - Druckversion +- easyVDR (http://www.easy-vdr.de) +-- Forum: Off-Topic (http://www.easy-vdr.de/forum-7.html) +--- Forum: Allgemeines (http://www.easy-vdr.de/forum-62.html) +---- Forum: Webmaster (http://www.easy-vdr.de/forum-63.html) +---- Thema: Wer kann bei Perl-Script helfen (/thread-11849.html) |
Wer kann bei Perl-Script helfen - sinai - 22.09.2011 Hallo zusammen Ich betreibe einen Hylafaxserver, der völlig problemlos arbeitet. Ab und an (bei bestimmten Kunden) möchte ich kontrollieren, ob das abgesendete Fax auch ankam - dazu nutze ich hylafax_mod für Webmin (dann kann das auch meine Frau) Die Seite wird korrekt angezeigt, aber ich hätte gerne anstelle der Auftragsnummer das Versanddatum angezeigt. Der Abschnitt wird wohl in send_done.pl in Zeile 59 erzeugt. Nur woher kommt $item? Aus hylafax-lib.pl? Und wie? Ich würde eben im Array $item den ersten Wert von der Auftragsnummer ins Versanddatum ändern. Das Versanddatum könnte man aus docq/doc in Zeile 60 holen, denn in dem Verzeichnis sind alle docxxx.ps-Dateien gespeichert. Nur wie? Wenn weitere Dateien oder Infos benötigt werden, liefere ich die gerne. Danke für die Hilfe, denn Perl kann ich nicht... Andy Re: Wer kann bei Perl-Script helfen - soulianis - 23.09.2011 Hallo sinai, wenn ich das richtig sehe, passiert folgendes: @lines=faxqueue($QPAR); -> ruft faxstat -ld auf und liest die von faxstat -ld gelieferten Zeilen ins @lines Array ein ... foreach $line (@lines) { $line =~ /^(\d+) /; $faxorder{$1}=$line; } -> baut aus den Zeilen ein assoziatives Array mit der Job-ID als Key ... # sorting faxes by num if ($q->param('ASC.x')) { @sortfax = sort {$a <=> $b} (keys %faxorder); } else { @sortfax = sort {$b <=> $a} (keys %faxorder); } foreach $faxnum (@sortfax) { @items=&queueItems($faxorder{$faxnum},@sizes); -> erzeugt einen Sortierschlüssel für das Array (Job-ID auf- oder absteigend), liest das Array dann in der Sortierfolge aus, bereitet die Felder der jeweiligen faxstat -ld Zeile als @items Array auf Leider enthält die faxstat -ld Ausgabe das Versanddatum nicht. Dein Vorschlag, es aus dem modification date der Queue-Datei zu ermitteln, sollte funktionieren. Vielleicht so: 1) Vor der foreach $item (@items) Schleife merkst Du Dir den Wert von $items[0] (also die Job-ID). Zum Beispiel: $id = $items[0]; 2) Jetzt ersetzt Du nach der foreach $item (@items) Schleife alle Vorkommnisse von $items[0] durch $id. 3) Nach Deiner neuen $id = $items[0]; Zeile (vor der foreach $item (@items) Schleife) setzt Du $items[0] auf das modification date der Queue-Datei: if (-e "docq/doc".$id.".ps") { $items[0] = strftime "%d.%m.%Y %H:%M", localtime((stat "docq/doc".$id.".ps")[9]); } Das ist ein normaler strftime Format-String, den Du nach Belieben anpassen kannst. Mit if(-e ...) wird getestet, ob die Queue-Datei existiert. Sollte immer der Fall sein, aber falls nicht, wird verhindert, dass das Skript aufgrund eines stat() Fehlers abbricht, stattdesen wird wie vorher die Job-ID ausgegeben. 4) vermutlich brauchst Du jetzt noch am Anfang der Datei (nach den require Zeilen) ein use POSIX; Ungetestet - sollte so oder ähnlich funktionieren Viel Glück! Re: Wer kann bei Perl-Script helfen - soulianis - 27.09.2011 Bin neugierig: Hat's geklappt? Re: Wer kann bei Perl-Script helfen - sinai - 27.09.2011 Werde grade mit Arbeit zugesch... Kam noch nicht zum testen. Sent from my HTC Hero using Tapatalk |