Seditio Source
Root |
./othercms/ips_4.3.4/system/3rd_party/HTMLPurifier/HTMLPurifier/HTMLModule/SafeObject.php
<?php

/**
 * A "safe" object module. In theory, objects permitted by this module will
 * be safe, and untrusted users can be allowed to embed arbitrary flash objects
 * (maybe other types too, but only Flash is supported as of right now).
 * Highly experimental.
 */
class HTMLPurifier_HTMLModule_SafeObject extends HTMLPurifier_HTMLModule
{
   
/**
     * @type string
     */
   
public $name = 'SafeObject';

   
/**
     * @param HTMLPurifier_Config $config
     */
   
public function setup($config)
    {
       
// These definitions are not intrinsically safe: the attribute transforms
        // are a vital part of ensuring safety.

       
$max = $config->get('HTML.MaxImgLength');
       
$object = $this->addElement(
           
'object',
           
'Inline',
           
'Optional: param | Flow | #PCDATA',
           
'Common',
            array(
               
// While technically not required by the spec, we're forcing
                // it to this value.
               
'type' => 'Enum#application/x-shockwave-flash',
               
'width' => 'Pixels#' . $max,
               
'height' => 'Pixels#' . $max,
               
'data' => 'URI#embedded',
               
'codebase' => new HTMLPurifier_AttrDef_Enum(
                    array(
                       
'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0'
                   
)
                ),
            )
        );
       
$object->attr_transform_post[] = new HTMLPurifier_AttrTransform_SafeObject();

       
$param = $this->addElement(
           
'param',
           
false,
           
'Empty',
           
false,
            array(
               
'id' => 'ID',
               
'name*' => 'Text',
               
'value' => 'Text'
           
)
        );
       
$param->attr_transform_post[] = new HTMLPurifier_AttrTransform_SafeParam();
       
$this->info_injector[] = 'SafeObject';
    }
}

// vim: et sw=4 sts=4