Pokazywanie postów oznaczonych etykietą Blogger. Pokaż wszystkie posty
Pokazywanie postów oznaczonych etykietą Blogger. Pokaż wszystkie posty

środa, 8 czerwca 2011

Jak wyświetlić ilość dodanych dzisiaj postów na blogu

W sekcji Head szablonu Blogger-a dodajemy funkcję

<script type="text/javascript" >

//<![CDATA[
 function GetCountPostToday(json){
    var currDate = new Date();
    var CountToday = 0;
    var date = currDate.getFullYear()+'-'+((currDate.getMonth()+1)<10 ? '0'+(currDate.getMonth()+1) : (currDate.getMonth()+1))+'-'+(currDate.getDate()<10 ? '0'+currDate.getDate():currDate.getDate()); 
    for (var i=1; i<=json.feed.entry.length ; i++)
    {
         if (json.feed.entry[i].published.$t.substring(0,10)==date ) CountToday ++; else break;    
    }        
     document.write(CountToday);
   }

//]]></script>


W szablonie wywołujemy skrypt w miejscu w którym ma być wyświetlona ilość postów publikowanych tego dnia

<script src="http://progbis.blogspot.com/feeds/posts/default?alt=json-in-script&start-index=1&max-results=100&callback=GetCountPostToday"></script>


Pamiętają o zmianie adresu bloga :)

Rozwiązanie to ma ograniczenie do 100 postów dziennie. Zmieniając parametr  max-results określimy ilość sprawdzanych postów (max 500)

Jak używać JavaScript w szablonie Bloggera

Aby skorzystać ze skryptu JavasScript w szablonie bloggera, należy skrypt odpowiednio poprzedzić sekcją. Pamiętając o umieszczeniu definicji skryptu w sekcji HEAD
<script type="text/javascript">
//<![CDATA[</code>
    ...skrypt...
i zakończyć sekwencją znaków 
//]]></script>

piątek, 20 maja 2011

Dynamiczna, alfabetyczna lista postów blogu jako oddzielna strona

Aby utworzyć dynamiczną, alfabetyczną listę postów na blogu należy (krok po kroku):
  1. dodać widget stron do bloggera
  2. utworzyć na blogerze oddzielną stronę np: Spis alfabetyczny
  3. wprowadzić odpowiedni kod funkcji javascript, korzystający z formatu JSON
  4. wstawić skrypt pobierający posty z bloga.
  5. wykonać skrypt wyświetlający listę
A więc do dzieła. Krok 1,2 pominę gdyż chyba zrozumiałe i pokaże krok 3 i 4

Krok 3
Tworzymy skrypt js jako treść postu, w tym wypadku strony

<script style="text/javascript"> 


Definiujemy tablicę, do której będziemy dodawać posty
 var tabentry = new Array();

Teraz funkcję zwrotną odczytującą posty w formacie JSON i zapisującą posty do tablicy
   function ListaPostow(json) {     
     i=0;
     while (entry = json.feed.entry[i++])
     {
        tabentry.length++;
        tabentry[tabentry.length-1] = entry;
     }    
   }  


Dodajemy funkcję sortującą tablicę postów po tytułach postów
function SortByTitle(a,b)
   {
     if (b.title.$t==a.title.$t) return 0;
     if (a.title.$t>b.title.$t) { return 1; }
     else return -1;
   }


Na koniec funkcję, która wyświetli nam posortowaną listę postów na stronie.
   function ShowListEntry() {
     tabentry.sort(SortByTitle); //sortuj tablicę
     document.write('<table>');
     document.write('<tr><td colspan="2"><ul><h1>Lista alfabetyczna</h1></td></tr>');
    
     for (var i = 0 ; i<tabentry.length ; i++)
     {
       document.write('<tr><td style="padding-right:10px;"><li>');
       var posturl;   
       for (var k = 0; k < tabentry[i].link.length; k++) {
          if (tabentry[i].link[k].rel == 'alternate') {
            posturl = tabentry[i].link[k].href;
             break;
         }
       }
       document.write('<a href="'+posturl+'">');
       document.write(tabentry[i].title.$t);
       document.write('</a></li></td>');
       document.write('<td>(<i>'+ tabentry[i].category[0].term+')</i></td></tr>');
     }
     document.write('</ul></table>');


W tej funkcji wyświetlam listę w postaci tabeli wraz z nazwami przypisanych etykiet do postów.

Zamykamy znacznik skryptu
</script>

Krok 4
Wykonujemy skrypt pobierający listę postów oraz wyświetlamy ją na stronie:

<script src="http://progbis.blogspot.com/feeds/posts/default?alt=json-in-script&start-index=1&max-results=500&callback=ListaPostow"></script>

Pamiętając o podmianie adresu swojego bloga.

Skrypt ten działa do 500 postów, gdyż tyle jednorazowo można pobrać. Jeśli macie więcej to należy odpowiednio dopisać.

<script src="http://progbis.blogspot.com/feeds/posts/default?alt=json-in-script&start-index=501&max-results=500&callback=ListaPostow"></script>


i więcej...
<script src="http://progbis.blogspot.com/feeds/posts/default?alt=json-in-script&start-index=1001&max-results=500&callback=ListaPostow"></script><script>ShowListEntry();</script>

Krok 5
Wykonujemy funkcję, która wyświetli nam posortowaną listę postów
<script>ShowListEntry();</script>

Jak to działa? Sprawdźcie listę wg kategorii na moim blogu
Więcej informacji o formacie JSON i postów bloga znajdziesz pod adresem http://beautifulbeta.wikidot.com/json-feeds

czwartek, 19 maja 2011

Jak wyświetlić ilość postów i komentarzy na blogu

Jeśli chcesz aby na twoim blogu pojawiła się informacja o tym ile zmieściłeś postów oraz ile dodano komentarzy, należy posłużyć się javascipt-em i formatem JSON.
Skrypt najlepiej umieścić w widgecie, w którym informacji o ilości postów czy komentarzy będzie wyświetlana.

<script style="text/javascript">
function numposts(json) {
document.write('Ten blog opublikował ' + json.feed.openSearch$totalResults.$t + ' postów');
}
function numcomments(json) {
document.write(' oraz ' + json.feed.openSearch$totalResults.$t + ' komentarzy');
}</script>


Po czym umieścić w miejscu w którym wyświetlić informację wywołanie skryptu

<script src="http://progbis.blogspot.com/feeds/posts/default?alt=json-in-script&callback=numposts"></script><script src="http://progbis.blogspot.com/feeds/comments/default?alt=json-in-script&callback=numcomments"></script>

pamiętając o podmianie adresu twojego bloga.