mirror of
https://github.com/ezyang/htmlpurifier.git
synced 2025-07-30 19:00:10 +02:00
Setup ErrorCollector to maintain new error format, and output that HTML.
Also changed: - DirectLex keeps track of column numbers in context - New class HTMLPurifier_ErrorStruct Signed-off-by: Edward Z. Yang <edwardzyang@thewritingpot.com>
This commit is contained in:
58
library/HTMLPurifier/ErrorStruct.php
Normal file
58
library/HTMLPurifier/ErrorStruct.php
Normal file
@@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Records errors for particular segments of an HTML document such as tokens,
|
||||
* attributes or CSS properties. They can contain error structs (which apply
|
||||
* to components of what they represent), but their main purpose is to hold
|
||||
* errors applying to whatever struct is being used.
|
||||
*/
|
||||
class HTMLPurifier_ErrorStruct
|
||||
{
|
||||
|
||||
/**
|
||||
* Possible values for $children first-key. Note that top-level structures
|
||||
* are automatically token-level.
|
||||
*/
|
||||
const TOKEN = 0;
|
||||
const ATTR = 1;
|
||||
const CSSPROP = 2;
|
||||
|
||||
/**
|
||||
* Type of this struct.
|
||||
*/
|
||||
public $type;
|
||||
|
||||
/**
|
||||
* Value of the struct we are recording errors for. There are various
|
||||
* values for this:
|
||||
* - TOKEN: Instance of HTMLPurifier_Token
|
||||
* - ATTR: array('attr-name', 'value')
|
||||
* - CSSPROP: array('prop-name', 'value')
|
||||
*/
|
||||
public $value;
|
||||
|
||||
/**
|
||||
* Errors registered for this structure.
|
||||
*/
|
||||
public $errors = array();
|
||||
|
||||
/**
|
||||
* Child ErrorStructs that are from this structure. For example, a TOKEN
|
||||
* ErrorStruct would contain ATTR ErrorStructs. This is a multi-dimensional
|
||||
* array in structure: [TYPE]['identifier']
|
||||
*/
|
||||
public $children = array();
|
||||
|
||||
public function getChild($type, $id) {
|
||||
if (!isset($this->children[$type][$id])) {
|
||||
$this->children[$type][$id] = new HTMLPurifier_ErrorStruct();
|
||||
$this->children[$type][$id]->type = $type;
|
||||
}
|
||||
return $this->children[$type][$id];
|
||||
}
|
||||
|
||||
public function addError($severity, $message) {
|
||||
$this->errors[] = array($severity, $message);
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user