1 <?php
2 /**
3 * Transformation that will make a form printable.
4 * Builds on readonly forms with different behaviour for tabsets.
5 * @package forms
6 * @subpackage transformations
7 */
8 class PrintableTransformation extends ReadonlyTransformation {
9 function transformTabSet($field) {
10 $transformedField = new PrintableTransformation_TabSet($field->Tabs()->transform($this));
11 $transformedField->Title = $field->Title();
12 $transformedField->TabSet = $field->TabSet;
13 return $transformedField;
14 }
15 }
16
17 /**
18 * Class representing printable tabsets
19 * @package forms
20 * @subpackage transformations
21 */
22 class PrintableTransformation_TabSet extends TabSet {
23 function __construct($tabs) {
24 $this->children = $tabs;
25 CompositeField::__construct($tabs);
26 }
27
28 function FieldHolder() {
29 // This gives us support for sub-tabs.
30 $tag = ($this->tabSet) ? "h2>" : "h1>";
31
32 foreach($this->children as $tab) {
33 $retVal .= "<$tag" . $tab->Title() . "</$tag\n";
34 $retVal .= $tab->FieldHolder();
35 }
36 return $retVal;
37
38 }
39
40
41 }
42
43 ?>