diff --git a/dibi/bridges/Nette/DibiNette20Extension.php b/dibi/bridges/Nette/DibiNette20Extension.php
index 87eb2470..1045571c 100644
--- a/dibi/bridges/Nette/DibiNette20Extension.php
+++ b/dibi/bridges/Nette/DibiNette20Extension.php
@@ -47,7 +47,7 @@ class DibiNette20Extension extends Nette\Config\CompilerExtension
$panel = $container->addDefinition($this->prefix('panel'))
->setClass('DibiNettePanel')
->addSetup('Nette\Diagnostics\Debugger::$bar->addPanel(?)', array('@self'))
- ->addSetup('Nette\Diagnostics\Debugger::$blueScreen->addPanel(?)', array(array('@self', 'renderException')));
+ ->addSetup('Nette\Diagnostics\Debugger::$blueScreen->addPanel(?)', array('DibiNettePanel::renderException'));
$connection->addSetup('$service->onEvent[] = ?', array(array($panel, 'logEvent')));
}
diff --git a/dibi/bridges/Nette/DibiNette21Extension.php b/dibi/bridges/Nette/DibiNette21Extension.php
index 551b6123..7144f69e 100644
--- a/dibi/bridges/Nette/DibiNette21Extension.php
+++ b/dibi/bridges/Nette/DibiNette21Extension.php
@@ -47,7 +47,7 @@ class DibiNette21Extension extends Nette\DI\CompilerExtension
$panel = $container->addDefinition($this->prefix('panel'))
->setClass('DibiNettePanel')
->addSetup('Nette\Diagnostics\Debugger::getBar()->addPanel(?)', array('@self'))
- ->addSetup('Nette\Diagnostics\Debugger::getBlueScreen()->addPanel(?)', array(array('@self', 'renderException')));
+ ->addSetup('Nette\Diagnostics\Debugger::getBlueScreen()->addPanel(?)', array('DibiNettePanel::renderException'));
$connection->addSetup('$service->onEvent[] = ?', array(array($panel, 'logEvent')));
}
diff --git a/dibi/bridges/Nette/DibiNettePanel.php b/dibi/bridges/Nette/DibiNettePanel.php
index 37ba825c..3a030a15 100644
--- a/dibi/bridges/Nette/DibiNettePanel.php
+++ b/dibi/bridges/Nette/DibiNettePanel.php
@@ -49,20 +49,24 @@ class DibiNettePanel extends DibiObject implements IBarPanel
public function register(DibiConnection $connection)
{
- static $done;
if (is_callable('Nette\Diagnostics\Debugger::enable') && !class_exists('NDebugger')) {
class_alias('Nette\Diagnostics\Debugger', 'NDebugger'); // PHP 5.2 code compatibility
}
- if (is_callable('NDebugger::enable')) {
- NDebugger::$bar && NDebugger::$bar->addPanel($this);
- NDebugger::$blueScreen && !$done && NDebugger::$blueScreen->addPanel(array($this, 'renderException'), __CLASS__);
+ if (is_callable('NDebugger::enable') && is_callable('NDebugger::getBlueScreen')) { // Nette Framework 2.1
+ NDebugger::getBar()->addPanel($this);
+ NDebugger::getBlueScreen()->addPanel(array(__CLASS__, 'renderException'));
$connection->onEvent[] = array($this, 'logEvent');
- } elseif (is_callable('Debugger::enable')) {
+
+ } elseif (is_callable('NDebugger::enable')) { // Nette Framework 2.0 (for PHP 5.3 or PHP 5.2 prefixed)
+ NDebugger::$bar && NDebugger::$bar->addPanel($this);
+ NDebugger::$blueScreen && NDebugger::$blueScreen->addPanel(array(__CLASS__, 'renderException'), __CLASS__);
+ $connection->onEvent[] = array($this, 'logEvent');
+
+ } elseif (is_callable('Debugger::enable') && !is_callable('Debugger::getBlueScreen')) { // Nette Framework 2.0 for PHP 5.2 non-prefixed
Debugger::$bar && Debugger::$bar->addPanel($this);
- Debugger::$blueScreen && !$done && Debugger::$blueScreen->addPanel(array($this, 'renderException'), __CLASS__);
+ Debugger::$blueScreen && Debugger::$blueScreen->addPanel(array(__CLASS__, 'renderException'), __CLASS__);
$connection->onEvent[] = array($this, 'logEvent');
}
- $done = TRUE;
}
@@ -85,7 +89,7 @@ class DibiNettePanel extends DibiObject implements IBarPanel
* Returns blue-screen custom tab.
* @return mixed
*/
- public function renderException($e)
+ public static function renderException($e)
{
if ($e instanceof DibiException && $e->getSql()) {
return array(
@@ -140,7 +144,7 @@ class DibiNettePanel extends DibiObject implements IBarPanel
if ($explain) {
static $counter;
$counter++;
- $s .= "
explain";
+ $s .= "
explain";
}
$s .= '