Nube

martes, 20 de mayo de 2008

Referencia de entradas relacionadas con blogger

Para permitir un mayor flujo de navegación entre la información de mi blog he decidido añadir una recomendación de entradas al final de cada entrada.

Lo más importante es tener bien estructuradas las categorías del blog.
Intenta concretar a la hora de etiquetar algo ya que al hacerlo genérico acabarás teniendo información muy diversa en la misma categoría. Yo por ejemplo he eliminado las categorías programación y tutoriales. Tenía en programación diferentes lenguajes, PHP, CSS, Java Script, V.B. 6.0 ... etc ... Y en tutoriales se mezclaban los de programación con los de dibujo.
Eliminándolas he logrado una mayor eficiencia y claridad y lo que es más importante mayor relación entre sus semejantes :D

Vamos al lío.

Vamos a Panel de Administración/Diseño/Edición de HTML
Búscamos, con la opción que llevan todos los navegadores, ]]></b:skin>.
Detrás ponemos:


<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 cuantosPosts = 0;

var r = Math.floor((relatedTitles.length - 1) * Math.random());

var i = 0;

var dirURL = document.URL;

document.write('<ul>');

while (i < relatedTitles.length && i < 20) {

if (relatedUrls[r] != dirURL) {

document.write('<li><a href="' + relatedUrls[r] + '" title="Post relacionado: '

+ relatedTitles[r] + '">' + relatedTitles[r] + '</a></li>');

}

if (r < relatedTitles.length - 1) {

r++;

} else {

r = 0;

}

i++;

cuantosPosts++;

if (cuantosPosts == 3) {

break;

}

}

document.write('</ul>');

}

//]]>

</script>


Guardamos la plantilla. Ahora marcamos la opción "expandir plantilla de artilugios" y buscamos: <b:if co nd='data:post.labels'>


Un poco más abajo encontraremos </b:loop>, justo antes insertamos:


<b:if cond='data:blog.pageType == "item"'>

<script expr:src='"/feeds/posts/default/-/" + data:label.name +

"?alt=json-in-script&callback=related_results_labels&max-results=10"'

type='text/javascript'/>

</b:if>


Para terminar buscamos <div class='post-footer-line post-footer-line-3'/> y añadimos a continuación :


<p>Entradas relacionadas:

<script type='text/javascript'>

removeRelatedDuplicates();

printRelatedLabels();

</script>

</p>


Guardamos, ya lo tenemos todo agregado :X
Si tienes algún problema codifica los ampersands "&" con el símbolo "& amp;" (Sin espacio)



Fuente : OscarGP.net

No hay comentarios: