Removing the BSVariableRegistry and instead making public static vars in BSApp for...
[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 . '/PrinterElement.php');
29 require_once(ISSO . '/PrinterBaseElement.php');
30 require_once(ISSO . '/PrinterLabelElement.php');
31 require_once(ISSO . '/PrinterRootElement.php');
32 require_once(ISSO . '/PrinterRootElementPage.php');
33 require_once(ISSO . '/PrinterRootElementTable.php');
34 require_once(ISSO . '/PrinterRootElementForm.php');
35 require_once(ISSO . '/PrinterTableElement.php');
36
37 /**
38 * Printer System
39 *
40 * This is the root static framework module for the HTML printer system that
41 * works without templates. Here, you simply set the language and stylesheet
42 * information and use the other classes to generate the code.
43 *
44 * @author Blue Static
45 * @copyright Copyright (c)2005 - 2008, Blue Static
46 * @package ISSO
47 *
48 */
49 class BSPrinter
50 {
51 /**
52 * Singleton instance
53 * @var BSPrinter
54 */
55 private static $instance;
56
57 /**
58 * Language information for all printer elements with format array(langcode: en_US, direction: ltr/rtl, charset: utf-8)
59 * @var string
60 */
61 private $language = array('langcode' => 'en_US', 'direction' => 'ltr', 'charset' => 'utf-8');
62
63 /**
64 * CSS stylesheet to link to
65 * @var string
66 */
67 private $stylesheet;
68
69 /**
70 * Realm; the extra bit added to the title
71 * @var string
72 */
73 private $realm = 'BSPrinterOutput';
74
75 /**
76 * The copyright string used in the footer
77 * @var string
78 */
79 private $copyright;
80
81 // ###################################################################
82 /**
83 * Constructor (private)
84 */
85 private function __construct() {}
86
87 // ###################################################################
88 /**
89 * Returns the singleton instance
90 *
91 * @return BSPrinter Singleton instance
92 */
93 private static function _instance()
94 {
95 if (!self::$instance)
96 {
97 self::$instance = new BSPrinter();
98 }
99 return self::$instance;
100 }
101
102 /**
103 * Returns the copyright string
104 *
105 * @return string
106 */
107 public static function get_copyright()
108 {
109 self::_instance()->copyright;
110 }
111
112 /**
113 * Sets the copyright string
114 *
115 * @param string The copyright string
116 */
117 public static function set_copyright($copyright)
118 {
119 self::_instance()->copyright = $copyright;
120 }
121
122 // ###################################################################
123 /**
124 * Returns the realm
125 *
126 * @return string Realm
127 */
128 public static function get_realm()
129 {
130 return self::_instance()->realm;
131 }
132
133 // ###################################################################
134 /**
135 * Sets the realm
136 *
137 * @param string Realm
138 */
139 public static function set_realm($realm)
140 {
141 self::_instance()->realm = $realm;
142 }
143
144 // ###################################################################
145 /**
146 * Returns the language array
147 *
148 * @return array Language array
149 */
150 public static function get_language_information()
151 {
152 return self::_instance()->language;
153 }
154
155 // ###################################################################
156 /**
157 * Sets the language array information
158 *
159 * @param array Language array
160 */
161 public static function set_language_information($lang)
162 {
163 self::_instance()->language = $lang;
164 }
165
166 // ###################################################################
167 /**
168 * Returns the stylesheet URL
169 *
170 * @return string Stylesheet link
171 */
172 public static function get_stylesheet()
173 {
174 return self::_instance()->stylesheet;
175 }
176
177 // ###################################################################
178 /**
179 * Sets the path to the CSS style sheet
180 *
181 * @param string Path
182 */
183 public static function set_stylesheet($stylesheet)
184 {
185 self::_instance()->stylesheet = $stylesheet;
186 }
187 }
188
189 ?>