пятница, 1 февраля 2013 г.

Коды разделители статьи на блогспот

Как отображать виджеты в Blogger в определённом месте/на определённой странице?
В первую очередь поясню, для чего это нужно. Иногда требуется рекламу, сообщение, баннер или кнопку отображать только в статьях, либо строго на статических страницах или только на архивных страницах, поэтому в движок блоггера предусматривает чёткие правила для таких действий.
На эту статью буду в дальнейшем ссылаться.

Поскольку весь контент чаще всего вставляется в блог через виджеты, типаhtml/javascript гаджет и другие, то правила в первую очередь распространяются именно на них.

Рассмотрим несколько действий на примере виджета/гаджета картинка.
На тестовом блоге в сайдбар я вставил этот виджет с изображением домика:


По умолчанию он виден и доступен из любой части блога. Теперь мне нужно узнать его содержимое.
Для это я выделяю на странице всё, что находится в этом виджете (на примере - картинка) и с помощью правой клавиши мыши в контекстном меню firefox смотрю исходный вид выделенного фрагмента.
Всё, что интересует - это id="Image1. По нему я найду в шаблоне (нужно перейти в редактор шаблона и обязательно поставить галку расширить шаблоны виджета) весь виджет:


Обратите внимание, что он, как и все остальные виджеты, заключён в теги<b:widget> </b:widget>. Всё, что внутри (включая ссылку на редактированиеquickedit), относится к виджету картинка, который блоггер пометил, как Image1.

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


Т.е. строка тега с правилом, которую нужно вставлять после <b:widget ...> и <b:includable...> и соотвественно закрывающий тег правила нужно поместить перед последними:
<b:include name='quickedit'/>
</b:includable>
</b:widget>

Примеры правил.
Только на внутренних страницах:
1.<b:if cond='data:blog.pageType == "item"'>
2.содержимое виджета/код
3.</b:if>

Только на статических страницах:
1.<b:if cond='data:blog.pageType == "static_page"'>
2.содержимое виджета/код
3.</b:if>

Только на архивных страницах:
1.<b:if cond='data:blog.pageType == "archive"'>
2.содержимое виджета/код
3.</b:if>

Только на главной (домашней) странице:
1.<b:if cond='data:blog.url == data:blog.homepageUrl'>
2.содержимое виджета/код
3.</b:if>

Только на страницах ярлыков/тегов (labels):
1.<b:if cond='data:blog.searchLabel'>
2.содержимое вижета/код
3.</b:if>

На определённой странице:
1.<b:if cond='data:blog.url == "url_страницы"'>
2.содержимое виджета/код 
3.</b:if>

Отображать на страница: ярлыки/теги, главной, навигационных (предыдущая, следующая):
1.<b:if cond='data:blog.pageType == "index"'>
2.содержимое виджета/код
3.</b:if>

Дополнительное условие:
"!=" - означающее кроме.
Например, показывать на всех страницах, кроме указанной:
1.<b:if cond='data:blog.url != "url_страницы"'>
2.содержимое виджета/код
3.</b:if>

Или показывать виджет везде, кроме главной:
1.<b:if cond='data:blog.url != data:blog.homepageUrl'>
2.содержимое виджета/код
3.</b:if>



Отображение кода только на главной странице.

<b:if cond='data:blog.url == data:blog.homepageUrl'>
Ваш код, только для главной страницы
</b:if>

Отображение кода только в статьях.

<b:if cond='data:blog.pageType == "item"'>
Ваш код, только для статейных страниц
</b:if>

В архиве.

<b:if cond='data:blog.pageType == "archive"'>
</b:if>

На определенной странице.

<b:if cond='data:blog.url == "сюда адрес страницы"'>
</b:if>

Везде, кроме определенной страницы.

<b:if cond='data:blog.url != "сюда адрес страницы"'>
</b:if>

На странице Ярлыка.

<b:if cond='data:blog.url == "http://your_blog.blogspot.com/search/label/название Ярлыка"'>
</b:if>

На статичных страницах.

<b:if cond='data:blog.pageType == "static_page"'>
</b:if>

Я этим способом пользуюсь постоянно, иногда бывает, что из-за определенного шаблона не можешь спрятать социальные закладки с главной страницы и на помощь приходят именно эти способы отображения.

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

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