30.11.09

Blogger: Архив в виде календаря!

68 comments

Здравствуйте, мы вернулись!

Вернулись мы от Челиты и Миши как и обещали 18 ноября (Какое же это было восхитителное путешествие! Спасибо Челиточка!!!) 19 уже на работу, а там... аврал одним словом, 20 ноября не смотря ни на что я начала отвечать на комментарии (все еще отвечаю). А теперь вот и до поста дело дошло... Долго думала о чем бы таком написать, но многие темы пока отложила, т.к. там надо много подробно рассказывать, а ведь сегодня воскресенье и опять я работала -- аврал все-таки, когда я говорю аврал - я не шучу, значит это он и есть.

Кстати, вот только что выяснила в википедии точное значение слова аврал: "Аврал (искажённое англ. over all «все наверх») — спешная (по специальному заданию или по тревоге) работа на судне всей командой. Со временем этот морской термин стал использоваться повсеместно, и теперь означает просто выполняемую всем коллективом спешную работу."

Про что это, кстати, я? Да, вы лучше посмотрите на календарь! О чем это вам говорит?

Неискушенный читатель отметит, что Новый год скоро... Кстати, желающие могут себе в блог напустить снежинок (не забывайте, что снежинки будут тормозить работу вашего блога, но красота и новогоднее настроение возможно этого стоят). А вот искушенные читатели уже знают, что сегодня я раскажу как поставить календарь (ну, может быть не совсем такой как в этом посте, но такой как у меня в боковой колонке) к себе в блог. А расскажу я об этом потому что Кайл lдля блога Windows to Russia нашел великолепный скрипт календаря и ему в нем абсолютно все нравилось, а мне в нем не понравилось, что календарь у Кайла показывал посты только с августа по ноябрь 2009 (слишком у Кайла много постов в месяц!).

Пришлось искать другой календарь и модифицировать его, а вместе с ним изменять пост начатый еще в субботу и написание которого, я понаивности полагала, не займет много времени (ведь у меня же аврал!), а скрипт был простенький, теперь это вовсе не скрипт, а полноценный хак, но пост писать надо, а то потом все забудется.

Первоисточник лежит здесь: Blogger Archive Calendar, но для Кайла мне пришлось сделать некоторые доработки, а для русскоязычных блоггеров я этот календарь даже локализовала (т.е. перевела на русский язык).

Итак, ничего страшного нет все будем делать по шагам:

1. Помним, что этот календарь является лишь оболочкой для Blogger'овского архива, поэтом убедимся для начала, что этот элемент дизайна Архив у нас на боковой колонке присутствует. А теперь чтобы наш javascript (который мы на следующем шаге добавим в Html-код шаблона) работал, надо изменить вид элемента Архив. Вы можете это сделать из Панели инструментов кликнув на Дизайн или кликнув в вашем блоге на картинку под вашим Архивом.

И вот к какому виду вам надо привести ваш Архив:
Нажимаем Сохранить.

2. Теперь редактируем Html-код шаблона:

1) Идем Панель управления -- Дизайн -- Изменить Html

2) Галочку на Расширить шаблоны виджета НЕ СТАВИМ

3) В html-коде ищем строчку слово:

BlogArchive1

4) И ВМЕСТО строчки содержащей это заветное слово BlogArchive1 вставляем следующий код:
<b:widget id='BlogArchive1' locked='false' title='Blog Archive' type='BlogArchive'>
<b:includable id='main'>
<b:if cond='data:title'>
<h2><data:title/></h2>
</b:if>
<div class='widget-content'>
<div id='ArchiveList'>
<div expr:id='data:widget.instanceId + "_ArchiveList"'>
<b:if cond='data:style == "HIERARCHY"'>
<b:include data='data' name='interval'/>
</b:if>
<b:if cond='data:style == "FLAT"'>
<b:include data='data' name='flat'/>
</b:if>
<b:if cond='data:style == "MENU"'>
<b:include data='data' name='menu'/>
</b:if>
</div>
</div>
<b:include name='quickedit'/>
</div>
</b:includable>
<b:includable id='toggle' var='interval'>
<!-- Toggle not needed for Calendar -->
</b:includable>
<b:includable id='flat' var='data'>
<div id='bloggerCalendarList'>
<ul>
<b:loop values='data:data' var='i'>
<li class='archivedate'>
<a expr:href='data:i.url'><data:i.name/></a> (<data:i.post-count/>)
</li>
</b:loop>
</ul>
</div>

