Использование условных тегов в Blogger

воскресенье, сентября 27, 2015 Nata Ki 0 Comments

Условные теги позволяют отображать элементы только на определённых веб-страницах, не задействовав весь блог в целом. И в отличии от свойства display: none;, не просто их скрывают, а удаляют из исходного кода.
Для того, чтобы понять что такое условные теги, я приведу простой пример
<b:if cond='погода == дождливая'>
  я остаюсь дома
<b:else/>
  иду гулять
</b:if>
Что можно интерпретировать как: "Если (b:if cond) погода дождливая, то я остаюсь дома, иначе (b:else) иду гулять".

Когда мы вместо равенства указываем !=, то получается наоборот:
<b:if cond='погода != дождливая'>
  я остаюсь дома
<b:else/>
  иду гулять
</b:if>
"Если погода недождливая, то я остаюсь дома, иначе иду гулять".

Может быть как больше ситуаций (несколько раз употребляться b:else), так и только одна:
<b:if cond='погода == дождливая'>
  я остаюсь дома
</b:if>
Обязательно должно присутствовать окончание условия </b:if>.

Наиболее полезные условия Blogger

Для Blogger есть много разных условий, но наиболее интересными является тип групп страниц (data:blog.pageType). Он может принимать пять значений:
  • Cтраницы
    <b:if cond='data:blog.pageType == &quot;static_page&quot;'>
  • Сообщения
    <b:if cond='data:blog.pageType == &quot;item&quot;'>
  • архив
    <b:if cond='data:blog.pageType == "archive"'>
  • 404 ошибка
    <b:if cond='data:blog.pageType == &quot;error_page&quot;'>
  • остальные страницы, в том числе Главная, ярлыки и навигация
    <b:if cond='data:blog.pageType == "index"'>
    • отдельно для ярлыков
      <b:if cond="data:blog.searchLabel" >
    • отдельно для Главной
      <b:if cond='data:blog.url == data:blog.homepageUrl'>
Чтобы задать условие одной конкретной странице используем data:blog.url:
<b:if cond='data:blog.url == "http://адрес_вашей_строницы/"'>
При этом http://адрес_вашей_строницы/ должен быть с доменом .com (см. про региональные домены в Blogger):
http://zarabotokiinternet.blogspot.ru/2011/02/uslovnye-tegi-v-blogger.html
http://zarabotokiinternet.blogspot.com/2011/02/uslovnye-tegi-v-blogger.html
Другие более сложные выражения (+, -, <, >, <=, >= и b:elseif, b:switch, b:case, b:eval и b:with) не так часто имеют место быть, но более функциональны. Если вы справитесь и с ними, то можно смело изучать JavaScript :)

Разный фон на разных страницах

Рассмотрим как сделать фон статистических страниц отличный от основного.
В шаблоне перед </head> добавляем:
<b:if cond='data:blog.pageType == &quot;static_page&quot;'>
<style>
body {
background: url(адрес_изображения); 
}

.body-fauxcolumns .cap-top {
background: transparent;
}

.widget ul li, .widget #ArchiveList ul.flat li {
border-top: none;
}
</style>
</b:if>
Строку .widget ul li, .widget #ArchiveList ul.flat li {border-top: none;} нужно указывать не для всех шаблонов, а только для тех, у кого есть пунктирные линии - разделители в гаджетах.

Как убрать с Главной конкретную страницу в Blogspot

Каждое сообщение имеет свой id. Его можно узнать на странице публикации поста в строке браузера
id сообщения blogger
В шаблоне есть такой участок кода:
<b:includable id='post' var='post'>
........содержание........
</b:includable>
его мы заменяем на
<b:includable id='post' var='post'>
<b:if cond='data:blog.url == data:blog.homepageUrl'>
<b:if cond='data:post.id != &quot;1873004851645451173&quot;'>
........содержание........
</b:if>
<b:else/>
........содержание........
</b:if>
</b:includable>
1873004851645451173 - это id из скриншота выше.
Поскольку мы поставили условие data:blog.url == data:blog.homepageUrl, то страница, уйдя с Главной, будет видна по ссылке "Предыдущие". Если определить условие как data:blog.pageType == "index", то мы не увидим сообщение ни на Главной, ни по ссылке "Предыдущие", ни на страницах ярлыка, таких как http://shpargalkablog.ru/search/label/feed. А если — data:blog.pageType != "item", то пост найдём лишь по его адресу, например, http://shpargalkablog.ru/2011/02/uslovnye-tegi-v-blogger.html.


Источник: http://shpargalkablog.ru/2011/02/uslovnye-tegi-v-blogger.html

Полезные ссылки:



0 коммент.: