Para el Blogger: Cuando hay muchas etiquetas en tu blog, tal vez requieras un clasificarlas y así mostrar un índice alfabético basado en etiquetas. Se formara un índice con las letras desde la "A" hasta la "Z" y al pulsar la letra "A", esta se expanderá para mostrar todas las etiquetas que empiecen con la letra "A".
Mira el ejemplo del índice alfabético en este blog. Para ello realiza los siguientes pasos. Desde "Diseño". "Elementos de pagina", agregue una sección "Etiquetas" a su blog. Luego vaya a 'Edición de HTML" y active la casilla "Expandir plantillas de artilugios". Busque algo similar a:
<div expr:class='"widget-content " + data:display + "-label-widget-content"'>
<b:if cond='data:display == "list"'>
<ul>
<b:loop values='data:labels' var='label'>
<li>
<b:if cond='data:blog.url == data:label.url'>
<span expr:dir='data:blog.languageDirection'><data:label.name/></span>
<b:else/>
<a expr:dir='data:blog.languageDirection' expr:href='data:label.url'><data:label.name/></a>
</b:if>
<b:if cond='data:showFreqNumbers'>
<span dir='ltr'>(<data:label.count/>)</span>
</b:if>
</li>
</b:loop>
</ul>
<b:else/>
<b:loop values='data:labels' var='label'>
<span expr:class='"label-size label-size-" + data:label.cssSize'>
<b:if cond='data:blog.url == data:label.url'>
<span expr:dir='data:blog.languageDirection'><data:label.name/></span>
<b:else/>
<a expr:dir='data:blog.languageDirection' expr:href='data:label.url'><data:label.name/></a>
</b:if>
<b:if cond='data:showFreqNumbers'>
<span class='label-count' dir='ltr'>(<data:label.count/>)</span>
</b:if>
</span>
</b:loop>
</b:if>
<b:include name='quickedit'/>
</div>
y elimine todo el texto entre los "<b:if> </b:if>" que se muestra en
color amarillo y reemplácelo con lo siguiente:
<!-- INICIO -->
<script type='text/javascript'>
// definición de las variables utilizadas
var elBlog ="<data:blog.homepageUrl/>"; // la URL del blog
var listaEtiquetas = new Array(); // el array que contendrá las etiquetas
var listaEtiquetasNum=0; // contador auxiliar
var laSeccion = ""; // guarda los nombres de las categorías
var elEnlace =""; // el enlace a cada subcategoría
// usamos los datos de Blogger para recopilar todas las etiquetas del blog
<b:loop values='data:labels' var='label'>
// leemos el nombre de cada una de las etiquetas
var elNombre = "<data:label.name/>";
// lo guardamos en el array
listaEtiquetas[listaEtiquetasNum] = elNombre;
listaEtiquetasNum ++; // incrementamos el contador
</b:loop>
// función auxiliar para expandir y contraer las secciones
function linkLista(cual) {
var idListaUL = document.getElementById(cual);
if(idListaUL.style.display == 'none') {
idListaUL.style.display = 'block';
}else{
idListaUL.style.display = 'none';
}
return false;
}
</script>
<script type='text/javascript'>
//<![CDATA[
// leemos todas las etiquetas, las separamos en dos partes y procesamos
for (var i = 0; i < listaEtiquetas.length; i++) {
var cual=listaEtiquetas[i]; // leemos la etiqueta completa
var leerSeccion = cual.substr(0,1).toUpperCase(); // guardamos el nombre de la categoría
var leerItem = cual; // guardamos el nombre de la subcategoría
// si no hay una subategoría, leerItem no tendrá un valor y lo salteamos
if (leerItem!=undefined) {
// sólo mostramos categorías y subcategorías
if (laSeccion != leerSeccion) {
// si todavía no lo hicimos, creamos el enlace de la categoría desplegable
document.write("</ul>"); // por las dudas, cerramos cualquier lista abierta
laSeccion = leerSeccion; // el nombre de la categoría (el continente)
// creamos un enlace con una clase CSS llamada listadoSECCION que servirá para desplegar y contraer la categoría
document.write("<a class=\"listadoSECCION\" title=\"Expandir/Contraer la sección\" href=\"javascript:void(0);\" onclick=\"return linkLista('" + laSeccion + "');\">" + laSeccion + "</a> ");
// iniciamos el bloque oculto con la lista de subcategorías a las que le establecemos una clase CSS llamada listadoBloqueITEMS
document.write("<ul class=\"listadoBloqueITEMS\" id=\"" + laSeccion + "\" style=\"display:none;\">");
}
// determinamos la URL de cada enlace
elEnlace = elBlog + "search/label/" + leerItem
// escribimos cada item de la lista con una clase CSS llamada listadoITEM
document.write("<span class=\"listadoITEM\"><a href=\""+ elEnlace + "\">" + leerItem + "</a></span> ");
}
}
//]]>
</script>
<!-- FIN -->
Guarde la plantilla y ya cuenta con un indice alfabético de etiquetas (
basado en la idea de JMiur)
Mira el ejemplo del índice alfabético en este blog.
gracias por la información.
ResponderEliminarde todos modos no hay ningún texto en rojo con lo que no me queda claro qué es lo que hay que sustituir.
Disculpa el olvido, ya lo iluminé en amarillo.
ResponderEliminarmuchas gracias.
ResponderEliminaral final había sustituido casi todo el widget y más o menos me había funcionado.
no sé si tienes tiempo y me puedes dar algún consejo. me crea un índice que diferencia entre mayúsculas y minúsculas y repite algunas letras.
¿tienes idea de cómo hacer para que no diferencie las mayúsculas y las minúsculas? ¿y es posible modificar la tipografía de las letras?
http://img692.imageshack.us/img692/5706/sinttulo2copiau.png
si no tienes tiempo de responder, no te preocupes, entraré en algún foro a ver si me pueden echar una mano, que yo de lenguajes webs no tengo ni idea.
gracias por el invento!
bueno, pues como no sé nada de CSS, parece que al final he descubierto cómo solucionar el problema por otro lado.
ResponderEliminartenía etiquetas encabezadas con mayúsculas y etiquetas con mínúsculas. La minúsculas creaban perturbaciones en el listado y además hacían que no apareciesen las etiquetas con mayúsculas que venían tras ellas -dentro de una misma letra-.
he modificado las etiquetas manualmente -ahora todas empiezan con mayúsculas- y el listado parece ahora correcto.
Vi tu pagina y para que quede mejor cambia:
ResponderEliminardocument.write("<span class="listadoITEM"><a href=""+ elEnlace + "">" + leerItem + "</a></span> ");
por
document.write("<span class="listadoITEM"><a href=""+ elEnlace + "">" + leerItem + "</a></span><br />");
El <br /> extra hara que cada etiqueta aparezca debajo
gracias, lo probaré.
ResponderEliminarHe probado y me pasa lo mismo que a afasia, me crea un índice que diferencia entre mayúsculas y minúsculas y repite algunas letras.
ResponderEliminarAlgún consejo? Gracias
Le he agregado (en verde) .toUpperCase() para el problema de las minusculas.
ResponderEliminarmmuy bueno!! ya pensaba en hacer algo parecido por mi cuenta, se agradece!!
ResponderEliminar