1 | <?php
|
---|
2 | /***************************************************************************
|
---|
3 | * admin_styles.php
|
---|
4 | * -------------------
|
---|
5 | * begin : Thursday, Jul 12, 2001
|
---|
6 | * copyright : (C) 2001 The phpBB Group
|
---|
7 | * email : support@phpbb.com
|
---|
8 | *
|
---|
9 | * $Id: admin_styles.php,v 1.27.2.16 2005/12/18 13:57:50 grahamje Exp $
|
---|
10 | *
|
---|
11 | *
|
---|
12 | ***************************************************************************/
|
---|
13 |
|
---|
14 | /***************************************************************************
|
---|
15 | *
|
---|
16 | * This program is free software; you can redistribute it and/or modify
|
---|
17 | * it under the terms of the GNU General Public License as published by
|
---|
18 | * the Free Software Foundation; either version 2 of the License, or
|
---|
19 | * (at your option) any later version.
|
---|
20 | *
|
---|
21 | ***************************************************************************/
|
---|
22 |
|
---|
23 | define('IN_PHPBB', 1);
|
---|
24 |
|
---|
25 | if( !empty($setmodules) )
|
---|
26 | {
|
---|
27 | $file = basename(__FILE__);
|
---|
28 | $module['Styles']['Add_new'] = "$file?mode=addnew";
|
---|
29 | $module['Styles']['Create_new'] = "$file?mode=create";
|
---|
30 | $module['Styles']['Manage'] = $file;
|
---|
31 | $module['Styles']['Export'] = "$file?mode=export";
|
---|
32 | return;
|
---|
33 | }
|
---|
34 |
|
---|
35 | //
|
---|
36 | // Load default header
|
---|
37 | //
|
---|
38 | //
|
---|
39 | // Check if the user has cancled a confirmation message.
|
---|
40 | //
|
---|
41 | $phpbb_root_path = "./../";
|
---|
42 | require($phpbb_root_path . 'extension.inc');
|
---|
43 |
|
---|
44 | $confirm = ( isset($HTTP_POST_VARS['confirm']) ) ? TRUE : FALSE;
|
---|
45 | $cancel = ( isset($HTTP_POST_VARS['cancel']) ) ? TRUE : FALSE;
|
---|
46 |
|
---|
47 | $no_page_header = (!empty($HTTP_POST_VARS['send_file']) || $cancel) ? TRUE : FALSE;
|
---|
48 |
|
---|
49 | require('./pagestart.' . $phpEx);
|
---|
50 |
|
---|
51 | $confirm = ( isset($HTTP_POST_VARS['confirm']) ) ? TRUE : FALSE;
|
---|
52 | $cancel = ( isset($HTTP_POST_VARS['cancel']) ) ? TRUE : FALSE;
|
---|
53 |
|
---|
54 | if ($cancel)
|
---|
55 | {
|
---|
56 | redirect('admin/' . append_sid("admin_styles.$phpEx", true));
|
---|
57 | }
|
---|
58 |
|
---|
59 | if( isset($HTTP_GET_VARS['mode']) || isset($HTTP_POST_VARS['mode']) )
|
---|
60 | {
|
---|
61 | $mode = ( isset($HTTP_GET_VARS['mode']) ) ? $HTTP_GET_VARS['mode'] : $HTTP_POST_VARS['mode'];
|
---|
62 | $mode = htmlspecialchars($mode);
|
---|
63 | }
|
---|
64 | else
|
---|
65 | {
|
---|
66 | $mode = "";
|
---|
67 | }
|
---|
68 |
|
---|
69 | switch( $mode )
|
---|
70 | {
|
---|
71 | case "addnew":
|
---|
72 | $install_to = ( isset($HTTP_GET_VARS['install_to']) ) ? urldecode($HTTP_GET_VARS['install_to']) : $HTTP_POST_VARS['install_to'];
|
---|
73 | $style_name = ( isset($HTTP_GET_VARS['style']) ) ? urldecode($HTTP_GET_VARS['style']) : $HTTP_POST_VARS['style'];
|
---|
74 |
|
---|
75 | if( isset($install_to) )
|
---|
76 | {
|
---|
77 |
|
---|
78 | include($phpbb_root_path. "templates/" . basename($install_to) . "/theme_info.cfg");
|
---|
79 |
|
---|
80 | $template_name = $$install_to;
|
---|
81 | $found = FALSE;
|
---|
82 |
|
---|
83 | for($i = 0; $i < count($template_name) && !$found; $i++)
|
---|
84 | {
|
---|
85 | if( $template_name[$i]['style_name'] == $style_name )
|
---|
86 | {
|
---|
87 | while(list($key, $val) = each($template_name[$i]))
|
---|
88 | {
|
---|
89 | $db_fields[] = $key;
|
---|
90 | $db_values[] = str_replace("\'", "''" , $val);
|
---|
91 | }
|
---|
92 | }
|
---|
93 | }
|
---|
94 |
|
---|
95 | $sql = "INSERT INTO " . THEMES_TABLE . " (";
|
---|
96 |
|
---|
97 | for($i = 0; $i < count($db_fields); $i++)
|
---|
98 | {
|
---|
99 | $sql .= $db_fields[$i];
|
---|
100 | if($i != (count($db_fields) - 1))
|
---|
101 | {
|
---|
102 | $sql .= ", ";
|
---|
103 | }
|
---|
104 |
|
---|
105 | }
|
---|
106 |
|
---|
107 | $sql .= ") VALUES (";
|
---|
108 |
|
---|
109 | for($i = 0; $i < count($db_values); $i++)
|
---|
110 | {
|
---|
111 | $sql .= "'" . $db_values[$i] . "'";
|
---|
112 | if($i != (count($db_values) - 1))
|
---|
113 | {
|
---|
114 | $sql .= ", ";
|
---|
115 | }
|
---|
116 | }
|
---|
117 | $sql .= ")";
|
---|
118 |
|
---|
119 | if( !$result = $db->sql_query($sql) )
|
---|
120 | {
|
---|
121 | message_die(GENERAL_ERROR, "Could not insert theme data!", "", __LINE__, __FILE__, $sql);
|
---|
122 | }
|
---|
123 |
|
---|
124 | $message = $lang['Theme_installed'] . "<br /><br />" . sprintf($lang['Click_return_styleadmin'], "<a href=\"" . append_sid("admin_styles.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");
|
---|
125 |
|
---|
126 | message_die(GENERAL_MESSAGE, $message);
|
---|
127 | }
|
---|
128 | else
|
---|
129 | {
|
---|
130 |
|
---|
131 | $installable_themes = array();
|
---|
132 |
|
---|
133 | if( $dir = @opendir($phpbb_root_path. "templates/") )
|
---|
134 | {
|
---|
135 | while( $sub_dir = @readdir($dir) )
|
---|
136 | {
|
---|
137 | if( !is_file(phpbb_realpath($phpbb_root_path . 'templates/' .$sub_dir)) && !is_link(phpbb_realpath($phpbb_root_path . 'templates/' .$sub_dir)) && $sub_dir != "." && $sub_dir != ".." && $sub_dir != "CVS" )
|
---|
138 | {
|
---|
139 | if( @file_exists(@phpbb_realpath($phpbb_root_path. "templates/" . $sub_dir . "/theme_info.cfg")) )
|
---|
140 | {
|
---|
141 | include($phpbb_root_path. "templates/" . $sub_dir . "/theme_info.cfg");
|
---|
142 |
|
---|
143 | for($i = 0; $i < count($$sub_dir); $i++)
|
---|
144 | {
|
---|
145 | $working_data = $$sub_dir;
|
---|
146 |
|
---|
147 | $style_name = $working_data[$i]['style_name'];
|
---|
148 |
|
---|
149 | $sql = "SELECT themes_id
|
---|
150 | FROM " . THEMES_TABLE . "
|
---|
151 | WHERE style_name = '" . str_replace("\'", "''", $style_name) . "'";
|
---|
152 | if(!$result = $db->sql_query($sql))
|
---|
153 | {
|
---|
154 | message_die(GENERAL_ERROR, "Could not query themes table!", "", __LINE__, __FILE__, $sql);
|
---|
155 | }
|
---|
156 |
|
---|
157 | if(!$db->sql_numrows($result))
|
---|
158 | {
|
---|
159 | $installable_themes[] = $working_data[$i];
|
---|
160 | }
|
---|
161 | }
|
---|
162 | }
|
---|
163 | }
|
---|
164 | }
|
---|
165 |
|
---|
166 | $template->set_filenames(array(
|
---|
167 | "body" => "admin/styles_addnew_body.tpl")
|
---|
168 | );
|
---|
169 |
|
---|
170 | $template->assign_vars(array(
|
---|
171 | "L_STYLES_TITLE" => $lang['Styles_admin'],
|
---|
172 | "L_STYLES_ADD_TEXT" => $lang['Styles_addnew_explain'],
|
---|
173 | "L_STYLE" => $lang['Style'],
|
---|
174 | "L_TEMPLATE" => $lang['Template'],
|
---|
175 | "L_INSTALL" => $lang['Install'],
|
---|
176 | "L_ACTION" => $lang['Action'])
|
---|
177 | );
|
---|
178 |
|
---|
179 | for($i = 0; $i < count($installable_themes); $i++)
|
---|
180 | {
|
---|
181 | $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
|
---|
182 | $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
|
---|
183 |
|
---|
184 | $template->assign_block_vars("styles", array(
|
---|
185 | "ROW_CLASS" => $row_class,
|
---|
186 | "ROW_COLOR" => "#" . $row_color,
|
---|
187 | "STYLE_NAME" => $installable_themes[$i]['style_name'],
|
---|
188 | "TEMPLATE_NAME" => $installable_themes[$i]['template_name'],
|
---|
189 |
|
---|
190 | "U_STYLES_INSTALL" => append_sid("admin_styles.$phpEx?mode=addnew&style=" . urlencode($installable_themes[$i]['style_name']) . "&install_to=" . urlencode($installable_themes[$i]['template_name'])))
|
---|
191 | );
|
---|
192 |
|
---|
193 | }
|
---|
194 | $template->pparse("body");
|
---|
195 |
|
---|
196 | }
|
---|
197 | closedir($dir);
|
---|
198 | }
|
---|
199 | break;
|
---|
200 |
|
---|
201 | case "create":
|
---|
202 | case "edit":
|
---|
203 | $submit = ( isset($HTTP_POST_VARS['submit']) ) ? TRUE : 0;
|
---|
204 |
|
---|
205 | if( $submit )
|
---|
206 | {
|
---|
207 | //
|
---|
208 | // DAMN! Thats alot of data to validate...
|
---|
209 | //
|
---|
210 | $updated['style_name'] = $HTTP_POST_VARS['style_name'];
|
---|
211 | $updated['template_name'] = $HTTP_POST_VARS['template_name'];
|
---|
212 | $updated['head_stylesheet'] = $HTTP_POST_VARS['head_stylesheet'];
|
---|
213 | $updated['body_background'] = $HTTP_POST_VARS['body_background'];
|
---|
214 | $updated['body_bgcolor'] = $HTTP_POST_VARS['body_bgcolor'];
|
---|
215 | $updated['body_text'] = $HTTP_POST_VARS['body_text'];
|
---|
216 | $updated['body_link'] = $HTTP_POST_VARS['body_link'];
|
---|
217 | $updated['body_vlink'] = $HTTP_POST_VARS['body_vlink'];
|
---|
218 | $updated['body_alink'] = $HTTP_POST_VARS['body_alink'];
|
---|
219 | $updated['body_hlink'] = $HTTP_POST_VARS['body_hlink'];
|
---|
220 | $updated['tr_color1'] = $HTTP_POST_VARS['tr_color1'];
|
---|
221 | $updated_name['tr_color1_name'] = $HTTP_POST_VARS['tr_color1_name'];
|
---|
222 | $updated['tr_color2'] = $HTTP_POST_VARS['tr_color2'];
|
---|
223 | $updated_name['tr_color2_name'] = $HTTP_POST_VARS['tr_color2_name'];
|
---|
224 | $updated['tr_color3'] = $HTTP_POST_VARS['tr_color3'];
|
---|
225 | $updated_name['tr_color3_name'] = $HTTP_POST_VARS['tr_color3_name'];
|
---|
226 | $updated['tr_class1'] = $HTTP_POST_VARS['tr_class1'];
|
---|
227 | $updated_name['tr_class1_name'] = $HTTP_POST_VARS['tr_class1_name'];
|
---|
228 | $updated['tr_class2'] = $HTTP_POST_VARS['tr_class2'];
|
---|
229 | $updated_name['tr_class2_name'] = $HTTP_POST_VARS['tr_class2_name'];
|
---|
230 | $updated['tr_class3'] = $HTTP_POST_VARS['tr_class3'];
|
---|
231 | $updated_name['tr_class3_name'] = $HTTP_POST_VARS['tr_class3_name'];
|
---|
232 | $updated['th_color1'] = $HTTP_POST_VARS['th_color1'];
|
---|
233 | $updated_name['th_color1_name'] = $HTTP_POST_VARS['th_color1_name'];
|
---|
234 | $updated['th_color2'] = $HTTP_POST_VARS['th_color2'];
|
---|
235 | $updated_name['th_color2_name'] = $HTTP_POST_VARS['th_color2_name'];
|
---|
236 | $updated['th_color3'] = $HTTP_POST_VARS['th_color3'];
|
---|
237 | $updated_name['th_color3_name'] = $HTTP_POST_VARS['th_color3_name'];
|
---|
238 | $updated['th_class1'] = $HTTP_POST_VARS['th_class1'];
|
---|
239 | $updated_name['th_class1_name'] = $HTTP_POST_VARS['th_class1_name'];
|
---|
240 | $updated['th_class2'] = $HTTP_POST_VARS['th_class2'];
|
---|
241 | $updated_name['th_class2_name'] = $HTTP_POST_VARS['th_class2_name'];
|
---|
242 | $updated['th_class3'] = $HTTP_POST_VARS['th_class3'];
|
---|
243 | $updated_name['th_class3_name'] = $HTTP_POST_VARS['th_class3_name'];
|
---|
244 | $updated['td_color1'] = $HTTP_POST_VARS['td_color1'];
|
---|
245 | $updated_name['td_color1_name'] = $HTTP_POST_VARS['td_color1_name'];
|
---|
246 | $updated['td_color2'] = $HTTP_POST_VARS['td_color2'];
|
---|
247 | $updated_name['td_color2_name'] = $HTTP_POST_VARS['td_color2_name'];
|
---|
248 | $updated['td_color3'] = $HTTP_POST_VARS['td_color3'];
|
---|
249 | $updated_name['td_color3_name'] = $HTTP_POST_VARS['td_color3_name'];
|
---|
250 | $updated['td_class1'] = $HTTP_POST_VARS['td_class1'];
|
---|
251 | $updated_name['td_class1_name'] = $HTTP_POST_VARS['td_class1_name'];
|
---|
252 | $updated['td_class2'] = $HTTP_POST_VARS['td_class2'];
|
---|
253 | $updated_name['td_class2_name'] = $HTTP_POST_VARS['td_class2_name'];
|
---|
254 | $updated['td_class3'] = $HTTP_POST_VARS['td_class3'];
|
---|
255 | $updated_name['td_class3_name'] = $HTTP_POST_VARS['td_class3_name'];
|
---|
256 | $updated['fontface1'] = $HTTP_POST_VARS['fontface1'];
|
---|
257 | $updated_name['fontface1_name'] = $HTTP_POST_VARS['fontface1_name'];
|
---|
258 | $updated['fontface2'] = $HTTP_POST_VARS['fontface2'];
|
---|
259 | $updated_name['fontface2_name'] = $HTTP_POST_VARS['fontface2_name'];
|
---|
260 | $updated['fontface3'] = $HTTP_POST_VARS['fontface3'];
|
---|
261 | $updated_name['fontface3_name'] = $HTTP_POST_VARS['fontface3_name'];
|
---|
262 | $updated['fontsize1'] = intval($HTTP_POST_VARS['fontsize1']);
|
---|
263 | $updated_name['fontsize1_name'] = $HTTP_POST_VARS['fontsize1_name'];
|
---|
264 | $updated['fontsize2'] = intval($HTTP_POST_VARS['fontsize2']);
|
---|
265 | $updated_name['fontsize2_name'] = $HTTP_POST_VARS['fontsize2_name'];
|
---|
266 | $updated['fontsize3'] = intval($HTTP_POST_VARS['fontsize3']);
|
---|
267 | $updated_name['fontsize3_name'] = $HTTP_POST_VARS['fontsize3_name'];
|
---|
268 | $updated['fontcolor1'] = $HTTP_POST_VARS['fontcolor1'];
|
---|
269 | $updated_name['fontcolor1_name'] = $HTTP_POST_VARS['fontcolor1_name'];
|
---|
270 | $updated['fontcolor2'] = $HTTP_POST_VARS['fontcolor2'];
|
---|
271 | $updated_name['fontcolor2_name'] = $HTTP_POST_VARS['fontcolor2_name'];
|
---|
272 | $updated['fontcolor3'] = $HTTP_POST_VARS['fontcolor3'];
|
---|
273 | $updated_name['fontcolor3_name'] = $HTTP_POST_VARS['fontcolor3_name'];
|
---|
274 | $updated['span_class1'] = $HTTP_POST_VARS['span_class1'];
|
---|
275 | $updated_name['span_class1_name'] = $HTTP_POST_VARS['span_class1_name'];
|
---|
276 | $updated['span_class2'] = $HTTP_POST_VARS['span_class2'];
|
---|
277 | $updated_name['span_class2_name'] = $HTTP_POST_VARS['span_class2_name'];
|
---|
278 | $updated['span_class3'] = $HTTP_POST_VARS['span_class3'];
|
---|
279 | $updated_name['span_class3_name'] = $HTTP_POST_VARS['span_class3_name'];
|
---|
280 | $style_id = intval($HTTP_POST_VARS['style_id']);
|
---|
281 | //
|
---|
282 | // Wheeeew! Thank heavens for copy and paste and search and replace :D
|
---|
283 | //
|
---|
284 |
|
---|
285 | if($mode == "edit")
|
---|
286 | {
|
---|
287 | $sql = "UPDATE " . THEMES_TABLE . " SET ";
|
---|
288 | $count = 0;
|
---|
289 |
|
---|
290 | while(list($key, $val) = each($updated))
|
---|
291 | {
|
---|
292 | if($count != 0)
|
---|
293 | {
|
---|
294 | $sql .= ", ";
|
---|
295 | }
|
---|
296 |
|
---|
297 | //
|
---|
298 | // I don't like this but it'll keep MSSQL from throwing
|
---|
299 | // an error and save me alot of typing
|
---|
300 | //
|
---|
301 | $sql .= ( stristr($key, "fontsize") ) ? "$key = $val" : "$key = '" . str_replace("\'", "''", $val) . "'";
|
---|
302 |
|
---|
303 | $count++;
|
---|
304 | }
|
---|
305 |
|
---|
306 | $sql .= " WHERE themes_id = $style_id";
|
---|
307 |
|
---|
308 | if(!$result = $db->sql_query($sql))
|
---|
309 | {
|
---|
310 | message_die(GENERAL_ERROR, "Could not update themes table!", "", __LINE__, __FILE__, $sql);
|
---|
311 | }
|
---|
312 |
|
---|
313 | //
|
---|
314 | // Check if there's a names table entry for this style
|
---|
315 | //
|
---|
316 | $sql = "SELECT themes_id
|
---|
317 | FROM " . THEMES_NAME_TABLE . "
|
---|
318 | WHERE themes_id = $style_id";
|
---|
319 | if(!$result = $db->sql_query($sql))
|
---|
320 | {
|
---|
321 | message_die(GENERAL_ERROR, "Could not get data from themes_name table", "", __LINE__, __FILE__, $sql);
|
---|
322 | }
|
---|
323 |
|
---|
324 | if($db->sql_numrows($result) > 0)
|
---|
325 | {
|
---|
326 | $sql = "UPDATE " . THEMES_NAME_TABLE . "
|
---|
327 | SET ";
|
---|
328 | $count = 0;
|
---|
329 | while(list($key, $val) = each($updated_name))
|
---|
330 | {
|
---|
331 | if($count != 0)
|
---|
332 | {
|
---|
333 | $sql .= ", ";
|
---|
334 | }
|
---|
335 |
|
---|
336 | $sql .= "$key = '$val'";
|
---|
337 |
|
---|
338 | $count++;
|
---|
339 | }
|
---|
340 |
|
---|
341 | $sql .= " WHERE themes_id = $style_id";
|
---|
342 | }
|
---|
343 | else
|
---|
344 | {
|
---|
345 | //
|
---|
346 | // Nope, no names entry so we create a new one.
|
---|
347 | //
|
---|
348 | $sql = "INSERT INTO " . THEMES_NAME_TABLE . " (themes_id, ";
|
---|
349 | while(list($key, $val) = each($updated_name))
|
---|
350 | {
|
---|
351 | $fields[] = $key;
|
---|
352 | $vals[] = str_replace("\'", "''", $val);
|
---|
353 | }
|
---|
354 |
|
---|
355 | for($i = 0; $i < count($fields); $i++)
|
---|
356 | {
|
---|
357 | if($i > 0)
|
---|
358 | {
|
---|
359 | $sql .= ", ";
|
---|
360 | }
|
---|
361 | $sql .= $fields[$i];
|
---|
362 | }
|
---|
363 |
|
---|
364 | $sql .= ") VALUES ($style_id, ";
|
---|
365 | for($i = 0; $i < count($vals); $i++)
|
---|
366 | {
|
---|
367 | if($i > 0)
|
---|
368 | {
|
---|
369 | $sql .= ", ";
|
---|
370 | }
|
---|
371 | $sql .= "'" . $vals[$i] . "'";
|
---|
372 | }
|
---|
373 |
|
---|
374 | $sql .= ")";
|
---|
375 | }
|
---|
376 |
|
---|
377 | if(!$result = $db->sql_query($sql))
|
---|
378 | {
|
---|
379 | message_die(GENERAL_ERROR, "Could not update themes name table!", "", __LINE__, __FILE__, $sql);
|
---|
380 | }
|
---|
381 |
|
---|
382 | $message = $lang['Theme_updated'] . "<br /><br />" . sprintf($lang['Click_return_styleadmin'], "<a href=\"" . append_sid("admin_styles.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");
|
---|
383 |
|
---|
384 | message_die(GENERAL_MESSAGE, $message);
|
---|
385 | }
|
---|
386 | else
|
---|
387 | {
|
---|
388 | //
|
---|
389 | // First, check if we already have a style by this name
|
---|
390 | //
|
---|
391 | $sql = "SELECT themes_id
|
---|
392 | FROM " . THEMES_TABLE . "
|
---|
393 | WHERE style_name = '" . str_replace("\'", "''", $updated['style_name']) . "'";
|
---|
394 | if(!$result = $db->sql_query($sql))
|
---|
395 | {
|
---|
396 | message_die(GENERAL_ERROR, "Could not query themes table", "", __LINE__, __FILE__, $sql);
|
---|
397 | }
|
---|
398 |
|
---|
399 | if($db->sql_numrows($result))
|
---|
400 | {
|
---|
401 | message_die(GENERAL_ERROR, $lang['Style_exists'], $lang['Error']);
|
---|
402 | }
|
---|
403 |
|
---|
404 | while(list($key, $val) = each($updated))
|
---|
405 | {
|
---|
406 | $field_names[] = $key;
|
---|
407 |
|
---|
408 | if(stristr($key, "fontsize"))
|
---|
409 | {
|
---|
410 | $values[] = "$val";
|
---|
411 | }
|
---|
412 | else
|
---|
413 | {
|
---|
414 | $values[] = "'" . str_replace("\'", "''", $val) . "'";
|
---|
415 | }
|
---|
416 | }
|
---|
417 |
|
---|
418 | $sql = "INSERT
|
---|
419 | INTO " . THEMES_TABLE . " (";
|
---|
420 | for($i = 0; $i < count($field_names); $i++)
|
---|
421 | {
|
---|
422 | if($i != 0)
|
---|
423 | {
|
---|
424 | $sql .= ", ";
|
---|
425 | }
|
---|
426 | $sql .= $field_names[$i];
|
---|
427 | }
|
---|
428 |
|
---|
429 | $sql .= ") VALUES (";
|
---|
430 | for($i = 0; $i < count($values); $i++)
|
---|
431 | {
|
---|
432 | if($i != 0)
|
---|
433 | {
|
---|
434 | $sql .= ", ";
|
---|
435 | }
|
---|
436 | $sql .= $values[$i];
|
---|
437 | }
|
---|
438 | $sql .= ")";
|
---|
439 |
|
---|
440 | if(!$result = $db->sql_query($sql))
|
---|
441 | {
|
---|
442 | message_die(GENERAL_ERROR, "Could not update themes table!", "", __LINE__, __FILE__, $sql);
|
---|
443 | }
|
---|
444 |
|
---|
445 | $style_id = $db->sql_nextid();
|
---|
446 |
|
---|
447 | //
|
---|
448 | // Insert names data
|
---|
449 | //
|
---|
450 | $sql = "INSERT INTO " . THEMES_NAME_TABLE . " (themes_id, ";
|
---|
451 | while(list($key, $val) = each($updated_name))
|
---|
452 | {
|
---|
453 | $fields[] = $key;
|
---|
454 | $vals[] = $val;
|
---|
455 | }
|
---|
456 |
|
---|
457 | for($i = 0; $i < count($fields); $i++)
|
---|
458 | {
|
---|
459 | if($i > 0)
|
---|
460 | {
|
---|
461 | $sql .= ", ";
|
---|
462 | }
|
---|
463 | $sql .= $fields[$i];
|
---|
464 | }
|
---|
465 |
|
---|
466 | $sql .= ") VALUES ($style_id, ";
|
---|
467 | for($i = 0; $i < count($vals); $i++)
|
---|
468 | {
|
---|
469 | if($i > 0)
|
---|
470 | {
|
---|
471 | $sql .= ", ";
|
---|
472 | }
|
---|
473 | $sql .= "'" . $vals[$i] . "'";
|
---|
474 | }
|
---|
475 |
|
---|
476 | $sql .= ")";
|
---|
477 |
|
---|
478 | if(!$result = $db->sql_query($sql))
|
---|
479 | {
|
---|
480 | message_die(GENERAL_ERROR, "Could not insert themes name table!", "", __LINE__, __FILE__, $sql);
|
---|
481 | }
|
---|
482 |
|
---|
483 | $message = $lang['Theme_created'] . "<br /><br />" . sprintf($lang['Click_return_styleadmin'], "<a href=\"" . append_sid("admin_styles.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");
|
---|
484 |
|
---|
485 | message_die(GENERAL_MESSAGE, $message);
|
---|
486 | }
|
---|
487 | }
|
---|
488 | else
|
---|
489 | {
|
---|
490 | if($mode == "edit")
|
---|
491 | {
|
---|
492 | $themes_title = $lang['Edit_theme'];
|
---|
493 | $themes_explain = $lang['Edit_theme_explain'];
|
---|
494 |
|
---|
495 | $style_id = intval($HTTP_GET_VARS['style_id']);
|
---|
496 |
|
---|
497 | $selected_names = array();
|
---|
498 | $selected_values = array();
|
---|
499 | //
|
---|
500 | // Fetch the Theme Info from the db
|
---|
501 | //
|
---|
502 | $sql = "SELECT *
|
---|
503 | FROM " . THEMES_TABLE . "
|
---|
504 | WHERE themes_id = $style_id";
|
---|
505 | if(!$result = $db->sql_query($sql))
|
---|
506 | {
|
---|
507 | message_die(GENERAL_ERROR, "Could not get data from themes table", "", __LINE__, __FILE__, $sql);
|
---|
508 | }
|
---|
509 |
|
---|
510 | if ( $selected_values = $db->sql_fetchrow($result) )
|
---|
511 | {
|
---|
512 | while(list($key, $val) = @each($selected_values))
|
---|
513 | {
|
---|
514 | $selected[$key] = $val;
|
---|
515 | }
|
---|
516 | }
|
---|
517 |
|
---|
518 | //
|
---|
519 | // Fetch the Themes Name data
|
---|
520 | //
|
---|
521 | $sql = "SELECT *
|
---|
522 | FROM " . THEMES_NAME_TABLE . "
|
---|
523 | WHERE themes_id = $style_id";
|
---|
524 | if(!$result = $db->sql_query($sql))
|
---|
525 | {
|
---|
526 | message_die(GENERAL_ERROR, "Could not get data from themes name table", "", __LINE__, __FILE__, $sql);
|
---|
527 | }
|
---|
528 |
|
---|
529 | if ( $selected_names = $db->sql_fetchrow($result) )
|
---|
530 | {
|
---|
531 | while(list($key, $val) = @each($selected_names))
|
---|
532 | {
|
---|
533 | $selected[$key] = $val;
|
---|
534 | }
|
---|
535 | }
|
---|
536 |
|
---|
537 | $s_hidden_fields = '<input type="hidden" name="style_id" value="' . $style_id . '" />';
|
---|
538 | }
|
---|
539 | else
|
---|
540 | {
|
---|
541 | $themes_title = $lang['Create_theme'];
|
---|
542 | $themes_explain = $lang['Create_theme_explain'];
|
---|
543 | }
|
---|
544 |
|
---|
545 | $template->set_filenames(array(
|
---|
546 | "body" => "admin/styles_edit_body.tpl")
|
---|
547 | );
|
---|
548 |
|
---|
549 | if( $dir = @opendir($phpbb_root_path . 'templates/') )
|
---|
550 | {
|
---|
551 | $s_template_select = '<select name="template_name">';
|
---|
552 | while( $file = @readdir($dir) )
|
---|
553 | {
|
---|
554 | if( !is_file(phpbb_realpath($phpbb_root_path . 'templates/' . $file)) && !is_link(phpbb_realpath($phpbb_root_path . 'templates/' . $file)) && $file != "." && $file != ".." && $file != "CVS" )
|
---|
555 | {
|
---|
556 | if($file == $selected['template_name'])
|
---|
557 | {
|
---|
558 | $s_template_select .= '<option value="' . $file . '" selected="selected">' . $file . "</option>\n";
|
---|
559 | }
|
---|
560 | else
|
---|
561 | {
|
---|
562 | $s_template_select .= '<option value="' . $file . '">' . $file . "</option>\n";
|
---|
563 | }
|
---|
564 | }
|
---|
565 | }
|
---|
566 | $s_template_select .= '</select>';
|
---|
567 | }
|
---|
568 | else
|
---|
569 | {
|
---|
570 | message_die(GENERAL_MESSAGE, $lang['No_template_dir']);
|
---|
571 | }
|
---|
572 |
|
---|
573 | $s_hidden_fields .= '<input type="hidden" name="mode" value="' . $mode . '" />';
|
---|
574 |
|
---|
575 | $template->assign_vars(array(
|
---|
576 | "L_THEMES_TITLE" => $themes_title,
|
---|
577 | "L_THEMES_EXPLAIN" => $themes_explain,
|
---|
578 | "L_THEME_NAME" => $lang['Theme_name'],
|
---|
579 | "L_TEMPLATE" => $lang['Template'],
|
---|
580 | "L_THEME_SETTINGS" => $lang['Theme_settings'],
|
---|
581 | "L_THEME_ELEMENT" => $lang['Theme_element'],
|
---|
582 | "L_SIMPLE_NAME" => $lang['Simple_name'],
|
---|
583 | "L_VALUE" => $lang['Value'],
|
---|
584 | "L_STYLESHEET" => $lang['Stylesheet'],
|
---|
585 | "L_STYLESHEET_EXPLAIN" => $lang['Stylesheet_explain'],
|
---|
586 | "L_BACKGROUND_IMAGE" => $lang['Background_image'],
|
---|
587 | "L_BACKGROUND_COLOR" => $lang['Background_color'],
|
---|
588 | "L_BODY_TEXT_COLOR" => $lang['Text_color'],
|
---|
589 | "L_BODY_LINK_COLOR" => $lang['Link_color'],
|
---|
590 | "L_BODY_VLINK_COLOR" => $lang['VLink_color'],
|
---|
591 | "L_BODY_ALINK_COLOR" => $lang['ALink_color'],
|
---|
592 | "L_BODY_HLINK_COLOR" => $lang['HLink_color'],
|
---|
593 | "L_TR_COLOR1" => $lang['Tr_color1'],
|
---|
594 | "L_TR_COLOR2" => $lang['Tr_color2'],
|
---|
595 | "L_TR_COLOR3" => $lang['Tr_color3'],
|
---|
596 | "L_TR_CLASS1" => $lang['Tr_class1'],
|
---|
597 | "L_TR_CLASS2" => $lang['Tr_class2'],
|
---|
598 | "L_TR_CLASS3" => $lang['Tr_class3'],
|
---|
599 | "L_TH_COLOR1" => $lang['Th_color1'],
|
---|
600 | "L_TH_COLOR2" => $lang['Th_color2'],
|
---|
601 | "L_TH_COLOR3" => $lang['Th_color3'],
|
---|
602 | "L_TH_CLASS1" => $lang['Th_class1'],
|
---|
603 | "L_TH_CLASS2" => $lang['Th_class2'],
|
---|
604 | "L_TH_CLASS3" => $lang['Th_class3'],
|
---|
605 | "L_TD_COLOR1" => $lang['Td_color1'],
|
---|
606 | "L_TD_COLOR2" => $lang['Td_color2'],
|
---|
607 | "L_TD_COLOR3" => $lang['Td_color3'],
|
---|
608 | "L_TD_CLASS1" => $lang['Td_class1'],
|
---|
609 | "L_TD_CLASS2" => $lang['Td_class2'],
|
---|
610 | "L_TD_CLASS3" => $lang['Td_class3'],
|
---|
611 | "L_FONTFACE_1" => $lang['fontface1'],
|
---|
612 | "L_FONTFACE_2" => $lang['fontface2'],
|
---|
613 | "L_FONTFACE_3" => $lang['fontface3'],
|
---|
614 | "L_FONTSIZE_1" => $lang['fontsize1'],
|
---|
615 | "L_FONTSIZE_2" => $lang['fontsize2'],
|
---|
616 | "L_FONTSIZE_3" => $lang['fontsize3'],
|
---|
617 | "L_FONTCOLOR_1" => $lang['fontcolor1'],
|
---|
618 | "L_FONTCOLOR_2" => $lang['fontcolor2'],
|
---|
619 | "L_FONTCOLOR_3" => $lang['fontcolor3'],
|
---|
620 | "L_SPAN_CLASS_1" => $lang['span_class1'],
|
---|
621 | "L_SPAN_CLASS_2" => $lang['span_class2'],
|
---|
622 | "L_SPAN_CLASS_3" => $lang['span_class3'],
|
---|
623 | "L_SAVE_SETTINGS" => $lang['Save_Settings'],
|
---|
624 | "THEME_NAME" => $selected['style_name'],
|
---|
625 | "HEAD_STYLESHEET" => $selected['head_stylesheet'],
|
---|
626 | "BODY_BACKGROUND" => $selected['body_background'],
|
---|
627 | "BODY_BGCOLOR" => $selected['body_bgcolor'],
|
---|
628 | "BODY_TEXT_COLOR" => $selected['body_text'],
|
---|
629 | "BODY_LINK_COLOR" => $selected['body_link'],
|
---|
630 | "BODY_VLINK_COLOR" => $selected['body_vlink'],
|
---|
631 | "BODY_ALINK_COLOR" => $selected['body_alink'],
|
---|
632 | "BODY_HLINK_COLOR" => $selected['body_hlink'],
|
---|
633 | "TR_COLOR1" => $selected['tr_color1'],
|
---|
634 | "TR_COLOR2" => $selected['tr_color2'],
|
---|
635 | "TR_COLOR3" => $selected['tr_color3'],
|
---|
636 | "TR_CLASS1" => $selected['tr_class1'],
|
---|
637 | "TR_CLASS2" => $selected['tr_class2'],
|
---|
638 | "TR_CLASS3" => $selected['tr_class3'],
|
---|
639 | "TH_COLOR1" => $selected['th_color1'],
|
---|
640 | "TH_COLOR2" => $selected['th_color2'],
|
---|
641 | "TH_COLOR3" => $selected['th_color3'],
|
---|
642 | "TH_CLASS1" => $selected['th_class1'],
|
---|
643 | "TH_CLASS2" => $selected['th_class2'],
|
---|
644 | "TH_CLASS3" => $selected['th_class3'],
|
---|
645 | "TD_COLOR1" => $selected['td_color1'],
|
---|
646 | "TD_COLOR2" => $selected['td_color2'],
|
---|
647 | "TD_COLOR3" => $selected['td_color3'],
|
---|
648 | "TD_CLASS1" => $selected['td_class1'],
|
---|
649 | "TD_CLASS2" => $selected['td_class2'],
|
---|
650 | "TD_CLASS3" => $selected['td_class3'],
|
---|
651 | "FONTFACE1" => $selected['fontface1'],
|
---|
652 | "FONTFACE2" => $selected['fontface2'],
|
---|
653 | "FONTFACE3" => $selected['fontface3'],
|
---|
654 | "FONTSIZE1" => $selected['fontsize1'],
|
---|
655 | "FONTSIZE2" => $selected['fontsize2'],
|
---|
656 | "FONTSIZE3" => $selected['fontsize3'],
|
---|
657 | "FONTCOLOR1" => $selected['fontcolor1'],
|
---|
658 | "FONTCOLOR2" => $selected['fontcolor2'],
|
---|
659 | "FONTCOLOR3" => $selected['fontcolor3'],
|
---|
660 | "SPAN_CLASS1" => $selected['span_class1'],
|
---|
661 | "SPAN_CLASS2" => $selected['span_class2'],
|
---|
662 | "SPAN_CLASS3" => $selected['span_class3'],
|
---|
663 |
|
---|
664 | "TR_COLOR1_NAME" => $selected['tr_color1_name'],
|
---|
665 | "TR_COLOR2_NAME" => $selected['tr_color2_name'],
|
---|
666 | "TR_COLOR3_NAME" => $selected['tr_color3_name'],
|
---|
667 | "TR_CLASS1_NAME" => $selected['tr_class1_name'],
|
---|
668 | "TR_CLASS2_NAME" => $selected['tr_class2_name'],
|
---|
669 | "TR_CLASS3_NAME" => $selected['tr_class3_name'],
|
---|
670 | "TH_COLOR1_NAME" => $selected['th_color1_name'],
|
---|
671 | "TH_COLOR2_NAME" => $selected['th_color2_name'],
|
---|
672 | "TH_COLOR3_NAME" => $selected['th_color3_name'],
|
---|
673 | "TH_CLASS1_NAME" => $selected['th_class1_name'],
|
---|
674 | "TH_CLASS2_NAME" => $selected['th_class2_name'],
|
---|
675 | "TH_CLASS3_NAME" => $selected['th_class3_name'],
|
---|
676 | "TD_COLOR1_NAME" => $selected['td_color1_name'],
|
---|
677 | "TD_COLOR2_NAME" => $selected['td_color2_name'],
|
---|
678 | "TD_COLOR3_NAME" => $selected['td_color3_name'],
|
---|
679 | "TD_CLASS1_NAME" => $selected['td_class1_name'],
|
---|
680 | "TD_CLASS2_NAME" => $selected['td_class2_name'],
|
---|
681 | "TD_CLASS3_NAME" => $selected['td_class3_name'],
|
---|
682 | "FONTFACE1_NAME" => $selected['fontface1_name'],
|
---|
683 | "FONTFACE2_NAME" => $selected['fontface2_name'],
|
---|
684 | "FONTFACE3_NAME" => $selected['fontface3_name'],
|
---|
685 | "FONTSIZE1_NAME" => $selected['fontsize1_name'],
|
---|
686 | "FONTSIZE2_NAME" => $selected['fontsize2_name'],
|
---|
687 | "FONTSIZE3_NAME" => $selected['fontsize3_name'],
|
---|
688 | "FONTCOLOR1_NAME" => $selected['fontcolor1_name'],
|
---|
689 | "FONTCOLOR2_NAME" => $selected['fontcolor2_name'],
|
---|
690 | "FONTCOLOR3_NAME" => $selected['fontcolor3_name'],
|
---|
691 | "SPAN_CLASS1_NAME" => $selected['span_class1_name'],
|
---|
692 | "SPAN_CLASS2_NAME" => $selected['span_class2_name'],
|
---|
693 | "SPAN_CLASS3_NAME" => $selected['span_class3_name'],
|
---|
694 |
|
---|
695 | "S_THEME_ACTION" => append_sid("admin_styles.$phpEx"),
|
---|
696 | "S_TEMPLATE_SELECT" => $s_template_select,
|
---|
697 | "S_HIDDEN_FIELDS" => $s_hidden_fields)
|
---|
698 | );
|
---|
699 |
|
---|
700 | $template->pparse("body");
|
---|
701 | }
|
---|
702 | break;
|
---|
703 |
|
---|
704 | case "export";
|
---|
705 | if($HTTP_POST_VARS['export_template'])
|
---|
706 | {
|
---|
707 | $template_name = $HTTP_POST_VARS['export_template'];
|
---|
708 |
|
---|
709 | $sql = "SELECT *
|
---|
710 | FROM " . THEMES_TABLE . "
|
---|
711 | WHERE template_name = '" . str_replace("\'", "''", $template_name) . "'";
|
---|
712 | if(!$result = $db->sql_query($sql))
|
---|
713 | {
|
---|
714 | message_die(GENERAL_ERROR, "Could not get theme data for selected template", "", __LINE__, __FILE__, $sql);
|
---|
715 | }
|
---|
716 |
|
---|
717 | $theme_rowset = $db->sql_fetchrowset($result);
|
---|
718 |
|
---|
719 | if( count($theme_rowset) == 0 )
|
---|
720 | {
|
---|
721 | message_die(GENERAL_MESSAGE, $lang['No_themes']);
|
---|
722 | }
|
---|
723 |
|
---|
724 | $theme_data = '<?php'."\n\n";
|
---|
725 | $theme_data .= "//\n// phpBB 2.x auto-generated theme config file for $template_name\n// Do not change anything in this file!\n//\n\n";
|
---|
726 |
|
---|
727 | for($i = 0; $i < count($theme_rowset); $i++)
|
---|
728 | {
|
---|
729 | while(list($key, $val) = each($theme_rowset[$i]))
|
---|
730 | {
|
---|
731 | if(!intval($key) && $key != "0" && $key != "themes_id")
|
---|
732 | {
|
---|
733 | $theme_data .= '$' . $template_name . "[$i]['$key'] = \"" . addslashes($val) . "\";\n";
|
---|
734 | }
|
---|
735 | }
|
---|
736 | $theme_data .= "\n";
|
---|
737 | }
|
---|
738 |
|
---|
739 | $theme_data .= '?' . '>'; // Done this to prevent highlighting editors getting confused!
|
---|
740 |
|
---|
741 | @umask(0111);
|
---|
742 |
|
---|
743 | $fp = @fopen($phpbb_root_path . 'templates/' . basename($template_name) . '/theme_info.cfg', 'w');
|
---|
744 |
|
---|
745 | if( !$fp )
|
---|
746 | {
|
---|
747 | //
|
---|
748 | // Unable to open the file writeable do something here as an attempt
|
---|
749 | // to get around that...
|
---|
750 | //
|
---|
751 | $s_hidden_fields = '<input type="hidden" name="theme_info" value="' . htmlspecialchars($theme_data) . '" />';
|
---|
752 | $s_hidden_fields .= '<input type="hidden" name="send_file" value="1" /><input type="hidden" name="mode" value="export" />';
|
---|
753 |
|
---|
754 | $download_form = '<form action="' . append_sid("admin_styles.$phpEx") . '" method="post"><input class="mainoption" type="submit" name="submit" value="' . $lang['Download'] . '" />' . $s_hidden_fields;
|
---|
755 |
|
---|
756 | $template->set_filenames(array(
|
---|
757 | "body" => "message_body.tpl")
|
---|
758 | );
|
---|
759 |
|
---|
760 | $template->assign_vars(array(
|
---|
761 | "MESSAGE_TITLE" => $lang['Export_themes'],
|
---|
762 | "MESSAGE_TEXT" => $lang['Download_theme_cfg'] . "<br /><br />" . $download_form)
|
---|
763 | );
|
---|
764 |
|
---|
765 | $template->pparse('body');
|
---|
766 | exit();
|
---|
767 | }
|
---|
768 |
|
---|
769 | $result = @fputs($fp, $theme_data, strlen($theme_data));
|
---|
770 | fclose($fp);
|
---|
771 |
|
---|
772 | $message = $lang['Theme_info_saved'] . "<br /><br />" . sprintf($lang['Click_return_styleadmin'], "<a href=\"" . append_sid("admin_styles.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");
|
---|
773 |
|
---|
774 | message_die(GENERAL_MESSAGE, $message);
|
---|
775 |
|
---|
776 | }
|
---|
777 | else if($HTTP_POST_VARS['send_file'])
|
---|
778 | {
|
---|
779 |
|
---|
780 | header("Content-Type: text/x-delimtext; name=\"theme_info.cfg\"");
|
---|
781 | header("Content-disposition: attachment; filename=theme_info.cfg");
|
---|
782 |
|
---|
783 | echo stripslashes($HTTP_POST_VARS['theme_info']);
|
---|
784 | }
|
---|
785 | else
|
---|
786 | {
|
---|
787 | $template->set_filenames(array(
|
---|
788 | "body" => "admin/styles_exporter.tpl")
|
---|
789 | );
|
---|
790 |
|
---|
791 | if( $dir = @opendir($phpbb_root_path . 'templates/') )
|
---|
792 | {
|
---|
793 | $s_template_select = '<select name="export_template">';
|
---|
794 | while( $file = @readdir($dir) )
|
---|
795 | {
|
---|
796 | if( !is_file(phpbb_realpath($phpbb_root_path . 'templates/' . $file)) && !is_link(phpbb_realpath($phpbb_root_path . 'templates/' .$file)) && $file != "." && $file != ".." && $file != "CVS" )
|
---|
797 | {
|
---|
798 | $s_template_select .= '<option value="' . $file . '">' . $file . "</option>\n";
|
---|
799 | }
|
---|
800 | }
|
---|
801 | $s_template_select .= '</select>';
|
---|
802 | }
|
---|
803 | else
|
---|
804 | {
|
---|
805 | message_die(GENERAL_MESSAGE, $lang['No_template_dir']);
|
---|
806 | }
|
---|
807 |
|
---|
808 | $template->assign_vars(array(
|
---|
809 | "L_STYLE_EXPORTER" => $lang['Export_themes'],
|
---|
810 | "L_EXPORTER_EXPLAIN" => $lang['Export_explain'],
|
---|
811 | "L_TEMPLATE_SELECT" => $lang['Select_template'],
|
---|
812 | "L_SUBMIT" => $lang['Submit'],
|
---|
813 |
|
---|
814 | "S_EXPORTER_ACTION" => append_sid("admin_styles.$phpEx?mode=export"),
|
---|
815 | "S_TEMPLATE_SELECT" => $s_template_select)
|
---|
816 | );
|
---|
817 |
|
---|
818 | $template->pparse("body");
|
---|
819 |
|
---|
820 | }
|
---|
821 | break;
|
---|
822 |
|
---|
823 | case "delete":
|
---|
824 | $style_id = ( isset($HTTP_GET_VARS['style_id']) ) ? intval($HTTP_GET_VARS['style_id']) : intval($HTTP_POST_VARS['style_id']);
|
---|
825 |
|
---|
826 | if( !$confirm )
|
---|
827 | {
|
---|
828 | if($style_id == $board_config['default_style'])
|
---|
829 | {
|
---|
830 | message_die(GENERAL_MESSAGE, $lang['Cannot_remove_style']);
|
---|
831 | }
|
---|
832 |
|
---|
833 | $hidden_fields = '<input type="hidden" name="mode" value="'.$mode.'" /><input type="hidden" name="style_id" value="'.$style_id.'" />';
|
---|
834 |
|
---|
835 | //
|
---|
836 | // Set template files
|
---|
837 | //
|
---|
838 | $template->set_filenames(array(
|
---|
839 | "confirm" => "confirm_body.tpl")
|
---|
840 | );
|
---|
841 |
|
---|
842 | $template->assign_vars(array(
|
---|
843 | "MESSAGE_TITLE" => $lang['Confirm'],
|
---|
844 | "MESSAGE_TEXT" => $lang['Confirm_delete_style'],
|
---|
845 |
|
---|
846 | "L_YES" => $lang['Yes'],
|
---|
847 | "L_NO" => $lang['No'],
|
---|
848 |
|
---|
849 | "S_CONFIRM_ACTION" => append_sid("admin_styles.$phpEx"),
|
---|
850 | "S_HIDDEN_FIELDS" => $hidden_fields)
|
---|
851 | );
|
---|
852 |
|
---|
853 | $template->pparse("confirm");
|
---|
854 |
|
---|
855 | }
|
---|
856 | else
|
---|
857 | {
|
---|
858 | //
|
---|
859 | // The user has confirmed the delete. Remove the style, the style element
|
---|
860 | // names and update any users who might be using this style
|
---|
861 | //
|
---|
862 | $sql = "DELETE FROM " . THEMES_TABLE . "
|
---|
863 | WHERE themes_id = $style_id";
|
---|
864 | if(!$result = $db->sql_query($sql, BEGIN_TRANSACTION))
|
---|
865 | {
|
---|
866 | message_die(GENERAL_ERROR, "Could not remove style data!", "", __LINE__, __FILE__, $sql);
|
---|
867 | }
|
---|
868 |
|
---|
869 | //
|
---|
870 | // There may not be any theme name data so don't throw an error
|
---|
871 | // if the SQL dosan't work
|
---|
872 | //
|
---|
873 | $sql = "DELETE FROM " . THEMES_NAME_TABLE . "
|
---|
874 | WHERE themes_id = $style_id";
|
---|
875 | $db->sql_query($sql);
|
---|
876 |
|
---|
877 | $sql = "UPDATE " . USERS_TABLE . "
|
---|
878 | SET user_style = " . $board_config['default_style'] . "
|
---|
879 | WHERE user_style = $style_id";
|
---|
880 | if(!$result = $db->sql_query($sql, END_TRANSACTION))
|
---|
881 | {
|
---|
882 | message_die(GENERAL_ERROR, "Could not update user style information", "", __LINE__, __FILE__, $sql);
|
---|
883 | }
|
---|
884 |
|
---|
885 | $message = $lang['Style_removed'] . "<br /><br />" . sprintf($lang['Click_return_styleadmin'], "<a href=\"" . append_sid("admin_styles.$phpEx") . "\">", "</a>") . "<br /><br />" . sprintf($lang['Click_return_admin_index'], "<a href=\"" . append_sid("index.$phpEx?pane=right") . "\">", "</a>");
|
---|
886 |
|
---|
887 | message_die(GENERAL_MESSAGE, $message);
|
---|
888 | }
|
---|
889 | break;
|
---|
890 |
|
---|
891 | default:
|
---|
892 |
|
---|
893 | $sql = "SELECT themes_id, template_name, style_name
|
---|
894 | FROM " . THEMES_TABLE . "
|
---|
895 | ORDER BY template_name";
|
---|
896 | if(!$result = $db->sql_query($sql))
|
---|
897 | {
|
---|
898 | message_die(GENERAL_ERROR, "Could not get style information!", "", __LINE__, __FILE__, $sql);
|
---|
899 | }
|
---|
900 |
|
---|
901 | $style_rowset = $db->sql_fetchrowset($result);
|
---|
902 |
|
---|
903 | $template->set_filenames(array(
|
---|
904 | "body" => "admin/styles_list_body.tpl")
|
---|
905 | );
|
---|
906 |
|
---|
907 | $template->assign_vars(array(
|
---|
908 | "L_STYLES_TITLE" => $lang['Styles_admin'],
|
---|
909 | "L_STYLES_TEXT" => $lang['Styles_explain'],
|
---|
910 | "L_STYLE" => $lang['Style'],
|
---|
911 | "L_TEMPLATE" => $lang['Template'],
|
---|
912 | "L_EDIT" => $lang['Edit'],
|
---|
913 | "L_DELETE" => $lang['Delete'])
|
---|
914 | );
|
---|
915 |
|
---|
916 | for($i = 0; $i < count($style_rowset); $i++)
|
---|
917 | {
|
---|
918 | $row_color = ( !($i % 2) ) ? $theme['td_color1'] : $theme['td_color2'];
|
---|
919 | $row_class = ( !($i % 2) ) ? $theme['td_class1'] : $theme['td_class2'];
|
---|
920 |
|
---|
921 | $template->assign_block_vars("styles", array(
|
---|
922 | "ROW_CLASS" => $row_class,
|
---|
923 | "ROW_COLOR" => $row_color,
|
---|
924 | "STYLE_NAME" => $style_rowset[$i]['style_name'],
|
---|
925 | "TEMPLATE_NAME" => $style_rowset[$i]['template_name'],
|
---|
926 |
|
---|
927 | "U_STYLES_EDIT" => append_sid("admin_styles.$phpEx?mode=edit&style_id=" . $style_rowset[$i]['themes_id']),
|
---|
928 | "U_STYLES_DELETE" => append_sid("admin_styles.$phpEx?mode=delete&style_id=" . $style_rowset[$i]['themes_id']))
|
---|
929 | );
|
---|
930 | }
|
---|
931 |
|
---|
932 | $template->pparse("body");
|
---|
933 | break;
|
---|
934 | }
|
---|
935 |
|
---|
936 | if (empty($HTTP_POST_VARS['send_file']))
|
---|
937 | {
|
---|
938 | include('./page_footer_admin.'.$phpEx);
|
---|
939 | }
|
---|
940 |
|
---|
941 | ?>
|
---|