56 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			56 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
|   | <?php | ||
|  | 
 | ||
|  | /** | ||
|  |  * XHTML 1.1 Edit Module, defines editing-related elements. Text Extension | ||
|  |  * Module. | ||
|  |  */ | ||
|  | class HTMLPurifier_HTMLModule_Edit extends HTMLPurifier_HTMLModule | ||
|  | { | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @type string | ||
|  |      */ | ||
|  |     public $name = 'Edit'; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @param HTMLPurifier_Config $config | ||
|  |      */ | ||
|  |     public function setup($config) | ||
|  |     { | ||
|  |         $contents = 'Chameleon: #PCDATA | Inline ! #PCDATA | Flow'; | ||
|  |         $attr = array( | ||
|  |             'cite' => 'URI', | ||
|  |             // 'datetime' => 'Datetime', // not implemented
 | ||
|  |         ); | ||
|  |         $this->addElement('del', 'Inline', $contents, 'Common', $attr); | ||
|  |         $this->addElement('ins', 'Inline', $contents, 'Common', $attr); | ||
|  |     } | ||
|  | 
 | ||
|  |     // HTML 4.01 specifies that ins/del must not contain block
 | ||
|  |     // elements when used in an inline context, chameleon is
 | ||
|  |     // a complicated workaround to acheive this effect
 | ||
|  | 
 | ||
|  |     // Inline context ! Block context (exclamation mark is
 | ||
|  |     // separator, see getChildDef for parsing)
 | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @type bool | ||
|  |      */ | ||
|  |     public $defines_child_def = true; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @param HTMLPurifier_ElementDef $def | ||
|  |      * @return HTMLPurifier_ChildDef_Chameleon | ||
|  |      */ | ||
|  |     public function getChildDef($def) | ||
|  |     { | ||
|  |         if ($def->content_model_type != 'chameleon') { | ||
|  |             return false; | ||
|  |         } | ||
|  |         $value = explode('!', $def->content_model); | ||
|  |         return new HTMLPurifier_ChildDef_Chameleon($value[0], $value[1]); | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | // vim: et sw=4 sts=4
 |