15         $this->def = 
$config->getHTMLDefinition();
 
   17         $ret .= $this->
start(
'div', array(
'class' => 
'HTMLPurifier_Printer'));
 
   33         $doctype = $this->def->doctype;
 
   37         $ret .= $this->
row(
'Name', $doctype->name);
 
   38         $ret .= $this->
row(
'XML', $doctype->xml ? 
'Yes' : 
'No');
 
   39         $ret .= $this->
row(
'Default Modules', implode($doctype->modules, 
', '));
 
   40         $ret .= $this->
row(
'Default Tidy Modules', implode($doctype->tidyModules, 
', '));
 
   57         $ret .= $this->
row(
'Parent of fragment', 
$def->info_parent);
 
   59         $ret .= $this->
row(
'Block wrap name', 
$def->info_block_wrapper);
 
   69             foreach (
$def->info_tag_transform as $old => $new) {
 
   70                 $new = $this->
getClass($new, 
'TagTransform_');
 
   71                 $list[] = 
"<$old> with $new";
 
   97         foreach ($this->def->info_content_sets as $name => $lookup) {
 
  113         $ret .= $this->
element(
'caption', 
'Elements ($info)');
 
  114         ksort($this->def->info);
 
  119         foreach ($this->def->info as $name => 
$def) {
 
  121                 $ret .= $this->
element(
'th', 
"<$name>", array(
'class'=>
'heavy', 
'colspan' => 2));
 
  125                 $ret .= $this->
element(
'td', 
$def->descendants_are_inline ? 
'Yes' : 
'No');
 
  127             if (!empty(
$def->excludes)) {
 
  133             if (!empty(
$def->attr_transform_pre)) {
 
  139             if (!empty(
$def->attr_transform_post)) {
 
  141                     $ret .= $this->
element(
'th', 
'Post-AttrTransform');
 
  145             if (!empty(
$def->auto_close)) {
 
  152                 $ret .= $this->
element(
'th', 
'Allowed attributes');
 
  156             if (!empty(
$def->required_attr)) {
 
  176             if (isset(
$def->elements)) {
 
  177                 if (
$def->type == 
'strictblockquote') {
 
  178                     $def->validateChildren(array(), $this->config, $context);
 
  180                 $elements = 
$def->elements;
 
  182             if (
$def->type == 
'chameleon') {
 
  183                 $attr[
'rowspan'] = 2;
 
  184             } elseif (
$def->type == 
'empty') {
 
  186             } elseif (
$def->type == 
'table') {
 
  187                 $elements = array_flip(array(
'col', 
'caption', 
'colgroup', 
'thead',
 
  188                     'tfoot', 
'tbody', 
'tr'));
 
  190             $ret .= $this->
element(
'th', 
'Allowed children', $attr);
 
  192             if (
$def->type == 
'chameleon') {
 
  200                     '<em>Inline</em>: ' .
 
  203             } elseif (
$def->type == 
'custom') {
 
  210                     '<em>'.ucfirst(
$def->type).
'</em>: ' .
 
  211                     $this->escape($this->listifyTagLookup($elements)),0,0);
 
  224         foreach ($array as $name => $discard) {
 
  225             if ($name !== 
'#PCDATA' && !isset($this->def->info[$name])) 
continue;
 
  239         foreach ($array as $discard => $obj) {
 
  240             $list[] = $this->
getClass($obj, 
'AttrTransform_');
 
  252         foreach ($array as $name => $obj) {
 
  253             if ($obj === 
false) 
continue;
 
  254             $list[] = 
"$name = <i>" . $this->
getClass($obj, 
'AttrDef_') . 
'</i>';
 
  265         $ret .= $this->
element(
'th', $text, array(
'colspan' => $num, 
'class' => 
'heavy'));