sexta-feira, 29 de agosto de 2008

Artigos relacionados no blog

Hoje vou mostrar como customizar o template com o hack "Artigos relacionados", que nada mais é do que uma lista de outros posts marcados com a mesma tag, indicando ao leitor outro post semelhante com o que ele está lendo.

Depois de fazer login no blogger , clique em "Layout" -- "Modelo" --"Editar HTMl".
(Minha dica é você fazer um backup do template atual, para isso "Baixar modelo completo".)

Encontre a tag "</head>" e em seguida cole antes dela esse código:

<script
type="text/javascript">
//<![CDATA[
var relatedTitles = new Array();
var relatedTitlesNum = 0;
var relatedUrls = new Array();
function related_results_labels(json) {
for (var i = 0; i < json.feed.entry.length; i++) {
var entry = json.feed.entry[i];
relatedTitles[relatedTitlesNum] = entry.title.$t;
for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == 'alternate') {
relatedUrls[relatedTitlesNum] = entry.link[k].href;
relatedTitlesNum++;
break;
}
}
}
}
function removeRelatedDuplicates() {
var tmp = new Array(0);
var tmp2 = new Array(0);
for(var i = 0; i < relatedUrls.length; i++) {
if(!contains(tmp, relatedUrls[i])) {
tmp.length += 1;
tmp[tmp.length - 1] = relatedUrls[i];
tmp2.length += 1;
tmp2[tmp2.length - 1] = relatedTitles[i];
}
}
relatedTitles = tmp2;
relatedUrls = tmp;
}
function contains(a, e) {
for(var j = 0; j < a.length; j++) if (a[j]==e) return true;
return false;
}
function printRelatedLabels() {
var r = Math.floor((relatedTitles.length - 1) * Math.random());
var i = 0;
document.write('<ul>');
while (i < relatedTitles.length && i <
20) {
document.write('<li><a href="' + relatedUrls[r] +
'">' + relatedTitles[r] +
'</a></li>');
if (r < relatedTitles.length - 1) {
r++;
} else {
r = 0;
}
i++;
}
document.write('</ul>');
}
//]]>
</script>

Depois salve essas alterações feitas.

Clique em “Expandir modelos de widgets”
Procure pelo seguinte código:
<b:if
cond='data:post.labels'>
<data:postLabelsLabel/>
<b:loop values='data:post.labels' var='label'>
<a expr:href='data:label.url'
rel='tag'><data:label.name/></a>
<b:if cond='data:label.isLast !=
"true"'>,</b:if>
</b:loop>
</b:if>

Cole o código abaixo antes do </b:loop>:

<b:if
cond='data:blog.pageType == "item"'>
<script expr:src='"/feeds/posts/default/-/" + data:label.name +
"?alt=json-in-script&amp;callback=related_results_labels&amp;max-results=5"'
type='text/javascript'/>
</b:if>

Salve o template!
Procure esse código:

<pclass='post-footer-line post-footer-line-3'/>

Ou

<div class='post-footer-line post-footer-line-3'/>

Adicione este código logo depois:

<b:if
cond='data:blog.url != data:blog.homepageUrl'>Artigos
Relacionados</b:if><script
type='text/javascript'>
removeRelatedDuplicates();

printRelatedLabels();

</script>
Agora é só salvar o template, abrir seu blog e visualizar o hack, lembrando que ele só apareçe
nas paginas individuais e não na home.

Dica da Juliana, do DicasBlogger
*** Para encontrar rapidamente as tags, segure "Ctrl + F" e digite o termo a ser pesquisado na página.

1 comentários:

Marcelo disse...

Tentei mil veses instalar este código, pelo site da nospherat, pelo compulsivo. Não sei por que só cosegui agora. Não acreditava que ia dar certo mas deu. Valeu!

Postar um comentário

Termos de uso:

* Não use palavras de baixo calão;
* Não use o miguxês, internetês;
* Não seja um spammer, comente com sabedoria;
* Quer mostrar seu blog? Use a opção "Open ID";
* Todos os comentários serão moderados;
* Receba a resposta por email, clique em "Inscrever-se".

Leu as regras? Agora comenta!