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...L'articolo che stai leggendo è stato scritto 904 giorni orsono.
Le informazioni presenti potrebbero non essere aggiornate!
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!







ho fatto tutto come dici!





