
Я тучка, тучка, тучка.
Я вовсе не медведь.
Ах как приятно тучке,
по небу лететь...
(Подписи к картинкам учимся делать здесь:
Blogger: Картинка с подписью!)
Облако тэгов или куча ярлыков!
Всем доброго времени суток! В субботу дальше Киевского вокзала мне ехать не пришлось, так что на радостях в воскресенье я взялась за написание очередной давно обещанной Скеггльёльд (Трудовые серые будни Скеггльёльд) статьи об Облаке тегов и наверное во вторник мне удастся её опубликовать.
Итак, облако тегов. Облако - туча - куча. Ну а, теги в Blogger'е переводят словом ярлык.. может быть не самый удачный перевод, но какой уж есть.
Пожалуй, пора переходить от лирического отступления к делу, а то так и до вторника можно будет не управится. Прежде всего алгоритм образования облака тегов взят мной из этой статьи: Setup and configuration for New Blogger Tag Cloud / Label Cloud.
Начинаем. Чтобы получить это облако тэгов (кучу ярлыков) Прежде всего нам надо завести эти самые ярлыки. Стоит ли их вообще использовать каждый решает для себя сам. В общем, ярлыки - неплохой инструмент показать читателю на какие темы еще он сможет найти информацию у вас в блоге. А облако тегов на боковой панеле помогает предъявить читателю все (или все значимые) ярлыки вашего блога в наиболее компактной форме. Как назначать ярлыки я уже писала в предыдущей статье: Blogger: Работа с метками и ярлыками!
Продолжаем. Ярлыки, у всех кто их решил завести, у нас к этому моменту предположим уже есть. Теперь на боковую панель надо добавить гаджет под названием Ярлыки:
Как всегда: Панель инструментов --> Дизайн --> Добавить гаджет
и из списка гаджетов выбираем Ярлыки (Покажите все ярлыки сообщений в своем блоге).
и из списка гаджетов выбираем Ярлыки (Покажите все ярлыки сообщений в своем блоге).
Теперь вся подготовительная работа сделана и можно вносить изменение в HTML-код нашего Шаблона.
Панель инструментов --> Дизайн --> Изменить Html
Как всегда перед началом любых изменений делаем резервную копию нашего шаблона
Blogger: Сохраняем и восстанавливаем шаблон на Blogger(е)!, а иногда не забываем делать и полный бэкап блога: Самый легкий способ сделать бэкап на Blogger'е!
Blogger: Сохраняем и восстанавливаем шаблон на Blogger(е)!, а иногда не забываем делать и полный бэкап блога: Самый легкий способ сделать бэкап на Blogger'е!
Изменение Html кода будет состоять из трех этапов.
Прежде всего поставьте галочку на Расширить шаблоны виджета:
1) Определение переменных для CSS- описания нашего Облака тегов:
Следующий код вставляем перед ]]></b:skin>
/* Label Cloud Styles2) Определяем переменные для JavaScript Облака тегов:
----------------------------------------------- */
#labelCloud {text-align:center;font-family:arial,sans-serif;}
#labelCloud .label-cloud li{display:inline;background-image:none !important;padding:0 5px;margin:0;vertical-align:baseline !important;border:0 !important;}
#labelCloud ul{list-style-type:none;margin:0 auto;padding:0;}
#labelCloud a img{border:0;display:inline;margin:0 0 0 3px;padding:0}
#labelCloud a{text-decoration:none}
#labelCloud a:hover{text-decoration:underline}
#labelCloud li a{}
#labelCloud .label-cloud {}
#labelCloud .label-count {padding-left:0.2em;font-size:9px;color:#000}
#labelCloud .label-cloud li:before{content:"" !important}
Следующий код вставляем после ]]></b:skin>
<script type='text/javascript'>Кстати, все переменные потом можно будет подправить...
// Label Cloud User Variables
var cloudMin = 1;
var maxFontSize = 20;
var maxColor = [0,0,255];
var minFontSize = 10;
var minColor = [0,0,0];
var lcShowCount = false;
</script>
3) Последний и основной кусок кода.
Теперь ищем вот такую строчку в нашем коде:
<b:widget id='Label1' locked='false' title='Labels' type='Label'/>
Ровно такая может и не найтись пробелом больше - пробелом меньше сами понимаете... основное здесь возможно: id='Label1'
Теперь весь текст начиная с этой или примерно этой строчки
<b:widget id='Label1' locked='false' title='Labels' type='Label'/>
и заканчивая строчкой окончания этого виджета: </b:widget>
заменяем на следующий код:
<b:widget id='Label1' locked='false' title='Label Cloud' type='Label'>
<b:includable id='main'>
<b:if cond='data:title'>
<h2><data:title/></h2>
</b:if>
<div class='widget-content'>
<div id='labelCloud'/>
<script type='text/javascript'>
// Don't change anything past this point -----------------
// Cloud function s() ripped from del.icio.us
function s(a,b,i,x){
if(a>b){
var m=(a-b)/Math.log(x),v=a-Math.floor(Math.log(i)*m)
}
else{
var m=(b-a)/Math.log(x),v=Math.floor(Math.log(i)*m+a)
}
return v
}
var c=[];
var labelCount = new Array();
var ts = new Object;
<b:loop values='data:labels' var='label'>
var theName = "<data:label.name/>";
ts[theName] = <data:label.count/>;
</b:loop>
for (t in ts){
if (!labelCount[ts[t]]){
labelCount[ts[t]] = new Array(ts[t])
}
}
var ta=cloudMin-1;
tz = labelCount.length - cloudMin;
lc2 = document.getElementById('labelCloud');
ul = document.createElement('ul');
ul.className = 'label-cloud';
for(var t in ts){
if(ts[t] < cloudMin){
continue;
}
for (var i=0;3 > i;i++) {
c[i]=s(minColor[i],maxColor[i],ts[t]-ta,tz)
}
var fs = s(minFontSize,maxFontSize,ts[t]-ta,tz);
li = document.createElement('li');
li.style.fontSize = fs+'px';
li.style.lineHeight = '1';
a = document.createElement('a');
a.title = ts[t]+' Posts in '+t;
a.style.color = 'rgb('+c[0]+','+c[1]+','+c[2]+')';
a.href = '/search/label/'+encodeURIComponent(t);
if (lcShowCount){
span = document.createElement('span');
span.innerHTML = '('+ts[t]+') ';
span.className = 'label-count';
a.appendChild(document.createTextNode(t));
li.appendChild(a);
li.appendChild(span);
}
else {
a.appendChild(document.createTextNode(t));
li.appendChild(a);
}
ul.appendChild(li);
abnk = document.createTextNode(' ');
ul.appendChild(abnk);
}
lc2.appendChild(ul);
</script>
<noscript>
<ul>
<b:loop values='data:labels' var='label'>
<li>
<b:if cond='data:blog.url == data:label.url'>
<data:label.name/>
<b:else/>
<a expr:href='data:label.url'><data:label.name/></a>
</b:if>
(<data:label.count/>)
</li>
</b:loop>
</ul>
</noscript>
<b:include name='quickedit'/>
</div>
</b:includable>
</b:widget>
Теперь нажимаем синенькую кнопочку ПРОСМОТР и если на боковой панеле Список Ярлыков преобразовалсь в Облако, нажимаем оранжевую кнопку СОХРАНИТЬ ШАБЛОН, если Облако не появилось или Blogger сообщает нам об ошибке мы нажимаем УБРАТЬ ИЗМЕНЕНИЯ и пытаемся проделать все манипуляции еще раз.
Извиняюсь перед читатетлями, но далее в этой статье использовать слово ялык, принятое в русскоязычном Blogger'e я не смогу. Я заменю его (чтобы текст далее звучал более по русски) словом раздел.
Две известные причины когда этот скрипт может не заработать:
Если все ваши разделы содержат лишь по одной статье.
Если в названии разделов содержатся апострофы или двойные кавычки.
Если у вас появилось облако тегов возможно вам захочется что-нибудь в нем поднастроить. Итак, что в этой версии можно поменять:
Заходим опять Панель инструментов --> Дизайн --> Изменить Html и внимательно смотрим на переменные добавленные нами на шаге 2).
Вот что они означают:
var cloudMin= 1; - Минимальное количество статей в разделе. С помощью этой переменной вы можете исключить все редко-используемые ярлыки из вашего облака тегов.
var maxFontSize = 20; - Максимальный размер шрифта используемый для Облака тэгов
var minFontSize = 10; - Минимальный размер шрифта используемый для Облака тэгов
var maxColor = [0,0,255]; - Цвет используемый для разделов с максимальным количеством статей
var minColor = [0,0,0]; - Цвет используемый для разделов с минимальным количеством статей
Цвет записываются в виде rgb о цветах мы немного рассуждали здесь: Blogger: Готовим краски для раскраски! Теперь я нашла еще один очень полезный online инструмент для подбора цветов: Color Schemer Online v2. И здесь они приводят номера цветов не только в шестнацатиричной но и в десятичной системе счисления. (Нам для этого скрипта нужны будут номера цветов в десятичной систем - т.е. никаких там A и F в номерах и все что между ними). Я кстати, наконец поменяла номера цветов и у себя в облаке тегов. Вот как оказывается полезно писать статьи! У меня теперь: var maxColor = [255,0,0]; (красный) и var minColor = [255,255,0]; (желтый). Выглядит помоему намного более гармонично, чем дефолтнные минимальный - черный и максимальный - синий.
И последняя переменная
var lcShowCount = false; Может принимать два значения false и true. - Её значение - показывать ли количество статей в разделе рядом с именем ярлыка. Дефолтное значение false (т.е. ложно - т.е. не показывать), можно и показывать, но меня лично устроил показколичества статей по наведению мышки на имя ярлыка.
Кажется, я рассказала почти все об Облаке тегов и почти уложилась со сроком, который я себе поставила (сейчас только 45 минут как началась среда).
Всем здоровья и удачи!
Света
PS Кому захочется поменять облако тегов на стандартный Blogger'овский гаджет обратно - это легко сделать. Найдите место где вы вставили последний кусок кода и замените его целиком на этот код:
<b:widget id='Label1' locked='false' title='Lables!' type='Label'>
<b:includable id='main'>
<b:if cond='data:title'>
<h2><data:title/></h2>
</b:if>
<div class='widget-content'>
<ul>
<b:loop values='data:labels' var='label'>
<li>
<b:if cond='data:blog.url == data:label.url'>
<span expr:dir='data:blog.languageDirection'>
<data:label.name/>
</span>
<b:else/>
<a expr:dir='data:blog.languageDirection' expr:href='data:label.url'>
<data:label.name/>
</a>
</b:if>
<span dir='ltr'>(<data:label.count/>)</span>
</li>
</b:loop>
</ul>
<b:include name='quickedit'/>
</div>
</b:includable>
</b:widget>
<b:includable id='main'>
<b:if cond='data:title'>
<h2><data:title/></h2>
</b:if>
<div class='widget-content'>
<ul>
<b:loop values='data:labels' var='label'>
<li>
<b:if cond='data:blog.url == data:label.url'>
<span expr:dir='data:blog.languageDirection'>
<data:label.name/>
</span>
<b:else/>
<a expr:dir='data:blog.languageDirection' expr:href='data:label.url'>
<data:label.name/>
</a>
</b:if>
<span dir='ltr'>(<data:label.count/>)</span>
</li>
</b:loop>
</ul>
<b:include name='quickedit'/>
</div>
</b:includable>
</b:widget>
Комментарии и вопросы более чем приветствуются,
нужна помощь - поможем! Читать дальше...