Top commentatori del mese versione 1.1

topusers Una volta tanto rilascio un aggiornamento senza bugfix, sto decisamente migliorando.

Si tratta di un aggiornamento per il plugin (per dBlog) Top commentatori del mese che devo ammettere ha avuto un discreto successo, veniamo alla novità:

Nella precedente versione utilizzavo la mancanza del link dell’autore come discriminante per essere esclusi dalla classifica. Ciò era utile per esempio per autoescluderli ma ineffetti era scomodo ed insufficiente.

Scomodo perché molti webmaster/autori sono abituati ad inserire il link anche quando commentato nel proprio blog, e si sà le abitudini sono difficili da cambiare.

perché si potrebbe avere la necessità di escludere, a prescidere dalla presenza del link, uno o più nick specifici… magari per scoraggiare commenti spammosi o vero e proprio spam.

Eccovi accontentati: ho aggiunto una variabile in cui inserire i nick (separati da virgola) da escludere dalla classifica.

[dm]17[/dm]

Per l’installazione, oltre alle indicazioni presenti nello zip, vi rimando al primo articolo.

Per chi invece avesse già installato la versione 1.0 queste solo le semplici modifiche da apportare:

1. Aggiungere la seguente costante alle altre: Const Exclude = “”. Tra le virgolette vanno messi i nick (separati da virgola) da escludere. (Es. Const Exclude = “carlo,marco,maria rosaria”)

2. Sostituite la seguente riga:

SQLCommAutori = "SELECT TOP " & MaxTopUsers & ", commenti.Autore, commenti.Link, Count(commenti.Autore) AS conta FROM commenti GROUP BY commenti.Autore, commenti.Link, Mid([commenti.Data],5,2), commenti.Autore HAVING (((commenti.Link)<>'') AND ((CInt(Mid([commenti.Data],5,2)))=CInt(Month(Date())))) ORDER BY Count(commenti.Autore) DESC"

con questa:

If Exclude<>"" Then ExcludeTemp= Split(Exclude,",") For i=0 To Ubound(ExcludeTemp) ExcludeQueryPart = ExcludeQueryPart & "AND ((commenti.Autore)<>'" & ExcludeTemp(i) & "')" Next End If SQLCommAutori = "SELECT TOP " & MaxTopUsers & ", commenti.Autore, commenti.Link, Count(commenti.Autore) AS conta " &_ "FROM commenti " &_ "GROUP BY commenti.Autore, commenti.Link, Mid([commenti.Data],5,2), Mid([commenti.Data],1,4), commenti.Autore, commenti.Autore, commenti.Autore " &_ "HAVING (((commenti.Link)<>'') AND ((CInt(Mid([commenti.Data],5,2)))=CInt(Month(Date()))) AND ((CInt(Mid([commenti.Data],1,4)))=CInt(Year(Date()))) " & ExcludeQueryPart & ") " &_ "ORDER BY Count(commenti.Autore) DESC"

Niente di più semplice.

Sicuro che questa piccola modifica farà felici in molti, vi saluto!

UPDATE
Grazie a Gionni che me lo ha segnalato, ho scoperti un piccolo bug che faceva ripescare i commenti dello stesso mese ma degli anni precedenti! Cmq è stato già risolto.

Tags:

