Como la característica principal de este servicio es crear entradas de diferente tipo (Text, Photo, Quote, Link, Chat, Audio, Video), las alternativas disponibles son muchas ya que esa diferencia de entradas no es abstracta, cada una de ellas tiene sus propias características y se pueden leer por separado o filtar para no mostrarlas parcial o totalmente.
Supongamos que una entrada es un video ¿Qué mostraríamos en nuestro blog? ¿El video en si mismo? ¿Un enlace? ¿Nada? ¿Mostraremos los textos con formato o sin formato? ¿Qué haremos con los audios? Es imposible generar scripts para todas las variantes así que, este modelo tendrá ciertos limites subjetivos:
- los textos, las citas y los enlaces se mostarán sin formato
- las imágenes, reducidas y sin los textos adicionales
- el audio mostrará un reproductor pero no los textos
- los videos no se mostrarán y serán reemplazados por un enlace
- las entradas de conversaciones (Chat) serán ignoradas
- se cargará una cantidad de entradas y se mostrará una por vez con la posibilidad de navegar entre ellas
Para implementarlo, debemos agregar un elemento HTML en la plantilla y allí, colocar el siguiente código:
<div id="contenedorTumblr"> </div>
El script lo vamos a colocar al final de la página, antes de </body> para que de este modo no interfiera con otros y que comience a cargar los datos cuando nuestra página ya esté visible.
<script type='text/javascript'> //<![CDATA[ var listaTU=new Array(); var maxsTU=0; var actualTU=0; function tumblrCallback(obj) { // --------------- datos a definir usuario --------------- var usuario = "http://NOMBRE.tumblr.com/"; // la URL de Tumblr (colocar barra final) var cuantosPosts = 10; // cantidad de posts a leer // --------------- final datos a definir -------------------- var contarAux=0; var tumblrs = obj; for (var i=0; i<cuantosPosts; i++){ elPost= tumblrs.posts[i]; // leer cada uno de los posts // algunos de los datos, los leeremos como textos planos eliminando los formatos textoPlano = elPost["regular-body"] || elPost["photo-caption"] || elPost["quote-source"] || elPost["link-text"] || elPost["link-url"] || elPost["video-caption"] || elPost["audio-caption"] || ""; // filtramos los tipos de posts a mostrar if (/regular|photo|quote|link|video|audio/.test(elPost.type)) { // y en funcion del tipo de post, leemos el contenido if (elPost.type === "photo") { // las fotos photoURL = elPost["photo-url-250"]; contenido = '<div class=\"TumblrPhoto\" ><img src=\"' + photoURL + '\" /></div>' } else if (elPost.type === "quote") { // las citas contenido = '<div class=\"TumblrCita\"><span>' + elPost["quote-text"] + '</span>' + textoPlano + '</div>'; } else if (elPost.type === "link") { // los enlaces contenido = '<div class=\"TumblrLink\"><a href="' + elPost["link-url"] + '">' + textoPlano + '</a></div>'; } else if (elPost.type === "video") { // los videos contenido= '<div class=\"TumblrVideo\">VIDEO<span>' + textoPlano + '</span></div>'; } else if (elPost.type === "audio") { // los audios contenido= '<div class=\"TumblrAudio\">' + elPost["audio-player"] + '</div>'; } else if (elPost.type === "regular") { contenido = '<div class=\"TumblrRegular\">' + textoPlano + '</div>'; } // creamos el codigo de salida if (contenido) { // en la parte superior, logo enlaces, feeds y navegacion salida = '<table class=\"enlacesTumblr\" cellpadding=\"0\" cellspacing=\"0\"><tbody>'; salida += '<tr><td><a target=\"_blank\" href=\"' + usuario +'\"><img src=\"archivo\" /> '; // LOGO TUMBLR salida += '<a href=\"' + usuario + 'rss\" target=\"_blank\"><img src=\"archivog\" /></a></td>'; // LOGO RSS salida += '<td style=\"text-align:right;\"><span class=\"navegarTumblr\"><a href=\"javascript:navegaTU();\">siguiente</a></span></td></tr>'; salida += '</tbody></table>'; // luego, el contenido del post a mostrar salida += contenido; // por ultimo, el enlace directo a ese post salida += '<div id=\"verTumblr\"><a target=\"_blank\" href=\"' + elPost.url + '\">ver post</a></div>'; // y lo guardamos en una lista listaTU[contarAux] = salida; contenido = ""; salida = ""; contarAux =contarAux +1; } } } // cuando terminamos de leer, mostramos el ultimo post publicado maxsTU=contarAux; document.getElementById('contenedorTumblr').innerHTML = listaTU[0]; } function navegaTU() { actualTU=actualTU+1; if (actualTU==maxsTU) { actualTU=0; } document.getElementById('contenedorTumblr').innerHTML = listaTU[actualTU]; } //]]> </script> <script src='http://NOMBRE.tumblr.com/api/read/json?callback=tumblrCallback&num=10' type='text/javascript'/>
// --------------- datos a definir usuario --------------- var usuario = "http://NOMBRE.tumblr.com/"; // la URL de Tumblr (colocar barra final) var cuantosPosts = 10; // cantidad de posts a leer // --------------- final datos a definir --------------------
Un detalle (uno de tantos) que puede modificarse es cambiar el tamaño de las miniaturas de las entradas de tipo PHOTO:
// pueden ser 75, 100, 250, 400 o 500
photoURL = elPost["photo-url-250"];
contenido= '<div class=\"TumblrVideo\">VIDEO<span>' + textoPlano + '</span></div>';
contenido= '<div class="\TumblrVideo\">' + elPost["video-player"] + '</div>';
Cada sector creado tiene un ID o una clase CSS para poder personalizar la salida así que podemos agregar el estilo antes de </head>.
<style> #contenedorTumblr { /* el contenedor en si mismo */ font-size: 11px; } table.enlacesTumblr { /* la línea superior con enlaces */ margin: 5px 0; padding: 0 10px; width: 100%; } .navegarTumblr { /* enlace navegación entre tumblrs */ display: block; text-align: right; } #verTumblr { /* la línea inferior */ margin-top: 5px; text-align: right; } #verTumblr a { margin: 5px 0; padding: 0 10px; text-align: right; } div.TumblrPhoto { /* un post de tipo PHOTO */ margin: 0 auto; text-align: center; } div.TumblrCita { /* un post de tipo QUOTE */ margin: 0 auto; text-align: right; width: 90%; } div.TumblrCita span { display: block; font-style: italic; text-align: center; } div.TumblrCita i { font-style: normal; font-weight: bold; } div.TumblrLink { /* un post de tipo LINK */ text-align: center; } div.TumblrVideo { /* un post de tipo VIDEO */ font-weight: bold; text-align: center; } div.TumblrVideo span { font-weight: normal; } div.TumblrAudio { /* un post de tipo AUDIO */ text-align:center; } div.TumblrRegular { /* un post de tipo REGULAR */ font-size: 11px; } </style>
69 comentarios:
es muy fácil...he entendido a la perfección jajaja, mi cerebro digiere lentammmennnteee :O...besitos!!!
Jmiur buenas, queria comentar que leyendo este post tuyo, he visto algo que andaba buscando que me gustaria añadir y es eso que pones de ver/ocultar codigo y al hacer click en el se ve el contenido que tienes oculto, me explicas como lo haces?? un saludo cuidate..
Qué trabajo has hecho!
Bueno yo venía, en principio, a darte las gracias por acompañarme ;-).
En segundo lugar por algo mucho más humilde, pero que hoy me acaba de sacar de quicio!
Habíamos aprendido contigo a quitar esas inmundas estrellas de los videos de Tube más sus agregados de títulos... re-edité en su momento como 100 entradas.
Hoy TODO ESTÁ LLENO DE ESTRELLAS!!!!!
(Y no es el cielo precisamente XD!)
Sabes de algo?
Un beso
Sí, es bastante sencillo, Graciela :D Bueh ... es un decir :D
hay muchas formas de expandir/contraer elementos. Aquí puedes ver algunas.
Jmiur puedes pasarme el post que hiciste donde explicabas como alargaste tu columna lateral para que nunca acabara? es que lo lei una vez pero no lo encuentro en tu blog, algo que añadias un numero muy grande con un menos delante, por favor pasame el hilo que no lo encuentro en tu blog! gracias.
Mar: es un palcaer, me gustó lo que has hecho :D
Los parámetros e YouTube están acá ¿Estás usando algún script o los colocás manualmente?
Abre Paréntesis: Este es el post
Bueno algo han estado haciendo estos días….. ahora las estrellas y sus títulos han desaparecido……….. perdón! Pero es que no soy yo!
Lo que no funciona ahora (ya ha pasado) son las play lists. A veces para ballet o conciertos es mejor juntar varios videos en un solo repro……. Luego vuelven a funcionar.
Son cuestiones de ellos, ajenas a mí. Yo coloco manualmente el código que has dado
&showinfo=0. Está mal? Siempre funcionó!
Mira que bueno (lo de expandir y contraer)!!! fácil, dejo por ahora así, gracias tesoro :P
Jmiur gracias por pasarme el hilo, aunque sigo teniendo problemas, lo he hecho tal cual explicas y no hace nada, tendra algo que ver el hecho de que haya divido la sidebar en diferentes secciones segun añado mas widgets?? es que he intentado volver a juntar la sidebar porque una vez la dividi en secciones y ahora no lo consigo, que puedo hacer?? por favor echame una mano, quiero que mi pagina se vea como se ve la tuya, todo por igual, y al final otra sidebar horizontal para modificarla, no se que hacer, por favor ayudame jmiur! gracias.
Mar: No te preocupers, es YouTube, habrá que tener paciencia.
Graciela:¿Funcionó? Deje todo como está :D
Abre Paréntesis: Sí, es probable que sea eso. No es un tema sencillo a menos que se reproduzca exactamente el mismo modelo y con solo una sidebar. No es algo que pueda verse online.
Me encantó este chiche (dejo la dire pa chismosear)
(http://elrincondeanahi.tumblr.com/)
pero no puedo meter el badge en el bló, no veo qué esté haciendo mal
Saludos.
Anahí: ¿Está colocado en alguna parte de tu blog? Colocalo, aunque sea en un blog de pruebas o en un post para que lo vea.
JMiur, lo tuve que sacar de El Rincón, porque no me dejaba entrar (me aparecía una página bx-...) :O
Ahora lo acabo de poner en la Galería, y tampoco me funciona
(http://anahi-galeria.blogspot.com/)
Salu2
Anahí: Me da la impresión que eso es porque estás poniendo que lea 5 entradas como máximo pero, en realidad, tiene solo 3. Allí se produce un error. Agrega dos mas o, para probar, coloca 3 en lugar de 5 en las dos partes del script.
Santo remedio. Gracias, JMiur.
Me alegro, Anahí :D
Hola JMiur!
Entiendo todo y lo hago (creo) bien. El problema es que aparece el siguiente error:
"The reference to entity "num" must end with the ';' delimiter".
Calculo que se referirá al script final porque sólo allí aparece "num". Aunque intento varias cosas, a lo más que llego es a que ya no salga el error... pero no aparece nada en la plantilla :O
Saludos.
Si, Emile. Es un error mio. Ya lo he corregido en el post :$
Si te fijas en el últímo script, en lugar de & debe escribirse &
<script src='http://NOMBRE.tumblr.com/api/read/json?callback=tumblrCallback&num=10' type='text/javascript'/>
Gracias JMiur!
The answer to Emile fixed the problem.
This was a very good tip you gave!
Sorry for writing in english, but I only write well in portuguese e so so in english...
Me alegro que sirviera, Pat. Es un detalle que no había notado :)
Sí, asunto solucionado.
Gracias por la pronta respuesta, ahora queda personalizarlo :D
Saludos!
Perfecto, Emile. Tu comentario sirvió para modificar ese error. Me alegro que ahora se haya solucionado.
Guauuuu salió! Hay un tumblricito nuevo desde ayer que quería enlazar en Itinerarios.
Ya sabía que en algún momento iba a volver por esta entrada.
Lo único es que quisiera poder cambiar uno solo de los loguitos, pero el zip no abre.
Bueno pruebo más tarde
Un beso
Lo cambié desde la plantilla. Ya está.
Cualquier cosa, el ZIP está acá.
Desde que publicaste la entrada lo he intentado infinidad de veces y nunca me aparece. No sé si es que pongo algo malo o algo está malo acá. Releo todo y nada.
Tendría que ver un ejemplo de lo que has hecho para saber por qué no te funciona.
He notado que en el código para el elemento hay un espacio ¿acaso será eso? De todos modos te mando por correo una copia de la plantilla y veas como he puesto el script y los estilos.
No, ese espacio es indiferente. Miraré la plantilla pero sería más sencillo si pudiera ver el ejemplo online.
Dices que cada tipo de entrada tiene características diferentes, y en ese caso me gustaría poder sacar un feed que muestre sólo las entradas con imágenes e ignore todas las demás. ¿Es posible?
La verdad, no sé :) Así a simple vista, diría que no porque esa caracteristica diferente es sólo una forma de simplificar su uso. Al igual que en cualquier blog o sistema similar, la forma de acceder a feeds específicos es a través de las etiquetas. Tumblr las admite pero no sé si es posible generar feeds para esas etiquetas desde el mismo sistema.
Estimado JMiur,
lamento molestarle pero he seguido al pie de la letras sus intrucciones y no me ha podido salir el truco jejeje, cree que puede echarme una mano para detectar que estoy haciendo mal?
de antemano gracias por su atención.
mi sitio es:
http://la-plastilina.blogspot.com/
Isaias:
Me costó encontar el problema pero creo que ya lo tengo claro. Parecería que el script original tiene un error, falta un IF que contemple los posts de tipo REGULAR. Ahora lo he corregido en esta entrada pero, igual, te lo cuento acá porque es fácil de corregir.
Si te fijas, en el script de tu blog dice esto:
} else if (elPost.type === "audio") { // los audios
contenido= '<div class=\"TumblrAudio\">' + elPost["audio-player"] + '</div>';
}
// creamos el codigo de salida
En esa parte, agregamos un IF más, para que quede así:
} else if (elPost.type === "audio") { // los audios
contenido= '<div class=\"TumblrAudio\">' + elPost["audio-player"] + '</div>';
}
} else if (elPost.type === "regular") {
contenido = '<div class=\"TumblrRegular\">' + textoPlano + '</div>';
}
// creamos el codigo de salida
Y deberías agregar una definición más de CSS para ese tipo de posts:
div.TumblrRegular { /* un post de tipo REGULAR */
.............
}
Por lo que veo, vas a tener que agregar alguna propiedad extra porque, por ejemplo, en el primer Tumblr que es Regular, has colocado un video de YouTube con with y height y entonces, se mostrará muy grande. Puedes hacer varias cosas pero todas dependen del modo en que piense usar Tumblr.
Puedes ocultar esos videos en ese tipo de posts:
div.TumblrRegular object, div.TumblrRegular embed {
display:none;
}
También puedes quitar ese video y usar un tipo VIDEO (creo que esto es lo lógico).
Este comentario se ha extendido demasiado, cualquier detalle, me mandas un mail y lo vemos.
Espero que se haya entendido algo :)
Hola JMiur!
Caray! no cabe duda que el que sabe, sabe!! jejeje
Hice las correcciones que mencionaste y ya quedo (con sus pequeños detalles jeje), pero bueno, te comento que uso el servicio de posterous para crear y este publica en mi tumblr y en mi fb, sin embargo, sea imagen o video en mi tumblr se publica como TEXTO, creo que por eso se complico, vdd? y bueno el uso que pienso darle al tumblr es para postear cosas sin mucho contenido. que te parece?
Bueno, te agradezco tu ayuda y seguimos en contacto mi estimado!!
Excelente Fin de Semana.
Sí, imagino que es ese el motivo, en general, al usar Tumblr directamente, ese detalle no se tiene en cuenta ya que siempre elegimos uno de los tipos predefinidos. Pero, no improta, ya con ese agregado se soluciona el probema y te quedará filtrar los detalles a medida que vaya apareciendo.
A mi juicio, Tumblr da para cualquier cosa, es muy flexible así que cualquier uso que uno quiera darle es válido :)
Descubrí tumblr hace unos días y me pareció fantástico, sobretodo porqe no me gusta twitter y puedo usar tumblr y enviar las coasa a twitter sin entrar al mismo.
Bueno el problema es el siguiente: no se ve nada, osea no me anda
primero lo puse y le borré todas las explicaciones pero como no andaba lo copié y lo pegué devuelta y tampoco, lo puse en otro blog y tampoco asi qe creo qe el problema es mio.
Yo lo único qe hago es cambiar donde dice 'NOMBRE' por mi usuario y agregar el div en un elemento HTML/Java.. quiero solucionarlo ya qe me parece un servicio muy bueno para complementar con blogspot y asi expresarnos cada vez mejor =D.
En fin ños blogs donde lo inserté son los siguientes, fijate en la sidebar donde dice "Lugares donde encontrarme":
selecciondefrases.blogspot.com
videosinteresantes.com.ar
Eso es porque estás colocando el script al inicio de tu página y, como el contenedor está después, no funciona y se genera un error.
¡Gracias! ahi lo mande abajo de todo y anda perfecto y está muy bueno =D
Uno mas del monton: Perfecto !!!!!! :D
No me funciona, no ocurre absolutamente nada después de seguir todas las instrucciones.
Por lo que veo, te falta poner la URL de tu Tumblr:
<script src='http://NOMBRE.tumblr.com/api/read/json?callback=tumblrCallback&num=10' type='text/javascript'></script>
Gracias, ahora ya rula!
Perfecto :D
hola como puedo centrar el script???
Centrando el DIV; por ejemplo:
#contenedorTumblr {
.......
margin:0 auto;
width:250px;
}
hola por favor necesito ayuda urgente mi tumblr se ve todo negro y nose como arreglarlo si puedes ayudarme te lo agradeceria demasiado este es mi tumblr http://azraelyvaleska.tumblr.com/
No. Eso no ocurre :X
Muy chido sos groso, ahi le doy mis dies ;D
Sé que este post es antiguo, pero si pudieras explicar cómo hacer que se vea en el widget más de una imagen, pues te lo agradecería mucho.
Un saludo y felicidades por el blog.
Para eso habria que rehacer el script por completo y pensarlo de otro modo.
Bueno, si es mucho follón no, sólo quería que en vez de verse sólo una imagen se vieran 3 o 4 y pensé que no sería demasiada paliza, que con cambiar algo o añadir algo al scrip ya valdría. He estado mirando formas de añadir las imagenes que tengo en Tumblr, porque mi blog allí es sólo de imagenes, de la forma que tú lo haces, pero lo cierto es que no he encontrado otra que tu script.
De todas formas muchas gracias.
Puede hacerse pero, lamentablemente, hay que reaahacer el código para que funcione de otro modo.
Hola te escribo nuevamente porque me parece que no lo puede publicar al mensaje.
Tengo un sitio web: "http://ladorregoagrupacion.com.ar/" y un Tumblr: "http://ladorregoagrupacion.tumblr.com/" trate de todas maneras copiando como vos decís el código, creo que lo hice bien, pero en la pagina todo lo que aparece luego del codigo no se ve.
Te dejo la pagina de prueba que hice: "http://ladorregoagrupacion.com.ar/index_tumblr.html".
Espero que me puedas ayudar. Muchas gracias! Adrian.
Adrian:
Fíjate de quitar CDATA y ver si eso lo resuelve; el primero:
//<![CDATA[
y su cierre:
//]]>
JMiur quite el CDATA inicio y cierre, pero sigue igual, creo que no afectaba porque estaba con //
Se te ocurre alguna otra cosa??? porque a mi no :(
Saludos,
Adrian.
Hay sistemas donde CDATA no es interpretado correctamente. Sólo era una prueba. Voví a mirar pero como ya no está el script poco puedo decirte.
Lo que vi antes es que el script que carga los datos lo hacía bien pero, la función del callback, no se ejecutaba y ni siquiera daba error cosa que es extraña.
Lo que muestra el navegador son dos errores, uno es una tontera, hay un </div> al final de la página que no tiene una etiqueta de apertura.
El otro, deberías investigarlo porque da un error en el DOCTYPE y eso si puede estar afectando las cosas o cómo son interpretadas las etiquetas.
Voy a volver a poner el CDATA para que veas, y ver el DIV final sin apertura, pero el DOCTYPE tendría que investigar a ver si encuentro en algún lado porque se puede producir.
Si sabes algo avisame, y si encuentro info te la paso.
Gracias!
Hola JMiur, estudiando un poco el Dreamweaver, soy bastante novato en esto, encontre una función que se llama "Vista en Vivo" que te muestra como quedaria la página cuando se esta ejecutando en un servidor. Lo gracioso es que de esa forma funciona, veo el ultimo post de tumblr!! y si le doy a siguiente me pasa a los anteriores, pero cuando lo trato de ver en la web real sigue truncandose hasta donde aparece el código y no se ve.
No se si esto te sirve para detectar que puede estar pasando, puse el CDATA, saque el /DIV de mas y estoy viendo distintas alternativas de DOCTYPE pero me da igual con todas.
Saludos!
No conozco Dreamweaver pero, lo cierto es que los servidores pueden tener restricicones variables asñi que el resultado puede diferir.
Veo que el DOCTYPE cambió y ese error ya no existe pero, del script veo lo mismo que antes; esta parte:
http://ladorregoagrupacion.tumblr.com/api/read/json?callback=tumblrCallback&num=5
se carga perfectamente con los datos
pero la función tumblrCallback() no se ejecuta no muestra error alguno; curiosamente, de all´iapra abajo, no se ejecuta nada más.
Dos pruebas. Primero, poner la función antes de </head>
Segundo; si lo que escribes es esto:
<script src='http://ladorregoagrupacion.tumblr.com/api/read/json?callback=tumblrCallback&num=5' type='text/javascript'/>
cambialo así:
<script src='http://ladorregoagrupacion.tumblr.com/api/read/json?callback=tumblrCallback&num=5' type='text/javascript'></script>
GENIO !!! GENIO !!! GENIO !!! Resultó la segunda prueba:
Agregarle el cierre del /Script en el lugar que estaba originalmente!!
La primera no había funcionado...
Ya está solucionado, ahora voy a ir dándole forma, muchísimas gracias!
Abrazos!! Adrián
Perfecto, Adrian :D
Ya me estaba dando dolor de cabeza esto de encontrar una forma para postear Tumblr en mi Blogger! xD
:D Este post me ha servido de maravilla! Muchas gracias *-*
Hola. Gracias por darnos esta información tan valiosa :)
Te cuento. He añadido el código como dices pero solo se ve los enlaces del script . Tengo que darle a la palabra siguiente para ver la primera imagen de tumbrl.
Este es mi blog. http://artistasiragrafico.blogspot.com.es/
Ya me dirás cosas. Saludos! :)
Porque el primer post que se meustra no tiene nada:
http://blogsira.tumblr.com/post/78982305575/desafio-52-dark-souls
Y no hay manera que se vea la primera imagen del tumbrl en el blog?
Ya se pk no se ve porque el post anterior era texto
He copiado el script y me funciona perfectamente.. en parte. Utilizo un blog de configuración dinámica, y si bien inicialmente se carga la imagen y aparecen las opciones "ver post" y "siguiente", se quedan en el background, esto és: en cuando se carga el fondo del blog todo queda oculto.
He intentado copiarlo en un elemento de script pero no me funciona. A parte, me gustaria que fuese siempre visible.
Pense también en meterlo en una ventana Pop-up, pero no s-e que código implementar para crear la ventana con el elemento en su interior.
Dirección: http://dragonheaviside.blogspot.com.es
Desconozco el manejo de ese tipo de plantilla.
Y si quisiese crear una venta emergente con este codigo en su interior? que modificaciones debería hacer?
¿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 ...