| 1 | <?php |
|---|
| 2 | |
|---|
| 3 | /** |
|---|
| 4 | * XHTML 1.1 Tables Module, fully defines accessible table elements. |
|---|
| 5 | */ |
|---|
| 6 | class HTMLPurifier_HTMLModule_Tables extends HTMLPurifier_HTMLModule |
|---|
| 7 | { |
|---|
| 8 | |
|---|
| 9 | public $name = 'Tables'; |
|---|
| 10 | |
|---|
| 11 | public function __construct() { |
|---|
| 12 | |
|---|
| 13 | $this->addElement('caption', false, 'Inline', 'Common'); |
|---|
| 14 | |
|---|
| 15 | $this->addElement('table', 'Block', |
|---|
| 16 | new HTMLPurifier_ChildDef_Table(), 'Common', |
|---|
| 17 | array( |
|---|
| 18 | 'border' => 'Pixels', |
|---|
| 19 | 'cellpadding' => 'Length', |
|---|
| 20 | 'cellspacing' => 'Length', |
|---|
| 21 | 'frame' => 'Enum#void,above,below,hsides,lhs,rhs,vsides,box,border', |
|---|
| 22 | 'rules' => 'Enum#none,groups,rows,cols,all', |
|---|
| 23 | 'summary' => 'Text', |
|---|
| 24 | 'width' => 'Length' |
|---|
| 25 | ) |
|---|
| 26 | ); |
|---|
| 27 | |
|---|
| 28 | // common attributes |
|---|
| 29 | $cell_align = array( |
|---|
| 30 | 'align' => 'Enum#left,center,right,justify,char', |
|---|
| 31 | 'charoff' => 'Length', |
|---|
| 32 | 'valign' => 'Enum#top,middle,bottom,baseline', |
|---|
| 33 | ); |
|---|
| 34 | |
|---|
| 35 | $cell_t = array_merge( |
|---|
| 36 | array( |
|---|
| 37 | 'abbr' => 'Text', |
|---|
| 38 | 'colspan' => 'Number', |
|---|
| 39 | 'rowspan' => 'Number', |
|---|
| 40 | ), |
|---|
| 41 | $cell_align |
|---|
| 42 | ); |
|---|
| 43 | $this->addElement('td', false, 'Flow', 'Common', $cell_t); |
|---|
| 44 | $this->addElement('th', false, 'Flow', 'Common', $cell_t); |
|---|
| 45 | |
|---|
| 46 | $this->addElement('tr', false, 'Required: td | th', 'Common', $cell_align); |
|---|
| 47 | |
|---|
| 48 | $cell_col = array_merge( |
|---|
| 49 | array( |
|---|
| 50 | 'span' => 'Number', |
|---|
| 51 | 'width' => 'MultiLength', |
|---|
| 52 | ), |
|---|
| 53 | $cell_align |
|---|
| 54 | ); |
|---|
| 55 | $this->addElement('col', false, 'Empty', 'Common', $cell_col); |
|---|
| 56 | $this->addElement('colgroup', false, 'Optional: col', 'Common', $cell_col); |
|---|
| 57 | |
|---|
| 58 | $this->addElement('tbody', false, 'Required: tr', 'Common', $cell_align); |
|---|
| 59 | $this->addElement('thead', false, 'Required: tr', 'Common', $cell_align); |
|---|
| 60 | $this->addElement('tfoot', false, 'Required: tr', 'Common', $cell_align); |
|---|
| 61 | |
|---|
| 62 | } |
|---|
| 63 | |
|---|
| 64 | } |
|---|
| 65 | |
|---|