Ciao a tutti, ho installato e configurato awstats per gestire le statistiche giornaliere della nostra Intranet aziendale.
Una lacuna che ho trovato nel pacchetto standard è che non si possono avere statistiche a livello giornaliero ma solo mensile.
Questo nonostante come spiegato nelle faq presenti in documentazione, l'applicativo sia perfettamente in grado di creare reports suddivisi per giornata.
Dato che avevo questa necessità, sono intervenuto in fase di generazione del log, impostando il parametro -databasebreak=day nella linea di comando della fase di update.
Ho visto che veniva creato correttamente il log della giornata interessata, ma si poneva a questo punto il problema di selezionare e visionare quella giornata dall'interfaccia web.
Sempre nelle faq viene spiegato come impostare i parametri via querystring per richiedere la visualizzazione del giorno specifico, ma farlo giornata per giornata è assurdo.
Allora sono intervenuto nella pagina awstats.pl cercando di aggiungere la select con il campo giorno, e il parametro databasebreak=day qualora venisse selezionato un giorno specifico anzichè tutto il mese.
In questo modo il giorno del mese può essere selezionato molto più comodamente senza intervenire direttamente nell'url che richiama la pagina.
Sto tenendo controllate le statistiche e la cosa pare funzionare.
Questo è un esempio di come esce il form di selezione del periodo:
Dato però che non conosco il perl, vorrei postare il codice da me modificato qui di seguito.
Così se qualcuno dovesse scoprire che ho scritto delle cavolate, potrebbe correggermi.
Altrimenti se la cosa funziona davvero, potrei aiutare qualcuno che ha la mia stessa esigenza.
codice:
#PERSONALIZZAZIONE PER GIORNO -- INIZIO
print "<script type=\"text/javascript\">\n";
print "function impostabreak() {\n";
print "if (document.FormDateFilter.day.value!=\"\") {\n";
print "document.FormDateFilter.databasebreak.value=\"day\"\n";
print "} else {\n";
print "document.FormDateFilter.databasebreak.value=\"\"\n";
print "}\n";
print "}\n";
print "</script>\n";
print "<input type=\"hidden\" name=\"databasebreak\" value=\"\">\n";
print "<select onchange=\"impostabreak();\" class=\"aws_formfield\" name=\"day\">\n";
foreach ( 1 .. 31 ) {
my $dayix = sprintf( "%02s", $_ );
print "<option"
. ( "$DayRequired" eq "$dayix"
? " selected=\"true\""
: "" )
. " value=\"$dayix\">$dayix</option>\n";
}
if ( $AllowFullYearView >= 2 ) {
print "<option"
. ( $DayRequired eq '' ? " selected=\"true\"" : "" )
. " value=\"\">--</option>\n";
}
print "</select>\n";
#PERSONALIZZAZIONE PER GIORNO - FINE
Tutto questo va messo chiaramente subito prima della select del month.
Che ne dite ?