> I'd like to handle major (and plugin-specific) errors that may happen
> with thecakeErrormethod, but we can't define a MyPluginAppError? Is
> there another way?

You can achieve this in the following way:

1. In your {Plugin}AppController override the cakeError() method with
the following code:

        function cakeError($method, $messages = array()) {
                if (!class_exists('ErrorHandler')) {
                        App::import('Core', 'Error');

                        $path = APP . 'plugins' . DS . 
Inflector::underscore($this-
>plugin) . DS;
                        if (file_exists($path . 'error.php')) {
                                include_once ($path . 'error.php');
                        } elseif (file_exists($path . 'app_error.php')) {
                                include_once ($path . 'app_error.php');
                        }
                }
                return parent::cakeError($method, $messages);
        }

2. In your plugin's AppError class, override the __outputMessage()
method as follows:

        function __outputMessage($template) {
                $this->controller->viewPath = '..' . DS . 'plugins' . DS .
basename(dirname(__FILE__)) . DS . 'views' . DS . 'errors';
                parent::__outputMessage($template);
        }

That's all.

The second point goes agains the "__" private method convention. If
you don't want to violate this rule, just add the "$this->controller-
>viewPath ..." row at the beginning of all your custom error methods.


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to