- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- data ultima modifica sito
-
data ultima modifica sito
ciao a tutti,
ho trovato questo script che mi permette di scrivere sulla pagina la data di ultima modifica della pagina e del sito (come la maggiore delle date di ultima modifica di ogni singola pagina).
Mentre la data di modifica della pagina funziona correttamente, quella di ultima modifica del sito no!
Vi posto il codice:<% Dim file, fs, f, LM file = Request.ServerVariables("PATH_TRANSLATED") Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFile(file) Lm = f.datelastmodified Response.Write ("Ultima novità: " & FormatDateTime(LM, 0)) Set f = Nothing Set fs = Nothing %> </td> </tr> <tr> <td width="100%"> <SCRIPT LANGUAGE="JavaScript"> function initArray() { this.length = initArray.arguments.length for (var i = 0; i < this.length; i++) this[i+1] = initArray.arguments* } var DOWArray = new initArray("Domenica","Lunedì","Martedì","Mercoledì", "Giovedì","Venerdì","Sabato"); var MOYArray = new initArray("Gennaio","Febbraio","Marzo","Aprile", "Maggio","Giugno","Luglio","Agosto","Settembre", "Ottobre","Novembre","Dicembre"); var LastModDate = new Date(document.lastModified); document.write("L'ultima modifica alla pagina è stata effettuata "); document.write(DOWArray[(LastModDate.getDay()+1)],", "); document.write(LastModDate.getDate()," "); document.write(MOYArray[(LastModDate.getMonth()+1)]," "); document.write("."); </script>
Inoltre ho il problema che questo va inserito in una pagina html, si può fare un include secondo voi? o bisogna orientarsi su altri linguaggi?
grazie a tutti,Marco
-
Ciao sherlock,
sbaglio o, tramite il codice da te riportato, ricavi solo la data di ultima modifica della pagina corrente ma prima in asp poi in javascript?
Non vedo il codice che dovrebbe visualizzare la data di ultima modifica dell'intero sito.
-
@madai said:
sbaglio o, tramite il codice da te riportato, ricavi solo la data di ultima modifica della pagina corrente ma prima in asp poi in javascript?
in effetti credevo la parte in cui dice: "l'ultima novità è", ma in effetti ora che leggo bene pesca sempre la data di modifica della pagina...tu hai idea di come si trovi la data di modifica del sito, ovvero la maggiore delle date di modifica delle singole pagine?
grazie,Marco
-
Dovresti fare svariati cicli, 1 per ogni cartella ad individuare e memorizzare temporaneamente le date di ultima modifica di ogni documento. Una volta ottenutele tutte dovrai pescare quella maggiore.
-
@madai said:
Dovresti fare svariati cicli, 1 per ogni cartella ad individuare e memorizzare temporaneamente le date di ultima modifica di ogni documento. Una volta ottenutele tutte dovrai pescare quella maggiore.
difficilissimo insomma....
potresti darmi un'idea su come cominciare?
grazie,Marco
-
Ho modificato questo script per adeguarlo alle tue esigenze:
Dim ultimaModificaSito sub ListContents(path) dim fs, folder, file, item, url set fs = CreateObject("Scripting.FileSystemObject") set folder = fs.GetFolder(path) Response.Write("<li><b>" & folder.Name & "</b> - " & folder.Files.Count & " files, ") if folder.SubFolders.Count > 0 then Response.Write(folder.SubFolders.Count & " directories, ") end if Response.Write(Round(folder.Size / 1024) & " KB total." & vbCrLf) Response.Write("<ul>" & vbCrLf) for each item in folder.SubFolders ListContents(item.Path) next for each item in folder.Files If item.DateLastModified > ultimaModificaSito then ultimaModificaSito = item.DateLastModified End if url = Replace(Right(item.path, Len(item.path) - Len(Server.MapPath("/"))), "\", "/") Response.Write("<li><a href=""" & url & """>" & item.Name & "</a> - " _ & item.Size & " bytes, " _ & "last modified on " & item.DateLastModified & "." _ & "</li>" & vbCrLf) next Response.Write("</ul>" & vbCrLf) Response.Write("</li>" & vbCrLf) end sub ListContents(Server.MapPath("../test")) Response.Write("Ultima modifica sito: <strong>"&ultimaModificaSito&"</strong>")
Ovviamente ha bisogno di quache ritocco qualora tu non voglia stampare a video tutti i files e le cartelle del sito prima di mostrare la data di ultima modifica. A pulire il codice pensaci tu
Ti consiglio di studiarti e capire il codice che ti ho postato non limitarti ad un copia incolla. Se vuoi puoi postare eventuali domande specifiche sulla comprensione del codice che ti ho postato.
PS: ovviamente dovrai sostituire "../test" col percorso della tua root (forse solo "/" se metti questa .asp nella root)
Ciao
-
ciao madai!
ti ringrazio molto per il tempo e l'attenzione che hai dedicato al mio problema!
lo script funziona benissimo e mi è molto chiaro il suo funzionamento (ma nel caso io lo includa in una pagina lui lo ricarica tutte le volte che viene aperta la pagina, vero?).
però mi va in errore in quanto incontra, partendo a scansionare la root, alcune cartelle su cui gli script non hanno i permessi di lettura e poi incontra alcuni file asp protetti da login con cookies.
Le directory non dovrebbe scansionarle (dunque dovrei solo modificarlo in modo che le salti), mentre i file asp dovrebbe vederli...
grazie ancora!Marco
-
@sherlock said:
però mi va in errore in quanto incontra, partendo a scansionare la root, alcune cartelle su cui gli script non hanno i permessi di lettura Chiaro.
@sherlock said:
e poi incontra alcuni file asp protetti da login con cookies.
Ho i miei dubbi che lo script non riesca a scansionare tali files in quanto protetti da cookies. Ci saranno altre ragioni... lo script non interpreta le asp che scansiona ma le tratta come qualsiasi altro file.@sherlock said:
ti ringrazio molto per il tempo e l'attenzione che hai dedicato al mio problema!
Aiutarti è un'esperienza postiva per entrambi (internet rules)A presto!
-
@madai said:
Chiaro.
Ho i miei dubbi che lo script non riesca a scansionare tali files in quanto protetti da cookies. Ci saranno altre ragioni... lo script non interpreta le asp che scansiona ma le tratta come qualsiasi altro file.
Aiutarti è un'esperienza postiva per entrambi (internet rules)
A presto!
in effetti gli asp protetti con login li vede...ma con le directory protette si blocca. dici che dovrei dirgli all'interno del ciclo che scansiona le subfolders che se la directory si chiama xx or yy or zz passi oltre?
grazie ancora,Marco
-
@sherlock said:
dici che dovrei dirgli all'interno del ciclo che scansiona le subfolders che se la directory si chiama xx or yy or zz passi oltre?
Si
-
ciao! scusa la scocciatura, ma non riesco a fargli capire che deve saltare quelle 4 directory...mi puoi dare un consiglio?
grazie!Marco
-
c'è nessunoooooo?!
scusate se scoccio...
grazie!Marco
-
Se volessi evitare solo alcune sottocartelle:
... for each item in folder.SubFolders ** If item.Name <> 'nomeCartelleDaEvitare1' or ****item.Name <> 'nomeCartelleDaEvitare2'**** then ListContents(item.Path) End if** next ... ```Se invece volessi evitare **tutte **le sottocartelle rimuovi completamente il seguente codice:
for each item in folder.SubFolders
ListContents(item.Path)
next
-
[quote=madai;218042]Se volessi evitare solo alcune sottocartelle:
... for each item in folder.SubFolders ** If item.Name <> 'nomeCartelleDaEvitare1' or ****item.Name <> 'nomeCartelleDaEvitare2'**** then** ** ListContents(item.Path)** ** End if** next ...
Ciao,
mi da errore di sintassiIf item.Name <> '/_borders' or item.Name <> '/_codice' or item.Name <> '/_fpclass' or item.Name <> '/_pt' or item.Name <> '/ad' then
che posso fare?grazie!Marco
-
Ho fatto un po' di confusione scusami... per la precisione ho commesso 2 errori.
Primo: sostituisci gli apici singoli con le virgolette
Secondo: sostituisci gli OR con ANDCosì:
If item.Name <> "/_borders" and item.Name <> "/_codice" and item.Name <> "/_fpclass" and item.Name <> "/_pt" and item.Name <> "/ad" then ```:ciauz: