Hi,
On Jul 19, 10:16 pm, francky06l <[EMAIL PROTECTED]> wrote:
> Sorry guys did not know "errors always use the default layouts".
>
> On Jul 18, 12:00 am, phpjoy <[EMAIL PROTECTED]> wrote:
>
> > that's great to know, "errors always use the default layouts". :)
> > didn't see it in the manual..
>
> > thanks a tons for the solution.
>
> > On Jul 16, 7:52 pm, rtconner <[EMAIL PROTECTED]> wrote:
>
> > > Ah.. phpjoy, I had the same problem. There is no easy solution so far
> > > as I could find. No good solution that I liked anyways. Errors always
> > > use the defaultlayout, and there is nothing you can do to change
> > > that.
>
> > > .. So.. the best solution as I could figure is this..
>
> > > Create /app/error.php and copy and paste ErrorHandler into it. Then
> > > modify it to read "class AppError extends ErrorHandler"
>
> > > The modify the file to handle dynamic layouts. Here I'll make it easy
> > > and just copy and past my (Cake 1.2)error.php file for you. Hope this
> > > helps.
>
> > > --------------------------------
> > > <?php
>
> > > /**
> > > * Override defaults cakeerrorbehavior
> > > */
> > > class AppError extends ErrorHandler {
>
> > > var $layout= 'error';
>
> > > /**
> > > * Displays anerrorpage (e.g. 404 Not found).
> > > *
> > > * @param array $params Parameters for controller
> > > * @access public
> > > */
> > > functionerror($params) {
> > > extract($params);
> > > $this->controller->base = $base;
> > > $this->controller->webroot = $this->_webroot();
> > > $this->controller->viewPath='errors';
> > > $this->controller->set(array('code' => $code,
> > >
> > > 'name' => $name,
> > >
> > > 'message' => $message,
> > >
> > > 'title' => $code . ' ' . $name));
> > > $this->controller->render('error404', $this->layout);
> > > exit();
> > > }
> > > /**
> > > * Convenience method to display a 404 page.
> > > *
> > > * @param array $params Parameters for controller
> > > * @access public
> > > */
> > > function error404($params) {
> > > extract($params);
>
> > > if (!isset($url)) {
> > > $url = $action;
> > > }
> > > if (!isset($message)) {
> > > $message = '';
> > > }
> > > if (!isset($base)) {
> > > $base = '';
> > > }
>
> > > header("HTTP/1.0 404 Not Found");
> > > $this->error(array('code' => '404',
> > > 'name' => 'Not
> > > found',
> > > 'message' =>
> > > sprintf(__("The requested address %s was not found
> > > on this server.", true), $url, $message),
> > > 'base' => $base));
> > > exit();
> > > }
> > > /**
> > > * Renders the Missing Controller web page.
> > > *
> > > * @param array $params Parameters for controller
> > > * @access public
> > > */
> > > function missingController($params) {
> > > extract(Router::getPaths());
> > > extract($params, EXTR_OVERWRITE);
>
> > > $this->controller->base = $base;
> > > $this->controller->webroot = $webroot;
> > > $this->controller->viewPath ='errors';
> > > $controllerName = str_replace('Controller', '',
> > > $className);
> > > $this->controller->set(array('controller' => $className,
> > >
> > > 'controllerName' => $controllerName,
> > >
> > > 'title' => __('Missing Controller', true)));
> > > $this->controller->render('missingController',
> > > $this->layout);
> > > exit();
> > > }
> > > /**
> > > * Renders the Missing Action web page.
> > > *
> > > * @param array $params Parameters for controller
> > > * @access public
> > > */
> > > function missingAction($params) {
> > > extract(Router::getPaths());
> > > extract($params, EXTR_OVERWRITE);
>
> > > $this->controller->base = $base;
> > > $this->controller->webroot = $webroot;
> > > $this->controller->viewPath = 'errors';
> > > $this->controller->set(array('controller' => $className,
> > >
> > > 'action' => $action,
> > >
> > > 'title' => __('Missing Method in Controller', true)));
> > > $this->controller->render('missingAction', $this->layout);
> > > exit();
> > > }
> > > /**
> > > * Renders the Private Action web page.
> > > *
> > > * @param array $params Parameters for controller
> > > * @access public
> > > */
> > > function privateAction($params) {
> > > extract(Router::getPaths());
> > > extract($params, EXTR_OVERWRITE);
>
> > > $this->controller->base = $base;
> > > $this->controller->webroot = $webroot;
> > > $this->controller->viewPath = 'errors';
> > > $this->controller->set(array('controller' => $className,
> > >
> > > 'action' => $action,
> > >
> > > 'title' => __('Trying to access private method in class',
> > > true)));
> > > $this->controller->render('privateAction', $this->layout);
> > > exit();
> > > }
> > > /**
> > > * Renders the Missing Table web page.
> > > *
> > > * @param array $params Parameters for controller
> > > * @access public
> > > */
> > > function missingTable($params) {
> > > extract(Router::getPaths());
> > > extract($params, EXTR_OVERWRITE);
>
> > > $this->controller->viewPath = 'errors';
> > > $this->controller->webroot = $this->_webroot();
> > > $this->controller->set(array('model' => $className,
> > >
> > > 'table' => $table,
> > >
> > > 'title' => __('Missing Database Table', true)));
> > > $this->controller->render('missingTable', $this->layout);
> > > exit();
> > > }
> > > /**
> > > * Renders the Missing Database web page.
> > > *
> > > * @param array $params Parameters for controller
> > > * @access public
> > > */
> > > function missingDatabase($params = array()) {
> > > extract(Router::getPaths());
> > > extract($params, EXTR_OVERWRITE);
>
> > > $this->controller->viewPath = 'errors';
> > > $this->controller->webroot = $this->_webroot();
> > > $this->controller->set(array('title' => __('Scaffold
> > > Missing
> > > Database Connection', true)));
> > > $this->controller->render('missingScaffolddb',
> > > $this->layout);
> > > exit();
> > > }
> > > /**
> > > * Renders the Missing View web page.
> > > *
> > > * @param array $params Parameters for controller
> > > * @access public
> > > */
> > > function missingView($params) {
> > > extract(Router::getPaths());
> > > extract($params, EXTR_OVERWRITE);
>
> > > $this->controller->base = $base;
> > > $this->controller->viewPath = 'errors';
> > > $this->controller->webroot = $this->_webroot();
> > > $this->controller->set(array('controller' => $className,
> > >
> > > 'action' => $action,
> > >
> > > 'file' => $file,
> > >
> > > 'title' => __('Missing View', true)));
> > > $this->controller->render('missingView', $this->layout);
> > > exit();
> > > }
> > > /**
> > > * Renders the MissingLayoutweb page.
> > > *
> > > * @param array $params Parameters for controller
> > > * @access public
> > > */
> > > function missingLayout($params) {
> > > extract(Router::getPaths());
> > > extract($params, EXTR_OVERWRITE);
>
> > > $this->controller->base = $base;
> > > $this->controller->viewPath = 'errors';
> > > $this->controller->webroot = $this->_webroot();
> > > $this->controller->layout= 'default';
> > > $this->controller->set(array('file' => $file,
> > >
> > > 'title' => __('MissingLayout', true)));
> > > $this->controller->render('missingLayout', $this->layout);
> > > exit();
> > > }
> > > /**
> > > * Renders the Database Connection web page.
> > > *
> > > * @param array $params Parameters for controller
> > > * @access public
> > > */
> > > function missingConnection($params) {
> > > extract(Router::getPaths());
> > > extract($params, EXTR_OVERWRITE);
>
> > > $this->controller->viewPath = 'errors';
> > > $this->controller->webroot = $this->_webroot();
> > > $this->controller->set(array('model' => $className,
> > >
> > > 'title' => __('Missing Database Connection', true)));
> > > $this->controller->render('missingConnection',
> > > $this->layout);
>
> ...
>
> read more >>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Cake
PHP" group.
To post to this group, send email to [email protected]
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
-~----------~----~----~----~------~----~------~--~---