%
'yabb-sitemap.asp - create your Sitemap for your YaBB Bulletin Board - http://www.yabb.com/
'Copyright (C) 2007 Andrea Spedale - http://www.spedale.com
'This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.
'This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
'See the GNU General Public License for more details.
'You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.
'Le variabili di cui avremo bisogno.
Dim boardescluse, percorso, urlyabb, arrBoard, righeXML, objFSO, objFile, objFolder, strTemp, objOpenFile, strRead, strMessID, strBoard
' configura queste variabili per il tuo sito
boardescluse = "filenameboard1,filenameboard2,filenameboard3" 'solo nome senza estensione
percorso = "/cgi-bin/unishop/yabb/boards/" ' ricordati / inizio e / fine
urlyabb = "http://www.tuosito.it/cgi-bin/yabb/YaBB.pl?board=" ' potrebbe essere diverso dall'esempio ;)
arrBoard = Split(boardescluse, ",")
' non è necessario apportare alcun cambiamento
function FindItemInArray(arrItems, item)
dim pos
pos = -1
dim i
' verifica che il primo parametro sia un array
if isarray(arrItems) then
' scorri i valori dell'array...
for i=0 to ubound(arrItems)
' corrispondenza trovata?
if(arrItems(i)=item)then
' memorizza la posizione nell'array ed esci dal ciclo for
pos = i
exit for
end if
next
end if
' restituisci la posizione nell'array (o -1 se valore non trovato)
FindItemInArray = pos
end function
'Inizializziamo il FileSystemObject
set objFSO = Server.CreateObject("Scripting.FileSystemObject")
'Associamo la cartella contenente i file relativi ai forum alla variabile objFolder.
set objFolder = objFSO.GetFolder(Server.Mappath(percorso))
'Eseguiamo un ciclo per processare ogni file nella cartella.
For Each objFile in objFolder.Files
'Otteniamo il nome chiave del forum togliendo ".txt" dal nome del file esaminato.
strBoard = Replace(objFile.Name, Right(objFile.Name, 4), "")
'Se fa parte delle board pubbliche presente avrà un valore diverso da -1
presente = FindItemInArray(arrBoard, strBoard)
'Selezioniamo solo i file di testo (estensione .txt) non vuoti (dimensione superiore a 0)
If objFile.Size > 0 and objFSO.GetExtensionName(objFile.Name) = "txt" then
'Apriamo il file
set objOpenFile = objFSO.OpenTextFile(objFile.Path, 1)
'Leggiamo le righe del file relative ai messaggi nel forum che stiamo analizzando.
Do While Not objOpenFile.AtEndOfStream
strTemp = objOpenFile.ReadLine
'Otteniamo l'id del messaggio prendendo il primo elemento dell'array costruito spezzando con il carattere "|" la riga letta.
strMessID = Split(strTemp, "|")(0)
'Otteniamo il titolo del messaggio selezionando il secondo elemento dell'array.
strRead = Split(strTemp, "|")(1)
'Se fa parte delle board pubbliche Costruiamo il collegamento e stampiamo il risultato ottenuto.
if presente = -1 then
riga = urlyabb & strBoard & ";action=display;num=" & strMessID
righeXML = righeXML & ""
righeXML = righeXML & "" & Server.HTMLencode(riga) & ""
righeXML = righeXML & ""
end if
Loop
'Chiudiamo il file.
objOpenFile.Close
end if
Next
'Liberiamo le risorse
Set objFSO = Nothing
Set objFile = Nothing
Set objFolder = Nothing
Set objOpenFile = Nothing
Dim generaXML
generaXML = ""
generaXML = generaXML & ""
generaXML = generaXML & righeXML
generaXML = generaXML & ""
Response.ContentType = "text/xml"
Response.Write generaXML
%>