BloggaRolla
Онлайн-генератор веб-цветов
Онлайн-подбор оптимальных веб-цветов для сайта
Онлайн-редактор HTML
Цветовой онлайн-калькулятор
Онлайн-калькулятор
Онлайн-рисовалка PencilMadness
  • Web
  • Images
  • News
  • Videos
  пятница, апреля 22, 2011  

Управляем показом гаджетов и виджетов в блоге
Как часто в жизни хочется побыть волшебником и магом! Чтобы по мановению руки все в жизни становилось хорошо и лучше. Чтобы та премиленькая девушка, которая так приглянулась в троллейбусе и которой по чудовищной случайности отдавил ногу в нем же, завтра ошиблась номером и позвонила тебе. Чтобы полугодовой долг за квартиру внезапно превратился в кучку ничего не значащих бумажек и представители коммунальных служб незамедлительно прислали письменные извинения за ненужные волнения. Чтобы в ближайшее время наконец все осознали, что твой блог невиданный доселе успешный и уникальный проект, раз сам президент всея Руси Медведев ссылается на него по каждому удобному и не очень поводу. Чтобы…много еще чего чтобы. Я уверен у каждого их наберется достаточно. Но увы и ах. Нет в жизни счастья! И приходится, сжав зубы, ползти и пробиваться самому, без чудесных и легкомысленных вмешательств судьбы. Но, кажется, в этом и есть особый шарм и смысл жизни.

Тем не менее, побыть немного волшебниками нам предоставляется возможность. Ну и пусть только в панели инструментов платформы 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 + &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 == "тип страницы"'>, служащего образцом, воспользуйтесь строкой кода из таблицы ниже:

Условие для определенных страниц Обозначение
1 <b:if cond='data:blog.url == data:blog.homepageUrl'> показ только для главной страницы
2 <b:if cond='data:blog.pageType == &quot;item&quot;'> показ только для страниц сообщений
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 == &quot;static_page&quot;'> показ только для статичных страниц
6 <b:if cond='data:blog.pageType == "index"'> показ только для главной и для страниц ярлыков
7 <b:if cond='data:blog.url == "http://адрес страницы/"'> показ только для определенной пользователем страницы
Если в теге условие равно (==) типу страницы, тогда виджет будет показываться, если не равно (!=), виджет запрещен к показу. На основе этого вы можете регулировать показ виджета на любом типе страниц.
На этом наступает хэппи-энд. Странная закономерность, чем проще тема, тем сложнее с ней возиться с целью хорошенько разжевать. Получилось ужасно нудно и печально, но, буду надеяться, понятно.



Понравилась статья? Поделись ею с друзьями!

Не забудь подписаться на обновления блога:


Вы можете оставить свой отзыв через блок комментариев Вконтакте. При отсутствии профиля в этой социальной сети, воспользуйтесь удобной формой Disqus ниже.