<% '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 %>