Seguimos en la tarea de eliminar scripts alojados en archivos externos, agregándolos a la plantilla de manera directa y utilizando el mismo criterio que en los casos anteriores (LightWindow y Últimos Comentarios) es decir, colocándolos en un elemento HTML para no sobrecargar la plantilla y dejarla lo más despejada posible.

A mi juicio, lo mejor es crear una sección nueva en la plantilla y allí colocar los elementos HTML nuevos que contendrán los scripts. Eso, lo hacemos de manera muy sencilla si justo debajo de <body> agregamos este código:
<!-- CONTENEDOR SCRIPTS -->
<b:section class='contenedorScripts' id='contenedorScripts' />
Ya tenemos una sección nueva en la que podemos adicionar gadgets desde Diseño | Elementos de la página. Lo hacemos, le ponemos un título o no, a gusto de cada uno y luego copiamos y pegamos el código del archivo entre etiquetas SCRIPT:
<script type='text/javascript'>
... aquí pego el contenido del archivo ...
</script>
Sólo faltaría eliminar el script de la plantilla o modificarlo. Buscamos entonces el código que debería estar justo antes de:
<div id='sidebar-wrapper'>
y, en lugar de:
<b:if cond='data:blog.pageType == "item"'>
<script src='direccion_URL/VEmoticones.js' type='text/javascript'/>
<script type='text/javascript'>
emoticonComentario();
</script>
</b:if>
sólo ponemos la llamada a la función:
<b:if cond='data:blog.pageType == "item"'>
<script type='text/javascript'>emoticonComentario();</script>
</b:if>
Guardamos y ya está resuelto el tema con ciertas ventajas:
  • no dependemos del buen humor de quienes alojan archivos
  • el script es fácilmente editable
  • al estar en la misma plantilla, se ejecutará más rápido y el blog reducirá su tiempo de carga

63 comentarios:

Jorge Key/Raws  

hola soy key el del intro flash en blogger.... recurro ati jeje de nuevo para pedir ayuda en crear un logo para mi blog "urbanflow94.tk" mi url blogpot es

http://noticias-urbanflow94.blogspot.com/

es dificil crear un logo..
no c ni como empezar..
no tengo la creatividad jeje
espero y me ayudes como siempre

Responder
JMiur  

Pués no sé que responderte, yo no diseño logos, tardéun años en decidirme por uno y ahí quedó :D

Responder
Anónimo  

JMiur puede que el script interfiera con algun elemento de la plantilla, no se pueden dejar comentarios en mi blog desde que añadi el script en un gadget como explicas, ¿o habra ocurrido otra cosa? Gracias.

Responder
Anónimo  

JMiur lo he probado quitando el script del gadget y vuelven a funcionar los comentarios, ¿como lo puedo solucionar? Gracias.

Responder
JMiur  

Sí, eso es posible que ocurra ¿Lo usabas antes con un archivo externo?

Responder
Anónimo  

Utilizaba otro script, pero lo tuve que retirar porque interferia con los iframes y me salia por todas partes el Gadget de Traductor de Google. Si no hay otra solución me parece que me he quedado sin emoticonos. ¿Que crees? Saludos y gracias por tu ayuda JMiur.

Responder
Unknown  

Hola JMIUR, amigo dime como hago para identificar cuando un script presenta fallos, constantemente en edición de plantilla aparece que un script a dejado de funcionar y últimamente he sentido la sidebar bastante lenta...me puedes ayudar. gracias JMIUR.

por cierto me toco utilizar el viejo estilo de comentarios ya que en 5 intentos blogger no me permitió por el que aparece en tu blog

Responder
JMiur  

Carlos:
He visto que eso ocurre en algunas planillas. Te doy una idea, en lugar de colocar la llamada a la función allí, antes de la sidebar:

<b:if cond='data:blog.pageType == "item"'>
<script type='text/javascript'>emoticonComentario();</script>
</b:if>

Colócala al final de los comentarios, antes del formulario de comentarios. Antes de algo así:

<b:include data='post' name='comment-form'/>

Este script o el que usabas, es lo mismo. Digo ponerla allí para que se ejecute antes de mostrarse el formulario y evitar que lo modifique.

Solidaridad:
Es difícil de comprobar. Te digo lo que me muestra el navegador como error.

Que se llama a swfobject.js varais veces. Eso no es necesario, con una sola vez es suficiente. Luego, puede ser utilizada varias veces.

