diff --git a/deployment.php b/deployment.php index 20b1d49..d7f7acf 100644 --- a/deployment.php +++ b/deployment.php @@ -43,7 +43,6 @@ $baseConfig = [ vendor/nikic/fast-route/test vendor/twig/twig/src/Node/Expression/Test vendor/twig/twig/src/Test - vendor/tracy/tracy/tools vendor *.lock *.zip diff --git a/server/api.php b/server/api.php index 7cff40d..e25e4e5 100644 --- a/server/api.php +++ b/server/api.php @@ -208,7 +208,7 @@ header("Access-Control-Allow-Headers: *"); header("Access-Control-Allow-Methods: *"); header("Access-Control-Max-Age: *"); header("Content-type: ".$responseFormatType); -init_class(false, false); //initialize classes (and Tracy) after Content-type header +init_class(false, false); //initialize classes after Content-type header $routeInfo = $dispatcher->dispatch($httpMethod, $uri); diff --git a/server/composer.json b/server/composer.json index 79bcb8a..a290c1e 100644 --- a/server/composer.json +++ b/server/composer.json @@ -4,15 +4,14 @@ "type": "project", "require": { "twig/twig": "^3.2.1", - "tracy/tracy": "^2.8.0", "delight-im/auth": "^8.2.2", "ulrichsg/getopt-php": "^3.4.0", "nikic/fast-route": "^2.0@dev", "spatie/array-to-xml": "^2.16", "ezyang/htmlpurifier": "^4.13", - "netpromotion/profiler": "^1.3", "brick/phonenumber": "^0.2.2", - "sentry/sdk": "^3.1" + "sentry/sdk": "^3.1", + "maximebf/debugbar": "^1.16" }, "license": "GPL-3.0-or-later", "authors": [ @@ -22,11 +21,6 @@ } ], "minimum-stability": "stable", - "scripts": { - "test": [ - "codecept run --steps" - ] - }, "require-dev": { "pheromone/phpcs-security-audit": "^2.0" } diff --git a/server/composer.lock b/server/composer.lock index 07bcdb1..789482b 100644 --- a/server/composer.lock +++ b/server/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "14f566049f2ca7d87fa49fafaa9f4291", + "content-hash": "70f094e636bc55d808d812581dddc0b3", "packages": [ { "name": "brick/phonenumber", @@ -761,42 +761,41 @@ "time": "2021-02-22T10:52:38+00:00" }, { - "name": "netpromotion/profiler", - "version": "v1.3.0", + "name": "maximebf/debugbar", + "version": "v1.16.5", "source": { "type": "git", - "url": "https://github.com/netpromotion/profiler.git", - "reference": "a3c0a625c2dba9a03e1c738e51fe05d24909bb7e" + "url": "https://github.com/maximebf/php-debugbar.git", + "reference": "6d51ee9e94cff14412783785e79a4e7ef97b9d62" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/netpromotion/profiler/zipball/a3c0a625c2dba9a03e1c738e51fe05d24909bb7e", - "reference": "a3c0a625c2dba9a03e1c738e51fe05d24909bb7e", + "url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/6d51ee9e94cff14412783785e79a4e7ef97b9d62", + "reference": "6d51ee9e94cff14412783785e79a4e7ef97b9d62", "shasum": "" }, "require": { - "petrknap/php-profiler": "^1.1", - "petrknap/php-singleton": "^1.0", - "php": ">=5.4" - }, - "conflict": { - "nette/di": "<2.2 || >=3", - "tracy/tracy": "<2.2 || >=3" + "php": "^7.1|^8", + "psr/log": "^1.0", + "symfony/var-dumper": "^2.6|^3|^4|^5" }, "require-dev": { - "laravel/lumen-framework": "^5.0", - "latte/latte": "^2.3", - "netpromotion/tracy-wrapper": "^1.0", - "nette/application": "^2.3", - "nette/bootstrap": "^2.3", - "nette/di": "*", - "phpunit/phpunit": "^4.8", - "tracy/tracy": "*" + "phpunit/phpunit": "^7.5.20 || ^9.4.2" + }, + "suggest": { + "kriswallsmith/assetic": "The best way to manage assets", + "monolog/monolog": "Log using Monolog", + "predis/predis": "Redis storage" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.16-dev" + } + }, "autoload": { "psr-4": { - "Netpromotion\\Profiler\\": "src/Profiler" + "DebugBar\\": "src/DebugBar/" } }, "notification-url": "https://packagist.org/downloads/", @@ -805,16 +804,26 @@ ], "authors": [ { - "name": "Petr Knap", - "email": "knap@netpromotion.cz" + "name": "Maxime Bouroumeau-Fuseau", + "email": "maxime.bouroumeau@gmail.com", + "homepage": "http://maximebf.com" + }, + { + "name": "Barry vd. Heuvel", + "email": "barryvdh@gmail.com" } ], - "description": "Profiler with adapter for Tracy", + "description": "Debug bar in the browser for php application", + "homepage": "https://github.com/maximebf/php-debugbar", + "keywords": [ + "debug", + "debugbar" + ], "support": { - "issues": "https://github.com/netpromotion/profiler/issues", - "source": "https://github.com/netpromotion/profiler/tree/master" + "issues": "https://github.com/maximebf/php-debugbar/issues", + "source": "https://github.com/maximebf/php-debugbar/tree/v1.16.5" }, - "time": "2016-10-05T09:25:18+00:00" + "time": "2020-12-07T11:07:24+00:00" }, { "name": "nikic/fast-route", @@ -879,96 +888,6 @@ }, "time": "2020-09-28T10:21:28+00:00" }, - { - "name": "petrknap/php-profiler", - "version": "v1.3.0", - "source": { - "type": "git", - "url": "https://github.com/petrknap/php-profiler.git", - "reference": "39fb47fb0fbdbc678128a046fd1c5e8d71064595" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/petrknap/php-profiler/zipball/39fb47fb0fbdbc678128a046fd1c5e8d71064595", - "reference": "39fb47fb0fbdbc678128a046fd1c5e8d71064595", - "shasum": "" - }, - "require": { - "php": ">=5.5" - }, - "require-dev": { - "phpunit/phpunit": "^4.8" - }, - "type": "library", - "autoload": { - "psr-4": { - "PetrKnap\\Php\\Profiler\\": "src" - }, - "files": [] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Petr Knap", - "email": "dev@petrknap.cz" - } - ], - "description": "PHP profiler", - "homepage": "https://petrknap.github.io/docs/php-profiler.html", - "support": { - "issues": "https://github.com/petrknap/php-profiler/issues", - "source": "https://github.com/petrknap/php-profiler/tree/master" - }, - "time": "2017-05-29T10:14:28+00:00" - }, - { - "name": "petrknap/php-singleton", - "version": "v1.0.0", - "source": { - "type": "git", - "url": "https://github.com/petrknap/php-singleton.git", - "reference": "dec131d0d6c72dd76b5a5c7940f04f14f5df7a20" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/petrknap/php-singleton/zipball/dec131d0d6c72dd76b5a5c7940f04f14f5df7a20", - "reference": "dec131d0d6c72dd76b5a5c7940f04f14f5df7a20", - "shasum": "" - }, - "require": { - "php": ">=5.4" - }, - "require-dev": { - "phpunit/phpunit": "4.*" - }, - "type": "library", - "autoload": { - "psr-4": { - "PetrKnap\\Php\\Singleton\\": "src/Singleton" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Petr Knap", - "email": "dev@petrknap.cz", - "homepage": "http://petrknap.cz" - } - ], - "description": "Singleton pattern for PHP", - "homepage": "https://github.com/petrknap/php-singleton", - "support": { - "issues": "https://github.com/petrknap/php-singleton/issues", - "source": "https://github.com/petrknap/php-singleton/tree/master" - }, - "time": "2016-09-22T07:59:18+00:00" - }, { "name": "php-http/client-common", "version": "2.3.0", @@ -1725,16 +1644,16 @@ }, { "name": "sentry/sentry", - "version": "3.1.5", + "version": "3.2.0", "source": { "type": "git", "url": "https://github.com/getsentry/sentry-php.git", - "reference": "62f6897e1e577de39b366b5c84e19a453da36016" + "reference": "899b0de58c1e01feb54829b3094af74252aff385" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/62f6897e1e577de39b366b5c84e19a453da36016", - "reference": "62f6897e1e577de39b366b5c84e19a453da36016", + "url": "https://api.github.com/repos/getsentry/sentry-php/zipball/899b0de58c1e01feb54829b3094af74252aff385", + "reference": "899b0de58c1e01feb54829b3094af74252aff385", "shasum": "" }, "require": { @@ -1779,7 +1698,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "3.1.x-dev" + "dev-master": "3.2.x-dev" } }, "autoload": { @@ -1813,7 +1732,7 @@ ], "support": { "issues": "https://github.com/getsentry/sentry-php/issues", - "source": "https://github.com/getsentry/sentry-php/tree/3.1.5" + "source": "https://github.com/getsentry/sentry-php/tree/3.2.0" }, "funding": [ { @@ -1825,7 +1744,7 @@ "type": "custom" } ], - "time": "2021-02-18T13:34:31+00:00" + "time": "2021-03-03T11:54:34+00:00" }, { "name": "spatie/array-to-xml", @@ -2672,78 +2591,92 @@ "time": "2020-09-07T11:33:47+00:00" }, { - "name": "tracy/tracy", - "version": "v2.8.3", + "name": "symfony/var-dumper", + "version": "v5.2.3", "source": { "type": "git", - "url": "https://github.com/nette/tracy.git", - "reference": "342674bbf72365e8456de9855a8cd839ca695933" + "url": "https://github.com/symfony/var-dumper.git", + "reference": "72ca213014a92223a5d18651ce79ef441c12b694" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nette/tracy/zipball/342674bbf72365e8456de9855a8cd839ca695933", - "reference": "342674bbf72365e8456de9855a8cd839ca695933", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/72ca213014a92223a5d18651ce79ef441c12b694", + "reference": "72ca213014a92223a5d18651ce79ef441c12b694", "shasum": "" }, "require": { - "ext-json": "*", - "ext-session": "*", - "php": ">=7.2 <8.1" + "php": ">=7.2.5", + "symfony/polyfill-mbstring": "~1.0", + "symfony/polyfill-php80": "^1.15" }, "conflict": { - "nette/di": "<3.0" + "phpunit/phpunit": "<5.4.3", + "symfony/console": "<4.4" }, "require-dev": { - "latte/latte": "^2.5", - "nette/di": "^3.0", - "nette/mail": "^3.0", - "nette/tester": "^2.2", - "nette/utils": "^3.0", - "phpstan/phpstan": "^0.12", - "psr/log": "^1.0" + "ext-iconv": "*", + "symfony/console": "^4.4|^5.0", + "symfony/process": "^4.4|^5.0", + "twig/twig": "^2.13|^3.0.4" }, + "suggest": { + "ext-iconv": "To convert non-UTF-8 strings to UTF-8 (or symfony/polyfill-iconv in case ext-iconv cannot be used).", + "ext-intl": "To show region name in time zone dump", + "symfony/console": "To use the ServerDumpCommand and/or the bin/var-dump-server script" + }, + "bin": [ + "Resources/bin/var-dump-server" + ], "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.8-dev" - } - }, "autoload": { - "classmap": [ - "src" - ], "files": [ - "src/Tracy/functions.php" + "Resources/functions/dump.php" + ], + "psr-4": { + "Symfony\\Component\\VarDumper\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "BSD-3-Clause" + "MIT" ], "authors": [ { - "name": "David Grudl", - "homepage": "https://davidgrudl.com" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "Nette Community", - "homepage": "https://nette.org/contributors" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "😎 Tracy: the addictive tool to ease debugging PHP code for cool developers. Friendly design, logging, profiler, advanced features like debugging AJAX calls or CLI support. You will love it.", - "homepage": "https://tracy.nette.org", + "description": "Provides mechanisms for walking through any arbitrary PHP variable", + "homepage": "https://symfony.com", "keywords": [ - "Xdebug", "debug", - "debugger", - "nette", - "profiler" + "dump" ], "support": { - "issues": "https://github.com/nette/tracy/issues", - "source": "https://github.com/nette/tracy/tree/v2.8.3" + "source": "https://github.com/symfony/var-dumper/tree/v5.2.3" }, - "time": "2021-01-31T23:07:09+00:00" + "funding": [ + { + "url": "https://symfony.com/sponsor", + "type": "custom" + }, + { + "url": "https://github.com/fabpot", + "type": "github" + }, + { + "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", + "type": "tidelift" + } + ], + "time": "2021-01-27T10:15:41+00:00" }, { "name": "twig/twig", diff --git a/server/core.php b/server/core.php index 0d434ad..55befec 100644 --- a/server/core.php +++ b/server/core.php @@ -1,7 +1,6 @@ stackData(); if (!headers_sent()) { header('Location: '.$url); exit; @@ -143,25 +144,28 @@ class tools public function profiler_start($name=null) { - if($this->profiler_enabled) { + global $debugbar; + if($this->profiler_enabled && !is_null($debugbar)) { if(is_null($name)) { $name = $this->profiler_last_name; } - Profiler::start($name); + if($name !== "") $debugbar['time']->startMeasure($name); } } public function profiler_stop($name=null) { - if($this->profiler_enabled) { - if(is_null($name)) { + global $debugbar; + if($this->profiler_enabled && !is_null($debugbar)) { + if(is_null($name) || $name == "") { $name = $this->profiler_last_name; } - Profiler::finish($name); + if($name !== "") $debugbar['time']->stopMeasure($name); } } public function ajax_page_response($response){ + global $debugbar; $json_response = json_encode($response); $response_data = substr(crc32($json_response), 0, 10); header("data: ".$response_data); @@ -171,6 +175,7 @@ class tools } else { print("{}"); } + if(!is_null($debugbar)) $debugbar->sendDataInHeaders(); } } @@ -190,7 +195,7 @@ class database public function connect() { try { - $this->connection = new PDO("mysql:host=" . $this->db_host . ";dbname=" . $this->db_dbname, $this->db_username, $this->db_password); + $this->connection = new DebugBar\DataCollector\PDO\TraceablePDO(new PDO("mysql:host=" . $this->db_host . ";dbname=" . $this->db_dbname, $this->db_username, $this->db_password)); $this->connection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false); $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } @@ -754,7 +759,7 @@ class translations function init_class($enableDebugger=true, $headers=true) { - global $tools, $database, $user, $translations; + global $tools, $database, $user, $translations, $debugbar; if(!isset($tools) && !isset($database) && !isset($translations)) { $database = new database(); $tools = new tools($database->getOption("check_cf_ip"), $enableDebugger); @@ -778,7 +783,6 @@ function init_class($enableDebugger=true, $headers=true) //var_dump($user); //exit(); - //TODO: remove Tracy and replace with Monolog if(SENTRY_ENABLED){ Sentry\configureScope(function (Sentry\State\Scope $scope): void { global $user, $translations; @@ -794,30 +798,26 @@ function init_class($enableDebugger=true, $headers=true) } $scope->setTag('page.locale', $translations->client_languages[0]); }); - //If Sentry is enabled -> no Tracy bluescreen -> custom tmp bluescreen function - - function customErrorPage() { - $error = error_get_last(); - if ($error) { - echo 'Errore critico. Torna alla pagina precedente.'; - } - } - register_shutdown_function('customErrorPage'); } else { - if($user->requireRole(Role::DEVELOPER)) { - Debugger::enable(Debugger::DEVELOPMENT, __DIR__ . '/error-log'); - if($enableDebugger) Profiler::enable(); - Debugger::getBar()->addPanel(new Netpromotion\Profiler\Adapter\TracyBarAdapter()); - } else { - Debugger::enable(Debugger::PRODUCTION, __DIR__ . '/error-log'); - } - if(!$enableDebugger) { - Debugger::$showBar = false; - } - bdump(get_included_files()); - bdump($translations->loaded_translations); + //TODO: add Monolog here } + if($enableDebugger && $user->requireRole(Role::DEVELOPER)) { + $debugbar = new StandardDebugBar(); + $debugbar->addCollector(new DebugBar\DataCollector\PDO\PDOCollector($database->connection)); + $debugbar->addCollector(new DebugBar\DataCollector\ConfigCollector($database->options)); + } else { + $debugbar = null; + } + + function customErrorPage() { + $error = error_get_last(); + if ($error) { + echo 'Errore critico. Torna alla pagina precedente.'; //TODO: render a translated html page + } + } + register_shutdown_function('customErrorPage'); + if(isset($_GET["disableSW"])){ setcookie("disableServiceWorkerInstallation", true); $tools->redirect("?"); @@ -832,6 +832,13 @@ function init_class($enableDebugger=true, $headers=true) } } +function bdump($message){ + global $debugbar; + if(!is_null($debugbar)){ + $debugbar["messages"]->addMessage($message); + } +} + function t($string, $echo=true) { global $translations; diff --git a/server/edit_service.php b/server/edit_service.php index 777b7d0..61eaeed 100644 --- a/server/edit_service.php +++ b/server/edit_service.php @@ -47,8 +47,8 @@ if($tools->validate_form("mod", "add")) { if(isset($_GET["add"])||isset($_GET["edit"])||isset($_GET["delete"])||isset($_GET["mod"])) { $_SESSION["token"] = bin2hex(random_bytes(64)); } - $crew = $database->exec("SELECT * FROM `%PREFIX%_profiles` ORDER BY name ASC;", true); // Pesco i dati della table e li ordino in base al name - $types = $database->exec("SELECT `name` FROM `%PREFIX%_type` ORDER BY name ASC", true); // Pesco le tipologie della table + $crew = $database->exec("SELECT * FROM `%PREFIX%_profiles` ORDER BY name ASC;", true); + $types = $database->exec("SELECT `name` FROM `%PREFIX%_type` ORDER BY name ASC", true); $modalità = (isset($_GET["add"])) ? "add" : ((isset($_GET["edit"])) ? "edit" : ((isset($_GET["delete"])) ? "delete" : "add")); bdump($modalità, "modalità"); bdump($types, "types"); @@ -57,7 +57,7 @@ if($tools->validate_form("mod", "add")) { if(isset($_GET["id"])) { $id = $_GET["id"]; bdump($database->exists("services", $id)); - $values = $database->exec("SELECT * FROM `%PREFIX%_services` WHERE `id` = :id", true, [":id" => $id])[0]; // Pesco le tipologie della table + $values = $database->exec("SELECT * FROM `%PREFIX%_services` WHERE `id` = :id", true, [":id" => $id])[0]; bdump($values); } else { $values = []; diff --git a/server/edit_training.php b/server/edit_training.php index 4855133..ad344c6 100644 --- a/server/edit_training.php +++ b/server/edit_training.php @@ -45,7 +45,7 @@ if($tools->validate_form("mod", "add")) { if(isset($_GET["add"])||isset($_GET["edit"])||isset($_GET["delete"])||isset($_GET["mod"])) { $_SESSION["token"] = bin2hex(random_bytes(64)); } - $crew = $database->exec("SELECT * FROM `%PREFIX%_profiles` ORDER BY name ASC;", true); // Pesco i dati della table e li ordino in base al name + $crew = $database->exec("SELECT * FROM `%PREFIX%_profiles` ORDER BY name ASC;", true); $modalità = (isset($_GET["add"])) ? "add" : ((isset($_GET["edit"])) ? "edit" : ((isset($_GET["delete"])) ? "delete" : "add")); bdump($modalità, "modalità"); bdump($crew, "crew"); @@ -53,7 +53,7 @@ if($tools->validate_form("mod", "add")) { if(isset($_GET["id"])) { $id = $_GET["id"]; bdump($database->exists("trainings", $id)); - $values = $database->exec("SELECT * FROM `%PREFIX%_trainings` WHERE `id` = :id", true, [":id" => $id])[0]; // Pesco le types della table + $values = $database->exec("SELECT * FROM `%PREFIX%_trainings` WHERE `id` = :id", true, [":id" => $id])[0]; bdump($values); } else { $values = []; diff --git a/server/edit_user.php b/server/edit_user.php index 5d8063a..39bcf07 100644 --- a/server/edit_user.php +++ b/server/edit_user.php @@ -70,7 +70,7 @@ if($tools->validate_form("mod", "add")) { if(isset($_GET["id"])) { $id = $_GET["id"]; bdump($database->exists("profiles", $id)); - $values = $database->exec("SELECT * FROM `%PREFIX%_profiles` WHERE `id` = :id", true, [":id" => $id])[0]; // Pesco le types della table + $values = $database->exec("SELECT * FROM `%PREFIX%_profiles` WHERE `id` = :id", true, [":id" => $id])[0]; bdump($values); } else { $values = []; diff --git a/server/list.php b/server/list.php index a36ea0f..2862861 100644 --- a/server/list.php +++ b/server/list.php @@ -1,7 +1,5 @@ t("Availability List", false), 'token_list' => $_SESSION['token_list']]); bdump($_SESSION); diff --git a/server/templates/base.html b/server/templates/base.html index bf25af4..aa8cd5b 100644 --- a/server/templates/base.html +++ b/server/templates/base.html @@ -87,6 +87,7 @@ {% endif %} {% endblock %} + {% if enable_debug_bar %}{{ debug_bar_head|raw }}{% endif %} {% block menu %} @@ -116,6 +117,7 @@ {% endblock %} + {% if enable_debug_bar %}{{ debug_bar|raw }}{% endif %} {% block footer %}
diff --git a/server/templates/edit_service.html b/server/templates/edit_service.html index 338fb16..5cb7397 100644 --- a/server/templates/edit_service.html +++ b/server/templates/edit_service.html @@ -3,6 +3,7 @@ + {% if enable_debug_bar %}{{ debug_bar_head|raw }}{% endif %} {% if service.modalità == "edit" or service.modalità == "add" %} @@ -154,5 +155,6 @@
{% endif %} + {% if enable_debug_bar %}{{ debug_bar|raw }}{% endif %} \ No newline at end of file diff --git a/server/templates/edit_training.html b/server/templates/edit_training.html index bf8d680..4a3d239 100644 --- a/server/templates/edit_training.html +++ b/server/templates/edit_training.html @@ -3,6 +3,7 @@ + {% if enable_debug_bar %}{{ debug_bar_head|raw }}{% endif %} {% if training.modalità == "edit" or training.modalità == "add" %} @@ -104,5 +105,6 @@ {% endif %} + {% if enable_debug_bar %}{{ debug_bar|raw }}{% endif %} \ No newline at end of file diff --git a/server/templates/edit_user.html b/server/templates/edit_user.html index 5dd9fb2..34e3faa 100644 --- a/server/templates/edit_user.html +++ b/server/templates/edit_user.html @@ -3,6 +3,7 @@ + {% if enable_debug_bar %}{{ debug_bar_head|raw }}{% endif %} {% if modalità == "edit" or modalità == "add" %} @@ -81,5 +82,6 @@ {% endif %} + {% if enable_debug_bar %}{{ debug_bar|raw }}{% endif %} \ No newline at end of file diff --git a/server/ui.php b/server/ui.php index 6a76846..a10b41a 100644 --- a/server/ui.php +++ b/server/ui.php @@ -2,6 +2,16 @@ require_once 'core.php'; init_class(); +if(!is_null($debugbar)){ + $enable_debugbar = true; + $debugbarRenderer = $debugbar->getJavascriptRenderer("./vendor/maximebf/debugbar/src/DebugBar/Resources"); + $debugbarRenderer->disableVendor("jquery"); + $debugbarRenderer->disableVendor("fontawesome"); + $debugbarRenderer->setEnableJqueryNoConflict(false); +} else { + $enable_debugbar = false; +} + p_start("Load Twig"); $webpack_manifest = json_decode( file_get_contents(realpath("resources/dist/manifest.json")), @@ -50,7 +60,7 @@ p_stop(); $template = null; function loadtemplate($templatename, $data, $requirelogin=true) { - global $database, $user, $twig, $template; + global $database, $user, $twig, $template, $enable_debugbar, $debugbarRenderer; p_start("Render Twig template"); if($requirelogin) { $user->requirelogin(); @@ -58,6 +68,9 @@ function loadtemplate($templatename, $data, $requirelogin=true) $data['delete_caches'] = isset($_GET["deleteCache"]) || isset($_GET["unregisterSW"]) || isset($_GET["unregisterSWandDisable"]); $data['delete_service_workers'] = isset($_GET["unregisterSW"]) || isset($_GET["unregisterSWandDisable"]); $data['delete_service_workers_and_disable'] = isset($_GET["unregisterSWandDisable"]); + $data['enable_debug_bar'] = $enable_debugbar; + $data['debug_bar_head'] = $enable_debugbar ? $debugbarRenderer->renderHead() : ""; + $data['debug_bar'] = $enable_debugbar ? $debugbarRenderer->render() : ""; $data['owner'] = $database->getOption("owner"); $data['urlsoftware'] = $database->getOption("web_url"); $data['user'] = $user->info();