75 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			75 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
|   | <?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. | ||
|  |      * @type string | ||
|  |      */ | ||
|  |     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') | ||
|  |      * @type mixed | ||
|  |      */ | ||
|  |     public $value; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * Errors registered for this structure. | ||
|  |      * @type array | ||
|  |      */ | ||
|  |     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'] | ||
|  |      * @type array | ||
|  |      */ | ||
|  |     public $children = array(); | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @param string $type | ||
|  |      * @param string $id | ||
|  |      * @return mixed | ||
|  |      */ | ||
|  |     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]; | ||
|  |     } | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @param int $severity | ||
|  |      * @param string $message | ||
|  |      */ | ||
|  |     public function addError($severity, $message) | ||
|  |     { | ||
|  |         $this->errors[] = array($severity, $message); | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | // vim: et sw=4 sts=4
 |