starlinks/application/controllers/ErrorController.php
Michael RICOIS bdce1b423e Demarrage
2015-09-29 10:09:23 +00:00

65 lines
1.9 KiB
PHP

<?php
class ErrorController extends Zend_Controller_Action
{
public function init(){}
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;
}
// 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;
}
}