Subversion-Projekte lars-tiefland.prado

Revision

Blame | Letzte Änderung | Log anzeigen | RSS feed

<?php

Prado::using('System.Exceptions.TErrorHandler');
Prado::using('Application.BlogException');

class BlogErrorHandler extends TErrorHandler
{
        /**
         * Retrieves the template used for displaying external exceptions.
         * This method overrides the parent implementation.
         */
        protected function getErrorTemplate($statusCode,$exception)
        {
                // use our own template for BlogException
                if($exception instanceof BlogException)
                {
                        // get the path of the error template file: protected/error.html
                        $templateFile=Prado::getPathOfNamespace('Application.error','.html');
                        return file_get_contents($templateFile);
                }
                else // otherwise use the template defined by PRADO
                        return parent::getErrorTemplate($statusCode,$exception);
        }

        /**
         * Handles external error caused by end-users.
         * This method overrides the parent implementation.
         * It is invoked by PRADO when an external exception is thrown.
         */
        protected function handleExternalError($statusCode,$exception)
        {
                // log the error (only for BlogException)
                if($exception instanceof BlogException)
                        Prado::log($exception->getErrorMessage(),TLogger::ERROR,'BlogApplication');
                // call parent implementation to display the error
                parent::handleExternalError($statusCode,$exception);
        }
}

?>