Sezioni: Recensioni di Libri - Recensioni di Film - Telefoni Cellulari
Wp-Dstats2 - Grandi Modifiche!
Usando per un bel po' il mio stesso programma di statistica, mi rendo conto che manca sempre qualcosa...
Il mio plugin di statistica (che e' un plugin solo perche' mi appoggio per i titoli e i cookie e un po' di funzioni, ma penso sia piu' che svincolabile da WP) e' abbastanza completo, quasi soddisfacente...
Ma usandolo ormai da un bel po', mi sto rendendo conto che mancano un bel po' di cose...
In primo luogo (cosa ormai quasi sistemata) le pagine dei dettagli non erano abbastanza dettagliate, adesso mostrano tutto.
Se non altro non costringono a saltare da una pagina all'altra come dei perfetti imbecilli.
Poi ho aggiunto, in caso si tratti di pagine "indice" (cioe' senza il famoso "id" dell'articolo) la visualizzazione dell'URL della pagina, in modo che si possa sapere se qualcuno si legge, ad esempio, gli archivi.
Perche' c'e' una bella differenza tra la pagina indice generica e un archivio di categoria.
Il riadattamento delle pagine dei dettagli prendera' un bel po' di tempo, e alla fine sara' quello che faro' per il resto della settimana (non e' che mi ci vada tanto, ma ho anche altro da fare che non sia solo giocare con il php...).
Sperando di poter rilasciare una "nuova" versione del "coso" tra sabato e domenica (forse sono ottimista...).
Il prossimo passo sara' quello di creare una pagina di ricerca, con il suo bel form e il suo bell'output dei risultati (per ovvi motivi leggermente diverso dalle pagine dei dettagli, dato che bene o male ci saranno piu' opzioni).
Mostrera' la query eseguita (per i maniaci di SQL) penso in fondo alla pagina.
Per il resto sara' possibile ricercare per ip (supporta il "like", quindi si possono anche cercare intere classi), per "utente", per pagina, range di date (no, l'ora no, vi cuzzate sempre e comunque tutto il giorno che di rimbecillire per fare un form non ho tutta sta voglia), browser, sistema operativo, referrer eccetera (praticamente potete cercare per qualunque campo).
Probabilmente ci sara' anche la possibilita' di limitare il numero di record restituiti, ordinare sia per ordine crescente che decrescente, eventualmente raggruppare e quindi conteggiare.
Non so bene quanto ci mettero' a sistemare questa cosa della ricerca, ma non penso di cavarmela in meno di due settimane (poi dipende anche se mi viene l'ispirazione da "notte insonne a programmare", cosa sempre possibile).
Il passo ancora successivo (io vado per "utilita'", piu' sento il bisogno di un'aggiunta prima la faccio) e' quello di aggiungere un campettino nella tabella che indichi se si tratta di "bot", "feedreader", "essere umano".
Il feedreader e' piu' semplice, mi basterebbe aggiungere un parametro (un altro?) alla chiamata della funzione di registrazione, e chiamare con quel parametro la funzione nei file dei feed.
La cosa difficile e' quando si tratta di distinguere uno spider da un essere umano (potrei anche decidere che se non capisco ne' sistema operativo ne' browser usati si tratta di spider, ma la cosa potrebbe dare problemi).
Finita anche la menata del "ma sei umano?!?", direi che potrei anche pensare ai grafici, che saranno anche quasi inutili, ma sono carini.
In questo caso ci sara' altra pagina a parte, che mostrera' solo i grafici, con possibilita' di dettaglio solo per mese e semplice e banale conteggio di "quante pagine viste" e colori diversi in caso di "bot", "feedreader", "esseri umani".
Devo solo vedere come fare i grafici.
Per certi versi preferirei lavorare con semplici immagini (la solita gif da un pixel ridimensionata a seconda delle dimensioni della barra), se non altro perche' non richiede librerie aggiuntive e quindi riesco ad avere la certezza che funzioni su qualunque server supporti php.
Ma devo ammettere che usare librerie grafiche permette cose piu' carucce.
Alla fine usero' tre gif, una per colore, una per "tipo" di accesso (i soliti del "ma sei umano?!?"), e i grafici mi sa che ricorderanno parecchio quelli di awstats.
Finita anche la menata estetica, spero di poter archiviare il discorso statistiche, svincolarlo da WP, eventualmente lavorare a versioni "dedicate" ad altre piattaforme di blogging (Movable Type e Nucleus per iniziare), di sicuro far uscire una versione libera da qualunque piattaforma, in modo che anche se avete un sito "normale" (leggesi, un sito qualunque) potete usare sta cosa.
La versione "definitiva" e "con tutti i fronzoli" per WP spero sara' pronta per fine settembre (ma credo di essere troppo ottimista), mentre per le altre versioni mi sa che ci sara' da aspettare un mese in piu', il tempo di pulire il codice, prendere le funzioni che mi servono da WP e metterle in file "extra" e testare un po' il tutto.
Se avete idee o suggerimenti, fatemi sapere :)






belle le tue stats :)
una cosa che secondo me manca e' un qualcosa per blacklistare gli ip dei referrers; ad esempio ho visto che abbiamo avuto lo stesso problema con quelli di webdevboard, stavo scrivendo una modifica per aggiungere un filtro, se vuoi te lo mando.
ho scritto un paio di funzioni per avere i referrer e le last_key senza la formattazione delle stats e racchiuse in un tag da passare come parametro.
gia' che stai modificando il tutto potresti considerare l'opportunita' di scrivere le funzioni che producono una lista in modo che producano un output non formattato, magari potendo specificare tra che tag racchiudere ogni voce: questo permetterebbe di integrare comodamente le funzioni all'interno della formattazione delle altre pagine.
my 2c, e complimenti per il lavoro :)
Se aggiungi codice (la formattazione riesco a farla anche da sola, anche se e' una palla immane :P) manda pure per mail che integro ;-)
Per blacklistare puoi usare l'array ignore_ip (quello con solo 127.0.0.1 come default) per mettere gli ip, per mettere pezzi di referrer ci stavo pensando ma mi sa che appesantisco un bel po' la "record", comunque ci provo...
PS:
L'output "non formattato" va bene com'e' per esempio qui in barra a sinistra? cioe' con i + e i br?
Che essendo un pezzo di codice html abbastanza semplice penso sia anche abbastanza modificabile dall'utente (le tabelle ammetto che sono un incubo per metterci le mani...) :)
per il momento ho aggiunto in dstats_record():
$ignore_referrer = array("ignore1","ignore2");
...
foreach ($ignore_referrer as $entry)
{
if (strpos($user_ref, $entry) !== false)
return;
}
come vedi cerca la substring. ho pensato alle regexp, ma probabilmente non vale la pena; un domani pensavo di leggere le entry una tabella, e creare un link 'ignore' nelle stats che mi permetta di inserire da li' gli indesiderati.
ti mando le mie due fni modificate, anche se sono poco generiche(fanno solo ed esattamente quello che mi serviva)
ciao
Ok, questo lo integro (e da me mi sa che lo lascio vuoto ma son fatti miei) magari stasera o domani.
La mail l'ho ricevuta, "labellata" e "stellata", appena finisco di sistemare le pagine dei dettagli (che sono una palla immane da mettere a posto, dovevo pensarci prima) passo a quello :)