JMiur [E]

Ya pasó demasiado tiempo desde que Don Atealgo preguntaba si era posible tener un listado alfabético de TODOS los posts de un blog pero, parece que ha llegado el momento de responder a tanta insistencia [1] [2]
En realidad, hay que agradecérselo a Gem@ que, leyendo los comentarios nos indica dónde buscar la respuesta. Todo se basa en algo publicado por Beatiful Beta y que también explican en El escaparate de Rosa.

Vayamos por partes.

Lo primero que debemos saber es que, para mostrar una lista de los posts en una página, podemos usar la siguiente dirección URL:

http://nombreblog/search/label/?max-results=100

donde reemplazamos nombreblog por el de nuestro sitio y establecemos max-results como la cantidad de posts a mostrar (hasta un máximo de 100).

Evidentemente, esto no sirve de mucho porque lo que tendremos es una larguísima página y lo que necesitamos es mostrar sólo los títulos. Para lograrlo podemos modificando la plantilla. Vamos a Edición HTML, marcamos Expandir elementos y buscamos lo siguiente:
<b:includable id='main' var='top'>
..............
</b:includable>

El resultado será que, en todas las páginas, excepto en la página principal y en las de posts individuales, sólo se mostrarán los títulos y cada uno de ellos será un enlace. Personalmente, descartaría esta solución porque no es muy elegante y, en todo caso, para este tipo de alternativas, es mejor recurrir al hack de Entradas expandibles del que habla la misma Gem@ en su blog.

Pero, la idea no es listar los posts que se ordenan cronológicamente sino ordenarlos alfabéticamente y esta es la parte interesante y, para la cual debemos recurrir al JavaScript.

El ejemplo más sencillo de implementar no requiere otra cosa que copiar y pegar aunque, más adelante, veremos cómo es posible personalizar el resultado.

Abrimos la plantilla y, en Edición HTML, marcamos Expandir elementos y buscamos el siguiente código:
<div id='main-wrapper'>
Lo que debemos modificar es la línea siguiente y es la que nos permite insertar un nuevo elemento en la misma columna donde están los posts. Normalmente, esa línea tiene dos posibles códigos:
<b:section class='main' id='main' showaddelement='no'>
o bien:
<b:section class='main' id='main' maxwidgets='1' showaddelement='no'>
en cualquier caso, la cambiamos por:
<b:section class='main' id='main' maxwidgets='2' showaddelement='yes'>
De esta manera, le estamos diciendo a Blogger que nos permita agregar elementos en esa sección hasta un máximo de 2 pero, si eventualmente ya la hubiéramos modificado antes, estableceremos el valor maxwidgets a un número superior (si dice 2 pondremos 3, si dice 3 pondremos 4, etc).


Guardamos la plantilla. Nada habrá cambiado pero, si vamos a Elementos de la página, veremos que ahora se nos ofrecerá la posibilidad de Añadir un elemento de página en la sección Entradas del Blog y lo haremos exactamente igual a como lo hacemos al agregar elementos en la sidebar. Click y seleccionamos HTML. Dejamos el título en blanco y escribimos el siguiente código:
<div id="toc"></div>
Guardamos y lo ubicamos arriba de las entradas (por defecto, aparecerá allí).

Ahora, añadimos un nuevo elemento de HTML en la sidebar que es desde donde controlaremos la tabla de contenidos. Ponemos cualquier título que nos guste y el siguiente código:
<div id="toclink">
<a href="javascript:showToc();">Show TOC</a>
</div>

<script src="http://home.planet.nl/~hansoosting/downloads/blogtoc.js"/></script>

<script src="http://nombreblog.blogspot.com/feeds/posts/default
?alt=json-in-script&start-index=1&max-results=100&callback=loadtoc"/>
donde, nuevamente, reemplazamos nombreblog por el de nuestro sitio. Guardamos y esos es todo.

Lo que se mostrará en la sidebar en un texto de enlace que dirá Show Table of Contents. Haciendo click en él, se desplegará una lista de este tipo, justo encima de los posts:


Lo que se mostrarán son tres columnas. La primera (POST TITLE) muestra los títulos de los posts ordenados cronológicamente; la segunda (POST DATE) muestra la fecha de publicación y la tercera (LABELS), las etiquetas de cada uno.

Cada uno de esos textos, será un enlace donde, al pasar cursor sobre ellos, se mostrará un tooltip con un pequeño extracto del contenido.

Lo interesante es que, haciendo click en los títulos de las columnas, podemos ordenar la lista de forma ascendente o descendente. Click sobre POST TITLE la ordena alfabéticamente , click sobre POST DATE la ordena cronológicamente.

Cuando la tabla está visible, el enlace de la sidebar cambia mostrando el texto a Hide Table of Contents. Haciendo click en ese enlace, la tabla vuelve a ocultarse.

Según dicen, como estamos limitados a listar sólo 100 posts, si queremos que se muestren más debemos modificar el código que agregamos en la sidebar. La última línea decia:
<script src="http://nombreblog.blogspot.com/feeds/posts/default
?alt=json-in-script&start-index=1&max-results=100&callback=loadtoc"/>
si quisiéramos mostrar hasta 200, inmediatamente después de esta, agregaríamos la siguiente:
<script src="http://nombreblog.blogspot.com/feeds/posts/default
?alt=json-in-script&start-index=101&max-results=100&callback=loadtoc"/>
si quisiéramos mostrar hasta 300, pondríamos las dos anteriores más esta otra:
<script src="http://nombreblog.blogspot.com/feeds/posts/default
?alt=json-in-script&start-index=201&max-results=100&callback=loadtoc"/>
Es decir, vamos poniendo tantas líneas como necesitemos; cada una cargaría hasta 100 posts comenzando con el valor dado en start-index.

Pero, o hay algo que se me escapa o esto no es cierto; es más, puede ponerse un valor mayor que 100 y funciona perfectamente hasta un valor de 500.

En la práctica, parecería que el límite es 500 aunque el valor start-index que es con el que podemos controlar el inicio del listado puede cambiarse para establecer una especie de paginación.
<script src="http://nombreblog.blogspot.com/feeds/posts/default
?alt=json-in-script&start-index=501&max-results=100&callback=loadtoc"/>
Estas limitaciones también nos obligan a utilizar algún otro criterio. Para funcionar, el script debe cargarse y recién luego se podrá verla tabla. Esto es tan así que, en caso de querer apurarnos, saldrá una ventanita indicando que esperemos ya que, primero lee los datos, luego los guarda en la memoria y por último los muestra.

En todo caso, si queremos mostrar muchos resultados, en lugar de colocar un elemento nuevo y un enlace en la sidebar, podríamos poner todo en un post, darle una fecha antigua y publicarlo. Incluso, podemos crear varios post diferentes, todos similares, con diferentes valores en start-index. En ese caso, nos olvidamos de todo lo dicho anteriormente y colocamos esto en un post:
<div id="toc"></div>
<div id="toclink">
<a href="javascript:showToc();">Mostrar Tabla de Contenidos</a>
</div>
<script src="http://home.planet.nl/~hansoosting/downloads/blogtoc.js"></script>
<script src="http://nombreblog.blogspot.com/feeds/posts/default
?alt=json-in-script&start-index=1&max-results=100&callback=loadtoc"></script>
Nuevamente, nombreblog será el de nuestro sitio, start-index el inicio desde donde se mostrará y max-results la cantidad a mostrar.

Hasta acá, estamos usando el script original pero este puede ser modificado, si se tienen conocimientos de JavaScript es recomendable mirarlo porque es bastante sencillo y muy claro.

blogtoc_ORIGINAL.js es una copia del archivo original
blogtoc_TRADUCIDO.js es el mismo archivo original con los textos en español
blogtoc_REDUCIDO.js es una versión reducida donde he eliminado la columna etiquetas.

La personalización puede hacerse de dos maneras; modificando el script y/o agregando estilo CSS. Esto último, lo podemos hacer agregando las propiedades en la plantilla, por ejemplo, antes de </head>:
<style type="text/css">

#toc { /* es el bloque general */
[propiedades generales optativas: background-color, margin, etc]
padding: valor; /* es la separación entre el contenido y los bordes */
width : valor; /* podemos no colocarlo y será igual al ancho del área de posts */
}

.toc-note {
/* es el texto que aparece arriba indicando la cantidad de resultados */
}

.toc-header-col1, .toc-header-col2, .toc-header-col3 {
/* son los títulos de las columnas */
}
.toc-header-col1 {width: valor;} /* ancho de la primera columna */
.toc-header-col2 {width: valor;} /* ancho de la segunda columna */
.toc-header-col3 {width: valor;} /* ancho de la tercera columna */

.toc-header-col1 a:link, .toc-header-col1 a:visited,
.toc-header-col2 a:link, .toc-header-col2 a:visited,
.toc-header-col3 a:link, .toc-header-col3 a:visited {
/* propiedades de los enlaces en los títulos de las columnas */
}
.toc-header-col1 a:hover, .toc-header-col2 a:hover, .toc-header-col3 a:hover {
/* propiedades para efecto mouseover en los títulos de las columnas */
}

.toc-entry-col1, .toc-entry-col2, .toc-entry-col3 {
/* propiedades del contenido de las columnas */
}
.toc-entry-col1 a, .toc-entry-col1 a:visited, .toc-entry-col1 a:link,
.toc-entry-col2 a, .toc-entry-col2 a:visited, .toc-entry-col2 a:link,
.toc-entry-col3 a, .toc-entry-col3 a:visited, .toc-entry-col3 a:link {
/* propiedades de los enlaces del contenido de las columnas */
}
.toc-entry-col1 a:hover, .toc-entry-col2 a:hover, .toc-entry-col3 a:hover, {
/* propiedades para efecto mouseover del contenido de las columnas */
}

</style>
El script nos permite leer el contenido de los posts de nuestro blog y de cualquier otro:

<script src="http://nombreblog.blogspot.com/feeds/posts/default? .......

ya que nombreblog es cualquier blog alojado en Blogger:

<script src="http://vagabundia.blogspot.com/feeds/posts/default? .......

Por último, no es obligatorio colocarlo en la sidebar, podemos insertarlo en cualquier parte de la plantilla, en el footer, como parte de una barra de menúes o donde se nos ocurrra.

En esos casos, es probable que debamos reemplazar los símbolos & por su equivalente &amp; para que Blogger no nos de algún tipo de error.

111 comentarios:

Anónimo  

"Ya pasó demasiado tiempo desde que Don Atealgo preguntaba si era posible tener un listado alfabético de TODOS los posts de un blog pero, parece que ha llegado el momento de responder a tanta insistencia [1] [2] burla"

ja ja ja ja realmente no se si agradecerte o pedirte perdón!!!

El fin de semana miro si puedo implementar esta solución, y muchas gracias !!

Responder
JMiur  

Jajaja, terminó siendo una cosa muy interesante de hacer y vas a ver que es bastante sencilla.

Responder
Gem@  

Pensaba decirte algo, pero no me atrevo por si mis palabras no fueran interpretadas como yo desearía :)

Buen trabajo maestro, fabricaste un castillo con un par de ladrillos y un granito de arena.

Responder
Jabba  

jMiur, hablando de cosas importantes... ¿has pensado alguna vez en hacerte un blog?

Madre mía, tu lo que eres es un artista. Bendito sea el señor; menuda explicación que te has marcado.

Y ahora hablando en serio y entre nosotros; tu... ¿tienes mucho tiempo libre, no? :D

