• User Attivo

    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.


  • User Attivo

    @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


  • User Attivo

    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.


  • User Attivo

    @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


  • User Attivo

    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 :ciauz:


  • User Attivo

    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


  • User Attivo

    @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! :ciauz:


  • User Attivo

    @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! :ciauz:

    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


  • User Attivo

    @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 🙂


  • User Attivo

    ciao! scusa la scocciatura, ma non riesco a fargli capire che deve saltare quelle 4 directory...mi puoi dare un consiglio?
    grazie!

    Marco


  • User Attivo

    c'è nessunoooooo?!
    🙂
    scusate se scoccio...
    grazie!

    Marco


  • User Attivo

    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


  • User Attivo

    [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 sintassi

    
    If 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


  • User Attivo

    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 AND

    Così:

    
    If item.Name <> "/_borders" and item.Name <> "/_codice" and item.Name <> "/_fpclass" and item.Name <> "/_pt" and item.Name <> "/ad" then
    
    ```:ciauz: