
Нет, определенно это выдержит не каждый. Не стал исключением и я, когда в один из дней и моя девушка решила всплакнуть под говяненький сериальчик "Мятежный дух", виденный ею еще в пору образования первых веснушек. Первое время все ее восторги и воспоминания я переносил мужественно и беззвучно, подобно тихому и домашнему хомячку, лениво глядящему с нижней полки на все прихоти хозяев, суетящихся где-то там вверху. Но, видимо, к концу дня во взгляде у меня все же отразилось что-то такое, что заставило ее от греха подальше переместиться на кухню и продолжить просмотр там, неспешно совмещая его с мелкой уборкой. Вследствие чего занимаемое ею помещение периодически наполнялось вздохами, сдержанными смешками и признаниями юной Хуаны Марии и не менее юного Педро де Лусии. Сопереживает, значит она, думалось мне язвительно, но, тем не менее, облегченно.
Эх, я еще не знал тогда всей пользы таких ностальгических экскурсов в детство! По окончанию просмотра, когда довольная душа моей романтической девушки была увлажнена страстями молодых сериальных страдальцев, комната нашей кухни приобрела горделивое лицо торгового дома IKEA, важно блестя уютными, прибранными полочками и приборами. На плите призывно дымился аппетитный и томный ужин, что мне захотелось расплакаться от счастья; даже пустая и одинокая солонка, заброшенная в последние дни из-за, э, пусть будет нашей занятости, была аккуратно заполнена и теперь добродушно блестела керамическим боком мне со стола. Вот я сейчас думаю, может ей подкинуть второй сезон, если он существует, или напомнить с мечтательной непринужденностью о других ее мыльных ностальгиях детства?
Ну да лады. Я счастлив побочным эффектом плаксивых девчушек из сериальной жизни. Мы же сегодня поговорим об установке облака тегов в блог. К сожалению, у Blogger эта функция выглядит достаточно неказисто и, как все родное, требует доработки. К чему мы немедленно и приступим. Попробуем немного украсить гаджет тегов и придать ему более аристократичный вид. В итоге должно получится примерно то, что вы можете лицезреть на этом блоге в колонке справа. В отличие от flash-облаков тегов, ему не требуется наличие в браузере у пользователя включенной поддержки flash.
Первое, что нужно сделать, это добавить в шаблон блога родной виджет ярлыков от Blogger, если таковой у вас отсутствует. Для этого на странице Дизайн в шаблон включаем новый элемент HTML/JavaScript - Ярлыки.
Следующим действием переходим во вкладку "Изменить HTML" и определяем стили CSS для будущего творения. Установка требует "ковыряния" HTML-кода, поэтому не стесняйтесь сохранить его резервную копию на локальный диск перед сотворением чуда, да и профилактики ради. После чего с помощью сочетания клавиш CTRL+F в браузере находим отрезок кода:
]]></b:skin>Сразу перед ним добавляем стили:
/* Label Cloud Styles */
#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}
Далее мы ищем другой отрезок кода в шаблоне:</head>Опять же, перед ним добавляем код:
<script type='text/javascript'> // Label Cloud User Variables var cloudMin = 1; var maxFontSize = 20; var maxColor = [122,109,85]; var minFontSize = 10; var minColor = [0,0,0]; var lcShowCount = false; </script>Гордимся собой и сохраняем шаблон. И тут же переходим ко второй стадии установки. Процесс снова будет проходить непосредственно в шаблоне блога во вкладке "Изменить HTML", но теперь уже отмечаем галочкой "Расширить шаблоны виджетов". И снова поиски. Так как мы установили родной облако ярлыков от Blogger, о чем я просил раньше, ищем в шаблоне начало этого виджета, то есть примерно такую строчку:
<b:widget id='Label1' locked='false' title='Labels' type='Label'>Виджет оканчивается строкой:
</b:widget>Беззастенчиво удаляйте все ненужное, заключенное между этими тегами. Теперь набиваем новой начинкой наше облако тегов. Вместо удаленного вписываем следующий код, это значит, что разместиться он у вас также между найденными тегами <b:widget id='Label1' locked='false' title='Labels' type='Label'/> и </b:widget>:
<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>
В итоге остается только сохранить шаблон. И если все сделано правильно и с воодушевлением, то с этих самых пор у вас в блоге должно появиться симпатичное облако тегов. Если же надобность в нем отпадет, вы в любое время сможете удалить его, просто убрав тот элемент HTML/Javascript, в котором он обитает. Виджет уже настроен, но вы можете облагородить его по своему вкусу. Для этого привожу значения, указанные в скрипте, размещенном перед строкой /head, которые поддаются дрессировке:var maxFontSize = 20; - шрифта ярлыков с максимальным количеством сообщений.
var maxColor = [122,109,85]; - цвет ярлыков с максимальным количеством сообщений.
var minFontSize = 10; - размер шрифта ярлыков с наименьшим количеством сообщений.
var minColor = [0,0,0]; - минимальный цвет ярлыков с наименьшим количеством сообщений.
var lcShowCount = false; - показывать или не показывать количество записей с тегом. Если стоит false - не показывать.
a.title = ts[t]+' Posts in '+t; - выводимая фраза о количестве сообщений при наведении мышки на ярлык.
















