怎樣修改ecshop後台admin目錄為任意目錄名?
ecshop有個地方配置admin的目錄名
data/config.php
的
$admin_dir = “admin”;
但是直接改不行,因為很多地方,這個目錄名字被硬編碼進去了,直接改會有很多地方報錯。
網上搜到一篇文章,整理了一些需要修改的地方,內容轉帖如下:
1.修改data/config.php
- 1. $admin_dir = “admin”;
- 修改成
- 1. $admin_dir = “新目錄名”;
- 2.修改admin/index.php
- 1. //貨號
- 2. require_once(ROOT_PATH . ‘admin/includes/lib_goods.php’);
- 修改成
- 1. require_once(ROOT_PATH . $admin_dir.’/includes/lib_goods.php’);
- 3.修改admin/database.php
- 1. require_once(ROOT_PATH . ‘admin/includes/cls_sql_dump.php’);
- 修改成
- 1. require_once(ROOT_PATH . $admin_dir.’/includes/cls_sql_dump.php’);
- 4.修改admin/get_password.php
- 1. $reset_email = $ecs->url() . ‘admin/get_password.php?act=reset_pwd&uid=’.$admin_id.’&code=’.$code;
- 2. 修改成
- 3. $reset_email = $ecs->url() . $admin_dir.’/get_password.php?act=reset_pwd&uid=’.$admin_id.’&code=’.$code;
- 5.修改admin/goods.php
- 1. require_once(ROOT_PATH . ‘/admin/includes/lib_goods.php’);
- 2. 修改成
- 3. require_once(ROOT_PATH . $admin_dir.’/includes/lib_goods.php’);
- 6.修改admin/check_file_priv.php
- 1. $dir[] = ‘admin’;
- 2. 修改成
- 3. $dir[] = $admin_dir;
- 7.修改admin/includes/init.php
- 1. if (file_exists(ROOT_PATH . ‘data/config.php’))
- 2. {
- 3. include(ROOT_PATH . ‘data/config.php’);
- 4. }
- 5. else
- 6. {
- 7. include(ROOT_PATH . ‘includes/config.php’);
- 8. }
- 9. 修改成下麵代碼,並將代碼移至“/* 取得當前ecshop所在的根目錄 */”注釋之前。
- 10. if (file_exists(‘../data/config.php’))
- 11. {
- 12. include(‘../data/config.php’);
- 13. }
- 14. else
- 15. {
- 16. include(‘../includes/config.php’);
- 17. }
- 1. define(‘ROOT_PATH’, str_replace(‘admin/includes/init.php’, ”, str_replace(‘\\’, ‘/’, __FILE__)));
- 2. 修改成
- 3. define(‘ROOT_PATH’, str_replace($admin_dir.’/includes/init.php’, ”, str_replace(‘\\’, ‘/’, __FILE__)));
- 1. require(ROOT_PATH . ‘admin/includes/lib_main.php’);
- 2. 修改成
- 3. require(ROOT_PATH . $admin_dir.’/includes/lib_main.php’);
- 1. require(ROOT_PATH . ‘admin/includes/cls_exchange.php’);
- 2. 修改成
- 3. require(ROOT_PATH . $admin_dir.’/includes/cls_exchange.php’);
- 1. $smarty->template_dir = ROOT_PATH . ‘admin/templates’;
- 2. 修改成
- 3. $smarty->template_dir = ROOT_PATH . $admin_dir.’/templates’;
- 1. $admin_path = preg_replace(‘/:\d+/’, ”, $ecs->url()) . ‘admin’;
- 2. 修改成
- 3. $admin_path = preg_replace(‘/:\d+/’, ”, $ecs->url()) . $admin_dir;
- 8.修改include/lib_main.php
- 1. include_once(ROOT_PATH . ‘admin/includes/lib_template.php’);
- 修改成
- 1.
- 2. global $admin_dir;
- 3. include_once(ROOT_PATH . $admin_dir.’/includes/lib_template.php’);
- 9.修改include/cls_ecshop.php
- 1. $curr = strpos(PHP_SELF, ‘admin/’) !== false ?
- 2. preg_replace(‘/(.*)(admin)(\/?)(.)*/i’, ‘\1′, dirname(PHP_SELF)) :
- 3. dirname(PHP_SELF);
- 修改成
- 1. global $admin_dir;
- 2. $curr = strpos(PHP_SELF, $admin_dir.’/’) !== false ?
- 3. preg_replace(‘/(.*)(‘.$admin_dir.’)(\/?)(.)*/i’, ‘\1′, dirname(PHP_SELF)) :
- 4. dirname(PHP_SELF);
- 10.如果擔心$admin_dir變量注入安全問題可以在data/config.php文件中define(‘EC_CHARSET’,’utf-8′);後增加
- 1. define(‘ADMIN_DIR’,’新目錄名’);
- 然後將所有修改的$admin_dir變量修改成ADMIN_DIR,例如:
- 1. require_once(ROOT_PATH . $admin_dir.’/includes/lib_goods.php’);
- 2. 修改成
- 3. require_once(ROOT_PATH . ADMIN_DIR.’/includes/lib_goods.php’);
- 11.根據pjb126 網友提示修改/admin/picture_batch.php
- 將
- 1. include_once(ROOT_PATH . ‘/admin/includes/lib_goods.php’);
- 2. 修改成
- 3. include_once(ROOT_PATH .$admin_dir.’/includes/lib_goods.php’);
- 12.新增修改quotation.php
- 1. include_once(ROOT_PATH . ‘admin/includes/lib_main.php’);
- 修改成
- 1.
- 2. global $admin_dir;
- 3. include_once(ROOT_PATH . $admin_dir.’/includes/lib_main.php’);但是,我改過這些之後,還發現可能還有三個文件需要修改admin/filecheck.php:
api/client/includes/lib_api.php
ecshopfiles.md5關鍵字 ‘admin’
最後更新:2017-01-04 22:34:32