На сегодняшний момент это новейшая функция, которая улучшает работу блога в разы.
Ajax на много ускоряет работу блога. Это очень удобный виджет, работает в броузерах FireFox, Opera, InternetExplorer6 и др.
Хитрость быстроты работы такого облака тегов, это то, что перезагружается только колонка с сообщениями, а вы остаётесь на прежней странице.
Для того, чтобы облако работало нужно использовать XML шаблон(Не класический)
На моём блоге установлено ajax облако тегов, можете использовать в качестве примера.
Чтобы установить ajax облако тегов на своём блоге, выполните операции по инструкции, которые расположены ниже:
Шаг #1 | Шаг #2 | Шаг #3 | Шаг #4 | Шаг #5 | Шаг #6 |
Установка Ajax облака тегов(Инструкция)
Эту операцию (Шаг #1,#2) необходимо сделать если у вас ещё не установлено облако тегов.Если установлено, то переходите к Шагу #3
Приступим к раблоте...
Шаг #1
Чтобы добавить ajax облако тегов в свой блог нужно выполнить не сколько действий:
Перейдите в Настройки блога > Макет >
Затем перейдите по ссылке: "Добавить гаджет"
Добавьте виджет "Ярлыки"
Теперь перейдите в вкладку Макет> Изменить HTML
Найдите в шаблоне тег
]]></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}
----------------------------------------------- */
#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}
Шаг #2
Теперь найдите следующий код
]]></b:skin>
Сразу после него, но перед этим тегом
</head>
вставьте скрипт расположеный ниже:
<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>
// 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'/>
Замените его на следующий:
<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.className = 'phyLabel';
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>
<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.className = 'phyLabel';
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>
Шаг #4
Теперь найдите этот тег
]]></b:skin>
Сразу после него, но перед этим тегом
</head>
вставьте скрипты расположеные ниже:
Не забудьте заменить Слово в скрипте ВашUrlБлога на url-адрес вашего блога.
Теперь найдите этот тег
]]></b:skin>
Сразу после него, но перед этим тегом
</head>
вставьте скрипты расположеные ниже:
<script src='http://myslvscript.googlecode.com/files/jquery-latest_pack.js'
type='text/javascript'/>
<script src='http://myslvscript.googlecode.com/files/jq_plugins.js'
type='text/javascript'/>
<script src='http://myslvscript.googlecode.com/files/slvbase1.js'
type='text/javascript'/>
<script type='text/javascript'>
function labelLabel(label){
$('#top').ScrollTo(100);
$('#main').html('<div id="phyLoad" style="margin-top:5px"><img src="http://myslvscript.googlecode.com/files/spinner_white.gif" style="vertical-align:middle; padding-right:5px;"/>Загрузка...</div>').json( 'http://ВашUrlБлога.blogspot.com/feeds/posts/summary/-/'+label+'?max-results=50&orderby=published&alt=json-in-script&callback={callback}', pDisplayLabels );
}
</script>
<script src='http://myslvscript.googlecode.com/files/slvbase2.js'
type='text/javascript'/>
type='text/javascript'/>
<script src='http://myslvscript.googlecode.com/files/jq_plugins.js'
type='text/javascript'/>
<script src='http://myslvscript.googlecode.com/files/slvbase1.js'
type='text/javascript'/>
<script type='text/javascript'>
function labelLabel(label){
$('#top').ScrollTo(100);
$('#main').html('<div id="phyLoad" style="margin-top:5px"><img src="http://myslvscript.googlecode.com/files/spinner_white.gif" style="vertical-align:middle; padding-right:5px;"/>Загрузка...</div>').json( 'http://ВашUrlБлога.blogspot.com/feeds/posts/summary/-/'+label+'?max-results=50&orderby=published&alt=json-in-script&callback={callback}', pDisplayLabels );
}
</script>
<script src='http://myslvscript.googlecode.com/files/slvbase2.js'
type='text/javascript'/>
Не забудьте заменить Слово в скрипте ВашUrlБлога на url-адрес вашего блога.
Шаг #5
Эта операция понадобится, если вы свой шаблон сильно изменяли или он имеет не стандартный вид.
Найдите в шаблоне код похожий на этот
<b:widget id='Blog1' locked='true' title='Сообщения блога' type='Blog'/>
Перед ним располжен код похоий на этот
<b:section class='main' id='center-wap' showaddelement='no'>
или этот
<b:section id='main' showaddelement='no'>
Замените его на код расположеный ниже:
<b:section class='main' id='main' showaddelement='no'>
Если на вашем блоге установлен архив блога в виде календаря необходимо выполнить обязательную операцию:
Найдите этот код в шаблоне
<script src='http://code.jquery.com/jquery-latest.min.js' type='text/javascript'/>
Его нужно обязательно удалить.
Эта операция не повлияет на работу архива блога в виде календаря.
Шаг #6
Дальше уже идёт настройка дизайна.
Перейдите по ссылке которая расположена ниже...
Галерея дизайнов сообщений для ajax облака тегов
Шаг #1 | Шаг #2 | Шаг #3 | Шаг #4 | Шаг #5 | Шаг #6 |
11 коммент:
Вячеслав,чтобы предпринять такие изменения, нужно быть уверенным полностью, что шаблон не "поведет". Кроме того, я не совсем уверена, что это сработает... У меня шаблон не стандартный, как Вы заметили. Однако, у меня предусмотрена связь с читателями на блоге. У Вас я не нашла как можно связаться с Вами. Оставьте свой e-mail мне или отпишитесь через форму в моем блоге About me -> contact. Так будет проще обсуждать дальнейшие действия. Спасибо.
Шаблон не подведёт, перед тем, как публиковать эту статью, я её протестировал на десятках нестандартных шаблонах.
Вероятность что не подойдёт очень мала.
По правде говоря, меня испугал объем предложенных кодов... У меня уже внесены изменения в сам шаблон, т.к. я предполагала, что сообщения будут длинными и предусмотрела этот момент. А потом в каждый пост вставляла небольшой код для "читать далее". Мне необходимо, чтобы только часть текста была на главной странице из-за изобилия изображений (которые я привыкла скрывать). Далее, мне не ясно - предыдущие изменения мне придется удалить (?). Тогда не испортятся ли старые сообщения. Действительно при нажатии какого-либо тега на Главной странице, все сообщения отображаются по-разному. Вот это меня и бесит. Я пыталась вносить вручную изменения в каждый пост. Однако НЕ все посты отреагировали "правильно" - некоторые по-прежнему отображаются полностью. Исправится ли эта заморочка, если я так глобально возьмусь вносить изменения?
Если эта проблема относится к Ajax облаку тегов, то это делать бессмысленно, потому, что оно без ваших усилий, автоматически уменьшает размер изображения, даже если вы не устанавливали пост-резюме(Читать полностью...)
Если эта проблема относится просто к ярыкам, то повозиться с изменениями придётся...
Ещё у вас возникала проблема, некоторые посты отображались в полном виде при установленном пост резюме и с изменениями в сообщении, у меня первое время была та же ерунда, но тут есть хитрый код, который решит эту проблему:
для того, чтобы скрывать часть сообщения вы используйте не
<span class="fullpost">................</span>
а
<div class="fullpost">..................</div>
С этим вариантом проблем быть не может...(конечно может, но в очень редком случае, так как тег
<div> очень редко встречается в тексте вашего сообщения(может вообще ни разу не встречался))
Да и ещё, я глянул на тело вашего шаблона, у вас то, что необходимо для ajax облака тегов, находится в стандартном виде.(тело колонки с сообщениями "main-wrapper")
Это очень хорошо и это ajax облако тегов вам идеально встанет.
Вячеслав, ну Вы меня просто убиваете! Я все делала по инструкции. По порядку. Сделала и дошла до последнего шага и тут вываливается "у вас нет доступа к этому документу"... Что это за ерунда? Мне пришлось все изменения удалить. Точнее, не сохранять.. И еще Шаг#2 и Шаг#4 слишком похожи. Вы не находите? А речь идет лишь об одном коде (b:skin). И если мы уже после него что-то вставили (шаг2), то в шаге4 нужно уточнить все-таки местоположение следующего кода.
Приношу извинения, я даже не мог предполагать, что google не даёт доступ посторонним просматривать документы. Больше такого не повторится, ошибка исправлена.
Обратите внимание на мой вопрос... Я "заблудилась" окончательно и поШАГово. =)))
Наталья, чтобы не было ошибок, нужно во первых после каждого шага сохранять изменения, а перед тем, как вносить изменения - делать копию своего шаблона.
Чтобы всё получилось, нужно держать шаблон по пути создания ajax облака тегов в коротком виде(галочка расширить шаблон виджета должна быть выключенной)
А сохранять через каждый шаг нужно обязательно, иначе возникнут ошибки.(Объяснять почему не буду)
Шаг#2 и шаг#4 может быть похожи, но это не значит что их можно игнорировать. Если мы между тегами ]]></b:skin> и </head> что то вставляли, то это не значит, что больше туда ничего вставлять нельзя.
Вы можете вставить скрипты(код который предлагается в шаге2 и 4) в любое место между этими двумя тегами.
Конечно чем выше тем лучше. Рас шаблон вы скачали у кого то, значит между этими тегами может быть ещё скрипты, которые не ваши(не вашего происхождения).
Я немного изменю этот пост, будет объяснена каждая мелочь.
Возникнут вопросы задавайте...
Вячеслав! Огромное Вам спасибо! Моя скорость меня подвела. Поспешила, видимо. Получилось просто восхитительно! Я очень довольна - слов нет. =)
Здравствуйте Sergei. Почему у вас не вышло даже не могу предположить, шаблон у вас стандартный. Если не против, отправьте свой XML-код шаблона, сделаю.
slava_vvk@mail.ru
Отправить комментарий