Un saludo crack

Responder
Claudio - Poca Tinta  

Estoy de acuerdo con el comentario de Gem@.

Jmuir, quedo impresionado por la manera en que presentas y das calidad a tus soluciones, son accesorios para clasicos, y espero que entiendas que a lo clasico no se modifica pero le pueden ir unos accesorios y son los tuyos.

Muy buen post.

Responder
JMiur  

Me alegro que les haya parecido interesante y, la verdad es que dio mucho trabajo hacerlo (casi un mes) :)

Había leído este truco hace mucho tiempo y no le presté atención justamente por eso, porque no estaba muy bien presentado y no daba alternativas.

Si bien su uso es, bastante limitado, lo que tiene de interesante es que el script es muy sencillo de entender y con él se puede leer la base de datos del blog lo que podría abrir nuevos horizontes.

No sé cuáles pero, ahí están.

Responder
Anónimo  

Hola, soy yo de nuevo.... siiii!!

je je je

En este post http://donatealgo.blogspot.com/2007/10/tabla-de-contenido.html armé la Tabla de contenido con tu versión reducida del Java Script.

El Java Script lo subí a mi espacio en Google Pages.

Todo parece estar bien pero sin embargo no termina nunca de leer la tabla de contenidos... y por lo tanto no se muestra en pantalla...

???

Responder
JMiur  

Lo que veo es que hay un espacio indeseado en la llamada del script:

http://donatealgo.blogspot.com/feeds/posts/default%20?alt=json

o sea, entre:
http://donatealgo.blogspot.com/feeds/posts/default
y
?alt=json....................

hay un espacio y por lo tanto, el script no lee los feeds de tu blog y devuelve un error.

Fijate si logras verlo y eliminalo.

Responder
Anónimo  

Funciona!!

Qué grande que sos!!

ja ja ja

Ahora solo me queda mejorar la estética, recomendar tu blog por TODOS lados y no molestar ... por un par de días...

ja ja ja

Responder
JMiur  

Jajaja, me alegro que todo esté en orden :D

Responder
Viktor Lecter  

Muy bien... demasiado chevere, pero se me ocurria...

1.- ¿Puedo usar mi direccion de feedburner?

De ser positiva esta pregunta daria paso a poder crear indices para cada etiqueta, lo cual seria grandioso.

2.- ¿Se te ha ocurrido hacerlo en ventanita popup?, para que sea mas facil la navegacion...
Mi pagina es: http://laplegariadeunpagano.blogspot.com/

Gracias,

Victor.

Responder
JMiur  

No, con Feedburner no funciona, sólo con los feeds propios de Blogger pero si podrían crearse índices por etiquetas ya que este dato es uno de los que se leen.

También podría ponerse en una ventana pop-up.

Responder
JUANAN URKIJO  

¿Sabes si existe algún artilugio que ordene los post, en orden al número de comentarios recibidos?

Gracias.

P.S. Te enlacé ayer en mi blog y hoy he recibido la entrega de Lennon.

Responder
JMiur  

Gracias por el enlace y, respecto a tu pregunta, no, no recuerdo haber visto nada parecido a eso. Blogger maneja los comentarios de manera misteriosa ;)

Responder
Anónimo  

Buenas. ¿Me pasa sólo a mí? No puedo ver ninguno de los posts que busco, ni con FF ni con IE. Vi que los de Blogger andaban de mantenimiento pero el último update decía que ya está finalizado. Je.

La cuestión es que son muchos los posts de Vagabundia que intento leer y no puedo ver ninguno, lo cual está empezando a molestarme mucho. Si me sugieren que limpie cache del navegador, ya lo hice. Si me sugieren que compre otra pc, lo siento pero no dan las monedas.

¡Que alguien me diga que no me pasa sólo a mí, por favor! ¡Miéntanme, si es preciso!

Saludos vagos.

Responder
Gem@  

