50 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
		
		
			
		
	
	
			50 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
|  | <?php | ||
|  | 
 | ||
|  | /** | ||
|  |  * XHTML 1.1 Image Module provides basic image embedding. | ||
|  |  * @note There is specialized code for removing empty images in | ||
|  |  *       HTMLPurifier_Strategy_RemoveForeignElements | ||
|  |  */ | ||
|  | class HTMLPurifier_HTMLModule_Image extends HTMLPurifier_HTMLModule | ||
|  | { | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @type string | ||
|  |      */ | ||
|  |     public $name = 'Image'; | ||
|  | 
 | ||
|  |     /** | ||
|  |      * @param HTMLPurifier_Config $config | ||
|  |      */ | ||
|  |     public function setup($config) | ||
|  |     { | ||
|  |         $max = $config->get('HTML.MaxImgLength'); | ||
|  |         $img = $this->addElement( | ||
|  |             'img', | ||
|  |             'Inline', | ||
|  |             'Empty', | ||
|  |             'Common', | ||
|  |             array( | ||
|  |                 'alt*' => 'Text', | ||
|  |                 // According to the spec, it's Length, but percents can
 | ||
|  |                 // be abused, so we allow only Pixels.
 | ||
|  |                 'height' => 'Pixels#' . $max, | ||
|  |                 'width' => 'Pixels#' . $max, | ||
|  |                 'longdesc' => 'URI', | ||
|  |                 'src*' => new HTMLPurifier_AttrDef_URI(true), // embedded
 | ||
|  |             ) | ||
|  |         ); | ||
|  |         if ($max === null || $config->get('HTML.Trusted')) { | ||
|  |             $img->attr['height'] = | ||
|  |             $img->attr['width'] = 'Length'; | ||
|  |         } | ||
|  | 
 | ||
|  |         // kind of strange, but splitting things up would be inefficient
 | ||
|  |         $img->attr_transform_pre[] = | ||
|  |         $img->attr_transform_post[] = | ||
|  |             new HTMLPurifier_AttrTransform_ImgRequired(); | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | // vim: et sw=4 sts=4
 |