<div id='blogger_calendar' style='display:none'>
<table id='bcalendar'><caption id='bcaption'>

</caption>
<!-- Table Header -->
<thead id='bcHead'></thead>
<!-- Table Footer -->

<!-- Table Body -->
<tbody><tr><td id='cell1'> </td><td id='cell2'> </td><td id='cell3'> </td><td id='cell4'> </td><td id='cell5'> </td><td id='cell6'> </td><td id='cell7'> </td></tr>
<tr><td id='cell8'> </td><td id='cell9'> </td><td id='cell10'> </td><td id='cell11'> </td><td id='cell12'> </td><td id='cell13'> </td><td id='cell14'> </td></tr>
<tr><td id='cell15'> </td><td id='cell16'> </td><td id='cell17'> </td><td id='cell18'> </td><td id='cell19'> </td><td id='cell20'> </td><td id='cell21'> </td></tr>
<tr><td id='cell22'> </td><td id='cell23'> </td><td id='cell24'> </td><td id='cell25'> </td><td id='cell26'> </td><td id='cell27'> </td><td id='cell28'> </td></tr>
<tr><td id='cell29'> </td><td id='cell30'> </td><td id='cell31'> </td><td id='cell32'> </td><td id='cell33'> </td><td id='cell34'> </td><td id='cell35'> </td></tr>
<tr id='lastRow'><td id='cell36'> </td><td id='cell37'> </td></tr>
</tbody>
</table>
<table id='bcNavigation'><tr>
<td id='bcFootPrev'></td>
<td id='bcFootAll'></td>
<td id='bcFootNext'></td>
</tr></table>

<div id='calLoadingStatus' style='display:none; text-align:center;'>
<script type='text/javascript'>bcLoadStatus();</script>
</div>
<div id='calendarDisplay'/>

</div>

<script type='text/javascript'> initCal();</script>

</b:includable>
<b:includable id='posts' var='posts'>
<!-- posts not needed for Calendar -->
</b:includable>
<b:includable id='menu' var='data'>
Configure your calendar archive widget - Edit archive widget - Flat List - Newest first - Choose any Month/Year Format
</b:includable>
<b:includable id='interval' var='intervalData'>
Configure your calendar archive widget - Edit archive widget - Flat List - Newest first - Choose any Month/Year Format
</b:includable>
</b:widget>
4) Нажимаем СОХРАНИТЬ.

3. Продолжаем редактировать Html код шаблона:

по-прежнему НЕ СТАВИМ галочку на Расширить шаблоны виджета

ищем строчку </head>

и ПЕРЕД НЕЙ вставляем следующий код:
<!-- Blogger Archive Calendar -->
<script type='text/javascript'>
//<![CDATA[

var bcLoadingImage = "http://phydeauxredux.googlepages.com/loading-trans.gif";
var bcLoadingMessage = " Минуточку....";
var bcArchiveNavText = "Все посты этого месяца";
var bcArchiveNavPrev = '&#9668;';
var bcArchiveNavNext = '&#9658;';
var headDays = ["Воскресенье","Понедельник","Вторник","Среда","Четверг","Пятница","Суббота"];
var headInitial = ["Вс","Пн","Вт","Ср","Чт","Пт","Сб"];

// Nothing to configure past this point ----------------------------------
var timeOffset;
var bcBlogID;
var calMonth;
var calDay = 1;
var calYear;
var startIndex;
var callmth;
var bcNav = new Array ();
var bcList = new Array ();

//Initialize Fill Array
var fill = ["","31","28","31","30","31","30","31","31","30","31","30","31"];
function openStatus(){
document.getElementById('calLoadingStatus').style.display = 'block';
document.getElementById('calendarDisplay').innerHTML = '';
}
function closeStatus(){
document.getElementById('calLoadingStatus').style.display = 'none';
}
function bcLoadStatus(){
cls = document.getElementById('calLoadingStatus');
img = document.createElement('img');
img.src = bcLoadingImage;
img.style.verticalAlign = 'middle';
cls.appendChild(img);
txt = document.createTextNode(bcLoadingMessage);
cls.appendChild(txt);
}
function callArchive(mth,yr,nav){
// Check for Leap Years
if (((yr % 4 == 0) && (yr % 100 != 0)) || (yr % 400 == 0)) {
fill[2] = '29';
}
else {
fill[2] = '28';
}
calMonth = mth;
calYear = yr;
if(mth.charAt(0) == 0){
calMonth = mth.substring(1);
}
callmth = mth;
bcNavAll = document.getElementById('bcFootAll');
bcNavPrev = document.getElementById('bcFootPrev');
bcNavNext = document.getElementById('bcFootNext');
bcSelect = document.getElementById('bcSelection');
a = document.createElement('a');
at = document.createTextNode(bcArchiveNavText);
a.href = bcNav[nav];
a.appendChild(at);
bcNavAll.innerHTML = '';
bcNavAll.appendChild(a);
bcNavPrev.innerHTML = '';
bcNavNext.innerHTML = '';
if(nav < bcNav.length -1){
a = document.createElement('a');
a.innerHTML = bcArchiveNavPrev;
bcp = parseInt(nav,10) + 1;
a.href = bcNav[bcp];
a.title = 'Previous Archive';
prevSplit = bcList[bcp].split(',');
a.onclick = function(){bcSelect.options[bcp].selected = true;openStatus();callArchive(prevSplit[0],prevSplit[1],prevSplit[2]);return false;};
bcNavPrev.appendChild(a);
}
if(nav > 0){
a = document.createElement('a');
a.innerHTML = bcArchiveNavNext;
bcn = parseInt(nav,10) - 1;
a.href = bcNav[bcn];
a.title = 'Next Archive';
nextSplit = bcList[bcn].split(',');
a.onclick = function(){bcSelect.options[bcn].selected = true;openStatus();callArchive(nextSplit[0],nextSplit[1],nextSplit[2]);return false;};
bcNavNext.appendChild(a);
}
script = document.createElement('script');
script.src = 'http://www.blogger.com/feeds/'+bcBlogId+'/posts/summary?published-max='+calYear+'-'+callmth+'-'+fill[calMonth]+'T23%3A59%3A59'+timeOffset+'&published-min='+calYear+'-'+callmth+'-01T00%3A00%3A00'+timeOffset+'&max-results=100&orderby=published&alt=json-in-script&callback=cReadArchive';
document.getElementsByTagName('head')[0].appendChild(script);
}

