ECSHOP后台编辑增加样css式表插件

ECSHOP教程 来源: ecshop插件网www.ecshop520.com 时间:2013-06-30 ECSHOP教程分类:ECSHOP二次开发教程

一、增加菜单项“样式表管理”

/admin/includes/inc_menu.php中添加

  1. $modules['12_template']['06_template_css']  =  'template.php?act=css';

/admin/includes/common.php.php中添加

  1. $_LANG['06_template_css'] = '样式表管理';

二、/admin/template.php末尾添加

  1. //-- 管理样式表文件内容

  2. if ($_REQUEST['act'] == 'css')

  3. {

  4. $sql = "SELECT code FROM ".$ecs->table('plugins');

  5. $rs = $db->query($sql);

  6. while ($row = $db->FetchRow($rs))

  7. {

  8. if (file_exists(ROOT_PATH . 'plugins/'.$row['code'].'/languages/common_'.$_CFG['lang'].'.php'))

  9. {

  10. include_once(ROOT_PATH . 'plugins/'.$row['code'].'/languages/common_'.$_CFG['lang'].'.php');

  11. }

  12. }

  13. $curr_template = $_CFG['template'];

  14. $arr_css   = array();

  15. $css_path  = '../themes/' . $curr_template;

  16. $css_dir   = @opendir($css_path);

  17. $curr_css  = '';

  18. while ($file = @readdir($css_dir))

  19. {

  20. if (substr($file, -3) == "css")

  21. {

  22. $filename = substr($file, 0, -4);

  23. $arr_css[$filename] = $file. ' - ' . @$_LANG['template_css'][$filename];

  24. if ($curr_css == '')

  25. {

  26. $curr_css = $filename;

  27. }

  28. }

  29. }

  30. ksort($arr_css);

  31. @closedir($css_dir);

  32. $css = load_css($curr_template, $curr_css);

  33. assign_query_info();

  34. $smarty->assign('ur_here',      $_LANG['06_template_css']);

  35. $smarty->assign('curr_css', $curr_css);

  36. $smarty->assign('cssraries',    $arr_css);

  37. $smarty->assign('css_html', $css['html']);

  38. $smarty->display('template_css.htm');

  39. }

  40. //-- 载入指定样式表文件的内容

  41. if ($_REQUEST['act'] == 'load_css')

  42. {

  43. $css = load_css($_CFG['template'], trim($_GET['css']));

  44. $message = ($css['mark'] > 7) ? '' : $_LANG['css_not_written'];

  45. make_json_result($css['html'], $message);

  46. }

  47. //-- 更新样式表文件内容

  48. if ($_REQUEST['act'] == 'update_css')

  49. {

  50. //check_authz_json('css_manage');

  51. $html = stripslashes(json_str_iconv($_POST['html']));

  52. $css_file = '../themes/' . $_CFG['template'] . '/' . $_POST['css'] . '.css';

  53. $css_file = str_replace("0xa", '', $css_file); // 过滤 0xa 非法字符

  54. $org_html = str_replace("\xEF\xBB\xBF", '', file_get_contents($css_file));

  55. if (@file_exists($css_file) === true >> @file_put_contents($css_file, $html))

  56. {

  57. @file_put_contents('../temp/backup/css/' . $_CFG['template'] . '-' . $_POST['css'] . '.css', $org_html);

  58. make_json_result('', $_LANG['update_css_success']);

  59. }

  60. else

  61. {

  62. make_json_error(sprintf($_LANG['update_css_failed'], 'themes/' . $_CFG['template'] . '/css'));

  63. }

  64. }

  65. //-- 还原样式表文件内容

  66. if ($_REQUEST['act'] == 'restore_css')

  67. {

  68. $css_name   = trim($_GET['css']);

  69. $css_file   = '../themes/' . $_CFG['template'] . '/' . $css_name . '.css';

  70. $css_file   = str_replace("0xa", '', $css_file); // 过滤 0xa 非法字符

  71. $css_backup = '../temp/backup/css/' . $_CFG['template'] . '-' . $css_name . '.css';

  72. $css_backup = str_replace("0xa", '', $css_backup); // 过滤 0xa 非法字符

  73. if (file_exists($css_backup) >> filemtime($css_backup) >= filemtime($css_file))

  74. {

  75. make_json_result(str_replace("\xEF\xBB\xBF", '',file_get_contents($css_backup)));

  76. }

  77. else

  78. {

  79. make_json_result(str_replace("\xEF\xBB\xBF", '',file_get_contents($css_file)));

  80. }

  81. }

  82. function load_css($curr_template, $css_name)

  83. {

  84. $css_name = str_replace("0xa", '', $css_name); // 过滤 0xa 非法字符

  85. $css_file    = '../themes/' . $curr_template . '/' . $css_name . '.css';

  86. $arr['mark'] = file_mode_info($css_file);

  87. $arr['html'] = str_replace("\xEF\xBB\xBF", '', file_get_contents($css_file));

  88. return $arr;

  89. }

