Traducido simple y en español: "Artículos" (me niego a poner toda la traducción para unas entradas presentadas por etiqueta).
Es un hack JSON de Hoctro's que ya había puesto en práctica en otras ocasiones. Y es que me gusta mucho...
Intentaba sustituirlo por un script de The Last Word que prometía... hasta que me cansé de intentar que funcionase... para leer, entre jaculatorias (mías, claro) en un comentario que ¡NO TRABAJA EN IE!.
¡Coime!: ya me parecía rarito el script pero... a mí no se me ocurre enmendarle la plana a nadie de la "élite"... así que pensé que la que estaba "mal" era yo.
Pues nada... que esas cosas se avisan en la misma entrada del hack... no en un comentario, que leí por casualidad.
Así que, después de haber perdido el tiempo miserablemente con algo que era imposible de ejecutar en mi navegador... volví a lo conocido, cómodo, práctico y guapo: este hack... que explico mañana (hoy se me ha hecho tarde "gracias" al hack imposible para IE que nadie avisó, insisto... así decía yo... "qué raro que no he visto un sólo blog con este hack, aparte del blog del autor"... ahora lo entiendo, grrrrrrrrr :( )
------------------------------
Procedimiento:
1º.- en "opciones" de Feed del diseño de plantilla, asegurar que está permitida la opción Feed del blog (es decir... marcar "Sí").
2º.- Ir a Edición de plantilla y expandirla, para añadir este widget en la parte de la sidebar donde se quiera mostrar (entre dos widgets, antes de terminar la sección de esa sidebar, al comienzo de la misma...):
<b:widget id='Blog2' locked='false' title='Blog Posts' type='Blog'>
<b:includable id='comments' var='post'>
</b:includable>
<b:includable id='postQuickEdit' var='post'>
</b:includable>
<b:includable id='main'>
<!-- *****************http://hoctro.blogspot.com*****Jan,2007****************** -->
<!-- *****************Related Articles by Labels - Take Two****************** -->
<!--<b:if cond='data:blog.pageType == "item"'>-->
<div class='widget-content'>
<h2>Related Articles by Labels</h2>
<div id='data2007'/><br/><br/>
<div id='hoctro'>Widget by <u><a href='http://hoctro.blogspot.com'>Hoctro</a>
</u></div>
<script type='text/javascript'>
var homeUrl3 = "hoctro.blogspot.com";
var maxNumberOfPostsPerLabel = 4;
var maxNumberOfLabels = 10;
<b:if cond='data:blog.pageType == "item"'>
maxNumberOfPostsPerLabel = 100;
</b:if>
<b:if cond='data:blog.pageType == "item"'>
maxNumberOfLabels = 3;
</b:if>
function listEntries10(json) {
var ul = document.createElement('ul');
var maxPosts = (json.feed.entry.length <= maxNumberOfPostsPerLabel) ?
json.feed.entry.length : maxNumberOfPostsPerLabel;
for (var i = 0; i < maxPosts; i++) {
var entry = json.feed.entry[i];
var alturl;
for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == 'alternate') {
alturl = entry.link[k].href;
break;
}
}
var li = document.createElement('li');
var a = document.createElement('a');
a.href = alturl;
var txt = document.createTextNode(entry.title.$t);
a.appendChild(txt);
li.appendChild(a);
ul.appendChild(li);
}
for (var l = 0; l < json.feed.link.length; l++) {
if (json.feed.link[l].rel == 'alternate') {
var raw = json.feed.link[l].href;
var label = raw.substr(homeUrl3.length+21);
var k;
for (k=0; k<20; k++)
label = label.replace("%20", " ");
var txt = document.createTextNode(label);
var h = document.createElement('h4');
h.appendChild(txt);
var div1 = document.createElement('div');
div1.appendChild(h);
div1.appendChild(ul);
document.getElementById('data2007').appendChild(div1);
}
}
}
function search10(query, label) {
var script = document.createElement('script');
script.setAttribute('src', 'http://' + query + '/feeds/posts/default/-/'
+ label +
'?alt=json-in-script&callback=listEntries10');
script.setAttribute('type', 'text/javascript');
document.documentElement.firstChild.appendChild(script);
}
var labelArray = new Array();
var numLabel = 0;
<b:loop values='data:posts' var='post'>
<b:loop values='data:post.labels' var='label'>
textLabel = "<data:label.name/>";
var test = 0;
for (var i = 0; i < labelArray.length; i++)
if (labelArray[i] == textLabel) test = 1;
if (test == 0) {
labelArray.push(textLabel);
var maxLabels = (labelArray.length <= maxNumberOfLabels) ?
labelArray.length : maxNumberOfLabels;
if (numLabel < maxLabels) {
search10(homeUrl3, textLabel);
numLabel++;
}
}
</b:loop>
</b:loop>
</script>
</div>
<!--</b:if>-->
</b:includable>
<b:includable id='backlinkDeleteIcon' var='backlink'>
</b:includable>
<b:includable id='feedLinksBody' var='links'>
</b:includable>
<b:includable id='backlinks' var='post'>
</b:includable>
<b:includable id='status-message'>
</b:includable>
<b:includable id='feedLinks'>
</b:includable>
<b:includable id='nextprev'>
</b:includable>
<b:includable id='commentDeleteIcon' var='comment'>
</b:includable>
<b:includable id='post' var='post'>
</b:includable>
</b:widget>
Reemplazar por la URL de vuestro blog la del autor del hack, en este fragmento:
var homeUrl3 = "hoctro.blogspot.com";
.- Para cambiar el número máximo de entradas por etiqueta, cambiad, a vuestras necesidades, el número que figura aquí:
var maxNumberOfPostsPerLabel = 4;
.- Para cambiar el número máximo de etiquetas, cambiad este número:
var maxNumberOfLabels = 10;
Para cambiar el título del widget, hacedlo en esa tag:
<h2>Related Articles by Labels</h2>
.- Para eliminar la referencia al autor del hack (pero estaría bien que lo mencionárais al hablar de este hack), suprimid los datos que figuran aquí:
<div id='data2007'/><br/><br/>
<div id='hoctro'>Widget by <u><a href='http://hoctro.blogspot.com'>Hoctro</a>
.- Para especificar el número máximo de etiquetas y de cabeceras de entrada por etiqueta, mirad aquí:
<b:if cond='data:blog.pageType == "item"'>
maxNumberOfPostsPerLabel = 100;
</b:if>
<b:if cond='data:blog.pageType == "item"'>
maxNumberOfLabels = 3;
</b:if>
Aquí se especifica que el número de cabeceras de entradapor etiqueta es 100, y que sólo se mostrarán las 3 primeras etiquetas (en las páginas de "item", es decir, no la principal).
Y creo que esto es todo...
✍ ¿Quieres hacer algún comentario? ✍