(\s+|\s$)/', " => ", $var_dump); $var_dump = htmlspecialchars($var_dump); $var_dump = preg_replace( "/(=>)/", '$1', $var_dump, ); ob_end_clean(); if (!empty($name)) { $fn_name = explode(",", $name[1]); $fn_name = array_shift($fn_name); } else { $fn_name = "EVAL"; } if ($_bg) { $bg = 'style="background: #' . $_bg . ';"'; } else { $bg = ""; } $var_dump = '
' .
$var_dump .
'
' .
$var_dump .
'
' .
$var_export .
'
' .
htmlentities($var_dump, ENT_QUOTES) .
'
' .
$var_dump .
'
' .
$var_dump .
'
' .
$stat .
"";
ob_end_clean();
return $stat;
}
public static function getDocumentInfo()
{
global $AVE_Template;
$_arr = [
"DOC" => "/admin/index.php?do=docs&action=edit&Id=",
"RUBRIC" => "/admin/index.php?do=rubs&action=edit&Id=",
"BLOCKS" => "/admin/index.php?do=blocks&action=edit&id=",
"SYSBLOCK" => "/admin/index.php?do=sysblocks&action=edit&id=",
"REQUESTS" => "/admin/index.php?do=request&action=edit&Id=",
"NAVIAGTIONS" =>
"/admin/index.php?do=navigation&action=templates&navigation_id=",
];
// ИСПРАВЛЕНИЕ : Безопасно получаем 'id' из $_REQUEST
$doc = get_document($_REQUEST["id"] ?? "");
$_edit = [];
// ИСПРАВЛЕНИЕ : Проверяем, что $doc содержит данные и нужные ключи
if (!empty($doc) && isset($doc["Id"], $doc["rubric_id"])) {
$_edit["DOC"][$doc["Id"]] = $_arr["DOC"] . $doc["Id"];
$_edit["RUBRIC"][$doc["rubric_id"]] =
$_arr["RUBRIC"] . $doc["rubric_id"];
}
// ИСПРАВЛЕНИЕ : Проверяем, что $GLOBALS['block_generate'] существует и является массивом/объектом
if (
isset($GLOBALS["block_generate"]) &&
(is_array($GLOBALS["block_generate"]) ||
$GLOBALS["block_generate"] instanceof Traversable)
) {
foreach ($GLOBALS["block_generate"] as $k => $v) {
if (!in_array($k, array_keys($_arr))) {
continue;
}
// Защита внутреннего цикла
if (is_array($v) || $v instanceof Traversable) {
foreach ($v as $key => $value) {
$_edit[$k][$key] = $_arr[$k] . $key;
}
}
}
}
$AVE_Template->assign("edit", $_edit);
$AVE_Template->assign("session", session_id());
$return = $AVE_Template->fetch(BASE_DIR . "/lib/debug/debug.tpl");
return $return;
}
/**
* Вывод отладочной информации
* Поддерживает режимы: off, full, tpl
* * @param string|null $force_mode Принудительный режим
* @return string
*/
public static function displayInfo($force_mode = null): string
{
global $AVE_DB;
// 1. ОПРЕДЕЛЕНИЕ РЕЖИМА (Паблик vs Админка)
if ($force_mode !== null) {
$mode = $force_mode;
} elseif (defined("ACP") && defined("PROFILING_ADMIN")) {
// Режим для панели управления
$mode = PROFILING_ADMIN;
} elseif (defined("PROFILING")) {
// Режим для публичной части
$mode = PROFILING;
} else {
$mode = "off";
}
// 2. ЕСЛИ ВЫКЛЮЧЕНО
if ($mode === "off" || $mode === false || $mode === "0") {
return "";
}
// 3. РЕЖИМ ТОЛЬКО ШАБЛОН (Минималистичный вывод)
if ($mode === "tpl") {
return '