addElement() public method

Adds a custom element to your HTML definition
See also: HTMLPurifier_HTMLModule::addElement() for detailed parameter and return value descriptions.
public addElement ( $element_name, $type, $contents, $attr_collections, $attributes = [] )
Ejemplo n.º 1
0
 /**
  * Adds HTML5 element and attributes to a provided definition object.
  *
  * @param  HTMLPurifier_HTMLDefinition $def
  * @return HTMLPurifier_HTMLDefinition
  */
 public static function setup(HTMLPurifier_HTMLDefinition $def)
 {
     // use fixed implementation of Boolean attributes, instead of a buggy
     // one provided with 4.6.0
     $def->manager->attrTypes->set('Bool', new HTMLPurifier_AttrDef_HTML_Bool2());
     // http://developers.whatwg.org/sections.html
     $def->addElement('section', 'Block', 'Flow', 'Common');
     $def->addElement('nav', 'Block', 'Flow', 'Common');
     $def->addElement('article', 'Block', 'Flow', 'Common');
     $def->addElement('aside', 'Block', 'Flow', 'Common');
     $def->addElement('header', 'Block', 'Flow', 'Common');
     $def->addElement('footer', 'Block', 'Flow', 'Common');
     $def->addElement('main', 'Block', 'Flow', 'Common');
     // Content model actually excludes several tags, not modelled here
     $def->addElement('address', 'Block', 'Flow', 'Common');
     $def->addElement('hgroup', 'Block', 'Required: h1 | h2 | h3 | h4 | h5 | h6', 'Common');
     // http://developers.whatwg.org/grouping-content.html
     $def->addElement('figure', 'Block', 'Optional: (figcaption, Flow) | (Flow, figcaption) | Flow', 'Common');
     $def->addElement('figcaption', 'Inline', 'Flow', 'Common');
     // http://developers.whatwg.org/the-video-element.html#the-video-element
     $def->addElement('video', 'Block', 'Optional: (source, Flow) | (Flow, source) | Flow', 'Common', array('src' => 'URI', 'type' => 'Text', 'width' => 'Length', 'height' => 'Length', 'poster' => 'URI', 'preload' => 'Enum#auto,metadata,none', 'controls' => 'Bool'));
     $def->addElement('source', 'Block', 'Empty', 'Common', array('src' => 'URI', 'type' => 'Text'));
     // http://developers.whatwg.org/text-level-semantics.html
     $def->addElement('s', 'Inline', 'Inline', 'Common');
     $def->addElement('var', 'Inline', 'Inline', 'Common');
     $def->addElement('sub', 'Inline', 'Inline', 'Common');
     $def->addElement('sup', 'Inline', 'Inline', 'Common');
     $def->addElement('mark', 'Inline', 'Inline', 'Common');
     $def->addElement('wbr', 'Inline', 'Empty', 'Core');
     // http://developers.whatwg.org/edits.html
     $def->addElement('ins', 'Block', 'Flow', 'Common', array('cite' => 'URI', 'datetime' => 'Text'));
     $def->addElement('del', 'Block', 'Flow', 'Common', array('cite' => 'URI', 'datetime' => 'Text'));
     // TIME
     $time = $def->addElement('time', 'Inline', 'Inline', 'Common', array('datetime' => 'Text', 'pubdate' => 'Bool'));
     $time->excludes = array('time' => true);
     // IMG
     $def->addAttribute('img', 'srcset', 'Text');
     // IFRAME
     $def->addAttribute('iframe', 'allowfullscreen', 'Bool');
     return $def;
 }