JMiur [E]

Por ahora, si alguien prueba algunas de las nuevas opciones de la Configuración de Blogger, encontrará pocos resultados o ninguno. Puede ser que, como siempre, lancen algo que luego corrigen o que, simplemente, no estamos entendiendo la idea o cómo funcionan esas opciones.

Una de las que más interés causa es la llamada Mensaje de página no encontrada personalizado y tampoco parecería estar funcionando por acá aunque en otros casos aprecería que si. Tengo la impresión que es algo que sólo funciona en las plantillas de nuevo estilo y no en las tradicionales.

Ahora bien, la aparición de esa nueva posibilidad también aprece haber cambiado algo en el funcionamiento de Blogger; algo que en realidad existía antes y que permitía crear una pagina de error 404 personal; en ese tiempo podíamos usar a un dato llamado data:numposts que era cero cuando la entrada no existía y por lo tanto, podía condicionarse la plantilla para mostrar algo especial.

Luego cambió y lo que mostraba Blogger era una página genérica especial informando del error. En este momento, cuando tratamos de acceder a una entrada inexistente, lo que muestra Blogger es nuestra plantilla con el contenido de <div class='blog-posts'> vacío. Ese div se encuentra en <b:includable id='main' var='top'> e incluye el loop que genera las entradas.

Pero ¿cómo detectar si una página existe o no existe?

Yo no sé si ates existía o es un dato nuevo pero, a data:blog.pageType (index, item, archive, static_page) se le ha agregado un nuevo valor denominado error_page así que una condición de este tipo mostraría un texto "ERROR" si la página no existe:
<b:if cond='data:blog.pageType == &quot;error_page&quot;'>
  ERROR
</b:if>
¿Y cómo podemos usar algo así?

Eso ya dependerá de la imaginación de cada uno. Una alternativa sencilla es crear una página estática de error; por ejemplo, la guardo con el título 404 y luego, inmediatamente después de <head> coloco un script que re-direccione los errores a esa página estática:
<b:if cond='data:blog.pageType == &quot;error_page&quot;'>
  <script type='text/javascript'>
  //<![CDATA[
    window.location = "http://miblog.blogspot.com/p/404.html";
  //]]>
  </script>
</b:if>
Otra posibilidad es armar esa página de error en la plantilla misma para lo cual podemos condicionar los distintos elementos que la forman. Esto no es algo que pueda ser aplicado de manera genérica porque dependerá completamente de la forma en que está estructurada la plantilla pero, acá va una idea explicación aproximada.

Primero, voy a poner antes de </head> esa condición y allí definiré las reglas de estilo de esa "página":
<b:if cond='data:blog.pageType == &quot;error_page&quot;'>
  <style>
    #error404 {
      /* este será mi contenedor */
    }
    /* y el resto de las reglas dependerán de lo que quiera mostrar */
  </script>
</b:if>
Ahora condicionaré la plantilla; en mi caso, quiero dejar el header y el footer pero eliminar las dos columnas centrales, la de las entradas y la sidebar así que, sin desplegar los artilugios para que sea sencillo, condiciono esa parte:
<b:if cond='data:blog.pageType == &quot;error_page&quot;'>
  <!-- esta es la página de error agregada -->
  <div id='error404'>
    < ....... y aquí colocaré el HTML se la página de error ....... >  
  </div>
<b:else/>
  <!-- esta es la página normal con el código tal como está ahora -->
  .......
  <div id='main-wrapper'> ....... </div>
  <div id='sidebar-wrapper'> ....... </div>
  .......
</b:if>
Y en todo caso, verifico que no me haya equivocado usando la Vista Previa. Si todo está bien, veré el blog de modo normal.

Una vez guardada la plantilla ... habrá que probar si funciona colocando una dirección URL errónea y esperar que Blogger no vuelva a cambiar las cosas otra vez.

21 comentarios:

Anónimo  

Que interesante, esta era una de las cosas que más quería personalizar, haber como me va!!!

Responder
Enry Baskerville  

He implementado una alternativa encontrada en un interlocutor de su blog.
 Emilio Cobos-CMC
Me ha parecido una genialidad llegar al final.
Agradezco su disponibilidad para ofrecernos las últimas novedades.
Mis saludos.

JMiur  

Creo que se sistema de Blogger sólo funciona en las plantillas de nuevo estilo. Por lo menos yo, no he logrado que funcionara salvo en esas.

Unknown  

No tenía ni idea, actualizaré la entrada...

PD: Me encanta tu página de error, no he podido resistirme a echarle un vistazo al código...

JMiur  

Yo tampoco lo sabía y realmente no puedo confirmarlo pero, sólo he logrado que funcionara en ese tipo de plantillas. No sé si eso es temporal, si está pensado de ese modo o si funciona de otro modo.

Felipe Calvo Cepeda  

Para que funcioné la página de error que se inserta desde la configuración de Blogger el siguiente includable debe aparecer dos veces, para la versión móvil, y para la de escritorio:

<b:include data='top' name='status-message'/>

Creo que hace un tiempo muchos quitamos o comentamos ese código para ocultar el mensaje que aparecía en la navegación por etiquetas.

JMiur  

Tienes razón, Felipe. Acabo de probar y es cierto. En mi caso, esos codigos estaban pero, lo que había eliminado es el includable en si mismo:

<b:includable id='status-message'/>

así que bastó borrarlo para que se volviera a agregar el original y ahora funciona.

Entonces, habrá que manejar esa parte y ver si es posible condicionarlo de alguna manera.

Buenísima información :D

PD: Blogger es el servicio de blogs que nos permite jugar a los detectives XD

Victor  

¡Muchísimas gracias! Entre Felipe y tú habéis resuelto mi quebradero de cabeza, llevaba dos días buscando en foros ingleses cómo resolver la página en blanco con el error 404...

Un saludo y enhorabuena de un seguidor desde hace años que no había comentado antes.

Responder
Felipe Calvo Cepeda  

Debo decir que desde que la ví en la bolsa (vaya tiempos idos) su página de error 404 siempre me ha deslumbrado, me siento como Gollum del señor de los anillos perdiendo su precioso anillo y encontrando una juguetería. :D

JMiur  

Todo se recicla, Felipe. Acá no se desperdicia nada :D

Responder
Adrián J. Messina  

Jaja simpatiquísimo!!

Responder
NMitra  

No puedo entender. ¿Qué tipo data:blog.pageType para http://vagabundia.blogspot.com/2012/03/ ?

JMiur  

Porque no es una pagina de error, es una página de tipo Archive ya que existen entradas e ese mes y ese año y el query es ignorado por Blogger.

error_page sólo funcionará con páginas de entradas o páginas estáticas

Responder
Kaede Shio  

Inserto el codigo donde me dice, y pongo el link a la pagina de error que cree, y no funciona.... ademas, me aprece el vagabundia source arriba de todo cuando lo coloco.

JMiur  

No sé que estás copiando

Kaede Shio  

Pero! ya esta xD. Es que por alguna razon el codigo se copio mal, pero todo ya anda n_n.

Muchas gracias por la ayuda! :D

Responder
Anónimo  

JMiur este error ya no sale aque se debera antes lo hacia pero desde que actualizaron blogger se jodio, ojal y puedas ayudarme que estes bn

JMiur  

Fíjate si con lo que dice esta entrada se resuelve el problema.

Responder
Unknown  

Gracias, me sirvió de mucho!

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