Тем не менее, побыть немного волшебниками нам предоставляется возможность. Ну и пусть только в панели инструментов платформы Blogger. Мелочь, а чувствуешь себя тетей Золушки. По нашему желанию мы сможем управлять показами любых гаджетов в шаблоне блога, заставляя их отображаться строго на определенных страницах блога. Это достаточно удобно и функционально, ведь рано или поздно каждый из авторов, ведущих блог, задумывается о чем-то подобном - а нафига мне гаджет похожих статей на странице оглавления? Вот тут мы как раз немного и поколдуем.
“Колдовать” придется в самом HTML шаблона блога, поэтому, как и прежде, при любых изменениях не лишне будет сделать резервную копию шаблона.
После всех приготовлений приступим к “готовке”. Первым делом наметим цель и определимся с тем гаджетом, показ которого собираемся регулировать. Чтобы легче ориентироваться в шаблоне, обязательно зададим ему название, если таковое у него отсутствует. В моем случае я буду рассматривать пример виджета “Архив”. Озаглавливаем его, допустим, как “Календарь” в настройках элемента. В дальнейшем, после переделок, название можно будет убрать, при отсутствии необходимости в нем. Далее переходим во вкладку “Изменить шаблон”. Так как потребуются “внутренности” виджетов, отмечаем галочкой “Расширить шаблоны виджетов”.
Теперь полностью обратимся к HTML-шаблону. Как правило, все виджеты в шаблоне Blogger заключены в теги:
<b:widget [id, название и тип виджета] /> <b:includable id='main'> [содержимое виджета] </b:includable> </b:widget>С помощью комбинации клавиш CTRL+F находим название нашего элемента. Продолжая взятый выше пример, название архива, а именно “Календарь”, будет находиться примерно вот в такой строке (для чего мы и давали ему название):
<b:widget id='BlogArchive1' locked='false' title='Календарь' 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=Календарь' 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 + "_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:if> </b:includable> </b:widget>Все символы кода, заключенные между указанными тегами, являются содержанием виджета.
Искренне надеюсь, что в вашем случае у вас получится прописать теги в нужных местах. Ориентируйтесь на строки кода, обозначенные синим цветом.
Сам по себе тег <b:if cond='data:blog.pageType == "тип страницы"'> не имеет функциональности, в данном контексте это условие, обозначающее тип страниц для показа виджета либо для его запрещения и обозначено для примера.
В Blogger существуют следующие типы страниц:
- homepageUrl – главная страница
- static_page – статичные страницы, например, страница Контактов и Содержания блога
- item – страницы сообщений
- index – страницы ярлыков
- archive – страницы архива
Чтобы вывести или наоборот скрыть виджет на определенной странице вместо открывающего тега <b:if cond='data:blog.pageType == "тип страницы"'>, служащего образцом, воспользуйтесь строкой кода из таблицы ниже:
№ | Условие для определенных страниц | Обозначение |
1 | <b:if cond='data:blog.url == data:blog.homepageUrl'> | показ только для главной страницы |
2 | <b:if cond='data:blog.pageType == "item"'> | показ только для страниц сообщений |
3 | <b:if cond='data:blog.pageType == "archive"'> | показ только для страниц архива |
4 | <b:if cond='data:blog.url != data:blog.homepageUrl'> | показ для всех страниц, кроме главной |
5 | <b:if cond='data:blog.pageType == "static_page"'> | показ только для статичных страниц |
6 | <b:if cond='data:blog.pageType == "index"'> | показ только для главной и для страниц ярлыков |
7 | <b:if cond='data:blog.url == "http://адрес страницы/"'> | показ только для определенной пользователем страницы |