26 function getGroupClass($name, $collapsible, $collapsed, $additionalClass =
"")
28 $class = $this->form->getGroupCSSClass($name);
29 if ($additionalClass) $class = trim(
"{$additionalClass} $class");
33 $class = ($class) ?
"{$class} collapsible" :
"collapsible";
34 $class .= $collapsed ?
" collapsed" :
" expanded";
39 $class =
" class='$class'";
45 abstract function startGroup($name, $collapsible =
false, $collapsed =
false);
48 abstract function startField($field, $renderer, $colspan = 1, $styles =
"");
51 abstract function printLabel($field, $renderer, $styles =
"", $annotation =
"");
53 function getLabel($field, $renderer, $addSuffix =
true)
55 $label = isset($renderer->label) ? $renderer->label : $this->form->prettifyFieldName($field);
57 if ($renderer->parent->markRequiredFields &&
58 $renderer->parent->isRequired($field))
63 $label .= $renderer->labelSuffix;
65 if ($renderer->parent->onFormatLabel)
67 $fn = $renderer->parent->onFormatLabel;
68 $label = $fn($renderer->parent, $field, $label);
76 return "{$this->form->id}_{$field}_label";
101 case "selectable_table_header":
104 case "selectable_table_row":
133 parent::__construct(
$form);
136 function startGroup($name, $collapsible =
false, $collapsed =
false)
138 $class = $this->
getGroupClass($name, $collapsible, $collapsed);
140 $id = $this->form->id .
"_" .
codify($name) .
"_group";
142 echo
"<fieldset id='$id'$class><legend>$name</legend>";
144 $desc = $this->form->getGroupDescription($name,
"start");
147 echo
"<div id='{$id}_description' class='{$this->form->groupDescriptionCSS}'>{$desc}</div>";
149 $this->groupName = $name;
157 $name = $this->groupName;
159 $desc = $this->form->getGroupDescription($name,
"end");
162 $id = $this->form->id .
"_" .
codify($name) .
"_group";
163 echo
"<div id='{$id}_description' class='{$this->form->groupDescriptionCSS}'>{$desc}</div>";
166 unset($this->groupName);
171 function startField($field, $renderer, $colspan = 1, $styles =
"")
173 if ($renderer->colspan > 1) $styles =
"text-align: left;$styles";
175 echo
"<tr class='{$renderer->parent->id}_{$field}_field'>\n";
177 $this->
printLabel($field, $renderer, $styles, ($renderer->annotateBefore && $renderer->colspan > 1) ?
"<br/>".$renderer->parent->annotations[$field] :
"");
179 if ($renderer->colspan > 1)
182 echo
"<tr class='{$renderer->parent->id}_{$field}_field'>\n";
184 echo
"<td colspan='{$renderer->colspan}'";
185 if ($renderer->parent->valueCSS) echo
" class='{$renderer->parent->valueCSS}'";
188 if ($renderer->parent->showAnnotations && $renderer->annotateBefore && $renderer->parent->annotations[$field] && $renderer->colspan == 1)
190 echo $renderer->parent->annotations[$field].
"<br/>";
196 if ($renderer->parent->showAnnotations && !$renderer->annotateBefore && $renderer->parent->annotations[$field])
198 if ($renderer->annotateNextLine)
206 echo $renderer->parent->annotations[$field];
209 echo
"</td>\n</tr>\n";
220 function printLabel($field, $renderer, $styles =
"", $annotation =
"")
222 $colspan = $renderer->colspan;
223 if ($renderer->hideLabel && $colspan > 1 && !$annotation)
return;
225 $label = $this->
getLabel($field, $renderer);
227 echo
"<td colspan='$colspan'";
228 if ($renderer->parent->labelCSS) echo
" class='{$renderer->parent->labelCSS}'";
229 if ($styles) echo
" style='$styles'";
232 if (!$renderer->hideLabel) echo
"<label id='".$this->getLabelID($field).
"' for='$field'>$label</label> ";
234 echo
"$annotation</td>\n";
240 if ($this->form->formCSS) echo
" class='{$this->form->formCSS}'";
241 if ($this->form->style) echo
" style='{$this->form->style}'";
253 echo
" <td colspan='2' class='{$this->form->buttonLineCSS}' style='text-align: {$this->form->buttonAlignment}'><br/>";
263 echo
"<tr>\n <td colspan='2' id='{$this->form->id}__error' class='error' style='display: ".($this->form->msg ?
'table-cell' :
'none').
"'>{$this->form->msg}</td></tr>\n";
268 echo
"<tr>\n <td colspan='2'><span class='required_text'>{$text}</span></td></tr>\n";
280 parent::__construct(
$form);
283 function startGroup($name, $collapsible =
false, $collapsed =
false)
301 parent::__construct(
$form);
304 function startGroup($name, $collapsible =
false, $collapsed =
false)
322 parent::__construct(
$form);
325 function startGroup($name, $collapsible =
false, $collapsed =
false)
336 function startField($field, $renderer, $colspan = 1, $styles =
"")
339 if ($renderer->parent->valueCSS) echo
" class='{$renderer->parent->valueCSS}'";
342 if ($renderer->annotateBefore && $renderer->parent->annotations[$field] && $renderer->colspan == 1)
344 echo $renderer->parent->annotations[$field].
"<br/>";
366 function printLabel($field, $renderer, $styles =
"", $annotation =
"")
370 $label = $this->
getLabel($field, $renderer);
373 if ($renderer->parent->labelCSS) echo
" class='{$renderer->parent->labelCSS}'";
374 if ($styles) echo
" style='$styles'";
377 echo
"<label id='".$this->getLabelID($field).
"' for='$field'>$label</label> ";
379 echo
"$annotation</th>\n";
382 function getLabel($field, $renderer, $addSuffix =
true)
384 $obj = $renderer->parent->getData();
385 $label = isset($renderer->label) ? $renderer->label : $renderer->parent->prettifyFieldName($field);
387 if ($renderer->parent->markRequiredFields &&
388 $renderer->parent->isRequired($field))
393 $label .= $renderer->labelSuffix;
395 if ($renderer->parent->onFormatLabel)
397 $fn = $renderer->parent->onFormatLabel;
398 $label = $fn($renderer->parent, $field, $label);
406 echo
"<tr id='{$this->form->id}_container' class='{$this->form->containerClass}'>\n";
426 echo
"<tr>\n <td colspan='{$this->form->parent->colCount}' id='{$this->form->id}__error' class='error' style='display: ".($this->form->msg ?
'table-cell' :
'none').
"'>{$this->form->msg}</td></tr>\n";
440 parent::__construct(
$form);
445 echo
"<tr id='{$this->form->id}_container' class='{$this->form->containerClass}'><th style='text-align: center'> </th>\n";
462 parent::__construct(
$form);
465 function startGroup($name, $collapsible =
false, $collapsed =
false)
476 function startField($field, $renderer, $colspan = 1, $styles =
"")
479 if ($renderer->parent->valueCSS) echo
" class='{$renderer->parent->valueCSS}'";
482 if ($renderer->annotateBefore && $renderer->parent->annotations[$field] && $renderer->colspan == 1)
484 echo $renderer->parent->annotations[$field].
"<br/>";
506 function printLabel($field, $renderer, $styles =
"", $annotation =
"")
511 function getLabel($field, $renderer, $addSuffix =
true)
518 echo
"<tr id='{$this->form->id}_container' class='{$this->form->containerClass}'>\n";
538 echo
"<tr>\n <td colspan='{$this->form->parent->colCount}' id='{$this->form->id}__error' class='error' style='display: ".($this->form->msg ?
'table-cell' :
'none').
"'>{$this->form->msg}</td></tr>\n";
551 parent::__construct(
$form);
556 $selected = $this->form->isSelected ?
" checked='checked'" :
"";
558 echo
"<tr id='{$this->form->id}_container' class='{$this->form->containerClass}'><td style='text-align: center'><input type='checkbox' class='checkbox selector'$selected id='{$this->form->id}__selected' name='#selected' value='1'/></td>\n";
571 parent::__construct(
$form);
574 function startGroup($name, $collapsible =
false, $collapsed =
false)
584 function startField($field, $renderer, $colspan = 1, $styles =
"")
596 echo
"<p><span class='required_text'>$text</span></p>";
599 function printLabel($field, $renderer, $styles =
"", $annotation =
"")
604 function getLabel($field, $renderer, $addSuffix =
true)
612 if ($this->form->formCSS) echo
" class='{$this->form->formCSS}'";
613 if ($this->form->style) echo
" style='{$this->form->style}'";
625 echo
" <td colspan='{$this->form->colCount}' class='{$this->form->buttonLineCSS}' style='text-align: {$this->form->buttonAlignment}'><br/>";
635 echo
"<div id='{$this->form->id}__error' class='error' style='display: ".($this->form->msg ?
'table-cell' :
'none').
"'>{$this->form->msg}</div>\n";
646 parent::__construct(
$form);
649 function startGroup($name, $collapsible =
false, $collapsed =
false)
651 $class = $this->
getGroupClass($name, $collapsible, $collapsed);
653 $id = $this->form->id .
"_" .
codify($name) .
"_group";
655 echo
"<fieldset id='$id'$class><legend>$name</legend>";
657 $desc = $this->form->getGroupDescription($name,
"start");
660 echo
"<div id='{$id}_description' class='{$this->form->groupDescriptionCSS}'>{$desc}</div>";
662 $this->groupName = $name;
670 $name = $this->groupName;
672 $desc = $this->form->getGroupDescription($name,
"end");
675 $id = $this->form->id .
"_" .
codify($name) .
"_group";
676 echo
"<div id='{$id}_description' class='{$this->form->groupDescriptionCSS}'>{$desc}</div>";
679 unset($this->groupName);
683 function startField($field, $renderer, $colspan = 1, $styles =
"")
685 echo
"<div class='field {$renderer->parent->id}_{$field}_field'>\n";
687 $this->
printLabel($field, $renderer, $styles, $this->parent->annotations[$field]);
689 if (!$renderer->hideLabel) echo
"<br/>\n";
691 if ($renderer->parent->showAnnotations && $renderer->annotateBefore && $renderer->parent->annotations[$field])
693 echo $renderer->parent->annotations[$field].
"<br/>";
699 if ($renderer->parent->showAnnotations && !$renderer->annotateBefore && $renderer->parent->annotations[$field])
701 if ($renderer->annotateNextLine)
709 echo $renderer->parent->annotations[$field];
723 function printLabel($field, $renderer, $styles =
"", $annotation =
"")
725 $colspan = $renderer->colspan;
726 if ($renderer->hideLabel && !$annotation)
return;
728 $label = $this->
getLabel($field, $renderer);
730 if (!$renderer->hideLabel)
732 echo
"<label id='".$this->getLabelID($field).
"' for='$field'";
733 if ($renderer->parent->labelCSS) echo
" class='{$renderer->parent->labelCSS}'";
734 if ($styles) echo
" style='$styles'";
736 echo
">$label</label> ";
739 echo
"$annotation\n";
745 if ($this->form->formCSS) echo
" class='{$this->form->formCSS}'";
746 if ($this->form->style) echo
" style='{$this->form->style}'";
757 echo
" <div class='{$this->form->buttonLineCSS}' style='text-align: {$this->form->buttonAlignment}'><br/>";
767 echo
"<div id='{$this->form->id}__error' class='error' style='display: ".($this->form->msg ?
'table-cell' :
'none').
"'>{$this->form->msg}</div>\n";
772 echo
"<p class='required_text'>{$text}</p>\n";
786 parent::__construct(
$form);
789 function startGroup($name, $collapsible =
false, $collapsed =
false)
791 $class = $this->
getGroupClass($name, $collapsible, $collapsed);
793 $id = $this->form->id .
"_" .
codify($name) .
"_group";
795 echo
"<fieldset id='$id'$class><legend>$name</legend>";
797 $desc = $this->form->getGroupDescription($name,
"start");
800 echo
"<div id='{$id}_description' class='{$this->form->groupDescriptionCSS}'>{$desc}</div>";
802 $this->groupName = $name;
810 $name = $this->groupName;
812 $desc = $this->form->getGroupDescription($name,
"end");
815 $id = $this->form->id .
"_" .
codify($name) .
"_group";
816 echo
"<div id='{$id}_description' class='{$this->form->groupDescriptionCSS}'>{$desc}</div>";
819 unset($this->groupName);
823 function startField($field, $renderer, $colspan = 1, $styles =
"")
827 $this->
printLabel($field, $renderer, $styles, $this->parent->annotations[$field]);
829 if ($renderer->parent->showAnnotations && $renderer->annotateBefore && $renderer->parent->annotations[$field])
831 echo $renderer->parent->annotations[$field].
" ";
834 if ($colspan == 2) echo
"<br/>\n";
839 if ($renderer->parent->showAnnotations && !$renderer->annotateBefore && $renderer->parent->annotations[$field])
841 if ($renderer->annotateNextLine)
849 echo $renderer->parent->annotations[$field];
863 function printLabel($field, $renderer, $styles =
"", $annotation =
"")
865 $colspan = $renderer->colspan;
866 if ($renderer->hideLabel && !$annotation)
return;
868 $label = $this->
getLabel($field, $renderer);
870 if (!$renderer->hideLabel)
872 echo
"<label id='".$this->getLabelID($field).
"' for='$field'";
873 if ($renderer->parent->labelCSS) echo
" class='{$renderer->parent->labelCSS}'";
874 if ($styles) echo
" style='$styles'";
876 echo
">$label</label> ";
879 echo
"$annotation\n";
885 if ($this->form->formCSS) echo
" class='{$this->form->formCSS}'";
886 if ($this->form->style) echo
" style='{$this->form->style}'";
898 echo
" <div class='{$this->form->buttonLineCSS}' style='text-align: {$this->form->buttonAlignment}'><br/>";
908 echo
"<div id='{$this->form->id}__error' class='error' style='display: ".($this->form->msg ?
'table-cell' :
'none').
"'>{$this->form->msg}</div>\n";
913 echo
"<p class='required_text'>{$text}</p>\n";
928 parent::__construct(
$form);
931 function startGroup($name, $collapsible =
false, $collapsed =
false)
933 $class = $this->
getGroupClass($name, $collapsible, $collapsed);
935 $id = $this->form->id .
"_" .
codify($name) .
"_group";
945 function startField($field, $renderer, $colspan = 1, $styles =
"")
947 echo
"<div class='{$renderer->cssClass}'>\n";
948 $this->
printLabel($field, $renderer, $styles,
"");
964 function printLabel($field, $renderer, $styles =
"", $annotation =
"")
966 if ($renderer->hideLabel)
return;
968 $label = $this->
getLabel($field, $renderer);
970 if (!$renderer->hideLabel) echo
"<label id='".$this->getLabelID($field).
"' for='$field'>$label</label> ";
1016 trace(
"Using form template {$template}", 3);
1017 $this->
template = file_get_contents(
$template);
1019 parent::__construct(
$form);
1022 function startGroup($name, $collapsible =
false, $collapsed =
false)
1033 function startField($field, $renderer, $colspan = 1, $styles =
"")
1035 $annotations = ($renderer->parent->showAnnotations && $renderer->annotateBefore) ? $renderer->parent->annotations[$field] :
"";
1036 $this->printLabel($field, $renderer, $styles, $annotations);
1043 $fieldContent = ob_get_contents();
1047 if ($renderer->parent->showAnnotations && !$renderer->annotateBefore && $renderer->parent->annotations[$field])
1049 if ($renderer->annotateNextLine)
1051 $fieldContent .=
"<br/>";
1055 $fieldContent .=
" ";
1058 $fieldContent .= $renderer->parent->annotations[$field];
1061 $this->
template = str_replace(
"{".$field.
"}", $fieldContent, $this->template);
1072 function printLabel($field, $renderer, $styles =
"", $annotation =
"")
1074 if ($renderer->hideLabel && !$annotation)
return;
1076 $label = $this->
getLabel($field, $renderer);
1080 if (!$renderer->hideLabel)
1082 $labelHTML .=
"<label id='".$this->getLabelID($field).
"' for='$field'";
1083 if ($renderer->parent->labelCSS) $labelHTML .=
" class='{$renderer->parent->labelCSS}'";
1084 if ($styles) $labelHTML .=
" style='$styles'";
1086 $labelHTML .=
">$label</label> ";
1089 $labelHTML .=
"$annotation\n";
1091 $this->
template = str_replace(
"{label:".$field.
"}", $labelHTML, $this->template);
1096 if (!$this->renderingForm)
1098 $this->output .=
"{FORM}";
1099 $this->renderingForm =
true;
1109 $this->output .=
"<br/>\n";
1110 $this->output .=
" <div class='{$this->form->buttonLineCSS}' style='text-align: {$this->form->buttonAlignment}'><br/>";
1118 if ($this->showButtons)
1120 $this->output .= ob_get_contents();
1124 $this->output .=
"</div><br/>";
1129 $this->output .=
"<div id='{$this->form->id}__error' class='error' style='display: ".($this->form->msg ?
'table-cell' :
'none').
"'>{$this->form->msg}</div>\n";
1134 $this->output .=
"<p class='required_text'>{$text}</p>\n";
1140 foreach($this->form->data->getFields() as $field => $type)
1142 $this->
template = str_replace(array(
"{{$field}}",
"{label:{$field}}"), array(
"",
""), $this->
template);
1145 $this->output = str_replace(
"{FORM}", $this->
template, $this->output);
codify($name)
Takes a text string and converts it into a code-compliant format, suitable for use as a variable name...
trace($msg, $lvl=3, $callStack=null)
Send output to the trace log.