Esto... yo si los veo :(

Responder
JMiur  

ls:

Es probable que sea un tema e Blogger, sé que hubo mantenimiento durante un par de dias y se hizo pesado de navegar pero ahora no veo inconvenientes.

Pero, por ejemplo, hay comentarios ingresados en posts que me han llegado por mail y que no se han publicado.

Responder
Anónimo  

Gem@:
Pedí que me mintieran :$
Muchas gracias por contestar, aunque sea con la verdad.

JMiur:
Ahora puedo ver algunos, pero estoy dormida y ya ni me acuerdo qué buscaba. Me pasó con otros blogs, que eran inhallables ayer y anteayer. Ahora, en Vagabundia (acá, sí), se ven una imágenes de imageshack en el fondo gris, detras del header: esas ranas amarillentas . ¿También soy la única que lo ve? Guardo captura de pantalla por si se desconfía de mi cordura.
He leído acerca de los 10 minutos de mantenimiento, see... ¿Los de blogger miden el tiempo con relojes que ellos mismos inventan en sus Labs?

Quizá sea la hora y el cansancio o mera estupidez, pero no encuentro (y sé que lo vi) un post donde explicabas cómo ocultar la fecha de los posts. Si lo tenés presente, vendría bien que me orientes dónde buscar; si no, no te molestes que duermo un poco y busco nuevamente.

Saludos dormidos pero afectuosos.

Responder
JMiur  

Me parece que el problema fue Blogger, ayer andaba pesadito. Sin duda, los relojes en California funcionan a otra velocidad.

La maldita rana es algo bastante habitual ultimamente aunque no la he visto por acá.

El post que buscás debe ser ESTE

Responder
Unknown  

Hola, JMiur.

He implementado en mi blog dos cosas que nos facilitas [la de esta entrada y el menú horizontal] y funcionan a la perfección, muchas gracias.

Estuve buscando, entre las tuyas, alguna entrada que me sirviera para utilizar el elemento añadido sobre las entradas [el que despliega la lista de entradas] para mostrar una lista de vínculos de descarga, pero no la encuentro. Si puedes darme el enlace para alguna que me sirva te lo agradecería. Ah, y también si puedes decirme como hacer para que un vínculo abra de inmediato el cuadro de diálogo de la descarga [el de "abrir", "guardar"...].

Gracias.

Responder
JMiur  

Hay algo cierto, buscar es sencillo ... encontrar algo es difícil :D

Puede ser que la explicación sobre cómo desplegar y contraer un elemento en la sidebar esté AQUÍ, si no eso, me avisas.

¿"Cómo hacer para que un vínculo abra de inmediato el cuadro de diálogo de la descarga"?

Eso, ya no depende del código del enlace sino de la forma en que cada navegador está configurado. En principio, si el archivo no es "ejecutado" por el navegador, se abrirá el cuadro de diálogo, sino, debe usar el botón derecho. En Blogger no parece haber muchas otras alternativas.

Responder
Unknown  

Gracias por tu respuesta. Pero, verás, no era eso a lo que me refería. trataré de ser más claro:

Hay un elemento HTML que añadimos sobre las entradas, el cual nos muestra la lista de entradas [ese que «Dejamos el título en blanco y escribimos el siguiente código:div id="toc" Guardamos y lo ubicamos arriba de las entradas (por defecto, aparecerá allí)»]. Mi pregunta es si puedo crear otro "botón" que muestre en ese mismo elemento una lista de vínculos a otros archivos o páginas. Así, tendría dos botones en el menú horizontal: uno que dice "índice" que muestra la lista de entradas (lo que nos enseñaste a hacer en esta entrada) y otro que dice "descargas", que mostraría en el mismo sitio (en el elemento añadido que tiene el código «div id:"toc"») una lista de vínculos u otra página [iframe] o algo así.

Eso es. Gracias.

Responder
JMiur  

Ahora comprendo y la primera respuesta que me surge es no y que el contenido de ese DIV es controlado por el script que es quien escribe el código interno y lo elimina cuando es necesario.

Esto es así, justamente porque el contenido es dinámico, varia y nosotros lo desconocemos de antemano.

Si uno quisiera agregar una lista de enlaces a archivos o a otros sitios, deberíamos hacer esa lista manualmente, escribir cada uno de ellos.

Ahora bien, si lo que se quiera es tener un modelo similar para otro uso, eso si es posible, lo que estamos viendo en el ejemplo no es otra cosa que una tabla así que podría crearse otra con otro contenido pero, ahí ya no haría falta un script, deberíamos hacerla a mano y debería estar en otro post o en otro elemento HTML y no en el mismo.

Responder
Unknown  

Bueno, muchas gracias. Ya logré lo que quería y lo hice con el post que me recomendaste en el comentario anterior. Creí que se necesitaba un script como el de este post, pero fue suficiente con el de "sidebar expandible" para hacerlo dentro del mismo elemento HTML.

Muchas gracias, de nuevo.

Responder
JMiur  

Me alegro que se resolviera de manera más o menos sencilla :)

Responder
susana espíndola  

Hola! he quedado fascinada con este truco para tener un panorama de los contenidos del blog. Andaba buscando algo así y anduve incursionando en algún truco que encontré respecto al Archivo de blog que nos brinda blogger pero no me convenció la presentación en IE.
Quería consultarte ya que lo probé tanto en IE como en Firefox que en este último no deja que uno elija el orden sea por título, fecha, y si elige alguna opción de las etiquetas, ya no se puede modificar o volver a que muestre toda la tabla de contenidos.
Habrá alguna solución?
Realmente tu blog es uno de los que consulto muy seguido porque tanto la información como la manera de explicar son muy claras y realmente más que útiles.
Muchas gracias!!!! Jmiur!!!!
Ojalá puedas indicarme si se puede solucionar cómo aparece en Firefox.

Responder
JMiur  

Susana:

El script funciona en ambos navegadores y no debería haber problemas ¿Lo tienes colocado en algún lado para poderlo ver online?

Responder
Anónimo  

No es hora de andar molestando, perdón.
Me pregunto (no: te) si será mucho bardo mostrar sólo la columna de títulos de los post, modificando el .js, porque preciso incluir (yo no:la patronal) una tabla así pero en la sidebar y me queda chica...

Quizá es un delirio, pero ¿puede usarse algo de esto (la función ordenar pero por fecha) para mostrar los comentarios desde el más reciente al más antiguo? Alguna vez lo intenté poniendo un contador pero desistí rápido.
Acepto reprimendas.
Un abrazo, bigote.

Responder
JMiur  

Lo de sólo mostrar la columna de títulos es posible; puede modificarse el script pero también podrías ocultar la columna con display: none. Entre un y otra solución no habrá gran diferencia de velocidad ya que de todas maneras se leerán los datos igual.

Lo de los comentario me parece que también, ¿no es eso lo que hace este script?

Ahora bien, lo de la tabla de contenidos en la sidebar, yo no lo recomendaría Esta forma de leer la base de datos es MUY MUY lenta; la carga del blog se resentiría mucho.

Cualquier cosa me mandás un mail.

Responder
Anónimo  

