Георгиевская ленточка

Прикрепление гаджетов к определенным страницам блога

05.04.2013

Сергей Загуляев в своем блоге http://new-school-blogger.blogspot.ru/2011/11/pokaz-vidzhetovgadzhetov-na.html пишет о том, как закрепить показ гаджетов на определенных страницах блога. На одном из сайтов о Blogger'е я читала статью на эту тему. Но там было очень сложно все описано, много изменений в коде шаблона. У Сергея все достаточно понятно. А главное, что это очень полезная информация. Не удержалась и процитировала статью для Вас и для себя.
 Первым делом наметим цель и определимся с тем гаджетом, показ которого собираемся регулировать. Чтобы легче ориентироваться в шаблоне, обязательно зададим ему название, если таковое у него отсутствует. В моем случае я буду рассматривать пример виджета “Архив”. Озаглавливаем его, допустим, как “Архив2” в настройках элемента. В дальнейшем, после переделок, название можно будет убрать, при отсутствии необходимости в нем. Далее переходим во вкладку “Изменить шаблон”. Так как потребуются “внутренности” виджетов, отмечаем галочкой “Расширить шаблоны виджетов”.Теперь мы обратимся к HTML-шаблону. Как правило, все виджеты в шаблоне Blogger заключены в теги:
<b:widget [id, название и тип виджета] /><b:includable id='main'>    [содержимое виджета]</b:includable></b:widget>
С помощью комбинации клавиш CTRL+F находим название нашего элемента. Продолжая взятый выше пример, название архива, а именно “Архив2”, будет находиться примерно вот в такой строке (для этого мы и давали ему название): 
<b:widget id='BlogArchive1' locked='false' title='Архив2' type='BlogArchive'>
Это строка является началом архива. Для того, чтобы отрегулировать показ виджета, в его код достаточно добавить теги:
<b:widget [id, название и тип виджета] /><b:includable id='main'>
<b:if cond='data:blog.pageType == "тип страницы"'>    [содержимое виджета]</b:if>
</b:includable></b:widget>
В случае с архивом это будет выглядеть так: 
<b:widget id='BlogArchive1' locked='false' title=Архив2' type='BlogArchive'><b:includable id='main'>
<b:if cond='data:blog.pageType == "тип страницы"'>
<b:if cond='data:title'><h2><data:title/></h2></b:if><div class='widget-content'><div id='ArchiveList'><div expr:id='data:widget.instanceId + &quot;_ArchiveList&quot;'><b:if cond='data:style == &quot;HIERARCHY&quot;'><b:include data='data' name='interval'/></b:if><b:if cond='data:style == &quot;FLAT&quot;'><b:include data='data' name='flat'/></b:if><b:if cond='data:style == &quot;MENU&quot;'><b:include data='data' name='menu'/></b:if></div></div><b:include name='quickedit'/></div>
</b:if>
</b:includable></b:widget> 
Все символы кода, заключенные между указанными тегами, являются содержанием виджета.
Очень надеюсь, что в вашем случае у вас получится прописать теги в нужных местах. Ориентируйтесь на строки кода, обозначенные синим цветом.
 
Сам по себе тег <b:if cond='data:blog.pageType == "тип страницы"'> не имеет функциональности, в данном контексте это условие, обозначающее тип страниц для показа виджета либо для его запрещения и обозначено для примера. 
В Blogger существуют следующие типы страниц: 
homepageUrl – главная страница
static_page – статичные страницы, например, страница контактов и содержания блога
item – страницы сообщений
index – страницы ярлыков
archive – страницы архива 
Чтобы вывести или наоборот скрыть виджет на определенной странице вместо открывающего тега <b:if cond='data:blog.pageType == "тип страницы"'>, служащего образцом, воспользуйтесь строкой кода из таблицы ниже:
Условие для определенных страницОбозначение
<b:if cond="data:blog.url == data:blog.homepageUrl"></b:if>показ только для главной страницы
<b:if cond='data:blog.pageType == &quot;item&quot;'>показ только для страниц сообщений
<b:if cond='data:blog.pageType == "archive"'>показ только для страниц архива
<b:if cond='data:blog.url != data:blog.homepageUrl'>показ для всех страниц, кроме главной
<b:if cond='data:blog.pageType == &quot;static_page&quot;'>показ только для статичных страниц
<b:if cond='data:blog.pageType == "index"'>показ только для главной и для страниц ярлыков
<b:if cond='data:blog.url == "http://адрес страницы/"'>показ только для определенной пользователем страницы
Если в теге условие равно (==) типу страницы, тогда виджет будет показываться, если не равно (!=), виджет запрещен к показу. На основе этого вы можете регулировать показ виджета на любом типе страниц.
Используя выше описанный способ можно убрать с главной страницы в Blogger некоторые гаджеты. И закрепить их показ на других страницах. Например, только на страницах с сообщениями. 

4 комментария:

  1. Спасибо за нужную информацию! Временами это действительно нужно!

    ОтветитьУдалить
  2. Здравствуйте, а не подскажите ли как вывести виджет для какого то одного ярлыка ?

    ОтветитьУдалить
    Ответы
    1. Здравствуйте! Есть способ вывести сообщения для одного ярлыка на одной странице: http://samasajt.blogspot.ru/2013/01/blog-post_1468.html

      Удалить
  3. а как убрать нумерацию страниц в страницах?))хочу чтобы нумерация была на главной!

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

Загляните и на другие страницы ^