function cReadArchive(root){
// Check for Leap Years
if (((calYear % 4 == 0) && (calYear % 100 != 0)) || (calYear % 400 == 0)) {
fill[2] = '29';
}
else {
fill[2] = '28';
}
closeStatus();
document.getElementById('lastRow').style.display = 'none';
calDis = document.getElementById('calendarDisplay');
var feed = root.feed;
var total = feed.openSearch$totalResults.$t;
var entries = feed.entry || [];
var fillDate = new Array();
var fillTitles = new Array();
fillTitles.length = 32;
var ul = document.createElement('ul');
ul.id = 'calendarUl';
for (var i = 0; i < feed.entry.length; ++i) {
var entry = feed.entry[i];
for (var j = 0; j < entry.link.length; ++j) {
if (entry.link[j].rel == "alternate") {
var link = entry.link[j].href;
}
}
var title = entry.title.$t;
var author = entry.author[0].name.$t;
var date = entry.published.$t;
var summary = entry.summary.$t;
isPublished = date.split('T')[0].split('-')[2];
if(isPublished.charAt(0) == '0'){
isPublished = isPublished.substring(1);
}
fillDate.push(isPublished);
if (fillTitles[isPublished]){
fillTitles[isPublished] = fillTitles[isPublished] + ' | ' + title;
}
else {
fillTitles[isPublished] = title;
}
li = document.createElement('li');
li.style.listType = 'none';
li.innerHTML = '<a href="'+link+'">'+title+'</a>';
ul.appendChild(li);

}
calDis.appendChild(ul);
var val1 = parseInt(calDay, 10)
var valxx = parseInt(calMonth, 10);
var val2 = valxx - 1;
var val3 = parseInt(calYear, 10);
var firstCalDay = new Date(val3,val2,1);
var val0 = firstCalDay.getDay();
startIndex = val0 + 1;
var dayCount = 1;
for (x =1; x < 38; x++){
var cell = document.getElementById('cell'+x);
if( x < startIndex){
cell.innerHTML = ' ';
cell.className = 'firstCell';
}
if( x >= startIndex){
cell.innerHTML = dayCount;
cell.className = 'filledCell';
for(p = 0; p < fillDate.length; p++){
if(dayCount == fillDate[p]){
if(fillDate[p].length == 1){
fillURL = '0'+fillDate[p];
}
else {
fillURL = fillDate[p];
}
cell.className = 'highlightCell';
cell.innerHTML = '<a href="/search?updated-max='+calYear+'-'+callmth+'-'+fillURL+'T23%3A59%3A59'+timeOffset+'&updated-min='+calYear+'-'+callmth+'-'+fillURL+'T00%3A00%3A00'+timeOffset+'" title="'+fillTitles[fillDate[p]].replace(/"/g,'\'')+'">'+dayCount+'</a>';
}
}
if( dayCount > fill[valxx]){
cell.innerHTML = ' ';
cell.className = 'emptyCell';
}
dayCount++;
}
}
visTotal = parseInt(startIndex) + parseInt(fill[valxx]) -1;
if(visTotal >35){
document.getElementById('lastRow').style.display = '';
}
}

function initCal(){
document.getElementById('blogger_calendar').style.display = 'block';
var bcInit = document.getElementById('bloggerCalendarList').getElementsByTagName('a');
var bcCount = document.getElementById('bloggerCalendarList').getElementsByTagName('li');
document.getElementById('bloggerCalendarList').style.display = 'none';
calHead = document.getElementById('bcHead');
tr = document.createElement('tr');
for(t = 0; t < 7; t++){
th = document.createElement('th');
th.abbr = headDays[t];
scope = 'col';
th.title = headDays[t];
th.innerHTML = headInitial[t];
tr.appendChild(th);
}
calHead.appendChild(tr);
for (x = 0; x <bcInit.length;x++){
var stripYear= bcInit[x].href.split('_')[0].split('/')[3];
var stripMonth = bcInit[x].href.split('_')[1];
bcList.push(stripMonth + ','+ stripYear + ',' + x);
bcNav.push(bcInit[x].href);
}
var sel = document.createElement('select');
sel.id = 'bcSelection';
sel.onchange = function(){var cSend = this.options[this.selectedIndex].value.split(',');openStatus();callArchive(cSend[0],cSend[1],cSend[2]);};
q = 0;
for (r = 0; r <bcList.length; r++){
var selText = bcInit[r].innerHTML;
var selCount = bcCount[r].innerHTML.split('> (')[1];
var selValue = bcList[r];
sel.options[q] = new Option(selText + ' ('+selCount,selValue);
q++
}
document.getElementById('bcaption').appendChild(sel);
var m = bcList[0].split(',')[0];
var y = bcList[0].split(',')[1];
callArchive(m,y,'0');
}

function timezoneSet(root){
var feed = root.feed;
var updated = feed.updated.$t;
var id = feed.id.$t;
bcBlogId = id.split('blog-')[1];
upLength = updated.length;
if(updated.charAt(upLength-1) == "Z"){timeOffset = "+00:00";}
else {timeOffset = updated.substring(upLength-6,upLength);}
timeOffset = encodeURIComponent(timeOffset);
}

//]]>
</script>
<script src='/feeds/posts/summary?max-results=0&amp;alt=json-in-script&amp;callback=timezoneSet'></script>
<!-- End Blogger Archive Calendar -->
Нажимаем СОХРАНИТЬ и идем в блог любоваться первыми результатами.

Руссификация виджета состояла в изменении английских слов на русские. Мои изменеия выделены бледно-розовым и вы их можете изменить.

Строчка ul.appendChild(li); веделена бледно-зеленым, если вы НЕ хотите под календарем показывать список сообщений за месяц удалите её. Кайл, например, её удалил (в его случае список постов получался слишком длинным ведь среднем у него 40-50 постов за месяц).

4. Переходим к наведению красоты в календаре. для этого добавим описания CSS стилей нашего календаря в шаблон.

Лично мне уже нравится как получилось, но можно продолжить.

1) Находим у себя в шаблоне строчку ]]></b:skin>

И далее идем по ссылке: Blogger Archive Calendar Styles Здесь автор этого "хака" показывает несколько стилей календарей и от вас только требуется выбрать понравившийся вам стиль календаря, скопировать код размещенный под картинкой и вставить этот код ПЕРЕД строчкой ]]></b:skin>

Что до нас с Кайлом мы подбирали цвета для календаря самостоятельно через вкладку Дизайн - Шрифты и цвета.

Чтобы у нас эта возможность появилась, ПЕРЕД строчкой ]]></b:skin> вставляем следующий код:


/* Archive Calendar Variable Setups
Do not modify unless you know what's what
=========================================

<Variable name="bcCalenderFonts" description="Календарь: размер шрифта"
type="font" default="normal normal 100% Tahoma, Arial, Sans-serif" / value="normal normal 100% Tahoma, Arial, Sans-serif">
<Variable name="bcTableBackgroundColor" description="Календарь: Цвет фона"
type="color" default="#ffffff" value="#8D715C">
<Variable name="bcTableBorderColor" description="Календарь: Цвет рамки"
type="color" default="#000000" value="#FAFA0E">
<Variable name="bcTableTextColor" description="Календарь: Цвет текста"
type="color" default="#000000" value="#FAFA0E">
<Variable name="bcMenuBackgroundColor" description="Календарь: Цвет фона Меню выбора"
type="color" default="#ffffff" value="#8D715C">
<Variable name="bcMenuTextColor" description="Календарь: Цвет текста в Меню выбора"
type="color" default="#000000" value="#FAFA0E">
<Variable name="bcTableHeaderBackgroundColor" description="Календарь: Цвет фона заголовка"
type="color" default="#ffffff" value="#8D715C">
<Variable name="bcTableHeaderTextColor" description="Календарь: Цвет текста заголовка"
type="color" default="#000000" value="#FAFA0E">
<Variable name="bcTableHighLightColor" description="Календарь: Цвет выделенного"
type="color" default="#cccccc" value="#77563F">
<Variable name="bcCalenderLinksColor" description="Календарь: Цвет ссылки"
type="color" default="#0000ff" value="#FAFA0E">
<Variable name="bcCalenderLinksHoverColor" description="Календарь: Цвет ссылки при наведении"
type="color" default="#0000ff" value="#cc0000">
<Variable name="bcTableFooterBackground" description="Календарь: Цвет фона нижней части"
type="color" default="#ffffff" value="#8D715C">
<Variable name="bcFooterLinksColor" description="Календарь: Цвет ссылки нижней части"
type="color" default="#0000ff" value="#FAFA0E">

===========================================
End Archive Calendar Variables */


/* Archive Calendar CSS
----------------------------------------------- */

/* div that holds calendar */
#blogger_calendar { margin:5px 0 0 0;width:98%;}

/* Table Caption - Holds the Archive Select Menu */
#bcaption {border:1px solid $bcTableBorderColor;padding:2px;margin:10px 0 0;background:$bcMenuBackgroundColor;font:$bcCalenderFonts}

