• 25-04-2008, 04:05:55
    #1
    Merhaba arkadaşlar. Bazı arkadaşlarımızın isteği üzerine bugün uyumadım sözümü tutmak için sistemi hazırladım.

    Konumuz ASP ile databaseden veri çekmek, bu verileri kullanarak sitemap oluşturmak. Aynı zamanda kendi belirleyeceğimiz limitle sitemap dolunca yeni bir sitemap oluşturmak ve oluşan tüm site haritalarını site haritası dizininde toplayarak google'a tek bir dosya sunmak.

    Neyse işte size kodlar :
    <!--#include file="baglanti.asp"-->
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
    </head><%
    sitemapbasi = 100
    
    dosyasay = baglanti.execute("select count(id) as dosyasayisi from dosyalar")
    dosyasayisi=dosyasay("dosyasayisi")
    dosyasay.close
    set dosyasay = nothing
    
    Set FSO = Server.CreateObject("Scripting.FileSystemObject")
    
    FSO.createTextFile Server.Mappath("sitemapdizini.xml")
    set haritadizin = FSO.openTextFile(Server.MapPath("sitemapdizini.xml"),2,0)
    
    veri="<?xml version=""1.0"" encoding=""UTF-8""?>"
    veri=veri&"<sitemapindex xmlns=""http://www.sitemaps.org/schemas/sitemap/0.9"">"
    
    for L = 1 to round(dosyasayisi/sitemapbasi)
    	veri=veri&"<sitemap><loc>http://www.siteadi.com/sitemap"&L&".xml</loc></sitemap>"
    next
    haritadizinveri=veri&"</sitemapindex>"
    haritadizin.write(haritadizinveri)
    
    haritadizin.close
    set haritadizin = nothing
    
    '---------------------------------------- Buraya kadar site haritası dizinimizi oluşturduk.
    
    for T = 1 to round(dosyasayisi/sitemapbasi)
    
    	FSO.createTextFile Server.Mappath("sitemap"&T&".xml")
    	set harita = FSO.openTextFile(Server.MapPath("sitemap"&T&".xml"),2,0)
    	
    	haritaveri="<?xml version=""1.0"" encoding=""UTF-8""?>"
    	haritaveri=haritaveri&"<urlset xmlns=""http://www.sitemaps.org/schemas/sitemap/0.9"">"
    
    		set dosyalar = Server.CreateObject("Adodb.Recordset")
    		sutun = "select * from dosyalar order by id desc"
    		dosyalar.open sutun,baglanti,1,3
    		dosyalar.move (sitemapbasi*(T-1))
    		
    		do while not dosyalar.eof
    			haritaveri=haritaveri&"<url><loc>http://www.siteadi.com/dosya.asp?id="&dosyalar("id")&"</loc></url>"
    			dosyalar.movenext
    		loop
    		dosyalar.close
    		set dosyalar = nothing
    
    	haritaveri=haritaveri&"</urlset>"
    	harita.write(haritaveri)
    	
    	harita.close
    	set harita = nothing
    next
    
    set FSO = nothing
    %>
    İşlem Tamamlanmıştır! Aşağıdaki site haritaları oluşturulmuş ve <a href="sitemapdizini.xml"><u>Site Haritası Dizini</u></a> içerisine eklenmiştir.<br>
    <%
    for sayi = 1 to round(dosyasayisi/sitemapbasi)
    %><br>
    <a href="sitemap<%=sayi%>.xml"><u>Sitemap <%=sayi%></u></a>
    <% 
    next
    %>
    Denemek için database ve tabloları kendinize göre düzenleyin daha sonra mantığa göre geliştirmek size kalmış. PHP bilen arkadaşlar da aynı sistemi hazırlayıp eklerlerse birçok kişi kullanabilmiş olur. Umarım faydalı olur...
  • 25-04-2008, 19:42:19
    #2
    Platin üye
    php bilen birileri çevirebilirse çok güzel olur.
  • 25-05-2008, 13:43:00
    #3
    bende böyle bişi arıyordum. Paylaşımın için çok teşekkürler.
  • 26-05-2008, 03:51:27
    #4
    bunu kaydettirmeden direk asp kodu üzerinden alsak olmaz mı
  • 26-05-2008, 21:06:58
    #5
    Olur neden olmasın.
    harita.write(haritaveri)
    yerine:
    response.write(haritaveri)
    dersin. Charset Content ayarlarsın tamamdır. Direk fsoları da sil gitsin yazdırmayacaksan. Ama yazdırmak çok fazla içerikli sitelerde her seferinde sitemap oluşturulup sistem kaynaklarının boşa tüketilmesini önler. Ama 1000 2000 kayıttan bahsediyorsanız yapın gitsin.
  • 30-05-2008, 17:04:51
    #6
    bakarız bakalım saol kardeş
  • 30-05-2008, 22:28:00
    #7
    google sadece xml uzantıya izin veriyor
    ya FSO ile güncel tutacan yada
    xml yi asp gibi tanıtacan iisye
  • 13-03-2009, 14:59:13
    #8
    oncelikle bu paylasim icin tesekkur ederim.
    php ile sitemap yapma hakkinda cok fazla konu olmasina ragmen asp ile sizin yazinizdan baska bulamadim forumda.
    sormak istedigim bu yontem ile yeni bir konu eklendiginde site ye manual olarak bu aspyi calistirarak mi olusturacagiz sitemapi?
    ve 14. satirdaki
    http://www.sitemaps.org/schemas/ l
    inkine gitmesinin sebebi nedir?
  • 15-03-2009, 00:09:52
    #9
    tum sorularimin cevabini buldum bu arada yukaridaki kod da round fonksiyonu kullanilmis,
    int kullanilmali.yoksa round bucuktan hangi tamsayiya daha yakinsa ona yuvarlanir ve hataya sebep olur.