Scritto da davidonzo il 16/02/2006, in OpenSource
ATTENZIONE!
L'articolo che stai leggendo è stato scritto 904 giorni orsono.
Le informazioni presenti potrebbero non essere aggiornate!
Ho visto ultimamente parecchi blog che girano con dblog, utilizzano il tagging di technorati. Ho pensato esserci in giro un plug in o qualcosa del genere, ed ho cercato in diversi siti e forum. Bene, in effetti c'è un plug in in testing, ma non si sa perchè per averlo devi fare mail, così lo si può testare etc etc...
Sinceramente per un software open source come dblog mi aspettavo di meglio... Mi aspettavo che certe cose fossero condivise, come io faccio sempre per quel poco che smanetto con il codice.

Dato che quando ci resto male mi incazzo, e dato che quando mi incazzo divento produttivo, ho sviluppato il MIO plug in per i technorati tag, supportato da dblog!
Ed io non ho nessun problema a condividerlo, anzi vi scrivo passo passo le tante modifiche...

1- Struttura database:
Questa è in parte da modificare. E' necessario aggiungere alla tabella Articoli un nuovo campo. Chiamatelo "tags" e date come attributi una dimensione massima di 255 con campo di tipo testo.

2- Amministrazione:
Modificheremo ora l'ambiente amministrazione per aggiungere i tags ad ogni articolo. La modifica va fatta a due file: articoli_aggiungi.asp e articoli_modifica.asp entrambi presenti nella directory dblogadmin.

Ora voglio evitare di scrivere tutto passo passo, e vi quoto porzioni ragguardevoli di codice. Cercate il codice corrispondente nel file ed apportate le modifiche dovute.

- articolo_aggiungi.asp

Prima

<%
    'aggiunto Ftags - davidonzo 16/02/2005
    Dim SQLAggiungi, RSAggiungi, SQLCercaID, RSCercaID, SQLNomeFileTXT, RSNomeFileTXT, FilStuff, Stuff, I, NomeFileTXT, FTesto, FSezione, FAutore, FTitolo, FPodcast, Ftags, FData, FOra, FLetture, FBozza, Errore, SQLSezioneArticoli, RSSezioneArticoli
%>


Poco sotto

    If Request.QueryString("a") = "aggiungi" Then
        FTesto = SostituisciCaratteri(Request.Form("Testo"), "Si")
        FSezione = DecodeEntities(SostituisciCaratteri(DoppioApice(Request.Form("Sezione")), "No"))
        FAutore = Session("BLOGNick")
        FTitolo = DecodeEntities(SostituisciCaratteri(DoppioApice(Request.Form("Titolo")), "No"))
        FPodcast = DoppioApice(Request.Form("NomeFile"))
        'Aggiunto da davidonzo
        Ftags = DoppioApice(Request.Form("tags"))
        'Aggiunto da davidonzo FINE
        FData = DoppioApice(Request.Form("Data"))
        FOra = DoppioApice(Request.Form("Ora"))
        FLetture = DoppioApice(Request.Form("Letture"))
        FBozza = Request.Form("Bozza")


Sotto ancora

        'Aggiunto [tags] - davidonzo
                If Errore = False Then
            SQLAggiungi = " INSERT INTO [Articoli] ([Sezione], [Autore], [tags], [Titolo], [Podcast], [Data], [Ora], [Letture], [Bozza]) VALUES ('"& FSezione &"', '"& FAutore &"', '"& Ftags &"' , '"& FTitolo &"', '"& FPodcast &"', '"& FData &"', '"& FOra &"', '"& FLetture &"', "


Ed alla fine, nella sezione dedicata ai form per l'inserimento dei dati

<!-- Aggiunto da davidonzo - 16/02/2006 -->
<br><b>Technorati tags</b>(inserire tag separati dalla virgola "," )            <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="textbox" id="tags" name="tags" value="" size="50" maxlenght="255">          
<!-- Fine aggiunta - 16/02/2006 -->

- articoli_modifica.asp

<%
     'Aggiunto Ftags - davidonzo
     Dim SQLArticolo, RSArticolo, SQLModifica, RSModifica, FID, FNomeFileTXT, FTesto, FSezione, FAutore, FTitolo, FPodcast, Ftags, FData, FOra, FLetture, FBozza, Errore, FilSezioneArticoli, SezioneArticoli, SQLSezioneArticoli, RSSezioneArticoli, FilContenutoArticolo, ContenutoArticolo, ContenutoArticoloTemp, SQLListBox, RSListBox

Poco sotto

        FPodcast = DoppioApice(Request.Form("NomeFile"))
        'Aggiunto da davidonzo
        Ftags = DoppioApice(Request.Form("tags"))
        'Aggiunto da davidonzo FINE
                FData = DoppioApice(Request.Form("Data"))


Sotto ancora

        If Errore = False Then
SQLModifica = " UPDATE [Articoli] SET Articoli.Sezione = '"& FSezione &"', Articoli.Autore = '"& FAutore &"', Articoli.Titolo = '"& FTitolo &"', Articoli.Podcast = '"& FPodcast &"', Articoli.tags = '"& Ftags &"', Articoli.Data = '"& FData &"', Articoli.Ora = '"& FOra &"', Articoli.Letture = "& FLetture &", "
            If FBozza = "si" Then


Ed infine anche qui, nella parte dedicata ai form di inserimento dati (in questo caso meglio aggiornamento)

<!-- Aggiunto da davidonzo - 16/02/2006 -->                               <br><b>Technorati tags</b>(tag serapati solo da virgola ",")
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="textbox" id="tags" name="tags" value="<% If RSArticolo("tags") <> "" AND NOT IsNull(RSArticolo("tags")) Then   Response.Write Server.HTMLEncode(RSArticolo("tags"))
End If %>" size="50" maxlenght="255">
<!-- Fine aggiunta - 16/02/2006 -->


Attenzione, questa modifica è molto delicata!!! Se la sbagliate rischiate di avere un errore tutte le volte che modificate un articolo inserito prima delle modifiche che state apportando!!!

3- Front End. Visualizziamo i tag SOLO se li abbiamo inseriti
Le modifiche saranno apportate ai file default.asp e articolo.asp. Il file storico.asp non lo modifico, per cui li non si vedranno i tag, se volete fatelo da voi.

- articolo.asp

Cominciamo...

        'Effettuo la ricerca negli articoli per ID
        'Aggiunto Articoli.tags - davidonzo
        SQLArticoli = " SELECT Articoli.ID, Articoli.Sezione, Count(Commenti.ID) AS ConteggioID, Articoli.Titolo, Articoli.Autore, Articoli.Data, Articoli.Ora, Articoli.Testo, Articoli.tags, Articoli.Letture, Articoli.Podcast FROM [Commenti] RIGHT JOIN [Articoli] ON Commenti.IDArticolo = Articoli.ID WHERE Articoli.Data <= '"& DataToStr(Date()) &"' AND Articoli.ID = "& FID &" AND NOT Articoli.Bozza GROUP BY Articoli.ID, Articoli.Sezione, Articoli.Titolo, Articoli.Autore, Articoli.Data, Articoli.Ora, Articoli.Testo, Articoli.tags, Articoli.Letture, Articoli.Podcast ORDER BY Articoli.Data DESC, Articoli.Ora DESC"


Ed il seguente codice che potete piazzare dove volete all'interno del corpo dell'articolo. Sopra il testo, sotto i link finali, o sopra. Insomma, inserite il codice nel Sub Contenuto() là dove volete che i tag si visualizzino.

<% If RSArticoli("tags") <> "" AND NOT IsNull(RSArticoli("tags")) Then %>
<!--#include file="inc_tags.asp"-->
<br />
<% End If %>


- default.asp

E via!

'Cerco gli ultimi N articoli
'Aggiunto tags - davidonzo
        SQLArticoli = "SELECT TOP "& Num_Max_Articoli &" Articoli.ID, Articoli.Sezione, Count(Commenti.ID) AS ConteggioID, Articoli.Titolo, Articoli.Autore, Articoli.Data, Articoli.Ora, Articoli.Testo, Articoli.Letture, Articoli.tags, Articoli.Podcast FROM [Commenti] RIGHT JOIN [Articoli] ON Commenti.IDArticolo = Articoli.ID WHERE Articoli.Data <= '"& DataToStr(Date()) &"' AND NOT Articoli.Bozza GROUP BY Articoli.ID, Articoli.Sezione, Articoli.Titolo, Articoli.Autore, Articoli.Data, Articoli.Ora, Articoli.Testo, Articoli.Letture, Articoli.tags, Articoli.Podcast ORDER BY Articoli.Data DESC, Articoli.Ora DESC"


E come per articolo.asp

<% If RSArticoli("tags") <> "" AND NOT IsNull(RSArticoli("tags")) Then %>
<br />
<br />
<!--#include file="inc_tags.asp"-->
<% End If %>

Vi sarete accorti che includete un file che non avete vero? Allora createlo!!!
Create un nuovo file chiamato inc_tags.asp e piazzatelo nella directory dblog. Ma ovviamente prima c'è un po di codice da scrivere : - ) .

