Новое в блоге
Loading...
16 июн. 2012 г.

Выводим архив блога на статическую страницу - виджет для Blogger

Добрый вечер друзья! Давайте выведем архив блога на отдельную статическую страницу, а существующий стандартный гаджет “Архив”, уберём с боковой панели, освободив тем самым драгоценное место для более полезного виджета. Ссылку на архив сообщений теперь можно будет добавить в меню вашего блога. Виджет "архив" показывает все данные: дату, названия поста, список сообщений. Вообщем очень похож на карту блога (содержание). Посмотреть как будет выглядеть виджет архив блога, можно у меня в меню.Теперь кто решил воспользоваться этим виджетом, прошу следовать инструкции.

Выводим архив блога на статическую страницу - виджет для Blogger
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Создаём новую страницу, даём название и в режиме HTML вставляем скрипт виджета:

<script>
var blog_archive = [];
var month_name = ["January", "February", "March", "April", "May","June", "July", "August", "September", "October", "November", "December"];
function blog_archive_callback(json){
 if(!("entry" in json.feed)) return;
 for(var i=0;i<json.feed.entry.length;i++){
  var e=json.feed.entry[i];
  var y=e.published.$t.substring(0, 4);
  var m=e.published.$t.substring(5, 7);
  var d=e.published.$t.substring(8, 10);
  var h='';
  for(var j=0;j<e.link.length;j++){
   if(e.link[j].rel=="alternate"){
    h=e.link[j].href;
    break
   }
  }
  if(h=='')continue;
  if(typeof blog_archive[y]=="undefined") blog_archive[y]=[];
  if(typeof blog_archive[y][m]=="undefined") blog_archive[y][m]=[];
  if(typeof blog_archive[y][m][d]=="undefined") blog_archive[y][m][d]=[];
  blog_archive[y][m][d].push("<a href='"+h+"'>"+e.title.$t+"</a>");
 }
}
function blog_archive_display(){
 var years = []; for ( y in blog_archive ) years.push(y);
 if(years.length<1) return;
 years.sort();
 years.reverse();
 for(var y=0;y<years.length;y++){
  var year = years[y];
  var months = []; for ( m in blog_archive[year] ) months.push(m);
  if(months.length<1) continue;
  months.sort();
  months.reverse();
  for(var m=0;m<months.length;m++){
   var month = months[m];
   document.write("<p><b><a href='/"+ year +"_"+ month +"_01_archive.html'>"+ month_name[parseInt(month)-1] +" "+ year +"</a></b></p>");
   var days = []; for ( d in blog_archive[year][month] ) days.push(d);
   if(days.length<1) continue;
   days.sort();
   days.reverse();
   document.write("<ul>");
   for(var d=0;d<days.length;d++){
    var day = days[d];
    if(blog_archive[year][month][day].length<1) continue;
    for(var i in blog_archive[year][month][day]) {
     document.write("<li>["+ day +"] "+ blog_archive[year][month][day][i] +"</li>");

    }
   }
   document.write("</ul>");
  }
 }
}
</script>
<script src="####/feeds/posts/default?max-results=999&alt=json-in-script&callback=blog_archive_callback"></script>
<script>blog_archive_display();</script>

Далее меняем #### на URL адрес вашего блога. Всё. Готово. Публикуем и добавляем страницу архива в меню, а также можно поставить ссылку на архив блога на боковой панели. Всего доброго. До новых встреч.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Ух ты кнопочки! Понравилась статья? Поделитесь с друзьями:

9 коммент. :

  1. Супер Сергей! Удобно очень.
    Сделал у себя в блоге.

    ОтветитьУдалить
  2. Согласен с Вами,удобная вещь.Как видите сам себе поставил.

    ОтветитьУдалить
  3. Трафик не падает из-за этого? мы же прячем архив, не потеряет ли сайт после этого хорошие позиции при поиске в гугл и тд...?)

    ОтветитьУдалить
  4. Нет конечно.Карту блога же не прячем.

    ОтветитьУдалить
  5. Привет! У меня создалась просто пустая страница,в чем может быть ошибка? спасибо.

    ОтветитьУдалить
  6. Проверьте правильно ли указали URL блога.Если не получится дайте ссылку на блог.

    ОтветитьУдалить
  7. Спасибо за ответ.
    Так получилось:











    Там уже была эта строчка: , но я и убирала, и переставляла, не влияет.
    Может Вам покажется глупым вопрос, просто я еще чайник.

    ОтветитьУдалить
  8. Просто изумляет, - красиво! Спасибо!

    ОтветитьУдалить

 
Footer