Para evitar tanta lentitud, ¿no parece haber otra que poner la tabla en un post :(? El bendito "Archivo del blog" podría hacernos las cosas más fáciles.

El script para los últimos comentarios en la sidebar funciona perfecto y ya lo metí. El delirio se refiere a los comentarios al pie de cada post: que éste (el 30 o última fecha) se vea arriba del 1/Don Alegato. Ya sé que manipular los comentarios no es sencillo, ufa.
Te agradezco la amabilidad, bigote.

Responder
JMiur  

Por esa "lentitud" es que el ejemplo ni siquiera está en este post :D

Lo de los comentarios puede cambiarse un poco pero ese script es un poco mas complejo.

Responder
Anónimo  

(¿Habrá que esperar por ese script más complejo o volver a releer javascript?)

Por ahí le sirve a dédalus, que preguntaba por acá si existe algún artilugio que ordene los post... No es exactamente lo que pide, creo, pero usando Pipes (habrá que estudiarlo, parece) se puede insertar un widget con los post más populares según la cantidad de comentarios. Lo vi explicado en lo de A. Fazani: http://www.bloggerbuster.com/2008/04/popular-posts-most-commented-widget-for.html.
Rosa ya lo vio (simpático su comentario) y quizá lo explicó, pero todavía no me fijé.
Saludos.

Responder
JMiur  

Creo que este widget.

Responder
Anónimo  

hola, qué tal?
gracias a tu ayuda he logrado + o - lo que me gusta para mi blog. Ahora intento hacer del archivo una lista con los titulos de las entradas. llegue hasta eesta tabla de contenidos, pero creo que no es eso lo que quiero, pretendo algo así como tu "últimas entradas". lo tienes en tu archivo?
saludos
Laura

Responder
JMiur  

"Ultimas entradas" es sencillo de poner. Agregas un elemento Feed y allí colocas el feed de tu blog; el de Blogegr o el de Feedburner si es que usas ese sistema.

Responder
Anónimo  

hola, disculpá la insistencia, pero he visto que con paciencia intentas hallar soluciones a todas las preguntas: lo que quiero es convertir el listado común del archivo (muestra en cada mes el título de 3 o 4 entradas)en un listado desplegado con los títulos de todas las entradas en el sidebar. no importa cuántos.
gracias mil

Responder
JMiur  

Es que me confunde un poco la pregunta. Hay un elemento en Blogger llamado Archivos que hace eso, muestra los títulos de todas las entradas del blog.

Responder
del batitú  

yo otra vez: el elemento que me muestra blogger para archivos es una lista por mes:por ej. junio (3) julio (20), agosto (10), y en agosto va mostrando títulos de las últimas 3 o 4 entradas. con la ayuda de blogger no he podido hacer nada, aunque ese ítem está. Yo quiero un archivo por títulos, no por fechas. Por ahora no me interesa un recuadro con el número de entradas o comentarios.
saludos
LAura

Responder
JMiur  

Lo más cercano a eso es este tipo de script. No hay nada en Blogger que permita hacer algo así.

Responder
Anónimo  

Hola. En Beautiful Beta añadieron algo sobre la velocidad del widget ToC que ofrecen, que parece más rápido -habría que probarlo con mayor cantidad de posts que los que se muestran en la tabla de ese blog- (http://beautifulbeta.blogspot.com/2008/06/speeding-up-blogtoc.html) y un aviso de cambio de la URL donde están alojados los widgets: http://beautifulbeta.blogspot.com/2008/08/please-change-urls.html.
Saludos.

Responder
JMiur  

¿Existe todavía ese sitio? [lo siento, ese fue un comentario sarcástico de tipo personal y no voy a explicarlo]

ls:
En realidad, por lo que veo no es un cambio en el código [Dios, el autor, debería saber que hay formas de mostrarlo sin que se necesitmos tres monitores para verlo, sorry, sigue el sarcasmo]

La teoría dice que es una buena práctica colocar los scripts antes de </body> y no en el head de la página para que se ejecuten al final, sin demorar la carga del resto; por ejemplo, para el de Tweeter es elemental ya que si el servicio está caido, el blog no se cargaría.

No siempre es posible ya que algunos scripts deben estar, obligatoriamente en el el head pero en este caso, no.

De todas formas, no hará que sea más rápido, sólo hará que el resto de la página se cargue antes y sigue, a mi juicio, teniendo las mismas limitaciones que todos los scripts basados en Json: la cantidad de posts leidos es escasa.

Responder
Prof. Cristian E. Moyano  

Hola de nuevo vahabundia, lo trate de hacer pero no me anda mirá

Responder
JMiur  

Cristian:
El script que usas:
http://home.planet.nl/~hansoosting/downloads/blogtoc.js
es inaccesible así que no funciona. Vas a tener que revisar si la dirección es correcta o si el servidor acepta el enlace directo.

Responder
Prof. Cristian E. Moyano  

MMMM...con razón

Sabes de algún servidor de archivos .js?

PD: Desde ya Muchas Gracias!!

Responder
JMiur  

Ese es un problema. Fíjate en estos dos posts: 1, 2. Yo estoy usando SkyDrive.

Responder
Prof. Cristian E. Moyano  

oohhh JMiur sos un genio! muchas gracias! me haz ayudado bastante...Pero todavía no carga, ya subi el archivo .js y le puse el link correcto, pero sigue sin abrirmelo, ni siquiera me sale esa ventana emergente que dice: "Espere..todavía no se carga la tabla de contenidos, ya debes estar cansado de leer estos comentarios mios, pero lo que pasa es que soy principiante en esto. Si me ayudas de vuelta estaría muy agradecido..

Responder
JMiur  

No. sigue habiendo un error. La URL del archivo es incorrecta y la carpeta donde está guardado no es p´ñublica así que tampoco puede accederse:

Haz click y verás que se abre una página web: AQUÍ.

Si por lo menos fuera pública podría darte la URL pero así, no hay dorma de hacerlo.

Responder
Bruja  

Hola, JMiur.

Me preguntaba si es posible publicar una entrada donde se muestre el índice, sin necesidad del boton de "show/hide Toc". Sería genial poder poner la lista sin que medien tantas cosas. Pero tener la posibilidad de organizarlas por fecha o alfabéticamente.

Gracias.

Responder
JMiur  

Usando este tipo de scripts no es aconsejable no poner el enlace porque es algo que demora y eso podría provocar un error.

No conozco ninguna otra forma de implementar un índice de manera automática ya que no tenemos acceso a los datos de Blogger excepto con el elemento Archivos. Sería bueno tenerlo :)

Responder
Psicóloga Malena Lede  

Muy útil la información!
muy buen trabajo, felicitaciones!

Responder
Prof. Cristian E. Moyano  

Hola JMiur,
Tengo un problema. Lo único que utilize de este truco fue "todas las páginas, excepto en la página principal y en las de posts individuales, sólo se mostrarán los títulos y cada uno de ellos será un enlace." Pero el problema es que solo se muestran un maximo de 20 posts por cada "etiqueta", lo que no se ven todos los correspondientes. Qué hago?

Responder
JMiur  

Cristian:
Este modo de leer tiene las limitaciones de leer feeds, hay una cantidad máxima de posts posibles de ser leidos.

Responder
Prof. Cristian E. Moyano  

Y como hago para hacer el mismo truco incluyendo todos los posts correspondientes a cada etiqueta?

Responder
JMiur  

Imagino que habría que modificar el script, cosa que me excede.

Responder
Usuario10  

Hola JMiur

Fijate que tengo como 700 aportes, coloque el codigo para ver hasta 300 agregando los otros 2 codigos, pero no me aparecen mas de 130 que son aproximadamente los que me muestra.

antes mi url era tigremen.blogspot.com ahora adquiri un año de hosting www.hiperdescargas.org ya probe colocando uno primero y el mismo resultado, asi con el otro el mismo resultado.

Que me recomiendas, no voy a quitar el enlace para que veas, lo deje abajo de la inscripccion de los feeds.

Saludos!

Responder
JMiur  

Pués no podría darte ninguna respuesta al respecto, probablemente es una limitación del mismo JSON.

Responder
Anónimo  

hola aqui hay una solucion similar sin usar js http://www.blogspottutorial.com/2008/01/make-table-of-content.html

Responder
JMiur  

En realidad, ese método no crea una tabla de contenidos sino que hace una búsqueda de los posts y muestra sólo los títulos.

El problema es que de esa manera, también se verán así el resto de las páginas. Por ejemplo, si usas las etiquetas para navegar o los archivos o la navegación hacia atrás o hacia adelante o haces una búsqueda interna. En todos esos casos, sólo verás los títulos de las entradas en lugar de ver las entradas completas o resumidas.

Responder
v  

Hola llevo un par de meses que ya no se muestra la tabla de contenido, creo que es por donde se alojaba el script que ya no está. Dónde alojo el script o está alojado en otro sitio?

Responder
JMiur  

Vanesce:

Efectivamente, eso es lo que ocurre, el ecript no se ejecuta porque este archivo no existe:
http://home.planet.nl/~hansoosting/downloads/blogtoc.js

O es inaccesible o lo han eliminado. Vas a tener que alojarlo en algún otro servidor.

Responder
S. C. P.  

Hola, Jotaeme.
Acá estoy, echando espuma por la boca desde ayer... Estoy intentando poner un índice de entradas usando el método del post. Subí el script a Fileden como txt, y puse el link directo en el post. Me fui a tu página de ejemplo y (seguro que ahí está la cgda)descaradamente copié la parte de código que me pareció correspondía. Cambié las direcciones por la mía y me quedó el post pre cio so! Pero no abre. Me dice que espere que está cargando. Pero sólo hay 28 post... Así que creo que metí las de andar en algún lado. No tendrías ánimo suficiente como para mirar cuál es el desastre???
Prometo heredarte cuando muera (con suerte gano la lotería y te queda algún manguito)pues sé que te debo.
¡Ay! me olvidaba de poner la dirección:

http://sopaentrevistas.blogspot.com/2005/06/indice-de-archivos-de-audio.html

Salú!

Responder
JMiur  

¿La llamada al script está escrita así?

<script src="http://sopaentrevistas.blogspot.com/feeds/posts/default
?alt=json-in-script&start-index=1&max-results=100&callback=loadtoc">

Si es sí (es lo que veo en el código fuente) hay un error, debe ser escrita en una sola linea:

<script src="http://sopaentrevistas.blogspot.com/feeds/posts/default?alt=json-in-script&start-index=1&max-results=100&callback=loadtoc">

Responder
S. C. P.  

Ya arreglé esa línea, ahora no sale el mensaje de carga de archivos, pero sigue sin mostrarlos. Además, se me ocurrió mirarlo con mozilla y casi me caigo despaldas... como te copié todo el tramo de tu código fuente que me pareció era el que correspondía, salen más cosas que las que yo quería que salieran. Me había decantado por la opción de que apareciera todo en la entrada, pero resulta que sale también el gadget arriba del post! Ya sé, ¡eso me pasa por copiona! ¿¿¿¿Y si te mandara el txt a tu correo, me lo emprolijarías????

Responder
JMiur  

Envialo u me fijo a ver si encuentro el problema.

Responder
S. C. P.  

Bueno, ahí te fue. Dice en el asunto: De S.C.P.

Muchas gracias, estimado!

silvia

Responder
fd  

Hola.
Muy bueno el post.
Más arriba alguien pregunta si se podrá eliminar el "show/hide", y que se ejecute directamente, y le contestas: "Usando este tipo de scripts no es aconsejable no poner el enlace porque es algo que demora y eso podría provocar un error."
De cualquier manera me gustaría probarlo.
Me dirías cómo hacerlo?
Muchas gracias!

Responder
JMiur  

fd: Para eso, en lugar de colocar un enlace, llamas al script directamente:

<script>showToc();</script>

Eso debe estar depués del DIV.

Responder
fd  

Muchas gracias!!!
Por ahora funciona perfecto :D

Responder
S. C. P.  

Hola, JotaEme, acá estoy molestando otra vez con esta cuestión. Digo yo, ¿no me dirías qué parte del script debo borrar para quitar la fecha y que sólo aparezcan los títulos? Estuve mirando el script reducido y el original, pero se me dislexian las letras y símbolos, de tal forma que no sé si estoy por el medio o por el oidem. Así que si no te provoca enviarme un "jódete", ¡¡¡dime qué borro finalmente!!!
gracias mil, JotaEme. No te molesto por un rato, me tomo la medicación y al sarcófago.
salú!

Responder
JMiur  

No es tan fácil como eso. Cambiar el script es engorroso, son varios los datos que deberían modificarse. es un tema que me excede.

Ahora bien, en lugar de eso, podrías, simplemente ocultar esa columna con CSS:

td.toc-header-col2{display:none;}
td.toc-entry-col2{display:none;}

Responder
S. C. P.  

Siempre lo más simple es lo mejor... Y eso que me propones es simple.
:) :( :O :X
Bah, simple si supiera dónde ponerlo. Simple si el maldito fileden marchara, carajos, que no puedo entrar ni a mirar qué tengo guardado allí, así que acabo de desayunarme de que no marcha la maldita tabla porque no puedo entrar al fileden la pequelospé! Ay, me voy al sarcófago que mañana será otro día, verdá? ¡dime que sí por favor!

Responder
S. C. P.  

El fileden está funcionando nuevamente!!! :)

