Google+ Blogger WordPress Facebook Like Vkontakte Odnoklassniki LiveJournal vKruguDruzei Facebook Email Gmail
понедельник, 16 апреля 2018 г.

Язык шаблонов Blogger: Тэги для описания элементов страницы

Данная статья открывает небольшую серию публикаций с переводами на русский язык разделов справки Blogger, посвященных синтаксису шаблонов разметки блога. Серия призвана помочь тем, для кого сообщение "Запрошенная вами информация в настоящий момент недоступна на вашем языке" представляет собой достаточно большую проблему.

(Перевод материала Page Elements Tags for Layouts, дополненный мной)

Тело страницы блога формируется, главным образом, из секций и виджетов. Секции представляют собой области страницы, такие как боковая панель, подвал и т.д. Виджет - индивидуальный элемент, размещаемый в секции, такой как "Статистика блога", "Постоянные читатели" или любой другой компонент, который вы можете добавить в конструкторе "Элементы страницы".

Для создания секции используется парный тэг <b:section></b:section>, который может иметь следующие атрибуты:
  • id (обязательно) - уникальное имя. Допустимые символы: цифры и латинские буквы.
  • class (опционально) - имя класса. При переключении блога с одного шаблона на другой эти имена помогают движку определить, куда в новом шаблоне следует перенести контент. Стандартные имена классов: navbar, header, tabs, main, foot.
  • maxwidgets (опционально) - максимальное количество виджетов, которое может быть размещено в данной секции. Не ограничено, если атрибут не указан.
  • showaddelement (опционально) - может принимать значения 'yes' или 'no'. Значение по умолчанию: 'yes'. Определяет, будет ли на странице "Дизайн->Элементы страницы" отображаться ссылка "Добавить гаджет" для данной секции.
  • growth (опционально) - может принимать значения 'horizontal' или 'vertical'. Значение по умолчанию: 'vertical'. Определяет, располагаются ли виджеты в секции горизонтально или вертикально друг над другом.
Пример тэга, определяющего секцию:
<b:section class="header" id="header" maxwidgets="1" showaddelement="no"></b:section>
Секция может содержать только виджеты, она не может содержать другие секции или произвольный HTML-код. Если вам нужно поместить дополнительный код между виджетами, вам придётся разделить секцию на несколько отдельных секций. В простейшем случае, виджет представлен одиночным тэгом <b:widget/>, на место которого подставляется содержимое виджета при выдаче страницы браузеру.
Примеры виджетов:
<b:widget id="header" type='Header' locked="yes"/>
<b:widget id="myList" type='List' locked="no" title="My Favorites"/>
Виджет может иметь следующие атрибуты:
  • id (обязательно) - может содержать только цифры и латинские буквы, и каждый идентификатор виджета в шаблоне должен быть уникальным. Идентификатор не может быть сменён без удаления виджета и создания нового.
  • type (обязательно) - тип виджета, один из перечисленных ниже.
  • locked (опционально) - принимает значения 'yes' или 'no', значение по умолчанию: 'no'. При значении 'yes' виджет не может быть перемещён или удалён при помощи конструктора "Элементы страницы".
  • title (опционально) - отображаемое имя виджета. Если не указано, будет использовано имя по умолчанию, такое как List1 и т.п.
  • pageType (опционально) - может иметь значения 'all', 'archive', 'main', 'index', 'static_page', или 'item', значение по умолчанию: 'all'. Виджет будет отображаться только на страницах соответствующего типа. (В конструкторе "Элементы страницы" видны все виджеты, вне зависимости от значения этого свойства.)
Стандартные, на момент публикации статьи, типы виджетов и их русские названия:
  • AdSense (AdSense)
  • Attribution (Атрибуты блога в "подвале")
  • Blog (Основная часть блога)
  • BlogArchive (Архив блога)
  • BloggerButton (Логотип)
  • BlogList (Blog List)
  • CustomSearch (Окно поиска)
  • Feed (Канал)
  • FollowByEmail (Рассылка обновлений по электронной почте)
  • Followers (Постоянные читатели)
  • Header (Заголовок страницы)
  • HTML (HTML/JavaScript)
  • Image (Картинка)
  • Label (Ярлыки)
  • LinkList (Список ссылок)
  • NewsBar (Новости)
  • PageList (Страницы)
  • Poll (Опрос)
  • PopularPosts (Популярные сообщения)
  • Profile (Профиль)
  • Slideshow (Показ слайдов)
  • Stats (Статистика блога)
  • Subscribe (Ссылки на подписки)
  • Text (Текст)
  • TextList (Список)
  • VideoBar (Панель видео)
Каждый виджет, также, может быть записан в расширенной форме, содержащей полную разметку и содержимое виджета. Расширенную форму виджетов вы увидите, например, если скачаете шаблон на вкладке "Дизайн->Изменить HTML" или поставив галочку напротив "Расширить шаблоны виджета" (там же). Более подробную информацию о структуре виджетов содержится в статье "Тэги для содержимого виджетов".

Примечание: При отдаче страницы блога браузеру, все тэги <b:section> и <b:widget> заменяются на тэги <div>, имеющие соответствующий ID. Таким образом, например, имеется возможность ссылаться на них через div#header, div#myList и т.п. из CSS.
источник

Данная статья продолжает небольшую серию публикаций с переводами на русский язык разделов справки Blogger, посвященных синтаксису шаблонов разметки блога. В статье описываются тэги, которые вам понадобятся для тонкой настройки шаблона под свои потребности.
(Перевод материала Widget Tags for Layouts)

Тэг widget
Одинарная форма тэга <b:widget> для создания виджетов была рассмотрена в предыдущей статье. Если для работы с шаблоном блога используется только конструктор "Элементы страницы", то этого материала более чем достаточно. Для тонкой же настройки нам потребуется полная форма шаблона. Ее можно увидеть, если скачать шаблон на компьютер или же в режиме, который инициируется при установке галочки напротив "Расширить шаблоны виджета" на вкладке "Изменить HTML".

В полной форме тэг <b:widget> является парным, внутри которого помещается фактическое содержимое виджета.
<b:widget [...атрибуты...]="">
</b:widget>

Теперь рассмотрим, какие тэги вы можете использовать внутри пары тэгов
<b:widget></b:widget>.
Тэги includable и include
Содержимое виджета располагается в подключаемых сегментах, которые имеют следующий формат:
<b:includable id="main" var="thiswidget">
[подключаемое содержимое]
</b:includable>

Атрибуты тэга:
  • id (обязательно) - уникальный идентификатор. (Из цифр и латинских букв.)
  • var (опционально) - идентификатор для данных, адресуемых из содержимого сегмента (см. ниже).
Каждый виджет обязан иметь один подключаемый сегмент с идентификатором id='main'.
Он обычно содержит большую часть контента виджета, и во многих случаях других сегментов не требуется.

Созданные вами сегменты с различными идентификаторами не отображаются автоматически.
Для подключения сегмента (из тела сегмента main или другого сегмента) используйте одиночный тэг <b:include>. (Сегмент main всегда подключается автоматически.)
Атрибуты тэга b:include:
  • name (обязательно) - идентификатор подключаемого сегмента.
  • data (опционально) - выражение, которое передается в сегмент как параметр. Значение данного выражения будет доступно из сегмента через переменную, указанную в его атрибуте var.
Пример, демонстрирующий использование b:includable и b:include. (Тэги loop и data описаны
в следующих разделах данной статьи.) Сегмент main подключает сегмент post, передавая ему в качестве параметра i. Сегмент post получает доступ к данным i через переменную p и выводит свойство title.
<b:includable id="main">
<b:loop values="posts" var="i">
<b:include data="i" name="post" />
</b:loop></b:include>
<b:includable id="post" var="p"> Title: </data:p.title /></b:includable>

Механизм подключаемых сегментов крайне полезен, если нужно в различных местах вставить вставить один и тот же код. Если такой необходимости не возникает, можно просто расположить весь код виджета в пределах одного сегмента main.
Тэг data
При помощи данного тэга осуществляется вставка в тело страницы реального содержимого блога. Примеры использования data:
<data:title />
<data:photo.url />
Первый пример будет работать в большинстве виджетов, поскольку практически все виджеты имеют заголовок, содержащийся в переменной title. Во втором примере используется составная переменная, из которой мы выбираем отдельный компонент.
Скажем, в контексте виджета, отображающего профиль пользователя, переменная photo может иметь компоненты url, height и width. Символ "." означает, что мы выбираем компонент url переменной photo. Существует множество данных, которые вы можете получить при помощи тэга data, в зависимости от конкретного виджета. Подробный список переменных, доступных через данный тэг, представлен в следующей статье.
Тэг loop

Тэг b:loop даёт возможность повторить фрагмент кода несколько раз с различными данными. Он используется чтобы вывести сообщения, комментарии к сообщению, метки сообщения и т.п. Тэг имеет следующий формат:
<b:loop var='identifier' values='set-of-data'>
[код, который будет повторяться в цикле]
</b:loop>

Атрибут var содержит имя переменной, в которой на каждой итерации цикла будет содержаться новая порция данных. Атрибут values содержит имя переменной, в которой находится список, перебор элементов которого будет производиться в цикле. Следующий пример кода выводит заголовки сообщений:
<b:loop var='i' values='data:posts'>
<h2><data:i.title/></h2>
</b:loop>
Тэг if / else

Тэги b:if и b:else используются, чтобы отобразить один вариант контента при выполнении заданного условия и другой вариант — при не выполнении.
Формат использования:
<b:if cond='условие'>
[содержимое, отображающееся, если условие выполняется]
<b:else/>
[содержимое, отображающееся, если условие не выполняется]
</b:if>
Тэг b:else не обязателен. Если он отсутствует, в случае невыполнения условия в данном месте не отображается ничего.

В условие можно помещать что угодно, что вычислится как булево значение. Некоторые переменные сами содержат булево значение, например allowComments. Некоторые примеры:

<b:if cond='data:post.showBacklinks'> Истинно, если в этом посте нужно отображать обратные ссылки.
<b:if cond='data:displayname != "Fred"'> Истинно, если отображаемое имя не равно Fred.
<b:if cond='data:post.numComments > 1'> Истинно, если пост имеет более одного комментария



0 коммент.:

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