Página de error personalizada

Preguntas en general, reporte de errores (bugs), y otros temas
Post Reply
fdans
Sr. Bludit
Posts: 49
Joined: Wed Jun 10, 2015 9:14 pm

Hola a todos,
Cuando en una instalación de bludit, invoco una página o post que no existe por un error en el nombre de la página o cualquier otro motivo, sale una página tipo de post o página según sea el caso , sin contenido, pero en el que el post-title o el page-title es ERROR.

esto valdría como página de error sin mas, pero el problema viene cuando en el post hay plugins o cualquier otro código, que hace que en el cuerpo del post o en el footer del post, sal ga un mensaje de código marcando un error, etc... típico de php.

mi pregunta es...
Como podría personalizarse una página de error tipo que fuera la que se presenta cuando existe esta circunstancia y que incluso pudiera personalizarse el contenido del cuerpo del post o página dando explicaciones o cualquier otra cosa.

no veo la manera de condicionar un include para que salga en vez de post o page una supuesta página error.php

Agradecería cualquier sugerencia que se os pueda ocurrir.
Creo que sería útil para todos y una guinda para este first-class-cms

Muchas gracias amigos
saludos desde madrid.esp

Paco
User avatar
diego
Site Admin
Posts: 773
Joined: Sat May 16, 2015 2:53 pm
Been thanked: 1 time
Contact:

Hola Paco,
la pagina de error deberia estar en /bl-content/pages/error/index.txt

Deberia tener contenido, es raro.

Saludos
fdans
Sr. Bludit
Posts: 49
Joined: Wed Jun 10, 2015 9:14 pm

Hola Diego.
Efectivamente la pagina index.txt de error está en su sitio correctamente.
Pero el problema es que en mi theme (como en todos) aparece por include en la zona de contenido del post/página , ese texto que supongo discrimina con un notFound() en algún sitio.
Una vez se ha mostrado correctamente este "contenido" de error, se siguen mostrando el resto de cosas, includes etc... de la página o post, en este caso, plugin a pie de post, fecha de la página y autor, así como tags.

Lo primero en mostrarse es tags, a continuación autor y finalmente date.

Es al llegar a autor donde la lia con el error .... y sale esto, que interrumpe la carga del resto de página y revela la estructura de directorios :


título de pagina :
Error

contenido del cuerpo de la página :
La página no fue encontrada.

título etiquetas ( en este caso no hay...)
Etiquetas

y finalmente :

Fatal error: Call to a member function username() on boolean in /Volumes/Macintosh HD 2/SERVER/bludit/bl-themes/dansarquitectos/php/page.php on line 52


line 52 :
50 <?php
51 $User = $Page->user();
52 $author = $User->username();
53 if( Text::isNotEmpty($User->firstName()) || Text::isNotEmpty($User->lastName()) )
54 {
55 $author = $User->firstName().' '.$User->lastName();
56 }
57 ?>

que interrumpe la carga del resto de la página...footer, etc...

Será porque al no existir la página, no existe user ni username ni ninguna variable semejante definida?

He intentado de muchas maneras que discrimine antes del header o al inicio del body e incluso a pie de post.php y page.php para que si detecta url notFound() , pues no cargue ni usuarios y tags ni nada y pase directamente al footer de la página.
Pero nada de nada...se resiste. Da errores sobre headers etc...

En fin que tengo todo mi web terminado con un theme bonito superresponsive pero no rula porque no es presentable así ya que la página error saldrá muchas veces.
Se te ocurre algo ?

Muchas gracias
Saludos como siempre desde Madrid

Paco
User avatar
diego
Site Admin
Posts: 773
Joined: Sat May 16, 2015 2:53 pm
Been thanked: 1 time
Contact:

Podrias usar esta funcion para determinar si estas ante un 404.

viewtopic.php?f=6&t=570

Y le decis que no busque el usuario de esa pagina, ya que no tiene, igual es un bug a arreglar.

Saludos
fdans
Sr. Bludit
Posts: 49
Joined: Wed Jun 10, 2015 9:14 pm

Hola Diego,
Ya he utilizado esa funcion, poniendo un condicional a la hora de cargar y poner el autor e incluso lo intente tambien para que no cargue tags...y en el caso de ser un 404 seguir directamente al footer pero funciona.

No entiendo por que , pero no funciona.
Intente poner incluso un condicional al inicio de la pagina index.php del theme para que si es 404 redirija a otra pagina y tampoco

Creo que por ahi no puedo arreglarlo y debe ser un bug a investigar como bien dices

Saludos
Paco
fdans
Sr. Bludit
Posts: 49
Joined: Wed Jun 10, 2015 9:14 pm

Definitivamente Diego,
ponga donde ponga el condicional con if y $Page('Error') , nunca le hace caso y siempre me dice que index.php (el del blog , no el del theme) ya ha enviado los headers , etc... etc...
y no funciona.

Debe ser algo a tocar dentro del "motor" del blog independientemente del theme o del index simplemente.
ahi ya no me atrevo a tocar , que lo desbarato ! jeje

saludos
Paco
User avatar
diego
Site Admin
Posts: 773
Joined: Sat May 16, 2015 2:53 pm
Been thanked: 1 time
Contact:

Si queres enviame el theme que estas usando y lo veo.
fdans
Sr. Bludit
Posts: 49
Joined: Wed Jun 10, 2015 9:14 pm

Holaa,

Pues parece que hago algún avance...

colocando :

Code: Select all

<?php if 
		($Page->title()=='Error')
		{
		die(); 
		}
?>
consigo que al menos no cargue ni las tags ni el usuario ni que muestre ningun error, solamente el contenido de la página error.php

No he terminado de ajustarlo porque una vez metido el contenido de error.php por culpa del die() ya deja de cargar el resto (sidebar, footer, etc... pero al menos avance algo
es cuestion de afinar el condicional, supongo

Saludos
Paco
Post Reply