Ahora, mientras espero tu soga, trato de dar brazadas en el mar del script por si era ahí donde tenía que agregar esas dos líneas... (ya sé, sólo lo de display none) Por las dudas, no te confíes en que podré hacerlo, así que has de cuentas que sigo esperando por ti. (si, ya sé, "qué mina plomo")
salú!

Responder
JMiur  

Eso es CSS así que puedes poner, por ejemplo, antes de &lt/b:skin> o junto a las demás propiedades CSS que estés usando para mostrar la tabla. El script no hay que modificarlo, la idea es justamente esa, no meterse con ese código :)

Responder
S. C. P.  

Yo tengo todo en una entrada, entonces, pongo esas dos líneas al final del código de esa entrada y ta? ¡Ya mismo pruebo y te cuento!

Responder
S. C. P.  

:(

¡No funcionó! La puse en la entrada al final y aparece como texto en la entrada pero no cumple la orden. Y cuando la puse antes del final del skin, tampoco. Ojo, yo en la plantilla no puse nada para el blogtoc, el código (bastante pequeño) está en la entrada, y hasta ahora funciona... ¿Qué hago?

Responder
JMiur  

Dime en que direccion puedo ver el ejemplo porque no lo encuentro.

Responder
S. C. P.  

Ah, es que deshabilité la entrada, ya te la mando...

http://sopaentrevistas.blogspot.com/2005/06/indice-de-archivos-de-audio.html

gracias!!!

Responder
JMiur  

Coloca esto dentro del post donde está la tabla:

<style> td.toc-header-col2 {display:none;} td.toc-entry-col2 {display:none;} </style>

antes del script.

Responder
S. C. P.  

¡¡¡¡GENIO!!!!

Ha quedado de rechupete!!!!

Sabes que te debo. Lo que no sabemos es si alguna vez podré devolverte el favor, pero nunca se sabe, así que cuenta conmigo. ¡Ja!

Gracias, y salú!

Responder
JMiur  

Bravo, me alegro que se solucionara :D

Responder
Anónimo  

Gracias muy buen post..........

Responder
NotiColombiaPress  

JMiur: Hola, otra vez...

En cuál servidor gratuito puedo subir los archivos ZIP? Abrí una cuenta en byethost pero estoy perdidísimo y me tocará leer bastante antes de que pueda echarlo a andar.

Me podés ayudar...

Gracias, gracias, gracias...

Allende La Paz.

PS. Lindo el homenaja a Mercedes Sosa. Se lo merece!

Responder
JMiur  

¿Subir ZIPs o subir los scripts que contienen los zips?

En byhosts pueden hacerse ambas cosas. En http://filede,com también aunque a los scripts debes cambiarles la extensión de .js a .txt. Funcionarán igual.

No estoy seguro de si esa es la pregunta :)

Responder
Unknown  

JMiur: Excelente. Funciona a las mil maravillas. Una sola pregunta: cómo hago para ponerle la imágen que colocaste al final? La misma que se usa para abrir y cerrar la talbla de contenidos. Je, je, je.


Dí que sí, dí que sí, por fa...

Saludos,

Allende

Responder
JMiur  

La imagen es esta y la forma de usarla es esta. Son dos imágenes en una.

Responder
NotiColombiaPress  

JMiur: Muchisísimas gracias.

Sacaré un rato para estudiar esto. Estoy como aprendiz engomado... pegado a la cosa.

Saludos,

Allende.

Responder
Doc Samson  

Hola, esto es genial.
Pero no me funciona, tengo el feed en feedburner, y el .js en skydrive. Y no me funciona.
Teniendo feedburner, el feed de blogger deja de funcionar?
Cómo lo puedo hacer ir?

Gracias

Responder
JMiur  

SkyDrive no sirve apra alojar scripts porque la URL cambia de manera sistemática y oir lo tanto, no se carga. debes buscar otra alternativa.

Feedburner no crea un feed, sólo lo gerencia, el feed lo genera el servidor que es Blogegr y Feedburner lo administra y redirige. Ambas direcciones URL del feed dan el mismo resultado y pueden usarse indistintamente porque en realidad, son la misma.

Responder
Doc Samson  

Gracias funcionando al 100%
Subido a fileden y renombrado con extensión .txt funciona al 100%, consigo mostrar más de 2000 entradas.

Pero me gustaría que cargara automáticamente al acceder a la entrada, he leido más arriba como hacerlo, pero no me aclaro detras de que div poner el código.

Me lo puedes indicar?

Responder
JMiur  

Para eso, en lugar de lanzar el script conun enlace, colócalo al final de todo ese código:

<script> showToc() </script>

Responder
Doc Samson  

Gracias, gracias, gracias, gracias.
Por fin mis visitas podran encontrar todas las entradas.
Podeis verlo funcionando aqui:
http://www.boxbaster.com/2010/04/listado-alfabetico-de-peliculas.html

Responder
Bilosony2™  

Hola Jmiur tengo una duda como has hecho tu indice?? porque he visto que tienes indices por categorias y no se parecen a ninguno que allas publicado....

Saludos!!!

Responder
JMiur  

Son entradas realizadas a mano.

Responder
Bilosony2™  

A! genial! entonces tengo otra duda o problema mejor dicho jeje Como deveria hacer para que este indice ya se muestre desplegado?? Porque no encuentro solucion para que se muestre directamente desplegado.

Responder
JMiur  

Entonces, en lugar de usar un enlace para llamar a la función, deberás colocar al final de todo algo así:

<script> showToc(); </script>

Responder
Bilosony2™  

Listo! Gracias Jmiur lo pude hacer todo tal cual lo pensaba hacer :D
Te cuento queria mantenerlo desplegado para poderlo usar como un iframe y utilizarlo onda como lo que explicas en:

http://vagabundia.blogspot.com/2010/08/blogger-ultra-super-minimizado-2-parte.html

http://vagabundia.blogspot.com/2010/08/blogger-ultra-super-minimizado-ultima.html

Y haci evitar la pesades del script ya que solo lo uso para un par de entradas :D
Lo puedes ver funcionando en este enlace:

http://www.pintagraff.com/2009/11/tecmicas.html

Saludos!!!

Responder
JMiur  

OK perfecto :-)

Responder
el Zambullista  

Hola de nuevo, JMiur. Vuelvo a molestarte con una consulta porque no encuentro la solución a un problema y ni siquiera entiendo la causa. Sin haber editado (desde hace tiempo, incluso) ni la página independiente donde está el índice general de mi blog ni la plantilla, de pronto la llamada que desplegaba la tabla con el índice dejó de funcionar. El script está subido con extensión TXT en FileDen desde hace meses (comprobé que todavía está ahí, con la URL correcta). La página es esta:
http://zambullidas.blogspot.com/p/indice-integral.html
Cualquier cosa que se te ocurra, te voy a agradecer mucho la ayuda. El índice es algo que uso mucho.
Saludos.

Responder
JMiur  

Fileden no está funcionando; impide que se descarguen o utilicen archivos de extensión TXT. Puedes cambiarlo a otro sitio o sino, cámbiale la extensión o no le pongas ninguna y volverá a funcionar.

Responder
el Zambullista  

Muuuchas gracias, JMiur. Le quité la extensión al archivo y volvió a funcionar, como dijiste.
Abrazo.

Responder
Unknown  

hola amigo muy buen aporte me gusta mucho y tengo una duda si quiero modificar el codigo para poder hacer que el Scrip me desingne una imagen a una etiqueta por ejemplo la etiqueta LAT (Latino) mas o menos en que zona del Scrip deberia modificar agradeceria mucho si me pudieras ayudar

JMiur  

¿Que significa "me desingne una imagen a una etiqueta"? No entiendo qué es lo que quisieras hacer.

Unknown  

por ejemplo algunos de estos Script estan diseñados para que a las publicaciones resientes a la par del nombre de esta en la lista le agregan una imagen de nuevo yo quisiera aber si se podria agregar algo similar pero en ver de que busque los post recientes busque una etiqueta en especificoy le asigne una imagen o distintivo X

Un ejemplo es el sitemap o tabla de contenido de ciudad blogger que los pot nuevos aparecen con un distinvivo de nuevo en la lista muchas gracias por reponder espero averme explicado bien lo que deseo hacer

JMiur  

Es probable que el que te refieres sea un script como este dond se adosa la palabra New !! en ciertas condiciones.

En el script que se muestra en esta entrada, hay una funcií llamada function getPostData() que es donde se leen los datos enviados; allí, puede leerse la etiqueta del post de este modo:

var cat = entry.category[0].term;

usando ese dato (cat) podrías armar la salida de modo distitnto.

Responder
Unknown  

lla las encontre pero no lo logro hacer que funciones me podrias ayudar podrias y armar el codigo claro si no es mucha molestia esque todavia soy novato en programacion javascript y tiendo a cometer muchos errores

JMiur  

Sería imposible porque dependería de cada caso en particular y habrái que probarlo manualmente.

Responder
Unknown  

El demo no funciona, espero que puedas arreglar ese detalle ya que es una magnífica herramienta.

JMiur  

No veo problema alguno con ninguno de los cuatro demos.

Unknown  

Ayer no me funcionaba ninguno :( pero que bien ahora si. Siempre estoy al pendiente de tu blog, muchas gracias.

Responder
potente  

Duda:
Me interesa saber si es posible que al elegir una entrada del menu, esta se muestre en una ventana popup sin tener que mostrar todo el blog completo solamente la entrada. Espero que tengas tiempo para contestarme, gracias de antemano.

JMiur  

Sólo si cargas el feed y extraes ese dato con JavaScript.

Responder

¿Quiere dejar un comentario?

recuerde que los comentarios están siendo moderados y serán publicados a la brevedad ...

Nota: sólo los miembros de este blog pueden publicar comentarios.

Si le gusta ir a lo seguro utilice este botón para abrir los comentarios en una ventana modal en esta misma pagina.

Si añora tiempos idos, use este enlace para agregar un comentario al viejo estilo ...

 
CERRAR