HTMLPurifier_HTMLDefinition::addAttribute PHP Method

addAttribute() public method

Adds a custom attribute to a pre-existing element
public addAttribute ( string $element_name, string $attr_name, mixed $def )
$element_name string Element name to add attribute to
$attr_name string Name of attribute
$def mixed Attribute definition, can be string or object, see HTMLPurifier_AttrTypes for details
    public function addAttribute($element_name, $attr_name, $def)
    {
        $module = $this->getAnonymousModule();
        if (!isset($module->info[$element_name])) {
            $element = $module->addBlankElement($element_name);
        } else {
            $element = $module->info[$element_name];
        }
        $element->attr[$attr_name] = $def;
    }

Usage Example

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;
 }
All Usage Examples Of HTMLPurifier_HTMLDefinition::addAttribute