<div id="technorati">
<img src="<%=Path_Skin%>technorati.gif" alt="Technorati" />&nbsp;
<script>
        var stringa = "<%=RSArticoli("tags")%>";
        var splitted = stringa.split(",");
        for (i in splitted) {
        document.write("<a href='http://www.technorati.com/tag/" + splitted[i] + "'>" + splitted[i] + "</a>&nbsp;");
        }
</script>
</div>


Come potete vedere lo script è un semplicissimo java che usa la funzione split per separare una stringa. Nel pannello di controllo andrete ad inserire i tag che volete scrivendoli tutti di seguito, separandoli con una virgola ",". Sarà questo componente a scomporre la stringa intera in tante parole che poi linkerà a technorati in automatico.
Lo script prevede anche la presenza di una piccola immagine di nome technorati.gif nella directory gfx del vostro template.
Ho anche inserito una classe di css arbitraria che potete aggiungere tranquillamente al vostro css per gestire la piccola zona di pagina al meglio!

Se volete scaricare i file già modificati, eccoli per voi! Ma ricordate che perderete tutte le vostre modifiche.

Dato che sono solo uno smanettore sfaticato, dato che non capisco niente di programmazione e simili, non viene rilasciata nessuna garanzia. A me ha funzionato bene, a voi potrebbe non andare allo stesso modo e non sarebbe colpa mia!.

Buona giornata!
Hai trovato l'articolo interessante?
Sottoscrivi il Feed RSS per essere informato automaticamente degli ultimi aggiornamenti!
 
.Commenti rss
# 1
File tachnorati_tag_dblog.zip aggiornato, mi ero dimenticato di un rel"tag".
Poi aggiorno l'articolo...
Di davidonzo  (Inviato il 16/02/2006 @ 19:04:03)
# 2
Aggiorna il link a questo post che hai pubblicato su segnalo.com perché è errato! ; - )
Di Maxime  (Inviato il 16/02/2006 @ 22:05:37)
# 3
Sono il genio del male, faccio un plug in per far creare il boockmark automatico su segnalo, e sbaglio ad installarlo sul mio blog S - (

Corretto, sia il post su segnalo che l'automatismo del blog, thanks : - )
Di davidonzo  (Inviato il 16/02/2006 @ 22:30:23)
# 4
non ti arrabbiare ; - )

Di ...Lord Zarcon  (Inviato il 17/02/2006 @ 01:25:09)
# 5
sai ceh non ho capito benissimo come funziona questo Technorati. Escludendo la plug-in, mi sono registrato al sito Tec.. ho inserito lo script nlal home.. e ho fatto l'autenticazione. Ora quindi sono indicizzato. La plug-in a che serve? a dire a Technorati cosa c'è nell'articolo in automatico? boh. .sarà ceh è tardi e son fuso.. però.. sta cosa non mi entra proprio : - D
Di ...Lord Zarcon  (Inviato il 17/02/2006 @ 01:35:59)
# 6
Beh, il tagging serve per organizzare le informazioni, è un po' come le sezioni del blog. Solo che taggando su technorati hai una visibilità enorme e quindi l'organizzazione delle informazioni sul web è gestito da chi le informazioni le produce (in questo caso i blogger) ed usufruibile da tutti.

E' un piccolo pezzettino di web 2.0 : - )
Di davidonzo  (Inviato il 17/02/2006 @ 09:25:12)
# 7
Bello il passaggio "Ci resto male -> M'inc***o -> Divento produttivo" ... ; - )
Di Zizio  (Inviato il 17/02/2006 @ 22:05:52)
# 8
ciao a tutti
arrivo subito al dunque:
posso installare il dblog in una cartella del tipo www.nomedelsito.it/dblog del tipo www.nomedelsito.it/home ????

