Показ гаджетов на нужных страницах

Показ виджетов на выбранных страницах в блоге на Blogger

  По желанию автора, ведущего блог (блогера), можно управлять показами любых виджетов (гаджетов) в шаблоне блога так, чтобы гаджеты отображались только на заданных страницах блога. Это достаточно удобно и функционально. Каждый блогер рано или поздно задумывается о чем-то подобном. Разве нужен гаджет похожих статей на странице оглавления?

  Изменения придётся делать в самом шаблоне блога. Поэтому нужно будет сделать его резервную копию.

  После всех приготовлений приступим к “готовке”. Первым делом наметим цель и определим тот гаджет, показ которого собираемся регулировать. Чтобы легче ориентироваться в шаблоне, обязательно зададим ему название, если таковое у него отсутствует. В нашем случае будем рассматривать пример виджета “Архив”. Озаглавливаем его, допустим, как “Календарь” в настройках элемента. В дальнейшем, после переделок, название можно будет убрать, при отсутствии необходимости в нем. Далее переходим во вкладку “Изменить шаблон”. Так как потребуется содержание виджетов, отметим галочкой “Расширить шаблоны виджетов”.

  Теперь полностью обратимся к HTML-шаблону. Как правило, все виджеты в шаблоне Blogger заключены в теги:

view plainprint?

    <b:widget [id, название и тип виджета] /> 
    <b:includable id='main'> 
        [содержимое виджета] 
    </b:includable> 
    </b:widget> 

  С помощью комбинации клавиш "CTRL+F" находим название нашего элемента. Продолжая взятый выше пример, название архива, а именно “Календарь”, будет находиться примерно вот в такой строке (для чего мы и давали ему название):

view plainprint?

    <b:widget id='BlogArchive1' locked='false' title='Календарь' type='BlogArchive'> 

  Эта строка является началом архива. Чтобы виджет отображался на нужной странице, в его код достаточно добавить теги:

view plainprint?

    <b:widget [id, название и тип виджета] /> 
    <b:includable id='main'> 
     
    <b:if cond='data:blog.pageType == "тип страницы"'> 
     
        [содержимое виджета] 
     
    </b:if> 
     
    </b:includable> 
    </b:widget> 

В случае с гаджетом  “Календарь” это будет выглядеть так:

view plainprint?

    <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://адрес страницы/"'> показ только для определенной пользователем страницы
Если в теге условие равно (==) типу страницы, тогда виджет будет показываться, если не равно (!=), виджет запрещен к показу. На основе этого вы можете регулировать показ виджета на любом типе страниц.



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

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