пятница, 20 марта 2009 г.

Кат в блоггере

Раз уж сам сделал то и вам расскажу что и как.
Способов масса, но я пользовался весьма занудным


Вначале, сохраняем, на всякий случай, уже имеющийся у нас вариант шаблона на жёсткий диск (на тот случай, чтобы если что-то не выйдет - можно было всё восстановить).

Открываем Макет там изменить HTML и ставим галочку на "расширить шаблоны виджета".

Теперь нам надо добавить код прямо перед тегом </head>

Вот этот код:

<b:if cond='data:blog.pageType != "item"'>
<script type="text/javascript">

var fade = false;
function showFull(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
for (var i = 0; i &lt; spans.length; i ) {
if (spans[i].id == "fullpost") {
if (fade) {
spans[i].style.background = peekaboo_bgcolor;
Effect.Appear(spans[i]);
} else spans[i].style.display = 'inline';
}
if (spans[i].id == "showlink")
spans[i].style.display = 'none';
if (spans[i].id == "hidelink")
spans[i].style.display = 'inline';
}
}


function hideFull(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
for (var i = 0; i &lt; spans.length; i ) {
if (spans[i].id == "fullpost") {
if (fade) {
spans[i].style.background = peekaboo_bgcolor;
Effect.Fade(spans[i]);
} else spans[i].style.display = 'none';
}
if (spans[i].id == "showlink")
spans[i].style.display = 'inline';
if (spans[i].id == "hidelink")
spans[i].style.display = 'none';
}
post.scrollIntoView(true);
}

function checkFull(id) {
var post = document.getElementById(id);
var spans = post.getElementsByTagName('span');
var found = 0;
for (var i = 0; i &lt; spans.length; i ) {
if (spans[i].id == "fullpost") {
spans[i].style.display = 'none';
found = 1;
}
if ((spans[i].id == "showlink") &amp;&amp; (found == 0))
spans[i].style.display = 'none';
}
}

</script>
</b:if>

Затем, в коде блога Макет а там Изменить HTML надо найти строку вида:
<data:post.body/>

Проблема - в разных шаблонах она может быть разной

<div class='post-body> или такой:

<p><data:post.body/></p> или такой:

<div style='clear: both;'/> <!-- clear for photos floats -->

</div>

Чуть выше его будет строка, которая в разных темплейтах тоже может немного разниться. Она имеет такой вид (3 варианта):

div class='post'

div class='entry'

div class='post-body entry-content'

Эту строку нам надо изменить и дополнить. Её начало мы оставляем нетронутым, а потом добавляем только то, что выделено голубым цветом, ровно так, как указано ниже:

<div class='post-body' expr:id='"post-" data:post.id' >

<b:if cond='data:blog.pageType == "item"'>
<style>#fullpost{display:inline;}</style>
<p><data:post.body/></p>
<b:else/>
<style>#fullpost{display:none;}</style>

<p><data:post.body/></p>

<span id='showlink'>
<a expr:href='data:post.url'> Далее...</a>
</span>
<script type='text/javascript'>
checkFull("post-" "<data:post.id/>");
</script>
</b:if>


<div style='clear: both;'/> <!-- clear for photos floats -->
</div>
Обращаю внимание, на закрывающий значок " ' " сразу после первых букв "div class='post-body - если вы забудете его, то темплейт не сохранится и выдаст ошибку. Слово "Далее..." можно заменить на любое другое. Сохраняем шаблон. Затем идем в Настройки там форматирование.
В рамке внизу, над которой значится "шаблон сообщения", добавляем строки:
Шапка
<span id="fullpost">
Под катом
</span>

Это для того чтобы не забыть какими тегами мы пользуемся при составлении сообщений.

Похожие:



0 коммент.:

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