Que hay algo que comeinza con $().ready(function() y que no sé que es.

Que el archivo:
http://www.geocities.com/elieguis/emoticons.js
tiene un código ilegible y no funciona.

Cualquiera de todos esos errores o combinados entre si puede causar esas dificultades que notas.

Responder
Anónimo  

Muchas gracias JMiur, ya lo daba por perdido, lo probare y te contare. Un abrazo.

Responder
Bonzu Pipinpadaloxicopolis III  

Lo mismo que Carlos, intenté lo que sugieres pero indica un error
«El artilugio con ID "Blog1" no puede contener el elemento: "b:if". Un artilugio sólo puede contener elementos b:includable.»

Responder
JMiur  

Colocando el script antes de <b:include data='post' name='comment-form'/ > no podría haber un mensaje de error de Blogger de ese tipo.

Ese mensaje aparece si se pretende colocar algo ANTES de una instrucción<b:includable

Responder
Giancarlo  

¿Podrías poner un pequeño tutorial para personalizar el tema de los comentarios? Veo que en los blogs más expertos dais al lector todas las posibilidades: comentar en formulario, en ventana o en nueva página. La verdad es que no sé cómo incluir todas las opciones. Seguro que a muchos les interesa.

Si ya has hablado del tema lo siento, pero es que he intentado buscar pero, como es normal, el tema de los comentarios ha suscitado muchas entradas y me pierdo un poco.

Gracias

Responder
Anónimo  

Al principio me ocurría lo mismo que Bonzu con la modificación que has explicado, luego he conseguido encontrar el punto antes y después, en un caso no se podía comentar en el otro no aparecían los emoticonos. Gracias JMiur pero hay algún problema que hace incompatible este script con mi plantilla. Un abrazo.

Responder
Emerald  

Gracias JMiur!! andan mejor que antes.
Para poner el script de thumbnailviewer, también lo hago de la misma forma que los emoticones en el HTML? y en la llamada cuando lo uso, cambiaría en algo?
Gracias por facilitarnos las cosas!

Responder
Bonzu Pipinpadaloxicopolis III  

Encontré el error, tu muestras el código:
<b:include data='post' name='comment-form'/>

En plantilla tenía un espacio de mas:
<b:include data='post' name='comment-form'/ >

Un tontería, pero no funciona correctamente :$

Responder
JMiur  

Carlos: Es lo que me temía. No es la primera vez que lo veo. Creo que es el IFRAME de los comentarios el que a veces hace esas cosas raras e interfiere vaya uno a saber cómo. Lo malo es que no hay forma de reproducir el error para encontrarle una solución.

LuzdeLuna: Ese aún no lo he probado pero, puede intentarse. Proimero, colócalo del mismo modo. Si eso no funciona, colócalo directamente en la plantilla, en el mismo lugar donde está ahora. Así que, en lugar de tener:

<script src="URL_thumbnailviewer.js" type="text/javascript"/>

colocas:

<script type="text/javascript"/>
//<![CDATA[
y aqui colocas el código del archivo
//]]>
</script>


Bonzu: Sí, eso debe haber sido, la barra de cierre debe estar al final. De todas formas, el mensaje de error es bastante ambiguo así que encontrar esos detalles es muy engorroso :D

Responder
Bonzu Pipinpadaloxicopolis III  

El único lugar que encontré para colocar el código es al final de la plantilla antes de </body> pero en el formulario sale el Traductor, en otras partes marca error y cuando no dice nada los emoticones no aparecen.

Responder
JMiur  

Para ser más específico, lo he puesto de este modo en mi blog de pruebas.

Busqué esto:

<b:if cond='data:post.allowNewComments'>
<b:include data='post' name='comment-form'/>
<b:else/>
<data:post.noNewCommentsText/>
</b:if>


Y le añadí el script:

<b:if cond='data:post.allowNewComments'>
<b:if cond='data:blog.pageType == "item"'>
<script type='text/javascript'>emoticonComentario();</script>
</b:if>
<b:include data='post' name='comment-form'/>
<b:else/>
<data:post.noNewCommentsText/>
</b:if>

Responder
Bonzu Pipinpadaloxicopolis III  

Ya se cual fue mi error, yo agregué el script en un elemento html en el pie de página, entonces se aplicaba la función pero el script no se había cargado.

Creo que es algo que se debe mencionar en el post, será que a Carlos le ocurrió lo mismo?

Responder
JMiur  

No, Bonzu, el problema de Carlos tiene que ver con alguna incompatibilidad.

En el post está aclarado que la función va al inicio y la llamada luego, inmediatamente antes de la sidebar para evitar demoras.

Responder
atajar  

:(( yo lo he cambiado y todo bin pero al escribir un comentario no me sale el emoticono un abrazo

Responder
JMiur  

Lo que veo ahora es que la etiqueta:

<script type="text/javascript">

está repetida.

Responder
atajar  

si esta repetida por que pertenece a script diferentes creo yo . que puedo hacer?

Responder
JMiur  

Escribir esto:

<script type="text/javascript">
<script type="text/javascript">
........
</script>

que es lo que veo en el código fuente, es un error que hará que no se ejecute.

Responder
atajar  

ya lo he corregido es decir lo he quitado sigue sin salirme los emoticonos, un abrazo

Responder
Gastón  

graciasssssssssss no hay emoticono que alcance para agradecerte mil gracias.

Dejo un link a mi blog: http://fire-zone.org

Responder
JMiur  

atajar: Online no logro ver nada, sólo que el código está colocado.

Responder
atajar  

te puedo enviar la plantilla? porfaaaaa

Responder
JMiur  

Puedes pero, sólo podré reproducir una parte ya que los elementos de la sidebar, etc, no pueden copiarse.

Responder
atajar  

:P gracias ahora te la envio graciassssssssssss

Responder
Gerardo Andres Cardozo  

Hola: Te molesto un segundo porque no me funciona y estoy tratando de encontrar el error desde hace días y la verdad ya estoy mareado de tantos codigos que apenas entiendo.
Seguí todo como dices y copie como dices el script en un elemento html pero no me funciona :(
¿Te podrías fijar por favor?
mi blog es chenegro.com.ar.
Desde ya mil Gracias!
Saludos ;)

Responder
JMiur  

Lo primero a corregir es el orden. El llamdo a la función debe estar después de la función y no antes así que has esto, elimina esta parte:

<script type='text/javascript'>emoticonComentario();</script>

Y colócala al final del elemento HTML donde está el script para que se ejecute después.

Responder
Gerardo Andres Cardozo  

Eso era! Gracias!!!!
Por fin me funciona y sin ningun problema, ya estaba a punto de rendirme y hacer volar todo, decí que te pregunté jeje.
Sos un groso.

Gracias de nuevo por molestarte.
Saludos desde Misiones

Responder
JMiur  

Me alegro que funcionara :D

Responder
Anónimo  

No me funciona, he puesto el lo del archivo txt entre etiquetas script y lo he puesto en un gadget HTML/Javascript y en ese mismo gadget puse <b:if cond='data:blog.pageType == "item"'>
<script type='text/javascript'>emoticonComentario();</script>
</b:if>
pero no sale, por cierto, he modificado el archivo txt, espero no haber estropeado el código, tuve mucho cuidado :(

Responder
JMiur  

Raul:
Los códigos de Blogger como <b:if cond .... no pueden colocarse en un elemento HTML, sólo en la plantilla de manera directa. Cambia eso porque sino, no se ejecutará el script.

Responder
Anónimo  

entonces donde pongo cada cosa? tengo dejar lo del txt en el elemento HTML no? pero donde pongo lo de <b:if cond .... lo pongo encima del div id='sidebar-wrapper'?

Responder
JMiur  

Sí, por ejemplo ahí donde dices es un lugar posible.

Responder
Anónimo  

Tampoco funciona, tal vez sea porque he intentado editarlo un poco, he intentado sustituir el txt que modifiqué por el original que pones ahí, pero en elementos de la página del diseño del blog me sale

LHS of numeric is null before 22 in data:blog.pageType ==

Sabes porque podría ser, no entiendo mucho de inglés

Responder
JMiur  

Tendría que ver que código pones. Eso que te dice Blogger es que hay un error de sintaxis en B:IF.

Responder
Anónimo  

Yo solo puse encima de <div id='sidebar-wrapper'>
el siguiente código:
<b:if cond='data:blog.pageType == ' item=''>
<script type='text/javascript'>emoticonComentario();&l;/script>
</b:if>
Cuando lo quite todo volvió a la normalidad ¿estoy poniendo el código mal?

Responder
JMiur  

El código exacto sería este:

<b:if cond='data:blog.pageType == &quot;item&quot;'>
<script type='text/javascript'>emoticonComentario();</script>
</b:if>

Responder
Anónimo  

lo he probado, no da error pero no salen los emoticonos, por cierto, he cambiado algunas cosillas, es decir, ponia que sustituye 2 puntos y parentesis : y ) por una sonrisa :) pero para evitar errores e decidido eliminar esa parte y dejar solo para la sonrisa el de 2 puntos raya parentesis :- y )
No se si afectará, ¿debería volverlo a poner como el original?

Responder
JMiur  

Sí. Lo mejor es que uses el original y luego lo modifiques porque algún error de sintaxis hay.

Responder
Anónimo  

he puesto el original, pero aún así, sin haberlo modificado, no funciona, no se porque, creo que me rindo, de todos modos no me voy a morir por no tener emoticonos en los comentarios, claro que quedaría mejor, haber si me das una solución porque lo he intentado todo, no se si te servirá, pero mi blog es http://laplataformaazul.blogspot.com

Responder
JMiur  

Lo que ocurre es que el script está colocado én el footer y se lo llama en los posts. Cuando se lo quiere ejecutar, aún no se ha cargado. La función del script debe estar ANTES de ser llamada y no después. Debes ubicarla en otra parte, en cualquier lugar pero ANTES de los comentarios.

Responder
Anónimo  

Gracias JMiur, ya funciona QUE ALEGRÍA

Responder
JMiur  

Por fin!!!!! Hay que celebrar :D

Responder
La Dueña  

Te puedo pasar mi template por mail para que veas donde corno, tengo el error??? :S
Gracias

Responder
JMiur  

Adelante, no hay problema. Y explícame que es lo que ocurre o que notas como error.

Responder
La Dueña  

Muchas gracias!!! ya te mando el mail.

Besos :D

Responder
[ :: WwW.FloWKaletA.CoM :: ]  

hola, lo eh intentado de las 2 formas como muestras en tu blog, la primera con el script externo va todo bien, puedo ver los emoticones pero cuando entro en mi web a comentar en vez del formulario se me carga otro contenido de mi web como puedes ver si entras en mi web y quieres comentar, tengo k regrescar y a la segunda vez ya si que peudo ver el formulario y escribir.

Luego intente poniendo en script en el mismo HTML como muestras aqui y no se me puede ver ningun emoticon, espero me puedas ayudar y saber cual puede ser mi problema

Responder
JMiur  

La Dueña: Lo acabo de recibir, veremos de que se trata.

WwW.FloWKaletA.CoM: No veo donde está el script en tu blog, no lo encuentro.

Responder
Admin  

Otra vez yo, estoy con esto de poner los scripts dentro de la plantilla, no en la sidebar porque como no se pueden mover los gadgets...
Bueno corregí la llamada, la puse en el mismo sitio que estaba pero con las correcciones que decís acá, el script está mas arriba, antes de /head, donde están todos los scripts, ahora, después de varias pruebas no me da error, pero los emoticones no salen :(
Le darías una mirada a ver si me decís que cosa está mal?

El script de las tabs ya lo arreglé revolviendo en el blog de Gem@, eso quedó bien, pero todavía no doy con lo de las entradas relacionadas con imagen... pongo el script y me da error... :'(

Ayuda please!!

Responder
JMiur  

Puese uan respuesta áca

Responder
Unknown  

¡Hola JMiur!

Tu blog y el de Oloman me salvan a cada rato, les agradezco muchísimo que pongan todos estos 'trucos' al alcance de nosotros, o de gente como yo que tal vez no sabe mucho de HTML y esas cosas (todavía). Bueno, quería hacerte una pequeña pregunta, y perdón si está en este mismo Post y ya la respondiste o no la vi y está más obvia de lo que pensaba, es que estoy sin dormir porque me quedé toda la noche modificando la plantilla de comentarios, numerándolos, color de fondo, y todas esas cosas que explicas en otro post tuyo (¡gracias! ^^).

Mi pregunta ahora viene respecto a los comentarios, quería ponerle emoticones, onda como hiciste vos ahí arriba, que tenes una tirita con caritas y la gente puede ponerlos cuando comenta (:) :D :( :(( etc). Quiero saber como hacer eso (con tirita incluida ahí arriba y todo), porque busque entre tus posts pero hay bastantes formas de hacerlo, creo (porque estoy que no puedo más, como ya te dije, no puedo leer más xD los ojos los tengo rojisimos xDD), entonces no se con cuál quedarme. Además hay algunos posts que son de 2007, y como cambió toda la estructura y la forma del cuadro de comentarios, no sé si sirvan.

En fin, más que nada quería que me redireccionaras a un post que me sirva para hacer lo que hiciste vos, que me diga de que forma lo lograste.

¡Saludos y muchas gracias! ^^

Responder
JMiur  

El método que uso es el de esta entrada. La tirita, no es otra cosa que una imagen que puedes agregar en cualquier parte, por ejemplo, sobre la etiqueta IFRAME del formulario.

Responder
Unknown  

Por Dios... Sos un genio... Muchísimas gracias... Ya lo pude hacer y me salió bien.

Para que me salga tuve que hacer primero lo de la plantilla y después, a lo último, agregar el Script en el código HTML, sino no me salía y me daba error, pero ahora perfecto está...

No sabés como te lo agradezco, muchísimas gracias, en serio, estoy más que agradecido ^^... ¡GRACIAS! :)

:):):)

Responder
Kaede Shio  

Hola. Gema me deribo aqui porque parece que mi problema era complicado xD.

Vera. Yo segui paso a paso lo que dijo Gema en su entrada de pegar y copiar formulario de emoticones, y por un tiempo pense que lo habia logrado.. Hasta que un dia, descubro que los emoticones extra que agregue no funcionaban, pero seguian funcionando los 12 emotiocnes originales, pero despues de un tiempo, nisiquieran esos servian, y solo podian verse en el formulario, mas no usarse, y luago el los emoticones desaparecieron del formulario. Cuando crei que la cosa no podia empeorar, explore en mi pantilla htmal para saber que pasaba, y descubro que una de la tablas de emoticones habia desaparecido, y que parte del scrip de los emoticones estaba borrado... aunque guarde versiones anteriores de mi plantilla, todas tenian el problema del recorte del scrip.. despues de muchas conjeturas, creo que el problema es el siguiente.

Mi plantilla es una plntilla clasica, y no encontre el

<dd class='comment-body'

asi que decidi incrustar este codigo faltante y modificarlo como aparecia en la entrada de Gema, pero parece que esa no er ala solucion.. creo que los emoticones vovlerian a visualizarce si consiguiera poner ese codigo en el lugar correcto, y modificarlo, pero no se en que parte de la tabla ponerlo :((

Responder
JMiur  

Kaede:
Lo primero que veo es que hay un error de sintaxis, tienes abierta dos etiquetas script pero una sin cerrar; dice algo así:

<script type='text/javascript'>
//<![CDATA[

<script type='text/javascript'>
//<![CDATA[
... y acá sigue el script de comentarios ...

así qte antes que nada, debes borrar ese primer:
<script type='text/javascript'>
//<![CDATA[

El otro problema es más complciado de ver online proque lo que noto es que algunos comentarios están dentro de una clase comment-body y otros no l oque hace dificultoso que puedas identificarlo individualmente. Dicen algo así:

<dd id=".......algo......." class="comment-body">

Son los que no tienen imagen de fondo en cambio, los que tienen una imagen dicen esto:

<dd class="blog-author-comment">

En ambos casos, en esa aprte, está aquello que debe identificarse que es el texto del comentario en si mismo.

Deberías tratar de unificarlos de alguna manera para que ambos esten dentro de un mismo tipo de etiqueta. La etiqueta clave es <data:comment.body/> Si la encuentras, coloca algo así:

<p expr:id='&quot;combody-&quot; + data:comment.anchorName'><data:comment.body/></p>
<script type='text/javascript'>
cual = &quot;combody-&quot; + &quot;<data:comment.anchorName/>";
emoticonComentario(cual);
</script>

Responder
Unknown  

Muy buen post, se agradece
:) :D :( :(( ;) :P :$ :-l :o :O |O :S :X

Responder
Unknown  

Espero que puedas ayudarme hace unos cuantas semanas que vengo estudiando de tus post para mi blog, me parece un material formidable.

Bien, dicho eso ahora mi proble a ver si me lo puedes solucionar, intente crear el contenedor como pones tu aquí, pero cuando voy a diseño y quiero añadirle un gadget no puedo porque "Añadir un gadget" no se pinta y no puedo hacer clic sobre el.

Gracias de antemano por tu respuesta!!!
Saludos

JMiur  

Revisa que la sección donde quieres agregar el gadget no esté bloqueada; se bloquea cunado tiene cualquiera de estos atributos:

showaddelement='no'
maxwidgets='1'
locked='true'

Si es así, simplemente borras ese atributo para permitir la edición.

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