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