Каждый виджет (гаджет) представляет собой контейнер с данными, которые хранятся на стороне движка и вне шаблона блога. Фактически, мы, рядовые пользователи не имеем к ним прямого доступа, но можем изменять их содержимое и редактировать из админки.
Далее я буду называть гаджеты Blogger только виджетами, мне так привычнее.
Гаджеты-виджеты Blogger |
Стандартные шаблоны блоггера (и сторонние, разрабатываемые или портированные с Wordpress интузиастами) практически всегда имеют такую или близкую к такой разметку:
Разметка шаблона Blogger |
- Красная область, header, шапка сайта содержит обязательный виджет header и любые другие виджеты, которые можно установить после него
- Жёлтая область, правый sidebar, может содержать любые виджеты
- Зелёная область, footer, подвал, может содержать любые виджеты, включая Attribution
Есть ещё один виджет, который бесхозно стоит выше всех - это ужасный и всем надоевший Navbar, блоггеровская панелька, её лучше сразу удалить после создания блога.
Середину блоггеровской разметки в шаблоне занимает область сообщений - самая информативная часть вашего блога.
Конечно виджеты могут быть расположены по-другому. На скриншоте представлена двухколоночная модель разметки шаблона. А в "Дизайнере шаблонов" можно настроить макет блога по собственному вкусу:
Дизайнер шаблонов в Blogger |
Технические моменты ↓
Каждый виджет в шаблоне кратко идентифицируется вот так (на примере html/javascript виджета):
<b:widget id='HTML6' locked='false' title='' type='HTML'/>Где id="HTML6" - это идентификатор виджета, а цифра 6 означает, что это шестой html/javascript виджет по счёту в блогу.
Опция locked='false' говорит о том, что виджет не закреплён и его можно переносить по макету, куда вздумается.
А в развёрнутом, полном виде (если поставить галку "Расширить шаблоны виджета") виджет имеет такую структуру (на примере того же html/javascript виджета):
<b:widget id='HTML6' locked='false' title='' type='HTML'> <b:includable id='main'> <!-- only display title if it's non-empty --> <b:if cond='data:title != ""'> <h2 class='title'><data:title/></h2> </b:if> <div class='widget-content'> <data:content/> </div> <b:include name='quickedit'/> </b:includable> </b:widget>
С любым подобным виджетом нам, рядовым пользователям, разрешается:
- изменить тег заголовка виджета - h
- удалить ссылку на быстрое редактирование - <b:include name='quickedit'/>
- создать специальное правило отображения виджета на чётко заданных страницах
- перемещать в рамках макета
- удалить
С удалением виджета, думаю, понятно. Перемещение тоже ясно. Админка Blogger допускает визуальное drag'n drop, т.е. перетаскивание виджетов из одной части в другую, но не во всех случаях. Например, виджет заголовка блога, header, закреплён намертво и до него нельзя просто так поставить ни один виджет.
Вчера мне пришло интересное письмо от Юрия:
"У меня блог на Blogspot. Как сделать, чтобы в шапке блога отрисовывались разные картинки при каждом обновлении страницы?"
Это хороший вопрос. Сначала возникла быстрая идея сделать шапку по аналогии с рандомно меняющимся подзаголовком шапки блога (описанием).
Потом я подумал, что будет проще html/javascript виджет отправить на самый верх, т.е. на место виджета header (заголовка блога).
Для этого я создал новый html/javascript виджет, определил в шаблоне по ключевому слову в поиске браузера "HTML", какой из этих виджетов последний.
Далее в редакторе шаблона снял галку "Расширить шаблоны виджета", и вырезал и вставил виджет <b:widget id='HTML6' locked='false' title='' type='HTML'/> прямо перед виджетом заголовка блога <b:widget id='Header1' locked='true' title='Тестовый блог2 (заголовок)' type='Header'/>.
Разработчики Blogger специально придумали такой укороченный вид редактора, чтобы не таскать огромные хвосты кода, а оперировать с только с короткими строками.
Виджет заголовка, кстати, сначала вполне допускает своё удаление (надо лишь в коде виджета изменить locked='true' на locked='false', чтобы разблокировать виджет):
Удаление виджета в Blogger |
Но потом всё равно возвращается в шаблон. Если это происходит, и очень приспичило всё-таки удалить, то единственное решение - изменить элемент <div class='region-inner header-inner'> (внутри которого находится виджет) на <div class='region-inner header-inner1'>
После того, как мы html/javascript виджет "перетащили" наверх, изменился визуальный макет шаблона:
Перемещение виджетов в Blogger |
Теперь у нас в шапке тот виджет, в который можно вставлять любой javascript.
Например, скрипт случайной выдачи картинок:
<script language="JavaScript"> function random_imglink(){ var myimages=new Array() //specify random images below. You can have as many as you wish myimages[1]="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCbX8HCOwssiXX_jjD9bQk9QvDb-UyrWNS-K0hkNSEEyUB2alg0LVQeS00IPT8BJM35TL99KwzdL6wT4u3YLRmfDPg-fLrusARdQMnx0pCZ44bMqRiqBi0X82OlTPtkRKGZoydonZhLzE/s1600/273-16664.jpg" myimages[2]="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgvh3ybzm_G5yrl7bZFnLi_5fG5vAZfewIB7_emumoTQGHwbuJKTnME13QyVJGUEyxbsRTN0HIqi6xzn9FLgCNtxf-vf29CGuthDVtDpwpWKVYq3iM2MFVujBACYKFHHl0rAYmwnov-s5Y/s1600/1590-39152.jpg" myimages[3]="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEihyphenhyphenigFoE0v9P9rw7ZtVcZp6qbQkag25DQawT3Wk6cUB7rwQU3cCb3t2lNzSh_g6Le6ROdST_ML9e-jCr4Q0OI37TIp6izPyPgHbfCobPl1Jfr75iwE504M5sKpK8kWMSFfx6hMZzpfASk/s1600/881-2916.jpg" myimages[4]="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgq5J-dB9JK1MeJB5gwkYDGYdrYeO_yBJgZeXtgWgTS7bL_m0TS2_X3PD_P376YDCQPNRsMiACgDJEl2V3hGOpeH6gnIeTXPYAO7xYpSKaE_EeSoDa7OR9bRB77KDY5E2xC12T1CYk7rgE/s1600/698-52147.jpg" //specify corresponding links below var imagelinks=new Array() imagelinks[1]="ссылка" imagelinks[2]="ссылка" imagelinks[3]="ссылка" imagelinks[4]="ссылка" var ry=Math.floor(Math.random()*myimages.length) if (ry==0) ry=1 document.write('<a href='+'"'+imagelinks[ry]+'"'+'><img src="'+myimages[ry]+'" border=0></a>') } random_imglink() </script>
Или какой-либо другой скрипт рандомайзер.
Ого, неожиданное решение! Все гениальное просто. Работает, спасибо большое.
ОтветитьУдалитьПожалуйста.
ОтветитьУдалитьС помощью этого способа можно в шапке интерактивную рекламку крутить.
Сейчас попробую на своем блоге,спасибо за здравую мысль!
ОтветитьУдалитьПодскажите, пожалуйста, как можно убрать/изменить ссылку на домашнюю страницу с названия/заголовка блога?
ОтветитьУдалить