| 1: | <?php | 
| 2: |  | 
| 3: |  | 
| 4: |  | 
| 5: |  | 
| 6: |  | 
| 7: |  | 
| 8: |  | 
| 9: |  | 
| 10: |  | 
| 11: |  | 
| 12: |  | 
| 13: |  | 
| 14: |  | 
| 15: |  | 
| 16: | class HTMLPurifier_HTMLModule_Scripting extends HTMLPurifier_HTMLModule | 
| 17: | { | 
| 18: |  | 
| 19: |  | 
| 20: |  | 
| 21: | public $name = 'Scripting'; | 
| 22: |  | 
| 23: |  | 
| 24: |  | 
| 25: |  | 
| 26: | public $elements = array('script', 'noscript'); | 
| 27: |  | 
| 28: |  | 
| 29: |  | 
| 30: |  | 
| 31: | public $content_sets = array('Block' => 'script | noscript', 'Inline' => 'script | noscript'); | 
| 32: |  | 
| 33: |  | 
| 34: |  | 
| 35: |  | 
| 36: | public $safe = false; | 
| 37: |  | 
| 38: |  | 
| 39: |  | 
| 40: |  | 
| 41: | public function setup($config) | 
| 42: | { | 
| 43: |  | 
| 44: |  | 
| 45: |  | 
| 46: |  | 
| 47: |  | 
| 48: |  | 
| 49: |  | 
| 50: |  | 
| 51: |  | 
| 52: |  | 
| 53: |  | 
| 54: | $this->info['noscript'] = new HTMLPurifier_ElementDef(); | 
| 55: | $this->info['noscript']->attr = array(0 => array('Common')); | 
| 56: | $this->info['noscript']->content_model = 'Heading | List | Block'; | 
| 57: | $this->info['noscript']->content_model_type = 'required'; | 
| 58: |  | 
| 59: | $this->info['script'] = new HTMLPurifier_ElementDef(); | 
| 60: | $this->info['script']->attr = array( | 
| 61: | 'defer' => new HTMLPurifier_AttrDef_Enum(array('defer')), | 
| 62: | 'src' => new HTMLPurifier_AttrDef_URI(true), | 
| 63: | 'type' => new HTMLPurifier_AttrDef_Enum(array('text/javascript')) | 
| 64: | ); | 
| 65: | $this->info['script']->content_model = '#PCDATA'; | 
| 66: | $this->info['script']->content_model_type = 'optional'; | 
| 67: | $this->info['script']->attr_transform_pre[] = | 
| 68: | $this->info['script']->attr_transform_post[] = | 
| 69: | new HTMLPurifier_AttrTransform_ScriptRequired(); | 
| 70: | } | 
| 71: | } | 
| 72: |  | 
| 73: |  | 
| 74: |  |