mirror of
https://github.com/Icinga/icingaweb2-module-director.git
synced 2025-07-30 17:24:18 +02:00
phperror/error: provide a failsafe error message
...for PHP 5.3 fixes #1033
This commit is contained in:
parent
cc01446269
commit
c2a6bef46e
22
application/controllers/PhperrorController.php
Normal file
22
application/controllers/PhperrorController.php
Normal file
@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace Icinga\Module\Director\Controllers;
|
||||
|
||||
use Icinga\Web\Controller;
|
||||
|
||||
class PhperrorController extends Controller
|
||||
{
|
||||
public function errorAction()
|
||||
{
|
||||
$this->getTabs()->add('error', array(
|
||||
'label' => $this->translate('Error'),
|
||||
'url' => $this->getRequest()->getUrl()
|
||||
))->activate('error');
|
||||
$msg = $this->translate(
|
||||
"PHP version 5.4.x is required for Director >= 1.4.0, you're running %s."
|
||||
. ' Please either upgrade PHP or downgrade Icinga Director'
|
||||
);
|
||||
$this->view->title = $this->translate('Unsatisfied dependencies');
|
||||
$this->view->message = sprintf($msg, PHP_VERSION);
|
||||
}
|
||||
}
|
8
application/views/scripts/phperror/error.phtml
Normal file
8
application/views/scripts/phperror/error.phtml
Normal file
@ -0,0 +1,8 @@
|
||||
<div class="controls">
|
||||
<?= $this->tabs ?>
|
||||
<h1><?= $this->escape($this->title) ?></h1>
|
||||
</div>
|
||||
|
||||
<div class="content">
|
||||
<p class="error"><?= $this->escape($this->message) ?></p>
|
||||
</div>
|
26
run-php5.3.php
Normal file
26
run-php5.3.php
Normal file
@ -0,0 +1,26 @@
|
||||
<?php
|
||||
|
||||
use Icinga\Application\Icinga;
|
||||
|
||||
use Icinga\Exception\IcingaException;
|
||||
use Icinga\Web\Url;
|
||||
|
||||
if (Icinga::app()->isCli()) {
|
||||
throw new IcingaException(
|
||||
"PHP version 5.4.x is required for Director >= 1.4.0, you're running %s."
|
||||
. ' Please either upgrade PHP or downgrade Icinga Director',
|
||||
PHP_VERSION
|
||||
);
|
||||
} else {
|
||||
$request = Icinga::app()->getRequest();
|
||||
$path = $request->getPathInfo();
|
||||
if (! preg_match('#^/director#', $path)) {
|
||||
return;
|
||||
}
|
||||
if (preg_match('#^/director/phperror/error#', $path)) {
|
||||
return;
|
||||
}
|
||||
|
||||
header('Location: ' . Url::fromPath('director/phperror/error'));
|
||||
exit;
|
||||
}
|
9
run.php
9
run.php
@ -1,10 +1,16 @@
|
||||
<?php
|
||||
|
||||
use Icinga\Application\Icinga;
|
||||
use Icinga\Application\Modules\Module;
|
||||
use ipl\Loader\CompatLoader;
|
||||
|
||||
if (version_compare(PHP_VERSION, '5.4.0') < 0) {
|
||||
include __DIR__ . '/run-php5.3.php';
|
||||
return;
|
||||
}
|
||||
|
||||
$prefix = '\\Icinga\\Module\\Director\\';
|
||||
|
||||
/** @var Module $this */
|
||||
$this->provideHook('monitoring/HostActions');
|
||||
$this->provideHook('monitoring/ServiceActions');
|
||||
|
||||
@ -51,7 +57,6 @@ $this->provideHook('director/Job', $prefix . 'Job\\SyncJob');
|
||||
$this->provideHook('cube/Actions', 'CubeLinks');
|
||||
|
||||
// ipl compat, unless it is released:
|
||||
|
||||
if (class_exists('ipl\\Html\\ValidHtml')) {
|
||||
return;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user