BİLİŞİM - BİLGİSAYAR - EĞİTİM
  Dinamik İçindekiler Sayfası
 

Dinamik İçindekiler Sayfası

Internet sitemizin sayfaları genellikle çok özenilmiş, cicili-bicili, albenisi olan, görsel odak noktalarının oluşmasına dikkat edilmiş tasarımlar olur. Fakat bazen, önemli olan sadece bir dizindeki bütün HTML ve ASP belgelerinin adlarını ve başlıklarını liste halinde ziyaretçiye sunmaktır. Böyle bir sayfada da tasarımın görsel ilkelerine dikkat edilebilir. Fakat burada önemli olan, sayfanın kendi kendisini inşa etmesi ve sayfanın bir dizinin içindeki tüm dosyaları zyaretçiye listeyen bölümünün otomatik olarak güncellenmesidir.

Bunu, bir HTML sayfası oluşturan ASP programı olarak tasarlayabiliriz. Aşağıdaki biraz

uzunca kodu, menu.asp adıyla kaydedin veya bu kitapçığın örnek dosyaları arasında bulun:

 

<%@ LANGUAGE=VBSCRIPT %>

<%

Server.ScriptTimeOut = 300  'Server'a daha çok zaman tanımak için

strMenuSayfaURL = "/menu.htm" 'oluşturacağımız sayfanın yolu

strListKlasor = "/"      'içindekileri bulacağımız dizin

%>

<HTML>

<TITLE>ASP ILE MENU OLUSTURMA</TITLE>

<META http-equiv="content-type" content="text/html; charset=ISO-8859-9">

<META http-equiv="Content-Type" content="text/html; charset=windows-1254">

<META http-equiv="Copyright" content="Alex Homer">

<BODY>

 

<%

Response.Write "<P>Menü sayfası oluşturuluyor: " & strMenuSayfaURL & " ...</P>"

 

'menü sayfası olacak düz yazı dosyasını oluşturalım

Set objFSO = CreateObject("Scripting.FileSystemObject")

strDosyaAdi = Server.MapPath(strMenuSayfaURL)

Set objMenuSayfa = objFSO.CreateTextFile(strDosyaAdi, True) 'dosyanın üstüne yaz

 

'menü sayfasının başlık bölümünü yazalım

objMenuSayfa.WriteLine "<HTML><BODY><P><B>Dosyaların listesi</B></P>"

 

'belirtilen dizindeki dosyaların listesini içeren kolleksiyonu oluşturalım

Set objKlasor = objFSO.GetFolder(Server.MapPath(strListKlasor))

Set kolDosyalar = objKlasor.Files

 

'Her bir dosyanın başlığını okuyarak listemizi yapalım

            For Each objDosya in kolDosyalar

 

'dosya adının uzantısı ASP ve HTM olanları ayıralım

            strDosyaTuru = objFSO.GetExtensionName(objDosya.Name)

            If (strDosyaTuru = "asp") Or (Left(strDosyaTuru, 3) = "htm") Then

 

'dosyanın tümünü okuyup bir String'de tutalım

            Set objOku = objDosya.OpenAsTextStream(1) 'okumak için

            strIcerik = objOku.ReadAll

            objOku.Close

 

'içinden başlık bölümünü alalım

            strBaslik = ""

            intBaslangic = Instr(UCase(strIcerik), "<TITLE>") + 7

            intSon = Instr(UCase(strIcerik), "</TITLE>")

            If (intBaslangic > 0) And (intSon > intBaslangic) Then

            strBaslik = Trim(Mid(strIcerik, intBaslangic, intSon - intBaslangic))

            End If

            If Len(strBaslik) = 0 Then strBaslik = "Adsız sayfa '" & objDosya.Name & "'"

 

'Menü sayfası için metni oluşturalım

strBuDosyaURL = strListKlasor & objDosya.Name

strKopru="<A HREF=" & Chr(34) & strBuDosyaURL & Chr(34) & ">" & strBaslik & "</A><BR>"

objMenuSayfa.WriteLine(strKopru)

End If

Next

 

'Menü sayfasının son bölümünü yazalım

            objMenuSayfa.WriteLine "</BODY></HTML>"

            objMenuSayfa.Close

            Response.Write "<P>Menü sayfası oluşturuldu.</P>"

%>

<P><A HREF="<% = strMenuSayfaURL %>">Menü sayfasını aç</A></P>

</BODY>

</HTML>

 

Programın daha öncekilere göre uzun oluşu, Dosya Sistemi (FileObject) Nesnesini kullanarak oluşturacağı menu.htm dosyasının içeriğini sağlamak için verdiğiniz dizinde bulunan ve dosya adı uzatması .htm ve .asp olan bütün dosyaların içinde <TITLE>..</TITLE> etiketini aramasından kaynaklanıyor. Programın yazarı Alex Homer’in bütün değişken adlarının önünde, değişkenin türünü belirten ön-ekler kullandığına dikkat edin. Böylece nesneleri (obj), sayısal (int) ve kolleksiyon (kol) değerlerden ayırmamız kolaylaşıyor.

<asp0016.tif>

Programı çalıştırdığımız zaman, Browser penceresinde menü sayfasının oluşturulduğuna ilişkin mesaj belirliyor; ve işlem tamamlandığında da oluşturulan menu.htm sayfasının köprüsü veriliyor. Bu köprüyü tıkladığımızda ise programın beşinci satırında strListKlasor = "/" ifadesiyle verdiğimiz dizinin içindeki bütün HTML ve ASP dosyalarının başlığını, bu dosyalara köprü verilmiş olarak görürüz.

<asp0017.tif>

İsterseniz, strListKlasor değişkeninin değeri olarak, sözgelimi “/html/” gibi, kendi Web Server’ınızdaki diğer herhangi bir dizinin adını da verebilirsiniz. Bunu yaparken dizin adının sonuna bölü işareti koymayı unutmamak gerekir. Bu program böyle bağımsız olarak çalıştırılabileceği gibi, bir çerçevenin (Frame) içinde çalıştırılabilir ve sonuçları, başka bir çerçevenin içinde görüntülenebilir. Bu programın “İçindekiler” sayfasını hazırladığı dizine ne kadar yeni dosya koyarsanız koyun veya mevcut dosyaları çıkartırsanız çıkartın, ne zaman bu programı çalıştırırsanız, İçindekiler listesi dinamik olarak mevcudu yansıtacaktır.

 
 
  Bugün 149 ziyaretçi (237 klik) www.bilisim-egitim.tr.gg  
 
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol