Plantillas Blogger con error al mover gadgets | Oloblogger Me he decidido a publicar esto porque ya me ha dado demasiado la lata este tema y supongo que a otros también os llevará de cabeza. El pro...

2 de septiembre de 2014

Plantillas Blogger con error al mover gadgets

Me he decidido a publicar esto porque ya me ha dado demasiado la lata este tema y supongo que a otros también os llevará de cabeza.

El problema que intentamos solucionar hoy se manifiesta cuando desde el apartado Diseño del panel de control de Blogger, intentamos mover un gadget para cambiarlo de posición. Por ejemplo en la barra lateral para cambiar su orden de aparición o también cuando lo queremos cambiar de un bloque a otro.

La cosa es que cuando vamos a guardar los cambios nos salta un mensaje como el siguiente que nos impide guardar los cambios: Se ha producido un error. Actualiza la página e inténtalo de nuevo.

Podemos añadir nuevos gadgets e incluso eliminar los existentes, pero lo que no podemos hacer con ese error es moverlos.

La cuestión es que sin ser un problema grave sí que es un auténtico latazo, ya que esta situación nos obliga a mover los gadgets desde la plantilla, algo que es incómodo y por otra parte, que no está al alcance de todos.

Blogger: Error al mover gadgets


Puede que haya más causas que provoquen este error, pero servidor ha encontrado un par con las que creo que la mayoría salvará sus problemas. Si encuentro/encontramos más causas en el futuro, ya iremos ampliando este post.

Y bien, como conociendo las causas las soluciones suelen ser fáciles de encontrar, pues vamos allá con la primera que es la más habitual y también la más fácil de resolver.


Widget en plantilla normal con un mobile='only'


Título autoexplicativo ¿no?

Las plantillas de Blogger actuales tienen dos partes HTML mellizas (que no gemelas) para generar todo el contenido. Una es para la versión normal y la otra, con menos elementos y gadgets, para cuando el blog se visualiza en dispositivos móviles.

Pues parece ser que a Blogger se le va un poco la pinza cuando a algún gadget de la parte de la plantilla "normal" se le añade ese parámetro de mobile='only' (más información). Se conoce que cuando hacemos eso nos estamos cargando la lógica del sistema, ya que esos parámetros son para los gadgets en la plantilla móvil y si lo ponemos en la plantilla normal no tiene mucho sentido.

Así que lo único que habría que hacer es usar el buscador interno de la plantilla (pinchar en el marco que contiene el código y luego CTRL+F) con el literal mobile='only' y borrarlo de dónde no corresponda. Si tenemos dudas mejor nos liquidamos todos los que aparezcan, que seguro que no metemos la pata.

<b:widget id='HTML1' locked='false' mobile='only' title='Siguenos!' type='HTML'>

Mano de santo, oiga...


Widget importante condicionado para que no aparezca


Este me va a costar más explicarlo bien y sobre todo, dar una solución tan concreta como la anterior, pero lo intentaré con un ejemplo.

Algunas plantillas modificadas incluyen condiciones para conseguir que ciertos elementos (normalmente widgets) no aparezcan o aparezcan en un tipo de páginas sí y en otras no.

Por ejemplo, para que la barra lateral (sidebar) no se vea en portada, el recurso fácil es incluir un apartado en la plantilla con una condición para que se ejecute un CSS modificado de manera que esta se oculte:

<b:if cond='data:blog.url == data:blog.homepageUrl'>
  <style>
    .sidebar {
      display: none;
    }
  </style>
</b:if>
Para que este tipo de CSS condicionado funcione bien, hay que insertarlo entre el cierre de la parte CSS ]]></b:skin> y el cierre del encabezamiento head (</head>).

Pero a veces tenemos la tentación de ir un poco más allá y, en lugar de ocultarla, directamente nos cargamos toda la parte que genera la barra lateral y así hasta ahorramos tiempo y recursos.

<b:if cond='data:blog.url != data:blog.homepageUrl'>
  <div id='sidebar-wrapper'>
    <b:section class='sidebar' id='sidebar' preferred='yes'>
      <b:widget id='HTML19' locked='false' title='Botonera social' type='HTML'>...</b:widget>
      <b:widget id='HTML1' locked='false' title=' El tiempo' type='HTML'>...</b:widget>
      <b:widget id='HTML6' locked='false' title='Secciones' type='HTML'>...</b:widget>
    </b:section>
  </div>
</b:if>
La condición en la que hemos encerrado todo ese código hará que la sidebar-wrapper y todo lo que tuviera dentro, no se cargue en la página de portada (sí en todas las demás).

Pues bien, esta segunda opción es la conflictiva, la que provoca que luego en la vista Diseño no podamos mover los gadgets con libertad, así que hay que evitarla si tenemos problemas y preferiblemente usar el primer sistema, el de simplemente ocultar.

No he podido comprobar con qué elementos del blog en concreto ocurre esto, pero parece razonable que la barra lateral, la cabecera, el cuerpo de entradas y el pie de página, todos ellos elementos que aparecen en Diseño, puedan ser origen de problemas si no se cargan en plantilla.


Corolario


No hagamos cosas raras y no sucederán cosas raras.

¿Vemos otro post al azar por si le encuentras utilidad o quizás prefieres ser más metódico y suscribirte a nuestras entradas por correo? También puedes imprimir este artículo y por supuesto compartirlo en redes sociales si fue de tu agrado.

Compartir
Copy URL

Y muchos más artículos interesantes si nos sigues en...

follow us in feedly

33 comentarios :

  1. Hace tiempos tuve uno de esos problemas con el mobile='only'. Primero no recordaba que es lo que habia echo mal, pero después lo recordé y lo saque de una.

    Saludos Oloman

    ResponderEliminar
  2. Hola otra ves Oloman, disculpa por andar preguntandote a cada rato y por todos tus post.

    Bueno tengo otra pregunta:
    Quiero que no aparezca en la portada del blog el sidebar y los post, bueno entre /b:skin y /head puse .main-inner

    Ese codigo oculta el sidebar y los post PERO lo que pasa es que tengo el gadget buscador, y en la portada del blog no aparece la caja de resultados del buscador.

    ¿Sabes que codigo oculta el sidebar y los post de la portada, si ocultar la caja de resultados del buscador?

    Espero me haya dado a entender... Y de momento la portada del blog se ha quedado sin el gadget buscador. XD

    Saludos...

    ResponderEliminar
    Respuestas
    1. Parece que ya lo has hecho, pero la solución pasa simplemente por quitar el buscador de la sidebar, porque si ocultas esta, ocultas todo lo que contiene.

      Eliminar
    2. Si, bueno quite lo de
      .main-inner
      en su lugar pegue
      #Blog1, .sidebar

      Ahora la plantilla corre muy bien :) solo tiene un pequeño problemita.
      El problema en cuestión es que el link de "entradas antiguas" sale hasta cuando no es necesario XD.

      Eliminar
    3. Uff! No entiendo lo que dices que has hecho, pero si el problema se queda en problemita, no lo toques... que lo aborrece la madre ;)

      Eliminar
  3. Buenos días. Una pregunta general de inexperta: Cuando modificamos la plantilla para darle una nueva imagen (color, fuentes, tamaños, botones, ilustración cabecera, pestañas, etiquetas, favicon, etc...), si no nos gusta el resultado, ¿se puede volver al aspecto anterior? Antes de empezar hice una copia de seguridad. Mi duda es si restableciéndola volverá todo tal cual estaba antes o si hay alguna salvedad. Gracias.

    ResponderEliminar
    Respuestas
    1. Y por si la duda está en lo publicado, eso nunca se pierde por tocar la plantilla. Las entradas sólo se pueden borrar si directamente se eliminan desde el editor de ENTRADAS, nunca manipulando la plantilla.

      Eliminar
  4. Pues sí, me demoré en contestar pero eso era lo más probable, que el sitio dónde estaba alojado el .js no funcionara. El mío se lo lo acaba de liquidar DropBox por exceso de tráfico. Por más que digo que no usen las direcciones que pongo y que lo alojen en servicios propios, muchos de mis parroquianos hacen caso omiso. Ahora más de uno se va a quedar tirado.

    ResponderEliminar
  5. ¿Otra vez me nominaron? XD
    Es que eso fue en 2012 Félix. No obstante, gracias ;)

    ResponderEliminar
  6. hola! quise aplicar tu tutorial en un problema que tengo pero no encuentro como.

    Tengo un blogspot con la plantilla Ethereal y quiero que las paginas estaticas ocupen todo el ancho del blog (desapareciendo el sidebar).

    pero en esta plantilla cuando en edicion html pongo "display: none;" el "none" me aparece en rojo.

    lo mas importante es que no se como agrandar la pagina para que ocupe todo el ancho.

    Tenes algun tutorial sobre esto? estuve recorriendo tu sitio pero no encontré :(

    gracias
    Helena

    ResponderEliminar
    Respuestas
    1. Hola. No sé qué quiere decir eso de que el display: none te aparece en rojo. Quizás es que no lo pones en la parte CSS.

      De todas formas, si el problema es cómo agrandar la página, aquí tienes un post antiguo, pero con contenido totalmente en vigor: http://www.oloblogger.com/2007/01/blogger-ancho-de-columnas.html

      Eliminar
  7. gracias por responderme

    mi problema es que no encuentro la manera de colocar un condicional para que solo en las paginas estaticas desaparezca el sidebar y el cuerpo de la pagina ocupe todo el ancho

    en la plantilla no tengo esto que mencionas en el post que me recomiendas:

    #outer-wrapper
    #main-wrapper
    #sidebar-wrapper

    el problema es la plantilla Ethereal

    ResponderEliminar
    Respuestas
    1. Eso te pasa por usar WP :)
      Es broma, pero es que antes no me di cuenta de ese gran detalle. Mucho de lo que explico es con referencia a las plantillas estándar de Blogger, como en esta entrada, pero la tuya evidentemente usa otros selectores.

      No sé cómo se ponen las condiciones en WP y ese sería el primer problema que tendrías que resolver por tu cuenta. Lo demás si te puedo indicar más o menos.

      Tendrías que incluir en tu CSS para páginas estáticas:
      #secondary-wrapper {display:none !important;}
      nav#access {width: 100% !important;}
      #content-wrapper {margin:0 !importan;}

      Con eso anterior te saldrá la página sin barra lateral y con el cuerpo de entradas ocupando todo el ancho.

      Eliminar
    2. no pero el problema no lo tengo en el blog en wordpress sino en un blogspot. Te pongo uno blog de ejemplo cualquiera que no es el mio: comohacerunblogp8.blogspot.com

      tiene la plantilla standar que ofrece blogger "Ethereal"

      en ningun lado aparece esto:
      #outer-wrapper
      #main-wrapper
      #sidebar-wrapper

      sera que tengo que cambiar la plantilla?

      gracias
      Helena

      Eliminar
    3. En ese blog que me pasas sería:
      .main-inner .columns {
      padding-right: 0;
      }
      .main-inner .column-right-outer {
      display: none;
      }

      ...siempre dentro de una condición o se verá sin sidebar en todas las páginas.

      Eliminar
  8. Hola personalizando la plantilla movil me ha pasado exactamente lo que dices. Yo muevo los gadget desde la plantilla y aunque me dice que los cambios no se han podido guardar, luego si que estan. Además me salen algunas palabras del código en rojo pero todo sigue funcionando bien. Un saludo y gracias por la aclaración.

    ResponderEliminar
  9. El "mobile='only'" sólo me apercía en uno de los widgets, así que como tu solución no me valía, pensé en otras alternativas. He probado en cambiar los "locked='true'" por "locked='false'" y los problemas al cambiar los widgets de sitio han desaparecido. Un abrazo.

    ResponderEliminar
    Respuestas
    1. ¡Ups!
      Sí, evidentemente eso es como dices porque precisamente el LOCKED es para bloquear en un sitio determinado un gadget y que no se pueda mover. Olvidé mencionar eso por obvio (para mí... lo siento) y en el artículo sólo quería explicar una casuística especial que es más difícil de detectar.
      Gracias por el apunte porque seguro que sirve para otro que venga detrás.

      Eliminar
  10. Hola! gracias por el truco!!

    Mi problema ahora es que hice un gadget "HTML1"(desde la página diseño) y le tengo puesto "mobile=only" en la plantilla HTML, y ahora mi sorpresa que quería añadir algo más a ese código y en la página de diseño no me aparece pero en la página de plantilla HTML si me aparece el gadget "HTML1"

    Sabes algún truquito?

    Muchísimas gracias!

    Vero

    ResponderEliminar
    Respuestas
    1. Hola Verónica. El único que se me ocurre sería quitar ese mobile=only, modificar desde Diseño y luego volverlo a poner desde edición HTML de plantilla.

      Eliminar
    2. Gracias! es lo que he tenido que hacer alfinal, lo único que me aparece ahora en versión web también y se me solapan las 2 barras superiores (el html 1 que tenía puesto era la barra superior)
      He probado a poner en el CSS un código(#menu-movil {display: none;} /*para que no aparezca en la versión web*/) que se supone que hace lo hace desaparecer en versión web pero me lo elimina de la web y del movil... :S

      Eliminar
    3. Así es. El display:none es para todo.

      Lo de las plantillas móviles que vienen de serie son para mí un poco un quebradero de cabeza, así que te voy a mandar a los dos posts en lo que explico todo lo que sé al respecto: uno y dos

      De hecho uno ni siquiera es mío, sino de un invitado ;)

      Eliminar
  11. a mi nada de esto me esta funcionando alguna otra sugerencia?

    ResponderEliminar
    Respuestas
    1. No Joselyn. Lo siento. Aparte de las dos cosas que comenté aquí, no conozco ninguna otra causa para ese error.

      Eliminar
  12. Anónimo8/9/16, 5:14

    Hola, gracias por compartir tu info, me es y nos es muy util.
    te hago una consulta, creoque hubo alguna actualizacion de blogger, segun rumores, y estoy teniendo problemas con widgets, apenas sumo uno nuevo, se ve en el blog,pero desaparece apenas con un refresh del navegador, no queda fijado pareceria... tienes por casualidad algun codigo para arreglar este bug o problema ? esto viene ocurriendo dede hace 1 mes.
    saludos cordiales

    ResponderEliminar
    Respuestas
    1. A ver... explícame un poco más.

      Entiendo que añades un nuevo gadget desde Diseño. Vas al blog (no a Vista Previa) y lo ves, pero a continuación ¿refrescas pantalla y desaparece?

      Si es así ¿algo más que comentar? porque esto no he conocido a nadie más que le pase.

      Eliminar
  13. sí, coloco el gadget, por ejemplo un bloque mas de adsense en el sidebar, me aparece hasta que ante la primer actualizacion de codigo html, o sea alguna modificacion minima que haga en el template, poner una letra, ya lo hace desaparecer, como que no logra fijarlo o retenerlo.
    Tengo que reconocer que he cambiado muchos templates en la semana.Al menos he probado 5 o 6 templates... esto me ha pasado tambien desde otras cuentas de google, no solo desde la que tengo el blog.... hoy tambien me sucedio esto, al cambiar de template, me aparecieron los widgets del template anterior, los borre del layout desde eliminar, no se veian en el layout , pero seguian en el blog. ( o sea al reves del primer problema ), y tuve que borrarlos manualmente desde el template, y asi no aparecieron mas.Lo que me hace parecer un bug es que ocurre en diferentes cuentas de google, o sea lo probe abriendo cuentas nuevas de blogger, y pensando que podia ser el template mismo, probe otros distintos y ocurria lo mismo, ( me refiero alprimer problema de desaparecer los widgets ) , como podria limpiar o resetear el html para no tener problemas ? muchas graciass por adelantadoooo !!! estoy leyendo tu blog,

    ResponderEliminar
    Respuestas
    1. Tengo una pista, muchos blogs, muchos usuarios...
      ¿No será que estás en una pestaña modificando el gadget y en otra la plantilla? Es que actualmente el código que contiene el gadget aparece en plantilla, así que si en una ventana lo quitas, pero a continuación en otra guardas la plantilla TAL Y COMO ESTABA, pues lógicamente se te vuelve a poner.

      Igual ocurre con modificaciones o incorporaciones.

      Eliminar
  14. Hola oloman, es posible dejar solo la versión móvil disponible? Lo que yo quiero es que entre por donde se entre solo se visualice la versión móvil, ya sea por escritorio o por el mismo móvil. En su defecto que solo pueda acceder desde un movil.. te agradeería una luz al respecto! gracias

    ResponderEliminar
    Respuestas
    1. Prueba con esto justo detrás de <head>

      <script type='text/javascript'>
      //<![CDATA[
      (function(){
      if (!(document.URL.match(/\?m=1/))){
      var URL = document.URL;
      URL = URL + "?m=1";
      document.location = URL;
      }
      })()
      //]]>
      </script>

      Eliminar
  15. Tengo un problema con el sidebar derecho. En la pagina principal me salen abajo (justo debajo de las entradas hechas) en vez de la en la columna derecha. Me podrían ayudar con eso.
    Gracias

    ResponderEliminar
    Respuestas
    1. Hola. Ya no arreglo desde aquí problemas de diseño particulares, pero en tu plantilla no veo ninguna barra lateral. Sólo hay un cuerpo principal y tres columnas en el pie de página.

      Para cambiar eso, si no has alterado mucho la plantilla estándar de Blogger, lo más fácil es entrar en el "Diseñador de plantillas" y desde ahí configurar el formato general.

      Eliminar