diff options
author | Andrew Dolgov <[email protected]> | 2022-01-06 10:37:03 +0300 |
---|---|---|
committer | Andrew Dolgov <[email protected]> | 2022-01-06 10:37:03 +0300 |
commit | c3482fbe6b22885f5619df02387de09be0886cfe (patch) | |
tree | 4bbd69f4335855a3015805ab840e26f0301f4570 /classes/errors.php | |
parent | 97baf3e8b9be699d972b91a159ccbe0891efe8ae (diff) |
generate a warning if plugin-generated content of HOOK_ARTICLE_BUTTON or _LEFT_BUTTON can't be parsed as valid XML
Diffstat (limited to 'classes/errors.php')
-rw-r--r-- | classes/errors.php | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/classes/errors.php b/classes/errors.php index 31be558cf..aa626d017 100644 --- a/classes/errors.php +++ b/classes/errors.php @@ -14,4 +14,27 @@ class Errors { static function to_json(string $code, array $params = []): string { return json_encode(["error" => ["code" => $code, "params" => $params]]); } + + static function libxml_last_error() : string { + $error = libxml_get_last_error(); + $error_formatted = ""; + + if ($error) { + foreach (libxml_get_errors() as $error) { + if ($error->level == LIBXML_ERR_FATAL) { + // currently only the first error is reported + $error_formatted = self::format_libxml_error($error); + break; + } + } + } + + return UConverter::transcode($error_formatted, 'UTF-8', 'UTF-8'); + } + + static function format_libxml_error(LibXMLError $error) : string { + return sprintf("LibXML error %s at line %d (column %d): %s", + $error->code, $error->line, $error->column, + $error->message); + } } |