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.
75 lines
2.3 KiB
75 lines
2.3 KiB
<?php |
|
|
|
/** |
|
* XHTML 1.1 Tables Module, fully defines accessible table elements. |
|
*/ |
|
class HTMLPurifier_HTMLModule_Tables extends HTMLPurifier_HTMLModule |
|
{ |
|
/** |
|
* @type string |
|
*/ |
|
public $name = 'Tables'; |
|
|
|
/** |
|
* @param HTMLPurifier_Config $config |
|
*/ |
|
public function setup($config) |
|
{ |
|
$this->addElement('caption', false, 'Inline', 'Common'); |
|
|
|
$this->addElement( |
|
'table', |
|
'Block', |
|
new HTMLPurifier_ChildDef_Table(), |
|
'Common', |
|
array( |
|
'border' => 'Pixels', |
|
'cellpadding' => 'Length', |
|
'cellspacing' => 'Length', |
|
'frame' => 'Enum#void,above,below,hsides,lhs,rhs,vsides,box,border', |
|
'rules' => 'Enum#none,groups,rows,cols,all', |
|
'summary' => 'Text', |
|
'width' => 'Length' |
|
) |
|
); |
|
|
|
// common attributes |
|
$cell_align = array( |
|
'align' => 'Enum#left,center,right,justify,char', |
|
'charoff' => 'Length', |
|
'valign' => 'Enum#top,middle,bottom,baseline', |
|
); |
|
|
|
$cell_t = array_merge( |
|
array( |
|
'abbr' => 'Text', |
|
'colspan' => 'Number', |
|
'rowspan' => 'Number', |
|
// Apparently, as of HTML5 this attribute only applies |
|
// to 'th' elements. |
|
'scope' => 'Enum#row,col,rowgroup,colgroup', |
|
), |
|
$cell_align |
|
); |
|
$this->addElement('td', false, 'Flow', 'Common', $cell_t); |
|
$this->addElement('th', false, 'Flow', 'Common', $cell_t); |
|
|
|
$this->addElement('tr', false, 'Required: td | th', 'Common', $cell_align); |
|
|
|
$cell_col = array_merge( |
|
array( |
|
'span' => 'Number', |
|
'width' => 'MultiLength', |
|
), |
|
$cell_align |
|
); |
|
$this->addElement('col', false, 'Empty', 'Common', $cell_col); |
|
$this->addElement('colgroup', false, 'Optional: col', 'Common', $cell_col); |
|
|
|
$this->addElement('tbody', false, 'Required: tr', 'Common', $cell_align); |
|
$this->addElement('thead', false, 'Required: tr', 'Common', $cell_align); |
|
$this->addElement('tfoot', false, 'Required: tr', 'Common', $cell_align); |
|
} |
|
} |
|
|
|
// vim: et sw=4 sts=4
|
|
|