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> <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> <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" />
<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> ");
}
</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!
File tachnorati_tag_dblog.zip aggiornato, mi ero dimenticato di un rel”tag”.
Poi aggiorno l’articolo…
Aggiorna il link a questo post che hai pubblicato su segnalo.com perché è errato!
Sono il genio del male, faccio un plug in per far creare il boockmark automatico su segnalo, e sbaglio ad installarlo sul mio blog
Corretto, sia il post su segnalo che l’automatismo del blog, thanks
non ti arrabbiare
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
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
Bello il passaggio “Ci resto male -> M’inc***o -> Divento produttivo” …
ciao a tutti
arrivo subito al dunque:
posso installare il dblog in una cartella del tipo http://www.nomedelsito.it/dblog del tipo http://www.nomedelsito.it/home ????
e poi…DAVIDE IL TUO LINK AL TEMPLATE X IL DBLOG NON FUNZIONA
@ 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.
Non si visualizza il mio blog.
Dice. impossibile visualizzare la pagina, accesso negato, errore http 430!
L’indirizzo del blog?
E poi in seguito a cosa è stato causato l’errore? Cosa hai modificato?!
sei un grande!!
Ti ringrazio pure io davidonzo, sei stato veramente utile! Ma guarda di non arrabbiarti più, la salute vale molto di più!
<%
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”
Niente spazi, solo la virgola come separatore
Ho risolto per gli spazi (ora i links osono corretti), ma le parole non vengono separate dalla virgola. Grazie lo stesso comunque… 🙂
Se usi il plugin che ho fatto io devi separare i tag con la virgola senza spazi. L’ho fatto io, saprò come funziona 🙂
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!
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%>
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!
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.
@ 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