You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.4 KiB
55 lines
1.4 KiB
<?php |
|
|
|
/** |
|
* XHTML 1.1 Edit Module, defines editing-related elements. Text Extension |
|
* Module. |
|
*/ |
|
class HTMLPurifier_HTMLModule_Edit extends HTMLPurifier_HTMLModule |
|
{ |
|
|
|
/** |
|
* @type string |
|
*/ |
|
public $name = 'Edit'; |
|
|
|
/** |
|
* @param HTMLPurifier_Config $config |
|
*/ |
|
public function setup($config) |
|
{ |
|
$contents = 'Chameleon: #PCDATA | Inline ! #PCDATA | Flow'; |
|
$attr = array( |
|
'cite' => 'URI', |
|
// 'datetime' => 'Datetime', // not implemented |
|
); |
|
$this->addElement('del', 'Inline', $contents, 'Common', $attr); |
|
$this->addElement('ins', 'Inline', $contents, 'Common', $attr); |
|
} |
|
|
|
// HTML 4.01 specifies that ins/del must not contain block |
|
// elements when used in an inline context, chameleon is |
|
// a complicated workaround to acheive this effect |
|
|
|
// Inline context ! Block context (exclamation mark is |
|
// separator, see getChildDef for parsing) |
|
|
|
/** |
|
* @type bool |
|
*/ |
|
public $defines_child_def = true; |
|
|
|
/** |
|
* @param HTMLPurifier_ElementDef $def |
|
* @return HTMLPurifier_ChildDef_Chameleon |
|
*/ |
|
public function getChildDef($def) |
|
{ |
|
if ($def->content_model_type != 'chameleon') { |
|
return false; |
|
} |
|
$value = explode('!', $def->content_model); |
|
return new HTMLPurifier_ChildDef_Chameleon($value[0], $value[1]); |
|
} |
|
} |
|
|
|
// vim: et sw=4 sts=4
|
|
|