logger = Zend_Registry::get('logger'); } // --- Theme $this->theme = Zend_Registry::get('theme'); } public function errorAction() { $params = $this->getRequest()->getParams(); $unknow = array('MSOffice', '_vti_bin', 'crossdomain.xml'); if (in_array($params['controller'], $unknow)){ $this->_helper->layout()->disableLayout(); $this->_helper->viewRenderer->setNoRender(true); echo ''; } else { $errors = $this->_getParam('error_handler'); switch ($errors->type) { case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ROUTE: case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER: case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION: // 404 error -- controller or action not found $this->getResponse()->setHttpResponseCode(404); $this->view->message = 'Page not found'; break; default: // application error $this->getResponse()->setHttpResponseCode(500); $this->view->message = 'Application error'; break; } $user = new Scores_Utilisateur(); //Envoyer les erreurs par mail if (APPLICATION_ENV != 'development') { $message = ''; $message.= 'Erreur Applicative : '; $message.= "\n"; $message.= 'Message : '.$errors->exception->getMessage(); $message.= "\n"; $message.= 'Utilisateur : '.$user->getLogin(); $message.= "\n"; $message.= "File :".$errors->exception->getFile().", Ligne : ".$errors->exception->getLine(); $message.= "\n"; $message.= "Detail :\n".$errors->exception->getTraceAsString(); $message.= "\n\n"; $message.= "Request Parameters :\n ".print_r($this->getRequest()->getParams(), true)."\n"; $message.= "Referer : ".$_SERVER['HTTP_REFERER']."\n"; $c = Zend_Registry::get('config'); $mail = new Scores_Mail_Method(); $mail->setSubject('[ERREUR APPLICATIVE] - '.$c->profil->server->name.' -'.date('Ymd')); $mail->setBodyText($message); $mail->setFromKey('support'); $mail->addToKey('supportdev'); $mail->execute(); } // Log exception, if logger available if ($log = $this->getLog()) { $log->crit($this->view->message, $errors->exception); } // conditionally display exceptions if ($this->getInvokeArg('displayExceptions') == true) { $this->view->exception = $errors->exception; } $this->view->request = $errors->request; } } public function soapAction(){} public function permsAction(){} public function paramsAction(){} public function getLog() { $bootstrap = $this->getInvokeArg('bootstrap'); if (!$bootstrap->hasPluginResource('Log')) { return false; } $log = $bootstrap->getResource('Log'); return $log; } }