Add Decorator.js to do the nav javascript stuff
[isso.git] / Printer.php
1 <?php
2 /*=====================================================================*\
3 || ###################################################################
4 || # Blue Static ISSO Framework
5 || # Copyright (c)2005-2008 Blue Static
6 || #
7 || # This program is free software; you can redistribute it and/or modify
8 || # it under the terms of the GNU General Public License as published by
9 || # the Free Software Foundation; version 2 of the License.
10 || #
11 || # This program is distributed in the hope that it will be useful, but
12 || # WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
13 || # or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
14 || # more details.
15 || #
16 || # You should have received a copy of the GNU General Public License along
17 || # with this program; if not, write to the Free Software Foundation, Inc.,
18 || # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
19 || ###################################################################
20 \*=====================================================================*/
21
22 /**
23 * Printer System (printer.php)
24 *
25 * @package ISSO
26 */
27
28 require_once(ISSO . '/PrinterAbstract.php');
29 require_once(ISSO . '/PrinterElement.php');
30 require_once(ISSO . '/PrinterElementLabel.php');
31 require_once(ISSO . '/PrinterElementTable.php');
32 require_once(ISSO . '/PrinterRootAbstract.php');
33 require_once(ISSO . '/PrinterRootForm.php');
34 require_once(ISSO . '/PrinterRootPage.php');
35 require_once(ISSO . '/PrinterRootTable.php');
36 require_once(ISSO . '/PrinterNavigation.php');
37
38 /**
39 * Printer System
40 *
41 * This is the root static framework module for the HTML printer system that
42 * works without templates. Here, you simply set the language and stylesheet
43 * information and use the other classes to generate the code.
44 *
45 * @author Blue Static
46 * @copyright Copyright (c)2005 - 2008, Blue Static
47 * @package ISSO
48 *
49 */
50 class BSPrinter
51 {
52 /**
53 * Singleton instance
54 * @var BSPrinter
55 */
56 private static $instance;
57
58 /**
59 * Language information for all printer elements with format array(langcode: en_US, direction: ltr/rtl, charset: utf-8)
60 * @var string
61 */
62 private $language = array('langcode' => 'en_US', 'direction' => 'ltr', 'charset' => 'utf-8');
63
64 /**
65 * CSS stylesheet to link to
66 * @var string
67 */
68 private $stylesheet;
69
70 /**
71 * Realm; the extra bit added to the title
72 * @var string
73 */
74 private $realm = 'BSPrinterOutput';
75
76 /**
77 * The copyright string used in the footer
78 * @var string
79 */
80 private $copyright;
81
82 /**
83 * Constructor (private)
84 */
85 private function __construct() {}
86
87 /**
88 * Returns the singleton instance
89 *
90 * @return BSPrinter Singleton instance
91 */
92 private static function _instance()
93 {
94 if (!self::$instance)
95 {
96 self::$instance = new BSPrinter();
97 }
98 return self::$instance;
99 }
100
101 /**
102 * Returns the copyright string
103 *
104 * @return string
105 */
106 public static function get_copyright()
107 {
108 self::_instance()->copyright;
109 }
110
111 /**
112 * Sets the copyright string
113 *
114 * @param string The copyright string
115 */
116 public static function set_copyright($copyright)
117 {
118 self::_instance()->copyright = $copyright;
119 }
120
121 /**
122 * Returns the realm
123 *
124 * @return string Realm
125 */
126 public static function get_realm()
127 {
128 return self::_instance()->realm;
129 }
130
131 /**
132 * Sets the realm
133 *
134 * @param string Realm
135 */
136 public static function set_realm($realm)
137 {
138 self::_instance()->realm = $realm;
139 }
140
141 /**
142 * Returns the language array
143 *
144 * @return array Language array
145 */
146 public static function get_language_information()
147 {
148 return self::_instance()->language;
149 }
150
151 /**
152 * Sets the language array information
153 *
154 * @param array Language array
155 */
156 public static function set_language_information($lang)
157 {
158 self::_instance()->language = $lang;
159 }
160
161 /**
162 * Returns the stylesheet URL
163 *
164 * @return string Stylesheet link
165 */
166 public static function get_stylesheet()
167 {
168 return self::_instance()->stylesheet;
169 }
170
171 /**
172 * Sets the path to the CSS style sheet
173 *
174 * @param string Path
175 */
176 public static function set_stylesheet($stylesheet)
177 {
178 self::_instance()->stylesheet = $stylesheet;
179 }
180 }
181
182 ?>