/* The Archive Select Menu */
#bcaption select {background:$bcMenuBackgroundColor;border:0 solid $bcMenuBackgroundColor;color:$bcMenuTextColor;font-weight:bold;text-align:center;}


/* The Heading Section */
table#bcalendar thead {}

/* Head Entries */
table#bcalendar thead tr th {width:20px;text-align:center;padding:2px; border:1px outset $bcTableBorderColor; font:$bcCalenderFonts;background:$bcTableHeaderBackgroundColor;color:$bcTableHeaderTextColor}

/* The calendar Table */
table#bcalendar {border:1px solid $bcTableBorderColor;border-top:0; margin:0px 0 0px;width:95%;background:$bcTableBackgroundColor}

/* The Cells in the Calendar */
table#bcalendar tbody tr td {text-align:center;padding:2px;border:1px outset $bcTableBorderColor; color:$bcTableTextColor;font:$bcCalenderFonts;}

/* Links in Calendar */
table#bcalendar tbody tr td a:link, table#bcalendar tbody tr td a:visited, table#bcalendar tbody tr td a:active {font-weight:bold;color:$bcCalenderLinksColor;}
table#bcalendar tbody tr td a:hover {color:$bcCalenderLinksHoverColor;}

/* First Row Empty Cells */
td.firstCell {visibility:visible;}

/* Cells that have a day in them */
td.filledCell {}

/* Cells that are empty, after the first row */
td.emptyCell {visibility:hidden;}

/* Cells with a Link Entry in them */
td.highlightCell {background:$bcTableHighLightColor;border:1px solid $bcTableBorderColor}

/* Table Footer Navigation */
table#bcNavigation {width:95%;background:$bcTableFooterBackground;border:1px solid $bcTableBorderColor;border-top:0;color:$bcTableTextColor;font:$bcCalenderFonts;}
table#bcNavigation a:link {text-decoration:none;color:$bcFooterLinksColor}
td#bcFootPrev {width:10px;}
td#bcFootAll{text-align:center;}
td#bcFootNext {width:10px;}
ul#calendarUl {margin:5px auto 0!important;}
ul#calendarUl li a:link {}
И вот что у нас в результате получилось:

Всем удачи и хорошего настроения!
Побольше отдыхайте и поменьше работайте!

Света


Blogger: кошка.

Комментарии и вопросы более чем приветствуются,
нужна помощь - поможем! Читать дальше...

1.11.09

Blogger: Настройки канала сайта!

29 comments

Эту красивую фотографию мы сделали, когда в прошлом году ездили в отпуск к Челите в Израиль. Отпуск получился совершенно сказочным и угадайте почему я вам показываю эту фотографию... Да-да, все совершенно верно! Мы опять собираемся в отпуск и опять в Израиль и снова к Челите! Так что мы пропадем из вашей жизни на 2,5-3 недели... но вы не расстраивайтесь, мы обязательно вернемся!

Но это все лирика, давайте я напишу что-нибудь коротенькое и полезное и пусть это будет пост из серии Ответы на письма.

В последнее время участились письма с вопросами:

Что делать? Я веду регулярно свой блог, но моих новых постов никто не видит... вернее никто не знает об обновлениях в моем блоге.

И очень расстроенный смайлик в конце повествования.

Чтобы понять, что происходит давайте подумаем как мы узнаем о том, что кто-то из наших любимых авторов написал что-то новое. Во-первых, можно просто регулярно заглядывать в свой любимый блог и смотреть не появилось ли там что-то новое. Года полтора назад я сама так и делала (честно-честно), но с тех пор как я стала вести этот блог и познакомилась с русскоязычной блогосферой такой разнообразной и интересной, блогов за обновлениями которых я слежу стало слишком много, а изменения в них я отслеживаю через Список Чтения, что расположен внизу на Панели инструментов:


Таким образом я получаю информацию о новых статьях в почти 100 блогах и информационных лентах (почти, потому что на сегодняшний момент их 99), не имея своего аккаунта на Twitter'е, я через Список чтения слежу за Твиттер-лентой новостей Blogger'а. Кстати, добавить что-либо в Список чтения очень просто: Нажимаем ДОБАВИТЬ вставляем url (адрес блога или ленты, которую собираемся читать) и на следующем шаге выбираем способ чтения с Общедоступным именем или Анонимно.

