]> git.vanrenterghem.biz Git - www.vanrenterghem.biz.git/blob - phpBB2/admin/xs_style_config.php
Baseline
[www.vanrenterghem.biz.git] / phpBB2 / admin / xs_style_config.php
1 <?php\r
2 \r
3 /***************************************************************************\r
4  *                            xs_style_config.php\r
5  *                            -------------------\r
6  *   copyright            : (C) 2003 - 2005 CyberAlien\r
7  *   support              : http://www.phpbbstyles.com\r
8  *\r
9  *   version              : 2.3.1\r
10  *\r
11  *   file revision        : 72\r
12  *   project revision     : 78\r
13  *   last modified        : 05 Dec 2005  13:54:54\r
14  *\r
15  ***************************************************************************/\r
16 \r
17 /***************************************************************************\r
18  *\r
19  *   This program is free software; you can redistribute it and/or modify\r
20  *   it under the terms of the GNU General Public License as published by\r
21  *   the Free Software Foundation; either version 2 of the License, or\r
22  *   (at your option) any later version.\r
23  *\r
24  ***************************************************************************/\r
25 \r
26 define('IN_PHPBB', 1);\r
27 $phpbb_root_path = "./../";\r
28 $no_page_header = true;\r
29 require($phpbb_root_path . 'extension.inc');\r
30 require('./pagestart.' . $phpEx);\r
31 \r
32 // check if mod is installed\r
33 if(empty($template->xs_version) || $template->xs_version !== 8)\r
34 {\r
35         message_die(GENERAL_ERROR, isset($lang['xs_error_not_installed']) ? $lang['xs_error_not_installed'] : 'eXtreme Styles mod is not installed. You forgot to upload includes/template.php');\r
36 }\r
37 \r
38 define('IN_XS', true);\r
39 include_once('xs_include.' . $phpEx);\r
40 \r
41 $tpl = isset($HTTP_POST_VARS['tpl']) ? $HTTP_POST_VARS['tpl'] : (isset($HTTP_GET_VARS['tpl']) ? $HTTP_GET_VARS['tpl'] : '');\r
42 $filename = $phpbb_root_path . 'templates/' . $tpl . '/xs_config.cfg';\r
43 \r
44 if(empty($tpl))\r
45 {\r
46         xs_error($lang['xs_invalid_style_name']);\r
47 }\r
48 if(!@file_exists($filename))\r
49 {\r
50         // remove from config\r
51         $config_name = 'xs_style_' . $tpl;\r
52         $sql = "DELETE FROM " . CONFIG_TABLE . " WHERE config_name='" . addslashes($config_name) . "'";\r
53         $db->sql_query($sql);\r
54         // recache config table for cat_hierarchy 2.1.0\r
55         if(isset($GLOBALS['config']) && is_object($GLOBALS['config']))\r
56         {\r
57                 global $config;\r
58                 $config->read(true);\r
59         }\r
60         $template->assign_block_vars('left_refresh', array(\r
61                         'ACTION'        => append_sid('index.' . $phpEx . '?pane=left')\r
62                 ));\r
63         xs_error($lang['xs_invalid_style_name']);\r
64 }\r
65 \r
66 // get configuration\r
67 $style_config = array();\r
68 include($filename);\r
69 $data = $template->get_config($tpl, false);\r
70 for($i=0; $i<count($style_config); $i++)\r
71 {\r
72         if(!isset($data[$style_config[$i]['var']]))\r
73         {\r
74                 $data[$style_config[$i]['var']] = $style_config[$i]['default'];\r
75         }\r
76 }\r
77 \r
78 \r
79 // check submitted form\r
80 if(isset($HTTP_POST_VARS['tpl']) && !defined('DEMO_MODE'))\r
81 {\r
82         for($i=0; $i<count($style_config); $i++)\r
83         {\r
84                 $item = &$style_config[$i];\r
85                 $var = $style_config[$i]['var'];\r
86                 if($item['type'] === 'list')\r
87                 {\r
88                         $value = isset($HTTP_POST_VARS['cfg_' . $var]) && is_array($HTTP_POST_VARS['cfg_' . $var]) ? $HTTP_POST_VARS['cfg_' . $var] : array();\r
89                         $list = array();\r
90                         foreach($value as $var1 => $value1)\r
91                         {\r
92                                 $list[] = $var1;\r
93                         }\r
94                         $value = implode(',', $list);\r
95                 }\r
96                 else\r
97                 {\r
98                         $value = isset($HTTP_POST_VARS['cfg_' . $var]) ? stripslashes($HTTP_POST_VARS['cfg_' . $var]) : 0;\r
99                 }\r
100                 $data[$var] = $value;\r
101         }\r
102         // update config\r
103         $str = $template->_serialize($data);\r
104         $config_name = 'xs_style_' . $tpl;\r
105         if(isset($board_config[$config_name]))\r
106         {\r
107                 $sql = "UPDATE " . CONFIG_TABLE . " SET config_value='" . addslashes($str) . "' WHERE config_name='" . addslashes($config_name) . "'";\r
108         }\r
109         else\r
110         {\r
111                 $sql = "INSERT INTO " . CONFIG_TABLE . " (config_name, config_value) VALUES ('" . addslashes($config_name) . "', '" . addslashes($str) . "')";\r
112         }\r
113         $db->sql_query($sql);\r
114         $board_config[$config_name] = $str;\r
115         // recache config table for cat_hierarchy 2.1.0\r
116         if(isset($config) && is_object($config))\r
117         {\r
118                 $config->read(true);\r
119         }\r
120 }\r
121 \r
122 \r
123 // show form\r
124 $last_cat = '';\r
125 for($i=0; $i<count($style_config); $i++)\r
126 {\r
127         $item = &$style_config[$i];\r
128         $var = $style_config[$i]['var'];\r
129         $template->assign_block_vars('item', array(\r
130                 'VAR'           => 'cfg_' . $var,\r
131                 'VALUE'         => htmlspecialchars($data[$var]),\r
132                 'DEF'           => $item['default'],\r
133                 'TYPE'          => $item['type'],\r
134                 'TEXT'          => htmlspecialchars($item['text']),\r
135                 'EXPLAIN'       => isset($item['explain']) ? $item['explain'] : '',\r
136                 ));\r
137         if($item['type'] === 'select')\r
138         {\r
139                 foreach($item['selection'] as $var1 => $value1)\r
140                 {\r
141                         $template->assign_block_vars('item.select', array(\r
142                                 'VALUE'         => htmlspecialchars($var1),\r
143                                 'TEXT'          => htmlspecialchars($value1),\r
144                                 'SELECTED'      => $data[$var] === $var1 ? 1 : 0,\r
145                                 ));\r
146                 }\r
147         }\r
148         if($item['type'] === 'list')\r
149         {\r
150                 $values = explode(',', $data[$var]);\r
151                 foreach($item['selection'] as $var => $value)\r
152                 {\r
153                         $selected = false;\r
154                         for($j=0; $j<count($values); $j++)\r
155                         {\r
156                                 if($values[$j] === $var)\r
157                                 {\r
158                                         $selected = true;\r
159                                 }\r
160                         }\r
161                         $template->assign_block_vars('item.list', array(\r
162                                 'VALUE'         => htmlspecialchars($var),\r
163                                 'TEXT'          => htmlspecialchars($value),\r
164                                 'SELECTED'      => $selected,\r
165                                 ));\r
166                         $num++;\r
167                 }\r
168         }\r
169         if(!empty($item['cat']) && $item['cat'] !== $last_cat)\r
170         {\r
171                 $template->assign_block_vars('item.cat', array(\r
172                         'TEXT'  => htmlspecialchars($item['cat'])\r
173                         ));\r
174                 $last_cat = $item['cat'];\r
175         }\r
176 }\r
177 \r
178 $template->assign_vars(array(\r
179         'TPL'           => htmlspecialchars($tpl),\r
180         'U_FORM'        => 'xs_style_config.'.$phpEx.'?sid='.$userdata['session_id'],\r
181         ));\r
182 \r
183 $template->assign_block_vars('nav_left',array('ITEM' => '&raquo; <a href="' . append_sid('xs_style_config.'.$phpEx.'?tpl='.urlencode($tpl)) . '">' . $lang['xs_style_configuration'] . ': ' . $tpl . '</a>'));\r
184 \r
185 $template->set_filenames(array('body' => XS_TPL_PATH . 'style_config.tpl'));\r
186 $template->pparse('body');\r
187 xs_exit();\r
188 \r
189 ?>