Adding template for error box.
[squirrelmail.git] / src / style.php
1 <?php
2 /**
3 * Style sheet script
4 *
5 * Script processes GET arguments and generates CSS output from stylesheet.tpl.
6 * Used GET arguments:
7 * <ul>
8 * <li>themeid - string, sets theme file from themes/*.php
9 * <li>templateid - string, sets template directory from templates/
10 * <li>fontset - string, sets selected set of fonts from $fontsets array.
11 * <li>fontsize - integer, sets selected font size
12 * </ul>
13 * @copyright &copy; 2005-2006 The SquirrelMail Project Team
14 * @license http://opensource.org/licenses/gpl-license.php GNU Public License
15 * @version $Id$
16 * @package squirrelmail
17 */
18
19 /** @ignore */
20 define('SM_PATH','../');
21
22 /* SquirrelMail required files. */
23 require_once(SM_PATH . 'functions/global.php');
24 require_once(SM_PATH . 'functions/strings.php');
25 require_once(SM_PATH . 'config/config.php');
26
27 /* safety check for older config.php */
28 if (!isset($fontsets) || !is_array($fontsets)) {
29 $fontsets=array();
30 }
31
32
33 /* template init */
34 /** start block copy from right_main.php */
35 include_once(SM_PATH . 'class/template/template.class.php');
36
37 /**
38 * get template name and set used template directory
39 *
40 * Existing file check has been moved into the template object, so it is
41 * not neccesary to do file_exists() here.
42 * */
43 if (sqgetGlobalVar('templateid',$templateid,SQ_GET)) {
44 $sTplDir = SM_PATH.'templates/'.basename($templateid).'/';
45 } else {
46 $sTplDir = SM_PATH.'templates/default/';
47 }
48
49 $oTemplate = new Template($sTplDir);
50 /** end block copy */
51
52 /* set default colors in case color theme is not full */
53 $color = array();
54 $color[0] = '#dcdcdc'; // (light gray) TitleBar
55 $color[1] = '#800000'; // (red)
56 $color[2] = '#cc0000'; // (light red) Warning/Error Messages
57 $color[3] = '#a0b8c8'; // (green-blue) Left Bar Background
58 $color[4] = '#ffffff'; // (white) Normal Background
59 $color[5] = '#ffffcc'; // (light yellow) Table Headers
60 $color[6] = '#000000'; // (black) Text on left bar
61 $color[7] = '#0000cc'; // (blue) Links
62 $color[8] = '#000000'; // (black) Normal text
63 $color[9] = '#ababab'; // (mid-gray) Darker version of #0
64 $color[10] = '#666666'; // (dark gray) Darker version of #9
65 $color[11] = '#770000'; // (dark red) Special Folders color
66 $color[12] = '#ededed'; // (light gray) Alternate color for message list
67 $color[13] = '#800000'; // (dark red) Color for quoted text -- > 1 quote
68 $color[14] = '#ff0000'; // (red) Color for quoted text -- >> 2 or more
69 $color[15] = '#002266'; // (dark blue) Unselectable folders
70 $color[16] = '#ff9933'; // (orange) Highlight color
71
72 /** get theme from GET */
73 if (sqgetGlobalVar('themeid',$themeid,SQ_GET) &&
74 file_exists(SM_PATH . 'themes/'.basename($themeid,'.php').'.php')) {
75 include_once(SM_PATH . 'themes/'.basename($themeid,'.php').'.php');
76 } elseif (file_exists($theme[$theme_default]['PATH'])) {
77 include_once($theme[$theme_default]['PATH']);
78 }
79
80 /**
81 * Get text direction
82 */
83 if (sqgetGlobalVar('dir',$text_direction,SQ_GET) &&
84 $text_direction == 'rtl') {
85 $align = array('left' => 'right', 'right' => 'left');
86 } else {
87 $align = array('left' => 'left', 'right' => 'right');
88 }
89
90 /**/
91 $oTemplate->assign('color', $color);
92
93 /**
94 * set color constants in order to use simple names instead of color array
95 * 0 - SQM_TEXT_DISABLED, SQM_TITLE_BACKGROUND, SQM_BUTTON_BACKGROUND_DISABLED,
96 * SQM_ROW_BACKGROUND_1
97 * 1 -
98 * 2 - SQM_ERROR_TEXT
99 * 3 - SQM_BACKGROUND_LEFT
100 * 4 - SQM_BACKGROUND
101 * 5 - SQM_ROW_BACKGROUND_HIGHLIGHT, SQM_COLUMN_HEADER_BACKGROUND
102 * 6 - SQM_TEXT_STANDARD_LEFT
103 * 7 - SQM_TITLE_TEXT, SQM_BLOCK_TITLE_TEXT
104 * 8 - SQM_TEXT_STANDARD, SQM_BUTTON_TEXT, SQM_BLOCK_TEXT, SQM_ROW_TEXT_1,
105 * SQM_ROW_TEXT_2, SQM_ROW_TEXT_HIGHLIGHT, SQM_ROW_TEXT_SELECTED,
106 * SQM_COLUMN_HEADER_TEXT
107 * 9 - SQM_BUTTON_BACKGROUND
108 * 10 - SQM_BLOCK_TITLE
109 * 11 - SQM_TEXT_SPECIAL
110 * 12 - SQM_BUTTON_BACKGROUND_TEXT, SQM_BLOCK_BACKGROUND, SQM_ROW_BACKGROUND_2
111 * 13 - SQM_MESSAGE_QUOTE_1
112 * 14 - SQM_MESSAGE_QUOTE_2
113 * 15 - SQM_TEXT_HIGHLIGHT
114 * 16 - SQM_ROW_BACKGROUND_SELECTED
115 */
116 define('SQM_BACKGROUND',$color[4]);
117 define('SQM_BACKGROUND_LEFT',$color[3]);
118
119 define('SQM_TEXT_STANDARD',$color[8]);
120 define('SQM_TEXT_STANDARD_LEFT',$color[6]);
121 define('SQM_TEXT_HIGHLIGHT',$color[15]);
122 define('SQM_TEXT_DISABLED',$color[0]);
123 define('SQM_TEXT_SPECIAL',$color[11]);
124
125 define('SQM_LINK',$color[7]);
126 define('SQM_LINK_LEFT',$color[6]);
127
128 define('SQM_TITLE_BACKGROUND',$color[0]);
129 define('SQM_TITLE_TEXT',$color[7]);
130
131 define('SQM_BUTTON_BACKGROUND',$color[9]);
132 define('SQM_BUTTON_TEXT',$color[8]);
133 define('SQM_BUTTON_BACKGROUND_DISABLED',$color[0]);
134 define('SQM_BUTTON_BACKGROUND_TEXT',$color[12]);
135
136 define('SQM_BLOCK_BACKGROUND',$color[12]);
137 define('SQM_BLOCK_TEXT',$color[8]);
138 define('SQM_BLOCK_TITLE',$color[10]);
139 define('SQM_BLOCK_TITLE_TEXT',$color[7]);
140
141 define('SQM_ROW_BACKGROUND_1',$color[0]);
142 define('SQM_ROW_BACKGROUND_2',$color[12]);
143 define('SQM_ROW_TEXT_1',$color[8]);
144 define('SQM_ROW_TEXT_2',$color[8]);
145 define('SQM_ROW_BACKGROUND_HIGHLIGHT',$color[5]);
146 define('SQM_ROW_TEXT_HIGHLIGHT',$color[8]);
147 define('SQM_ROW_BACKGROUND_SELECTED',$color[16]);
148 define('SQM_ROW_TEXT_SELECTED',$color[8]);
149
150 define('SQM_COLUMN_HEADER_BACKGROUND',$color[5]);
151 define('SQM_COLUMN_HEADER_TEXT',$color[8]);
152
153 define('SQM_MESSAGE_QUOTE_1',$color[13]);
154 define('SQM_MESSAGE_QUOTE_2',$color[14]);
155
156 define('SQM_ERROR_TEXT',$color[2]);
157
158 define('SQM_ALIGN_LEFT', $align['left']);
159 define('SQM_ALIGN_RIGHT', $align['right']);
160
161 if (sqgetGlobalVar('fontset',$fontset,SQ_GET) &&
162 isset($fontsets[$fontset])) {
163 $fontfamily=$fontsets[$fontset];
164 } else {
165 $fontfamily='';
166 }
167 $oTemplate->assign('fontfamily', $fontfamily);
168
169 if (! sqgetGlobalVar('fontsize',$fontsize,SQ_GET)) {
170 $fontsize = 0;
171 } else {
172 $fontsize = (int) $fontsize;
173 }
174 $oTemplate->assign('fontsize', $fontsize);
175
176 header('Content-Type: text/css');
177 // output a last-modified header if we can
178 if ( $lastmod = @filemtime($oTemplate->template_dir . 'stylesheet.tpl') ) {
179 $gmlastmod = gmdate('D, d M Y H:i:s', $lastmod) . ' GMT';
180 header('Last-Modified: ' . $gmlastmod);
181 }
182 $oTemplate->display('stylesheet.tpl');
183
184 /**
185 * Include any additional stylesheets provided by the template
186 */
187 $template_css = $oTemplate->getAdditionalStyleSheets();
188 foreach ($template_css as $stylesheet) {
189 $oTemplate->display($stylesheet);
190 }
191
192 ?>