А теперь только представьте, что случилась такая беда, и ваши новые посты больше не отображаются у меня и не только у меня, а у всех ваших постоянных читателей в списке чтения... Что делать?!!

В 90% случаев это лечится изменением в Настройках Канала Сайта / Settings for Site Feed (которые... кто-то когда-то зачем-то в вашем блоге поменял, потому что если бы не менял, то ничего бы плохого не случилось бы ...)

Давайте по порядку.

Что такое канал сайта или site feed? Канал сайта это некий документ специального формата, который рассказывает всему миру о том что нового у нас происходит в блоге и в нашем случае ответственным за этот файл является Blogger.

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

Итак, на начальном этапе Blogger генерит feed или канал сайта (как мы выяснили документ об изменениях в блоге) ........ а на конечном этапе мы узнаем о том что в блоге Постоянным Читателем, которого мы являемся, появился новый пост. После этого я радостно кликаю на ссылку в моем списке чтения и иду читать что-то новое и интересное. Кайл читает интересующие его новости в Google Reader, а я вот еще имею Яндекс.Ленту. Google Reader и Яндекс.Лента называются приложениями-агрегаторами (здесь калька с английского agregator - я бы перевела как собиратель), эти приложения регулярно по расписанию заглядывают в те самые документы специального формата, который описывают сделанные вами изменения и показывают вам в неком унифицированном виде все новые статьи со всех каналов сайтов, которыми вы интересуетесь. Кстати, многие современные браузеры умеют агрегировать (т.е. собирать) для вас информацию из каналов.

Мы поговорили о начальном этапе производства feed'а и конечном этапе чтения новостей через специальные приложения и этого по большому счету было бы достаточно... Но в работе с feed'ами или каналами сайта может быть еще промежуточный этап. Многие продвинутые блоггеры, зная что многие читатели не будут заходить к ним в блог, каждый день проверить, что там появилось нового, а захотят воспользоваться современным способом сбора информации о новостях на интересных им блогах (т.е. они захотят подписаться на их блог). Ну, так вот эти продвинутые блоггеры часто используют специальные сервисы, помогающие 1) предоставить читателям наиболее удобный для них способ подписки; 2) получать статистику о динамике подписки, просмотрах статей и переходах на сайт; 3) показывать рекламу на своем канале сайта. Этот дополнительный сервис можно получить, если поручить FeedBurner заниматься каналом вашего сайта (или Зажечь Фид как они это называют). И если все грамотно сделать и настроить, то да вы получите все указанные выше преимущества. О настройках FeedBurner я сегодня рассказывать не буду (все-таки я собиралась написать короткую такую статейку), напишу в другой раз если вы захотите, но упомянуть о нем я была просто обязана, чтобы вы смогли разобраться с Настройками Канала сайта.

Итак, переходим собственно к настройкам:

Панель инструментов -- Настройки -- Канал сайта

Страничку настроек можно увидеть в двух режимах: в Основном или Дополнительном режиме.

Между режимами разница не велика. Дело в том, что Blogger готов формировать для нашего блога целых 3 канала новостей:

Канал сообщений блога.
Канал комментариев блога.
Каналы комментариев к каждому сообщению.


При настройке каналов Основном режиме мы единообразно настраиваем настраиваем все 3 канала блога.

Т.е. что мы выберем в параметре Разрешить каналы блога: Полный, Краткий или Ни одного, то и будет прописано для всех трех каналов блога. Лично я всегда отдаю в новостной канал сообщения целиком (т.е. в параметре Разрешить каналы блога у меня стоит Полный), возможно потому что для меня отдача сообщения целиком в канал блога это еще один способ резервного копирования информации (я же рассказывала выше как мы все удаленные посты у одной блогерши восстановили), а что касается комментариев блога и к каждому сообщению -- для меня это вообще очень важно, я очень надеюсь, что хотя бы некоторые читатели подписываются на комментарии, потому что там действительно разворачиваются интересные обсуждения, и кто знает когда я на основе некоторых из них напишу отдельный пост, и так же я надеюсь, что читатели оставившие комментарий к какому-нибудь посту тоже подписываются на рассылку, дело в том что на комментарии я отвечаю всегда, но иногда не очень (мягко говоря) сразу, как время бывает... так что подписка на комментарии тоже очень полезна.

