5 Ocak 2026 Pazartesi

# örgüzar

başlık yazısı buraya olacak



var postperpage = 5;       // Her sayfada kaç yazı gösterilecek

var numshowpage = 2;       // Aktif sayfanın sağında/solunda kaç numara görünsün

var prevtext = "« Geri";   // Geri butonu metni

var nexttext = "İleri »";  // İleri butonu metni


function loaddata(json) {

    var showpage = document.getElementById("showpage");

    if (!showpage) return; // Element yoksa dur


    var entries = json.feed.entry;

    // Eğer hiç kayıt yoksa işlem yapma

    if (!entries || entries.length === 0) {

        showpage.innerHTML = "";

        return;

    }


    var totalposts = parseInt(json.feed.openSearch$totalResults.$t, 10);

    var totalpages = Math.ceil(totalposts / postperpage);

    

    // Hash (#PageNo=2) kontrolü, yoksa 1. sayfa varsayılır

    var currentpage = 1;

    var hash = window.location.hash;

    if (hash && hash.indexOf("#PageNo=") != -1) {

        currentpage = parseInt(hash.substring(hash.indexOf("#PageNo=") + 8), 10);

    }


    var path = window.location.pathname;

    var isLabel = path.indexOf("/search/label/") != -1;

    var labelName = isLabel ? path.split("/search/label/")[1].split("?")[0] : "";


    // URL Üretici Fonksiyon

    function getURL(page) {

        if (page <= 1) return isLabel ? "/search/label/" + labelName : "/";

        

        // İlgili sayfanın başlaması gereken tarih (Bir önceki sayfanın son yazısının tarihi)

        var entryIndex = (page - 1) * postperpage - 1;

        

        // Dizi sınırlarını kontrol et (Blogger feed limiti genelde 150'dir)

        if (entryIndex >= entries.length) entryIndex = entries.length - 1;

        if (entryIndex < 0) entryIndex = 0;


        var post = entries[entryIndex];

        if (!post) return "/"; // Hata durumunda ana sayfaya dön


        var timestamp = post.published.$t;

        // Tarih formatını temizle ve encode et (Milisaniyeleri atıyoruz)

        timestamp = timestamp.substring(0, 19) + timestamp.substring(23, 29);

        var encodedDate = encodeURIComponent(timestamp);

        

        var base = isLabel ? "/search/label/" + labelName : "/search";

        return base + "?updated-max=" + encodedDate + "&max-results=" + postperpage + "#PageNo=" + page;

    }


    var html = "";

    

    // --- Geri Butonu ---

    if (currentpage > 1) {

        html += '<a class="prev" href="' + getURL(currentpage - 1) + '">' + prevtext + '</a>';

    }


    // --- Sayfa Numaraları Hesaplama ---

    var start = Math.max(1, currentpage - numshowpage);

    var end = Math.min(totalpages, currentpage + numshowpage);


    // Eğer 1. sayfadan çok uzaktaysak başa 1 ve ... koy

    if (start > 1) {

        html += '<a href="' + getURL(1) + '">1</a>';

        if (start > 2) html += '<span class="dots">...</span>';

    }


    // Döngü (Örnek: 2. sayfadaysan 1, 2, 3, 4 üretir)

    for (var i = start; i <= end; i++) {

        if (i == currentpage) {

            html += '<span class="current">' + i + '</span>';

        } else {

            html += '<a href="' + getURL(i) + '">' + i + '</a>';

        }

    }


    // Eğer son sayfadan uzaktaysak sona ... ve Son Sayfayı koy

    if (end < totalpages) {

        if (end < totalpages - 1) html += '<span class="dots">...</span>';

        // Blogger feed limiti nedeniyle çok yüksek sayfa sayılarına doğrudan erişim bazen sorunludur

        // ancak linki yine de oluşturuyoruz.

        html += '<a href="' + getURL(totalpages) + '">' + totalpages + '</a>';

    }


    // --- İleri Butonu ---

    if (currentpage < totalpages) {

        html += '<a class="next" href="' + getURL(currentpage + 1) + '">' + nexttext + '</a>';

    }


    showpage.innerHTML = html;

}


// Feed'i asenkron yüklemek yerine document.write ile çağırmak (Temanızın yapısına uygun)

document.write('<script src="/feeds/posts/summary?alt=json-in-script&callback=loaddata&max-results=999"><\/script>');

//]]>


Hiç yorum yok:

Yorum Gönder