]>
Commit | Line | Data |
---|---|---|
010efc9b AD |
1 | <?php |
2 | ||
3 | /** | |
4 | * XHTML 1.1 Edit Module, defines editing-related elements. Text Extension | |
5 | * Module. | |
6 | */ | |
7 | class HTMLPurifier_HTMLModule_Edit extends HTMLPurifier_HTMLModule | |
8 | { | |
9 | ||
10 | public $name = 'Edit'; | |
11 | ||
12 | public function setup($config) { | |
13 | $contents = 'Chameleon: #PCDATA | Inline ! #PCDATA | Flow'; | |
14 | $attr = array( | |
15 | 'cite' => 'URI', | |
16 | // 'datetime' => 'Datetime', // not implemented | |
17 | ); | |
18 | $this->addElement('del', 'Inline', $contents, 'Common', $attr); | |
19 | $this->addElement('ins', 'Inline', $contents, 'Common', $attr); | |
20 | } | |
21 | ||
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 | |
25 | ||
26 | // Inline context ! Block context (exclamation mark is | |
27 | // separator, see getChildDef for parsing) | |
28 | ||
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]); | |
34 | } | |
35 | ||
36 | } | |
37 | ||
38 | // vim: et sw=4 sts=4 |