Вполне могу предположить, что некоторые блоггеры предпочитают отдавать сообщения не целиком а в кратком варианте (т.е. показать читателю только начало поста, заинтриговать, а остальное пусть идет по ссылке и читает в самом блоге) тогда выбираем Короткие (почему они поставили это прилагательное в множественном числе я не знаю). В этом случае, возможно стоит перейти в Дополнительный режим и определить для комментариев все-таки Полный вид сообщений в канале.

А теперь самый важный параметр (Ради чего собственно статья и написана!)

URL переадресации канала сообщений

Теперь читаем внимательно подсказку от Blogger'а: Если при работе со своими фидами сообщений вы использовали службу FeedBurner или какую-либо другую службу, введите полный URL фида. Blogger будет перенаправлять весь трафик фида сообщений на этот адрес. Если перенаправление не требуется, оставьте это поле пустым.

Еще раз если вы поручили службе FeedBurner заботится о вашем фиде (канале сайта), то на FeedBurner появится ваш фид и вы совместно с FeedBurner придумаете url для этого канала, вот например для FeedBurner-фида этого блога я придумала такой адрес: http://feeds.feedburner.com/4blogger и именно эта ссылка у меня размещена на боковой панели и именно этот адрес я прописала в параметр URL переадресации канала сообщений.

Если же для обслуживания канала вашего блога у вас никаких сторонних служб не задействовано, то оставляете поле пустым.... потому что если вы туда чего-нибудь поставите Blogger решит, что заниматься вашим каналом будут ТАМ и перенаправит всю информацию о поступлении новых сообщений вашего блога ТУДА и на этом как тот самый Мавр умоет руки, потому как говорить вашим подписчикам о новинках вашего блога это уже ни его забота.... ТАМ позаботятся (вы же сами ему так и сказали!)

И последний параметр (только для тех кто отдает в канал сообщения целиком):

Нижний колонтитул канала сообщений
Здесь можно написать какой-нибудь Html-код, который читатель канала будет видеть после каждого вашего сообщения у меня это не мудрствуя лукаво:
Опубликовано в блоге:
<br/><a href="http://blogger4you.blogspot.com">ВСЕ для BLOGGER(а) на BLOGSPOT(e)!</a>
И напоследок адреса каналов вашего блога:

Канал постов целиком:
Atom 1.0: http://blogname.blogspot.com/feeds/posts/default
RSS 2.0: http://blogname.blogspot.com/feeds/posts/default?alt=rss

Канал комментариев:

Atom 1.0: http://blogname.blogspot.com/feeds/comments/default
RSS 2.0: http://blogname.blogspot.com/feeds/comments/default?alt=rss

Канал Ярлыков:

Atom 1.0: http://blogname.blogspot.com/posts/comments/default/-/labelname
RSS 2.0: http://blogname.blogspot.com/feeds/posts/default?alt=rss/-/labelname

Канал комментариев к отдельным постам:

Atom 1.0: http://blogname.blogspot.com/feeds/postId/comments/default
RSS 2.0: http://blogname.blogspot.com/feeds/postId/comments/default?alt=rss

Адреса каналов взяты из справочной системы Blogger'а


Всем Хорошего Настроения и
Не Забывайте Отдыхать!

Света

PS Уж коли я упомянула о резервном копировании очень рекомендую эту подборку статей (для тех кто еще не читал): Blogger Сохранение и Восстановление.
Blogger: кошка.

Комментарии и вопросы более чем приветствуются,
нужна помощь - поможем! Читать дальше...

Популярные сообщения

Здесь были: