Fix problem where stacked AttrTransforms clobber each other.
[htmlpurifier.git] / library / HTMLPurifier / HTMLModule / Edit.php
blobff93690555fc76ce60c598d7e18df0c53dc5afc3
1 <?php
3 /**
4 * XHTML 1.1 Edit Module, defines editing-related elements. Text Extension
5 * Module.
6 */
7 class HTMLPurifier_HTMLModule_Edit extends HTMLPurifier_HTMLModule
10 public $name = 'Edit';
12 public function setup($config) {
13 $contents = 'Chameleon: #PCDATA | Inline ! #PCDATA | Flow';
14 $attr = array(
15 'cite' => 'URI',
16 // 'datetime' => 'Datetime', // not implemented
18 $this->addElement('del', 'Inline', $contents, 'Common', $attr);
19 $this->addElement('ins', 'Inline', $contents, 'Common', $attr);
22 // HTML 4.01 specifies that ins/del must not contain block
23 // elements when used in an inline context, chameleon is
24 // a complicated workaround to acheive this effect
26 // Inline context ! Block context (exclamation mark is
27 // separator, see getChildDef for parsing)
29 public $defines_child_def = true;
30 public function getChildDef($def) {
31 if ($def->content_model_type != 'chameleon') return false;
32 $value = explode('!', $def->content_model);
33 return new HTMLPurifier_ChildDef_Chameleon($value[0], $value[1]);
38 // vim: et sw=4 sts=4