36 Comments
  1. Inauguro i commenti con due note.
    1. Non ci sono più i top 5 sul sito… o forse sono il primo del mese : - )
    2. Probabile bug, non so se la nuova versione lo risolve, ma sul mio sito il top-user sbarella, mi va a ripescare i commentatori di… un anno fa!!!

  2. Riguardo alla mia classifica, esatto è vuota visto che siamo ad inizio mese.
    Riguardo all’altro problema… c’hai proprio ragione visto che confronto solo il mese… ops!
    Ritiro gli autocomplimenti che mi ero fatto.
    5 minuti risolvo.

  3. Apposto. Riscaricate o sostituite la query.

  4. Stasera me lo aggiorno.
    Da questo deduco che il blog è giovincello?
    Sai da cosa me ne sono accorto? Che sul mio sono spuntati commentatori quando ancora nessuno aveva commentato… e io stavo già a 5 commenti (nn mi autoescludo dalla lista, manie di protagonismo)

  5. Il blog è molto giovane: marzo 2007!
    Anche io mio autoescludo, poi con la modifica di questa versione sarà ancora più facile farlo ; - )

  6. spammmmmm… ehehehe

  7. Sempre in cerca di link!!! Però l’hai messo male : - P
    Vabbé, con calma te lo correggo a manina…

  8. Mmmhmmm…chissà chi ti avrà dato l’ida per questa mnodifica!!! 8 - ) : - D
    E poi pensa che ero venuto proprio a scrivere del problema della Top di inizio mese, che mi dava lo stesso degli utenti… ; - )

  9. Ciao Simone, ho installato il tuo plugin. Ho visto che sei passato da me, quindi mi hai preceduto e non ho fatto in tempo a dirti che ti avevo citato in un post e linkato nel blogroll. Mi sembra il minimo che si possa fare, considerando l’enorme lavoro che hai fatto per permettere a tutti di migliorare il proprio dBLog. : - ) Grazie… e complimenti!

  10. Ciao Sonia, felice di vederti qui.
    Sei troppo buona, alla fine non faccio altro che mettere a disposizione quello che sviluppo per me.
    In questo periodo sono impegnato, ma in futuro mi piacerebbe aiutarti a sviluppare qualcosa di carino per il blog… sempre se ne hai voglia. Saluti 8 - )

  11. Sì che ne ho voglia, anzi magari : - ) Anche a me erano venute delle idee, se ti va ne possiamo parlare quando entrambi siamo meno impegnati. A presto

  12. se ti può interessare io ho aggiunto questa riga alla fine dell loop, per dare un’indicazione in caso non ci sia ancora nessuno in classifica
    if i=0 then
    Response.write “Nessun autore trovato”
    end if

  13. Ottimo, ineffetti ci voleva.
    Il prima possibile lo aggiungo.

  14. Ciao sul mio dblog ho installato top 10 users, i commenti nel blog sono moderati. Collegandomi stasera col mio sito su ogni articolo c’era un commento in attesa di approvazione ma su top 10 erano visibili i link ai siti (peraltro porno). Ho sbagliato qualcosa nella configurazione?
    Ciao e grazie X - |

  15. Allora, il plugin così com’è, è fatto per il dBlog standard, quindi senza moderazione.
    Gestire le moderazioni non è poi così complicato ma diventerebbe “non funzionante” per i blog con moderazione. D’altronde dipende anche da che moderazione hai (plugin vari o fai da te).
    Insomma mi è sembrato più logico accontentare la stragrande maggioranza dei dBlog che non hanno la moderazione.
    Ergo, misà che te lo devi modificare da solo… : - ?

  16. ok grazie, allora per adesso lascio perdere.
    Ciao

  17. Io l’ho moddato con il plug di davidonzo… anche a me faceva venire fuori tutti i link moderati (e porno). Se interessa, te lo giro.

    Ma è possibile che anche col Captcha… i boot porno riescono a lasciare commenti? ufff E - )

  18. Ottimo, allora ozonic è il caso che contatti Gionni.
    Riguardo allo spam, apparte acrobazie spammistiche, è probabile che sia qualcuno che a manina si sta facendo tutti i blog!
    Sccccc… quì non è ancora arrivato : - Z

  19. Si sta facendo tutti i blog? Ummm pare troppo un boot… S - (

  20. Si sta facendo a mano tutti i blog? Ummm pare troppo un boot… S - (

  21. Apparte che si dice bot (diminutivo di robot) ma difficilmente credo che lo sia.
    Ho letto di alcuni bot che sono specializzati nel superare il CAPTCHA ma parliamo di qualcosa di molto sofisticato che, giustamente, si concentra su realtà moooolto più grandi tipi yahoo e ms.

  22. Ok Gionni girami il plug ti ringrazio.
    Dopo il fatto che mi è successo ho tolto i top 10, trascorso un po di tempo sono ritornato nuovamente sul sito ed ho avuto un’altra sorpresa e cioè negli ultimi commenti inseriti ho notato un altra volta sti cacchio di link preticamente il blog secondo me non dovdovrebbe mettere l’ultimo commento su -ultimi commenti inseriti- se non prima approvato. Ora il blog in attesa di soluzione l’ho tolto non posso mica tenere link che danno a siti porno.
    Ciao ragazzi

  23. Basta sostituire la query con questa:
    SQLCommAutori = “SELECT TOP ” & MaxTopUsers & “, commenti.Autore, commenti.Link, Count(commenti.Autore) AS conta ” &_
    “FROM commenti ” &_
    “GROUP BY commenti.Autore, commenti.Link, commenti.modera, Mid([commenti.Data],5,2), Mid([commenti.Data],1,4), commenti.Autore, commenti.Autore, commenti.Autore ” &_
    “HAVING (((commenti.Link)<>”) AND ((commenti.modera)=1) AND ((CInt(Mid([commenti.Data],5,2)))=CInt(Month(Date()))) AND ((CInt(Mid([commenti.Data],1,4)))=CInt(Year(Date()))) ” & ExcludeQueryPart & “) ” &_
    “ORDER BY Count(commenti.Autore) DESC”

  24. Che si trova su -inc_modulo_articoli- verso sulla riga 53 del tuo mod?

  25. No, no è proprio la query che si trova su inc_modulo_topusers.asp!
    P.S. Parto ORA per l’egitto, ci si vede lunedì!

  26. Buon viaggio Simone!

    @Ozonic, io avevo invece fatto questa modifica, che alla fine sono identiche e funziona tranquillamente.

    SQLCommAutori = “SELECT TOP ” & MaxTopUsers & “, commenti.Autore, commenti.Link, Count(commenti.Autore) AS conta ” &_
    “FROM commenti ” &_
    “GROUP BY commenti.Autore, commenti.Link, commenti.Modera, Mid([commenti.Data],5,2), Mid([commenti.Data],1,4), commenti.Autore, commenti.Autore, commenti.Autore ” &_
    “HAVING ((((CInt(Mid([commenti.Data],5,2)))=CInt(Month(Date()))) AND ((CInt(Mid([commenti.Data],1,4)))=CInt(Year(Date()))) AND ((commenti.Modera) = 1))) ” &_
    “ORDER BY Count(commenti.Autore) DESC”

  27. Buon viaggio Simo.
    Ciao Gionni grazie lo provo subito.
    Comunque top user lo posso anche lasciar perdere quello che più mi interessa e che quando un utente fa un commento sul blog moderato non appaia il commento stesso in inc_modulo_articoli se non è prima approvato. Io credo che come è adesso sia un controsenso.

  28. AAAHHH ma il problema è che ti appaiono i commenti moderati tra gli ultimi commenti inseriti? Beh, se non hai fatto grandi modifiche alla piattaforma, ed utilizzi inc_modulo_articolo della mod di Simone, allora sostituisci la query dei commenti (riga 55 all’incirca) con questa:

    SQLUltimiCommenti = ” SELECT TOP ” & Num_Max_UltimiCommenti & ” Commenti.ID, Commenti.IDArticolo, Commenti.IDFotografia, Commenti.Testo, Commenti.Autore, Commenti.Data, Commenti.Ora, Articoli.Titolo as Titolo FROM Commenti LEFT JOIN Articoli ON Commenti.IDArticolo = Articoli.ID WHERE modera = 1 ORDER BY Commenti.Data DESC , Commenti.Ora DESC “

    Dovrebbe funzionare (io veramente c’ho rimesso mano per altri motivi)

  29. Grazie Gionni funziona e anche top user.
    Vediamo cosa succede adesso, tanto credo che il mio blog sia stato preso di mira.
    Ciao e grazie ancora

  30. Ok ozonic, l’attacco ieri l’avevo anche io, ma pare si sia fermato.

  31. Eccomi appena tornato già vi penso… ineffetti a causa di quet’ondata di spam (che fortunatamente mi ha risparmiato) sono emersi alcuni bug e migliorie da implementare.
    Al più presto me ne occuperò.
    Intanto… rieccomi! : - D

  32. Ciao pukos, ho notato che a parità di commenti l’ordinamento è aleatorio, sarebbe carino mettere prima chi ha scritto prima ovvero commenti.data ASC, ma non riesco a costruire la query a causa dell’orde by. Ci fai un pensierino?

  33. Non sono convinto che chi abbia scritto prima meriti posizioni più alte… cmq appena ho un’istante faccio un’altra versione della query poi chi la vuole la implementa.

  34. mmmhmm…ok, cmq lascia perdere perchè mi sa che è un casino, se ho più di un commento diventa troppo complesso selezionare la data più vecchia etc …
    Va bene cosi ; - ) 8 - )

  35. E’ normale che ti compaiano 11 commentatori nella Top 5 Commentatori del mese?
    Ciao! (e complimenti sempre per l’ottimo lavoro!!)

  36. Dicevamo appunto che Access è molto democratico, in Top 5 in cui l’ultima posizione ha dei parimerito, vengono inclusi anche le altre entry con lo stesso “punteggio”.
    Ovviamente con un contatore puoi comunque tagliare la classifica, ma ho deciso di mantenere la “democraticità” ; - )

Leave a reply