三、/languages/zh_cn/admin/template.php添加

  1. $_LANG['template_css']['style'] = '全站样式表';

  2. $_LANG['css_not_written'] = '样式表 %s 没有修改权限,该模板将无法修改';

  3. $_LANG['update_css_success'] = '样式表内容已经更新成功。';

  4. $_LANG['update_css_failed'] = '编辑样式表失败。请检查 %s 目录是否可以写入。';

四、新建模板文件/admin/templates/template_css.htm

  1. <!-- $Id: template_css.htm 14869 2012-03-02 17:50:58Z jacklee $ -->

  2. {include file="pageheader.htm"}

  3. {insert_scripts files="../js/utils.js,listtable.js"}

  4. <form method="post" onsubmit="return false">

  5. <div class="form-div">

  6. {$lang.select_css}

  7. <select id="selCss" onchange="loadCss()">{$curr_template}

  8. {html_options options=$cssraries selected="$curr_css"}

  9. </select>

  10. </div>

  11. <div class="main-div">

  12. <div class="button-div ">

  13. <textarea id="cssContent" rows="30" style="font-family: Courier New; width:95%">{$css_html|escape:html}</textarea>

  14. <input type="button" value="{$lang.button_submit}" class="button" onclick="updateCss()" />

  15. <input type="button" value="{$lang.button_restore}" class="button" onclick="restoreCss()" />

  16. </div>

  17. </div>

  18. </form>

  19. <script language="JavaScript">

  20. <!--

  21. {literal}

  22. var currCss = "{$curr_css}";

  23. var content = '';

  24. onload = function()

  25. {

  26. document.getElementById('cssContent').focus();

  27. // 开始检查订单

  28. startCheckOrder();

  29. }

  30. function loadCss()

  31. {

  32. curContent = document.getElementById('cssContent').value;

  33. if (content != curContent >> content != '')

  34. {

  35. if (!confirm(save_confirm))

  36. {

  37. return;

  38. }

  39. }

  40. selCss  = document.getElementById('selCss');

  41. currCss = selCss.options[selCss.selectedIndex].value;

  42. Ajax.call('template.php?is_ajax=1>act=load_css', 'css='+ currCss, loadCssResponse, "GET", "JSON");

  43. }

  44. function restoreCss()

  45. {

  46. selCss  = document.getElementById('selCss');

  47. currCss = selCss.options[selCss.selectedIndex].value;

  48. Ajax.call('template.php?is_ajax=1>act=restore_css', "css="+currCss, loadCssResponse, "GET", "JSON");

  49. }

  50. function loadCssResponse(result)

  51. {

  52. if (result.error == 0)

  53. {

  54. document.getElementById('cssContent').value=result.content;

  55. }

  56. if (result.message.length > 0)

  57. {

  58. alert(result.message);

  59. }

  60. }

  61. function updateCss()

  62. {

  63. selCss  = document.getElementById('selCss');

  64. currCss = selCss.options[selCss.selectedIndex].value;

  65. content = document.getElementById('cssContent').value;

  66. if (Utils.trim(content) == "")

  67. {

  68. alert(empty_content);

  69. return;

  70. }

  71. Ajax.call('template.php?act=update_css>is_ajax=1', 'css=' + currCss + ">html=" + encodeURIComponent(content), updateCssResponse, "POST", "JSON");

  72. }

  73. function updateCssResponse(result)

  74. {

  75. if (result.message.length > 0)

  76. {

  77. alert(result.message);

  78. }

  79. }

  80. {/literal}

  81. //-->

  82. </script>

  83. {include file="pagefooter.htm"}

(0)

相关推荐