e poi...DAVIDE IL TUO LINK AL TEMPLATE X IL DBLOG NON FUNZIONA : - (
Di regalo  (Inviato il 18/02/2006 @ 16:37:13)
# 9
@ regalo: il link al template l'ho aggiustato. http://www.davidonzo.com/public/template.rar

Per il discorso della directory diversa, puoi sicuramente farlo, ma devi dare un'occhiata a tutti i file inc_costanti_*.asp che sono nella directory /mdb-database/ del tuo dominio.
Adeguare tutto di conseguenza.
Di davidonzo  (Inviato il 18/02/2006 @ 19:34:43)
# 10
Non si visualizza il mio blog.
Dice. impossibile visualizzare la pagina, accesso negato, errore http 430!
Di Anonimo  (Inviato il 17/03/2006 @ 11:39:47)
# 11
L'indirizzo del blog?
E poi in seguito a cosa è stato causato l'errore? Cosa hai modificato?!
Di davidonzo  (Inviato il 17/03/2006 @ 12:45:06)
# 12
sei un grande!! : - )
Di mmoretti  (Inviato il 19/07/2006 @ 10:21:46)
# 13
Ti ringrazio pure io davidonzo, sei stato veramente utile! Ma guarda di non arrabbiarti più, la salute vale molto di più!
Di Sirsly  (Inviato il 15/01/2007 @ 14:18:36)
# 14
<%
stringa = RSArticoli("tags")
s = Split(stringa, ",")
FOR i=0 to UBound(s)
Response.Write "<a href='http://www.technorati.com/tag/" & s(i) & "' target='_blank' rel='tag'>" & s(i) & "</a> "
NEXT
%>

Com'e' che non separa in virgole i tags.. e lascia uno spazio di troppo nella link della parola chiave? : - ( ho fatto tutto come dici!

Invece di linkare "PAROLA", linka "spazioPAROLA"
Di Dionisio  (Inviato il 17/03/2007 @ 17:49:11)
# 15
Niente spazi, solo la virgola come separatore
Di davidonzo  (Inviato il 19/03/2007 @ 11:44:45)
# 16
Ho risolto per gli spazi (ora i links osono corretti), ma le parole non vengono separate dalla virgola. Grazie lo stesso comunque... :)
Di Dionisio  (Inviato il 19/03/2007 @ 15:00:59)
# 17
Se usi il plugin che ho fatto io devi separare i tag con la virgola senza spazi. L'ho fatto io, saprò come funziona :)
Di davidonzo  (Inviato il 19/03/2007 @ 15:04:18)
# 18
Si si.. non mettevo in dubbio le tue competenze. Non uso proprio il tuo plugin nel senso che non ho scaricato lo zip e sostituito file. Ho modificato seguendo le tue indicazioni. Al momento dell'immissione dei tags separo solo con la virgola, senza spazi. Funziona, scrive le varie keyword e le linka in maniera corretta. Unica cosa: non le visualizza come KEY, KEY2, KEY3... ma come KEY KEY2 KEY3...

Tutto qua ;)

Magari c'è da agire sull'html, poi ci provo! ; - )
Di Dionisio  (Inviato il 19/03/2007 @ 17:33:58)
# 19
Io faccio così. Non è nello zip questo codice, almeno mi pere...

<%

stringa = RSArticoli("tags")

s = Split(stringa, ",")

FOR i=0 to UBound(s)-1

%>

<a href="http://technorati.com/tag/<%=s(i)%>" rel="tag"><%=Replace(s(i) , "+" , " ")%></a>,

<%NEXT%>

<%

IF i=UBound(s) then

%>

<a href="http://technorati.com/tag/<%=s(i)%>" rel="tag"><%=Replace(s(i) , "+" , " ")%></a>

<%END IF%>
Di davidonzo  (Inviato il 19/03/2007 @ 19:24:04)
# 20
Funziona come dici te... grandissimo : - )

Ora aspettero' che technorati faccia il suo lavoro...so che sono lenti a prendere le tags dei post e linkarti sul loro sito..

Ciao!
Di Dionisio  (Inviato il 19/03/2007 @ 23:08:00)
# 21
Ciao davidonzo, mi sembra molto utile il tuo plugin, ma io pensavo di modificarlo. Nel senso che alla fine di technorati me ne frega ben poco! Io vorrei che chi visita il mio blog, cliccando sui vari tag, avviasse automaticamente una ricerca sul mio db degli articoli che diciamo sono correlati tra di loro grazie a quel tag.

Nel senso che è possibile che un blog specialistico sviluppi nel tempo articoli sul medesimo argomento e con i tag riuscirei a recuperare tutti gli articoli correlati, anze se magari stanno in categorie diverse. Che ne dici è una cazzata come idea? Ho anche postato sul forum di dblog.
Di Gio73  (Inviato il 30/03/2007 @ 14:25:03)
# 22
@ Gio73: è un'ottima idea, ed è quello che io faccio nel tagcould (grazie a Paperino per l'aiuto!!!).
Se vuoi implementarlo direttamente qui, basta cambiare la direttiva di response.write nel file inc_tags.asp
Di davidonzo  (Inviato il 30/03/2007 @ 15:02:42)


I commenti possono essere moderati.
Se non lo vedi comparire subito non reinserirlo più volte.
Grazie per la gentile collaborazione.