40 $this->docURL = $doc_url;
54 if ($cols) $this->fields[
'default']->cols = $cols;
55 if ($rows) $this->fields[
'default']->rows = $rows;
62 return file_get_contents(HTMLPURIFIER_PREFIX .
'/HTMLPurifier/Printer/ConfigForm.css');
69 return file_get_contents(HTMLPURIFIER_PREFIX .
'/HTMLPurifier/Printer/ConfigForm.js');
78 public function render(
$config, $allowed =
true, $render_controls =
true) {
87 $this->genConfig = $gen_config;
92 foreach ($allowed as
$key) {
93 list($ns, $directive) =
$key;
94 $all[$ns][$directive] =
$config->get($ns .
'.'. $directive);
98 $ret .= $this->
start(
'table', array(
'class' =>
'hp-config'));
101 $ret .= $this->
element(
'th',
'Directive', array(
'class' =>
'hp-directive'));
102 $ret .= $this->
element(
'th',
'Value', array(
'class' =>
'hp-value'));
105 foreach ($all as $ns => $directives) {
108 if ($render_controls) {
111 $ret .= $this->
start(
'td', array(
'colspan' => 2,
'class' =>
'controls'));
112 $ret .= $this->
elementEmpty(
'input', array(
'type' =>
'submit',
'value' =>
'Submit'));
113 $ret .=
'[<a href="?">Reset</a>]';
129 $ret .= $this->
start(
'tbody', array(
'class' =>
'namespace'));
131 $ret .= $this->
element(
'th', $ns, array(
'colspan' => 2));
135 foreach ($directives as $directive => $value) {
139 $url = str_replace(
'%s', urlencode(
"$ns.$directive"), $this->docURL);
140 $ret .= $this->
start(
'a', array(
'href' => $url));
142 $attr = array(
'for' =>
"{$this->name}:$ns.$directive");
145 if (!$this->compress || (strlen($directive) < $this->compress)) {
146 $directive_disp = $directive;
148 $directive_disp = substr($directive, 0, $this->compress - 2) .
'...';
149 $attr[
'title'] = $directive;
158 if ($this->docURL)
$ret .= $this->
end(
'a');
162 $def = $this->config->def->info[
"$ns.$directive"];
164 $allow_null = $def < 0;
168 $allow_null = isset($def->allow_null);
170 if (!isset($this->fields[
$type])) $type = 0;
171 $type_obj = $this->fields[
$type];
175 $ret .= $type_obj->render($ns, $directive, $value, $this->name, array($this->genConfig, $this->config));
210 $ret .= $this->
start(
'label', array(
'for' =>
"$name:Null_$ns.$directive"));
211 $ret .= $this->
element(
'span',
"$ns.$directive:", array(
'class' =>
'verbose'));
212 $ret .= $this->
text(
' Null/Disabled');
215 'type' =>
'checkbox',
217 'class' =>
'null-toggle',
218 'name' =>
"$name".
"[Null_$ns.$directive]",
219 'id' =>
"$name:Null_$ns.$directive",
220 'onclick' =>
"toggleWriteability('$name:$ns.$directive',checked)"
224 $attr[
'onclick'] =
"toggleWriteability('$name:Yes_$ns.$directive',checked);toggleWriteability('$name:No_$ns.$directive',checked)";
226 if ($value === null) $attr[
'checked'] =
'checked';
230 $ret .= $this->obj->render($ns, $directive, $value,
$name, array($gen_config,
$config));
251 $def =
$config->def->info[
"$ns.$directive"];
257 if (is_array($value)) {
262 foreach ($array as $val => $b) {
266 $value = implode(PHP_EOL, $value);
270 foreach ($value as $i => $v) {
271 $nvalue .=
"$i:$v" . PHP_EOL;
280 return 'Not supported';
281 $value = serialize($value);
284 'name' =>
"$name".
"[$ns.$directive]",
285 'id' =>
"$name:$ns.$directive"
287 if ($value === null) $attr[
'disabled'] =
'disabled';
288 if (isset($def->allowed)) {
290 foreach ($def->allowed as $val => $b) {
292 if ($value == $val) $attr[
'selected'] =
'selected';
307 $ret .= $this->
end(
'textarea');
309 $attr[
'value'] = $value;
310 $attr[
'type'] =
'text';
330 $ret .= $this->
start(
'div', array(
'id' =>
"$name:$ns.$directive"));
332 $ret .= $this->
start(
'label', array(
'for' =>
"$name:Yes_$ns.$directive"));
333 $ret .= $this->
element(
'span',
"$ns.$directive:", array(
'class' =>
'verbose'));
339 'name' =>
"$name".
"[$ns.$directive]",
340 'id' =>
"$name:Yes_$ns.$directive",
343 if ($value ===
true) $attr[
'checked'] =
'checked';
344 if ($value === null) $attr[
'disabled'] =
'disabled';
347 $ret .= $this->
start(
'label', array(
'for' =>
"$name:No_$ns.$directive"));
348 $ret .= $this->
element(
'span',
"$ns.$directive:", array(
'class' =>
'verbose'));
354 'name' =>
"$name".
"[$ns.$directive]",
355 'id' =>
"$name:No_$ns.$directive",
358 if ($value ===
false) $attr[
'checked'] =
'checked';
359 if ($value === null) $attr[
'disabled'] =
'disabled';