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 == "error_page"'> ERROR </b:if>
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 == "error_page"'>
<script type='text/javascript'>
//<![CDATA[
window.location = "http://miblog.blogspot.com/p/404.html";
//]]>
</script>
</b:if>
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 == "error_page"'> <style> #error404 { /* este será mi contenedor */ } /* y el resto de las reglas dependerán de lo que quiera mostrar */ </script> </b:if>
<b:if cond='data:blog.pageType == "error_page"'> <!-- 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>
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:
Que interesante, esta era una de las cosas que más quería personalizar, haber como me va!!!
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.
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.
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...
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.
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.
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
¡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.
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
Todo se recicla, Felipe. Acá no se desperdicia nada :D
Jaja simpatiquísimo!!
No puedo entender. ¿Qué tipo data:blog.pageType para http://vagabundia.blogspot.com/2012/03/ ?
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
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.
No sé que estás copiando
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
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
Fíjate si con lo que dice esta entrada se resuelve el problema.
Gracias, me sirvió de mucho!
¿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 ...