From 2939bae985c997f3dde8b33547ef80fd16f82f15 Mon Sep 17 00:00:00 2001
From: Cerdic <cedric@yterium.com>
Date: Wed, 17 Apr 2024 10:09:39 +0200
Subject: [PATCH] feat: ajouter un debug_print_backtrace() optionnel en bas des
 pages d'erreurs Minipage, activable par define

Refs: #5459
(cherry picked from commit 5bfbaa7c5130195e1bfd55673c0c0ea7cca213a1)
---
 ecrire/src/Afficher/Minipage/AbstractPage.php | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/ecrire/src/Afficher/Minipage/AbstractPage.php b/ecrire/src/Afficher/Minipage/AbstractPage.php
index b6d37df65e..b675983055 100644
--- a/ecrire/src/Afficher/Minipage/AbstractPage.php
+++ b/ecrire/src/Afficher/Minipage/AbstractPage.php
@@ -195,7 +195,24 @@ abstract class AbstractPage {
 	 * @return string Code HTML
 	 */
 	protected function fermeBody() {
-		return "\n\t</div>\n</body>\n</html>";
+		$debugTrace = "";
+		if (defined('_DEBUG_MINIPRES') && _DEBUG_MINIPRES) {
+			ob_start();
+			debug_print_backtrace();
+			$debugTrace = ob_get_contents();
+			ob_end_clean();
+			$debugTrace = "<div class='precode debug-trace'><pre class='spip_code spip_code_block'><code>" . spip_htmlentities($debugTrace) . "</code></pre></div>\n";
+			$debugTrace .= <<<css
+<style>
+.spip_code {background-color: rgba(255,255,255, 0.45);}
+.spip_code {font-size:0.9em;border-radius: 0.125em;text-shadow: 0 0 1px #fff;}
+.spip_code.spip_code_block {width: 100%;box-sizing:border-box;padding:1.5em;overflow: auto;}
+.precode {position:relative;}
+</style>
+css;
+
+		}
+		return "\n\t</div>\n$debugTrace</body>\n</html>";
 	}
 
 
-- 
GitLab