Архив для Blogger на отдельной странице

Просмотров: 1 060

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

Архив блога
Архив блога Blogger

Вот, как будет выглядеть "Архив блога в Blogspot" на статической/отдельной странице и ссылкой в меню:

Архив 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 адрес вашего веб-ресурса. Готово. Опубликуйте страницу и можете добавить ссылку на Архив блога/сайта в своё меню. Видите всё как просто. На раз и два. Сегодня я у вас много времени не отнял, пост коротенький, но важный.

На этом дорогие товарищи, я прощаюсь с вами не на долго. До новых встреч. Всем удачи.

P.S. Новый код, который подхватывает весь архив блога.

<script type="text/javascript">
function LoadTheArchive(TotalFeed)
{
var PostTitles = new Array();
var PostURLs = new Array();
var PostYears = new Array();
var PostMonths = new Array();
var PostDays = new Array();
if("entry" in TotalFeed.feed)
{
var PostEntries=TotalFeed.feed.entry.length;
for(var PostNum=0; PostNum < PostEntries; PostNum++)
{
var ThisPost = TotalFeed.feed.entry[PostNum];
PostTitles.push(ThisPost.title.$t);
PostYears.push(ThisPost.published.$t.substring(0,4));
PostMonths.push(ThisPost.published.$t.substring(5,7));
PostDays.push(ThisPost.published.$t.substring(8,10));
var ThisPostURL;
for(var LinkNum=0; LinkNum < ThisPost.link.length; LinkNum++)
{
if(ThisPost.link[LinkNum].rel == "alternate")
{
ThisPostURL = ThisPost.link[LinkNum].href;
break
}
}
PostURLs.push(ThisPostURL);
}
}
DisplaytheTOC(PostTitles,PostURLs,PostYears,PostMonths,PostDays);
}

function DisplaytheTOC(PostTitles,PostURLs,PostYears,PostMonths,PostDays)
{
var MonthNames=["January","February","March","April","May","June","July","August","September","October","November","December"];
var NumberOfEntries=PostTitles.length;

var currentMonth = "";
var currentYear = "";

for(var EntryNum = 0; EntryNum < NumberOfEntries; EntryNum++)
{
NameOfMonth = MonthNames[parseInt(PostMonths[EntryNum],10)-1]

if (currentMonth != NameOfMonth || currentYear != PostYears[EntryNum]) {
currentMonth = NameOfMonth;
currentYear = PostYears[EntryNum];

document.write("<br><div class='dateStyle'>" + currentMonth + " " + currentYear + "</div>");
}
var parsed_day = parseInt(PostDays[EntryNum],10) > 9 ? "" + parseInt(PostDays[EntryNum],10): "0" + parseInt(PostDays[EntryNum],10);
document.write("<div class='dayStyle'>" + parsed_day + ":&nbsp;&nbsp;</div><a href='" + PostURLs[EntryNum] + "'>" + PostTitles[EntryNum] + "</a><br>");
}
}
</script>

<script src="/feeds/posts/summary?alt=json-in-script&amp;max-results=150&amp;start-index=1&amp;callback=LoadTheArchive" type="text/javascript">
</script>
<script src="/feeds/posts/summary?alt=json-in-script&amp;max-results=150&amp;start-index=151&amp;callback=LoadTheArchive" type="text/javascript">
</script>
<script src="/feeds/posts/summary?alt=json-in-script&amp;max-results=150&amp;start-index=301&amp;callback=LoadTheArchive" type="text/javascript">
</script>
<script src="/feeds/posts/summary?alt=json-in-script&amp;max-results=150&amp;start-index=451&amp;callback=LoadTheArchive" type="text/javascript">
</script>
<script src="/feeds/posts/summary?alt=json-in-script&amp;max-results=150&amp;start-index=601&amp;callback=LoadTheArchive" type="text/javascript">
</script>
<script src="/feeds/posts/summary?alt=json-in-script&amp;max-results=150&amp;start-index=851&amp;callback=LoadTheArchive" type="text/javascript">
</script>
<script src="/feeds/posts/summary?alt=json-in-script&amp;max-results=150&amp;start-index=1001&amp;callback=LoadTheArchive" type="text/javascript">
</script>
<!--CUSTOMIZATION-->
<style type="text/css">
.dateStyle {
color:#000;
font-weight:bold;
font-size: 15px;
font-family: Arial, sans-serif;
margin: 0;
}

.dayStyle {
color:#000;
font-weight:bold;
font-family: Arial, sans-serif;
display: inline-block;
}
.post-header{display:none;}
</style>

Важно: Подписываемся на блог, чтобы не пропускать новенькие виджеты для блогер и интересные сообщения.


14 комментариев к “Архив для Blogger на отдельной странице”

  1. Попробовала Ваши оба кода Содержание и Карта /архив/-больше хотелось поставить как архив,но он почему-то не работает Можете подсказать ?
    Этот код работает ,но не очень нравится.

    Ответить
    • У вас протокол https, а с ним многое теперь не работает. Вам надо указать в коде адрес блога с протоколом http и тогда будет работать.

      Ответить
  2. Указала http Все равно не работает В настройках тоже выключила https ,но безрезультатно

    Ответить
    • Не знаю почему у вас не работает. Ещё раз проверил, всё работает даже если решётки удалить до слеша без указания URL блога.

      Ответить
  3. не знаю Попробовала в другом браузере Тоже самое Не открывается Можете скинуть свой блог

    Ответить
  4. Приветствую!
    Почему-то не подхватывается весь архив сообщений, а только за неполных 3 года. Возможно это связано с каким-то ограничением по объёму информации на странице и общему его весу. Или где-то в коде есть ограничение? Я не нашёл. Подскажите как решить эту задачу?

    Ответить
    • Привет! В коде ограничение выставлено 999 постов. У вас статей в блоге больше? 🙂

      Ответить
      • Сколько сообщений в блоге точно не знаю, но отобразилось где-то 150 сообщений в архиве за неполные 3 года, хотя в архиве уже больше 6 лет. И можно например в ВК с Вами коммуницировать, в комментах блога не совсем удобно.

        Ответить
  5. добрый день. Меня тоже интересует последний вариант: не подхватывается весь архив…

    Ответить

Оставьте комментарий