addElement ( 'basefont', 'Inline', 'Empty', null, array ( 'color' => 'Color', 'face' => 'Text', // extremely broad, we should 'size' => 'Text', // tighten it 'id' => 'ID' ) ); $this->addElement ( 'center', 'Block', 'Flow', 'Common' ); $this->addElement ( 'dir', 'Block', 'Required: li', 'Common', array ( 'compact' => 'Bool#compact' ) ); $this->addElement ( 'font', 'Inline', 'Inline', array ( 'Core', 'I18N' ), array ( 'color' => 'Color', 'face' => 'Text', // extremely broad, we should 'size' => 'Text' ) // tighten it ); $this->addElement ( 'menu', 'Block', 'Required: li', 'Common', array ( 'compact' => 'Bool#compact' ) ); $s = $this->addElement ( 's', 'Inline', 'Inline', 'Common' ); $s->formatting = true; $strike = $this->addElement ( 'strike', 'Inline', 'Inline', 'Common' ); $strike->formatting = true; $u = $this->addElement ( 'u', 'Inline', 'Inline', 'Common' ); $u->formatting = true; // setup modifications to old elements $align = 'Enum#left,right,center,justify'; $address = $this->addBlankElement ( 'address' ); $address->content_model = 'Inline | #PCDATA | p'; $address->content_model_type = 'optional'; $address->child = false; $blockquote = $this->addBlankElement ( 'blockquote' ); $blockquote->content_model = 'Flow | #PCDATA'; $blockquote->content_model_type = 'optional'; $blockquote->child = false; $br = $this->addBlankElement ( 'br' ); $br->attr ['clear'] = 'Enum#left,all,right,none'; $caption = $this->addBlankElement ( 'caption' ); $caption->attr ['align'] = 'Enum#top,bottom,left,right'; $div = $this->addBlankElement ( 'div' ); $div->attr ['align'] = $align; $dl = $this->addBlankElement ( 'dl' ); $dl->attr ['compact'] = 'Bool#compact'; for($i = 1; $i <= 6; $i ++) { $h = $this->addBlankElement ( "h$i" ); $h->attr ['align'] = $align; } $hr = $this->addBlankElement ( 'hr' ); $hr->attr ['align'] = $align; $hr->attr ['noshade'] = 'Bool#noshade'; $hr->attr ['size'] = 'Pixels'; $hr->attr ['width'] = 'Length'; $img = $this->addBlankElement ( 'img' ); $img->attr ['align'] = 'IAlign'; $img->attr ['border'] = 'Pixels'; $img->attr ['hspace'] = 'Pixels'; $img->attr ['vspace'] = 'Pixels'; // figure out this integer business $li = $this->addBlankElement ( 'li' ); $li->attr ['value'] = new HTMLPurifier_AttrDef_Integer (); $li->attr ['type'] = 'Enum#s:1,i,I,a,A,disc,square,circle'; $ol = $this->addBlankElement ( 'ol' ); $ol->attr ['compact'] = 'Bool#compact'; $ol->attr ['start'] = new HTMLPurifier_AttrDef_Integer (); $ol->attr ['type'] = 'Enum#s:1,i,I,a,A'; $p = $this->addBlankElement ( 'p' ); $p->attr ['align'] = $align; $pre = $this->addBlankElement ( 'pre' ); $pre->attr ['width'] = 'Number'; // script omitted $table = $this->addBlankElement ( 'table' ); $table->attr ['align'] = 'Enum#left,center,right'; $table->attr ['bgcolor'] = 'Color'; $tr = $this->addBlankElement ( 'tr' ); $tr->attr ['bgcolor'] = 'Color'; $th = $this->addBlankElement ( 'th' ); $th->attr ['bgcolor'] = 'Color'; $th->attr ['height'] = 'Length'; $th->attr ['nowrap'] = 'Bool#nowrap'; $th->attr ['width'] = 'Length'; $td = $this->addBlankElement ( 'td' ); $td->attr ['bgcolor'] = 'Color'; $td->attr ['height'] = 'Length'; $td->attr ['nowrap'] = 'Bool#nowrap'; $td->attr ['width'] = 'Length'; $ul = $this->addBlankElement ( 'ul' ); $ul->attr ['compact'] = 'Bool#compact'; $ul->attr ['type'] = 'Enum#square,disc,circle'; // "safe" modifications to "unsafe" elements // WARNING: If you want to add support for an unsafe, legacy // attribute, make a new TrustedLegacy module with the trusted // bit set appropriately $form = $this->addBlankElement ( 'form' ); $form->content_model = 'Flow | #PCDATA'; $form->content_model_type = 'optional'; $form->attr ['target'] = 'FrameTarget'; $input = $this->addBlankElement ( 'input' ); $input->attr ['align'] = 'IAlign'; $legend = $this->addBlankElement ( 'legend' ); $legend->attr ['align'] = 'LAlign'; } } // vim: et sw=4 sts=4