From d420dd09d1e249c88f8ad04f4b5dbfba1f036fc7 Mon Sep 17 00:00:00 2001 From: "Barry vd. Heuvel" Date: Fri, 1 Mar 2024 16:24:55 +0100 Subject: [PATCH] Use xdebug_link in html variables (#609) --- .../DataCollector/ObjectCountCollector.php | 5 ++++- src/DebugBar/Resources/widgets.css | 3 ++- src/DebugBar/Resources/widgets.js | 18 ++++++++++++++++-- 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/DebugBar/DataCollector/ObjectCountCollector.php b/src/DebugBar/DataCollector/ObjectCountCollector.php index fbbe307..dcec507 100644 --- a/src/DebugBar/DataCollector/ObjectCountCollector.php +++ b/src/DebugBar/DataCollector/ObjectCountCollector.php @@ -59,7 +59,10 @@ class ObjectCountCollector extends DataCollector implements DataCollectorInterfa $reflector = class_exists($class) ? new \ReflectionClass($class) : null; if ($reflector && $link = $this->getXdebugLink($reflector->getFileName())) { - $data[$class . ''] = $count; + $data[$class] = [ + 'value' => $count, + 'xdebug_link' => $link, + ]; } else { $data[$class] = $count; } diff --git a/src/DebugBar/Resources/widgets.css b/src/DebugBar/Resources/widgets.css index d5c342d..2c52682 100644 --- a/src/DebugBar/Resources/widgets.css +++ b/src/DebugBar/Resources/widgets.css @@ -31,6 +31,7 @@ pre.phpdebugbar-widgets-code-block { text-align: right; } + .phpdebugbar-widgets-kvlist span.phpdebugbar-widgets-filename, li.phpdebugbar-widgets-list-item span.phpdebugbar-widgets-filename { display: block; font-style: italic; @@ -39,7 +40,7 @@ pre.phpdebugbar-widgets-code-block { color: #888; } - li.phpdebugbar-widgets-list-item a.phpdebugbar-widgets-editor-link:hover { + a.phpdebugbar-widgets-editor-link:hover { color: #aaaaaa; } diff --git a/src/DebugBar/Resources/widgets.js b/src/DebugBar/Resources/widgets.js index 3a76428..e8a937d 100644 --- a/src/DebugBar/Resources/widgets.js +++ b/src/DebugBar/Resources/widgets.js @@ -218,7 +218,7 @@ if (typeof(PhpDebugBar) == 'undefined') { itemRenderer: function(dt, dd, key, value) { $('').attr('title', key).text(key).appendTo(dt); - var v = value; + var v = value && value.value || value; if (v && v.length > 100) { v = v.substr(0, 100) + "..."; } @@ -251,7 +251,21 @@ if (typeof(PhpDebugBar) == 'undefined') { itemRenderer: function(dt, dd, key, value) { $('').attr('title', $('').html(key || '').text()).html(key || '').appendTo(dt); - dd.html(value); + dd.html(value && value.value || value); + + if (value && value.xdebug_link) { + var header = $('').addClass(csscls('filename')).text(value.xdebug_link.filename + ( value.xdebug_link.line ? "#" + value.xdebug_link.line : '')); + if (value.xdebug_link) { + if (value.xdebug_link.ajax) { + $('').on('click', function () { + $.ajax(value.xdebug_link.url); + }).addClass(csscls('editor-link')).appendTo(header); + } else { + $('').addClass(csscls('editor-link')).appendTo(header); + } + } + header.appendTo(dd); + } } });