+++ /dev/null
-<?php\r
-\r
-/***************************************************************************\r
- * xs_edit_data.php\r
- * ----------------\r
- * copyright : (C) 2003 - 2005 CyberAlien\r
- * support : http://www.phpbbstyles.com\r
- *\r
- * version : 2.3.1\r
- *\r
- * file revision : 78\r
- * project revision : 78\r
- * last modified : 05 Dec 2005 13:54:54\r
- *\r
- ***************************************************************************/\r
-\r
-/***************************************************************************\r
- *\r
- * This program is free software; you can redistribute it and/or modify\r
- * it under the terms of the GNU General Public License as published by\r
- * the Free Software Foundation; either version 2 of the License, or\r
- * (at your option) any later version.\r
- *\r
- ***************************************************************************/\r
-\r
-define('IN_PHPBB', 1);\r
-$phpbb_root_path = "./../";\r
-$no_page_header = true;\r
-require($phpbb_root_path . 'extension.inc');\r
-require('./pagestart.' . $phpEx);\r
-\r
-// check if mod is installed\r
-if(empty($template->xs_version) || $template->xs_version !== 8)\r
-{\r
- 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
-}\r
-\r
-define('IN_XS', true);\r
-include_once('xs_include.' . $phpEx);\r
-\r
-$template->assign_block_vars('nav_left',array('ITEM' => '» <a href="' . append_sid('xs_edit_data.'.$phpEx) . '">' . $lang['xs_edit_styles_data'] . '</a>'));\r
-\r
-$lang['xs_edittpl_back_list'] = str_replace('{URL}', append_sid('xs_edit_data.'.$phpEx), $lang['xs_edittpl_back_list']);\r
-\r
-function xs_empty_name()\r
-{\r
- global $db;\r
- $sql = "SELECT * FROM " . THEMES_NAME_TABLE . " LIMIT 0, 1";\r
- if(!$result = $db->sql_query($sql))\r
- {\r
- $data = array();\r
- }\r
- $data = $db->sql_fetchrow($result);\r
- if($data === false || !@count($data))\r
- {\r
- $data = array(\r
- 'themes_id' => 0,\r
- 'tr_color1_name' => '',\r
- 'tr_color2_name' => '',\r
- 'tr_color3_name' => '',\r
- 'tr_class1_name' => '',\r
- 'tr_class2_name' => '',\r
- 'tr_class3_name' => '',\r
- 'th_color1_name' => '',\r
- 'th_color2_name' => '',\r
- 'th_color3_name' => '',\r
- 'th_class1_name' => '',\r
- 'th_class2_name' => '',\r
- 'th_class3_name' => '',\r
- 'td_color1_name' => '',\r
- 'td_color2_name' => '',\r
- 'td_color3_name' => '',\r
- 'td_class1_name' => '',\r
- 'td_class2_name' => '',\r
- 'td_class3_name' => '',\r
- 'fontface1_name' => '',\r
- 'fontface2_name' => '',\r
- 'fontface3_name' => '',\r
- 'fontsize1_name' => '',\r
- 'fontsize2_name' => '',\r
- 'fontsize3_name' => '',\r
- 'fontcolor1_name' => '',\r
- 'fontcolor2_name' => '',\r
- 'fontcolor3_name' => '',\r
- 'span_class1_name' => '',\r
- 'span_class2_name' => '',\r
- 'span_class3_name' => ''\r
- );\r
-\r
- }\r
- $arr = array();\r
- foreach($data as $var => $value)\r
- {\r
- if($var !== 'themes_id')\r
- {\r
- $arr[$var] = '';\r
- }\r
- }\r
- return $arr;\r
-}\r
-\r
-function xs_get_vars($theme)\r
-{\r
- $arr1 = array();\r
- $arr2 = array();\r
- $vars_100 = array('head_stylesheet', 'body_background');\r
- $vars_50 = array('fontface');\r
- $vars_30 = array('style_name');\r
- $vars_25 = array('tr_class', 'th_class', 'td_class', 'span_class');\r
- $vars_6 = array('body_bgcolor', 'body_text', 'body_link', 'body_vlink', 'body_alink', 'body_hlink', 'tr_color', 'th_color', 'td_color', 'fontcolor');\r
- $vars_5 = array('img_size_poll', 'img_size_privmsg');\r
- $vars_4 = array('fontsize', 'theme_public');\r
- foreach($theme as $var => $value)\r
- {\r
- if(!is_integer($var) && $var !== 'themes_id' && $var !== 'template_name')\r
- {\r
- // editable variable\r
- $len = 0;\r
- $sub = substr($var, 0, strlen($var) - 1);\r
- if(xs_in_array($var, $vars_100) || xs_in_array($sub, $vars_100))\r
- {\r
- $len = 100;\r
- }\r
- elseif(xs_in_array($var, $vars_50) || xs_in_array($sub, $vars_50))\r
- {\r
- $len = 50;\r
- }\r
- elseif(xs_in_array($var, $vars_30) || xs_in_array($sub, $vars_30))\r
- {\r
- $len = 30;\r
- }\r
- elseif(xs_in_array($var, $vars_25) || xs_in_array($sub, $vars_25))\r
- {\r
- $len = 25;\r
- }\r
- elseif(xs_in_array($var, $vars_6) || xs_in_array($sub, $vars_6))\r
- {\r
- $len = 6;\r
- }\r
- elseif(xs_in_array($var, $vars_5) || xs_in_array($sub, $vars_5))\r
- {\r
- $len = 5;\r
- }\r
- elseif(xs_in_array($var, $vrs_4) || xs_in_array($sub, $vars_4))\r
- {\r
- $len = 4;\r
- }\r
- elseif(strpos($var, 'class'))\r
- {\r
- $len = 25;\r
- }\r
- elseif(strpos($var, 'color'))\r
- {\r
- $len = 6;\r
- }\r
- if($len)\r
- {\r
- $item = array(\r
- 'var' => $var,\r
- 'len' => $len,\r
- 'color' => $len == 6 ? true : false,\r
- 'font' => $len == 25 ? true : false,\r
- );\r
- if($var === 'style_name' || $var === 'head_stylesheet' || $var === 'body_background')\r
- {\r
- $arr1[$var] = $item;\r
- }\r
- else\r
- {\r
- $arr2[$var] = $item;\r
- }\r
- }\r
- }\r
- }\r
- krsort($arr1);\r
- ksort($arr2);\r
- if(defined('XS_MODS_CATEGORY_HIERARCHY210'))\r
- {\r
- // force sort for the added fields\r
- $added = array(\r
- 'style_name' => array(),\r
- 'images_pack' => array('var' => $item['images_pack'], 'len' => 100, 'color' => false, 'font' => false),\r
- 'custom_tpls' => array('var' => $item['custom_tpls'], 'len' => 100, 'color' => false, 'font' => false),\r
- 'head_stylesheet' => array(),\r
- );\r
- $arr1 = array_merge($added, $arr1);\r
- // we need to add lang entries\r
- global $lang;\r
- $lang['xs_data_images_pack'] = $lang['Images_pack'];\r
- $lang['xs_data_images_pack_explain'] = $lang['Images_pack_explain'];\r
- $lang['xs_data_custom_tpls'] = $lang['Custom_tpls'];\r
- $lang['xs_data_custom_tpls_explain'] = $lang['Custom_tpls_explain'];\r
- }\r
- return array_merge($arr1, $arr2);\r
-}\r
-\r
-//\r
-// submit\r
-//\r
-if(!empty($HTTP_POST_VARS['edit']) && !defined('DEMO_MODE'))\r
-{\r
- $id = intval($HTTP_POST_VARS['edit']);\r
- $lang['xs_edittpl_back_edit'] = str_replace('{URL}', append_sid('xs_edit_data.'.$phpEx.'?edit='.$id), $lang['xs_edittpl_back_edit']);\r
- $data_item = array();\r
- $data_item_update = array();\r
- $data_name = array();\r
- $data_name_insert_vars = array('themes_id');\r
- $data_name_insert_values = array($id);\r
- $data_name_update = array();\r
- foreach($HTTP_POST_VARS as $var => $value)\r
- {\r
- if(substr($var, 0, 5) === 'edit_')\r
- {\r
- $var = substr($var, 5);\r
- $value = stripslashes($value);\r
- $data_item[$var] = $value;\r
- $data_item_update[] = $var . "='" . xs_sql($value) . "'";\r
- }\r
- elseif(substr($var, 0, 5) === 'name_')\r
- {\r
- $var = substr($var, 5).'_name';\r
- $value = stripslashes($value);\r
- $data_name[$var] = $value;\r
- $data_name_update[] = $var . "='" . xs_sql($value) . "'";\r
- $data_name_insert_vars[] = $var;\r
- $data_name_insert_values[] = xs_sql($value);\r
- }\r
- }\r
- // update item\r
- $sql = "UPDATE " . THEMES_TABLE . " SET " . implode(',', $data_item_update) . " WHERE themes_id='{$id}'";\r
- if(!$result = $db->sql_query($sql))\r
- {\r
- xs_error($lang['xs_edittpl_error_updating'] . '<br /><br />' . $lang['xs_edittpl_back_edit'] . '<br /><br />' . $lang['xs_edittpl_back_list'], __LINE__, __FILE__);\r
- }\r
- // check if there is name\r
- $sql = "SELECT themes_id FROM " . THEMES_NAME_TABLE . " WHERE themes_id='{$id}'";\r
- if(!$result = $db->sql_query($sql))\r
- {\r
- $sql = "INSERT INTO " . THEMES_NAME_TABLE . " (" . implode(',', $data_name_insert_vars) . ") VALUES ('" . implode("', '", $data_name_insert_values) . "')";\r
- }\r
- $item = $db->sql_fetchrow($result);\r
- if(!is_array($item))\r
- {\r
- $sql = "INSERT INTO " . THEMES_NAME_TABLE . " (" . implode(',', $data_name_insert_vars) . ") VALUES ('" . implode("', '", $data_name_insert_values) . "')";\r
- }\r
- else\r
- {\r
- $sql = "UPDATE " . THEMES_NAME_TABLE . " SET " . implode(',', $data_name_update) . " WHERE themes_id='{$id}'";\r
- }\r
- $db->sql_query($sql);\r
- // regen themes cache\r
- if(defined('XS_MODS_CATEGORY_HIERARCHY210'))\r
- {\r
- if ( empty($themes) )\r
- {\r
- $themes = new themes();\r
- }\r
- if ( !empty($themes) )\r
- {\r
- $themes->read(true);\r
- }\r
- }\r
- xs_message($lang['Information'], $lang['xs_edittpl_style_updated'] . '<br /><br />' . $lang['xs_edittpl_back_edit'] . '<br /><br />' . $lang['xs_edittpl_back_list']);\r
-}\r
-\r
-//\r
-// edit style\r
-//\r
-if(!empty($HTTP_GET_VARS['edit']))\r
-{\r
- $id = intval($HTTP_GET_VARS['edit']);\r
- $sql = "SELECT * FROM " . THEMES_TABLE . " WHERE themes_id='{$id}'";\r
- if(!$result = $db->sql_query($sql))\r
- {\r
- xs_error($lang['xs_no_style_info'], __LINE__, __FILE__);\r
- }\r
- $item = $db->sql_fetchrow($result);\r
- if(empty($item['themes_id']))\r
- {\r
- xs_error($lang['xs_invalid_style_id'] . '<br /><br />' . $lang['xs_edittpl_back_list']);\r
- }\r
- $sql = "SELECT * FROM " . THEMES_NAME_TABLE . " WHERE themes_id='{$id}'";\r
- if(!$result = $db->sql_query($sql))\r
- {\r
- $item_name = array();\r
- }\r
- $item_name = $db->sql_fetchrow($result);\r
- if($item_name === false || !@count($item_name))\r
- {\r
- $item_name = xs_empty_name();\r
- }\r
- $vars = xs_get_vars($item);\r
- // show variables\r
- $template->assign_vars(array(\r
- 'U_ACTION' => append_sid('xs_edit_data.'.$phpEx),\r
- 'TPL' => htmlspecialchars($item['template-name']),\r
- 'STYLE' => htmlspecialchars($item['style_name']),\r
- 'ID' => $id\r
- )\r
- );\r
- // all variables\r
- $i = 0;\r
- foreach($vars as $var => $value)\r
- {\r
- $row_class = $xs_row_class[$i % 2];\r
- $i++;\r
- if(isset($lang['xs_data_'.$var]))\r
- {\r
- $text = $lang['xs_data_'.$var];\r
- }\r
- else\r
- {\r
- $str = substr($var, 0, strlen($var) - 1); \r
- $str_fc = substr($var, 0, strlen($var) - 2); \r
- if(isset($lang['xs_data_'.$str_fc])) \r
- { \r
- $str1 = substr($var, strlen($var) - 2); \r
- $text = sprintf($lang['xs_data_'.$str_fc], $str1); \r
- } \r
- else if(isset($lang['xs_data_'.$str])) \r
- { \r
- $str1 = substr($var, strlen($var) - 1); \r
- $text = sprintf($lang['xs_data_'.$str], $str1); \r
- } \r
- else \r
- { \r
- $text = sprintf($lang['xs_data_unknown'], $var); \r
- } \r
- }\r
- $template->assign_block_vars('row', array(\r
- 'ROW_CLASS' => $row_class,\r
- 'VAR' => $var,\r
- 'VALUE' => isset($item[$var]) ? htmlspecialchars($item[$var]) : '',\r
- 'LEN' => $value['len'],\r
- 'SIZE' => $value['len'] < 10 ? 10 : 30,\r
- 'TEXT' => htmlspecialchars($text),\r
- 'EXPLAIN' => isset($lang['xs_data_' . $var . '_explain']) ? $lang['xs_data_' . $var . '_explain'] : '',\r
- )\r
- );\r
- if($value['color'])\r
- {\r
- $template->assign_block_vars('row.color', array());\r
- }\r
- if($value['font'])\r
- {\r
- $template->assign_block_vars('row.font', array());\r
- }\r
- if(isset($item_name[$var.'_name']))\r
- {\r
- $template->assign_block_vars('row.name', array(\r
- 'DATA' => $item_name[$var.'_name']\r
- )\r
- );\r
- }\r
- else\r
- {\r
- $template->assign_block_vars('row.noname', array());\r
- }\r
- }\r
- $template->set_filenames(array('body' => XS_TPL_PATH . 'edit_data.tpl'));\r
- $template->pparse('body');\r
- xs_exit();\r
-}\r
-\r
-\r
-//\r
-// show list of installed styles\r
-//\r
-$sql = 'SELECT themes_id, template_name, style_name FROM ' . THEMES_TABLE . ' ORDER BY style_name';\r
-if(!$result = $db->sql_query($sql))\r
-{\r
- xs_error($lang['xs_no_style_info'], __LINE__, __FILE__);\r
-}\r
-$style_rowset = $db->sql_fetchrowset($result);\r
-\r
-$template->set_filenames(array('body' => XS_TPL_PATH . 'edit_data_list.tpl'));\r
-for($i=0; $i<count($style_rowset); $i++)\r
-{\r
- $item = $style_rowset[$i];\r
- $row_class = $xs_row_class[$i % 2];\r
- $template->assign_block_vars('styles', array(\r
- 'ROW_CLASS' => $row_class,\r
- 'TPL' => htmlspecialchars($item['template_name']),\r
- 'STYLE' => htmlspecialchars($item['style_name']),\r
- 'U_EDIT' => append_sid('xs_edit_data.'.$phpEx.'?edit='.$item['themes_id'])\r
- )\r
- );\r
-}\r
-\r
-$template->pparse('body');\r
-xs_exit();\r
-\r
-?>
\ No newline at end of file