ecshop在win8部分电脑上,不管用任何浏览器,都打不开,即使升级到最新版本都不行,问题应该吃在fckeditor兼容上。fckeditor 很久未升级,换掉该编辑器是最佳方法
第一步:下载kindeditor,下载地址为:http://www.kindsoft.net/down.php 下载最新版本的,现在是4.1.10
下载之后,把里面不要的语言和演示文件删除,有,asp、asp.net jsp和examples四个文件夹删掉。
把文件夹改名为:kindeditor,然后上传到根目录includes/下面,和fckeditor同一级就是了。以后可以把fckeditor删除了。
第二步:修改admin/includes/lib_main.php把里面的create_html_editor方法修改为创建kindeditor的内容:
直接替换就ok了:
function create_html_editor ($input_name, $input_value = '')
{
global $smarty;
$kindeditor="<script charset='utf-8' src='../includes/kindeditor/kindeditor-min.js'></script>
<script>
var editor;
KindEditor.ready(function(K) {
editor = K.create('textarea[name=\"$input_name\"]', {
allowFileManager : true,
width : '700px',
height: '300px',
resizeType: 0 //固定宽高
});
});
</script>
<textarea id=\"$input_name\" name=\"$input_name\" style='width:700px;height:300px;'>$input_value</textarea>
";
$smarty->assign('FCKeditor', $kindeditor); //这里前面的 FCKEditor 不要变
}
第三步:修改文件上传路径
修改kindeditor/php目录下面的upload_json.php里面的
//文件保存目录路径
$save_path = $php_path . '../../../images/upload/';
//文件保存目录URL
$save_url = $php_url . '../../../images/upload/';
kindeditor默认上传图片的路径是upload下面的image目录下面,以年月日为目录,如:image/20130401 我们把它修改为:以年月划分比较好。
在upload_json.php找到$ymd = date("Ymd"); 改为:$ymd = date("Ym");就可以了。
第四步:浏览服务器路径修改
修改includes/kindeditor/php/file_manager_json.php
//根目录路径,可以指定绝对路径,比如 /var/www/attached/
$root_path = $php_path . '../../../images/upload/';
//根目录URL,可以指定绝对路径,比如 http://www.yoursite.com/attached/
$root_url = $php_url . '../../../images/upload/';
第五步:注释掉goods.php和article.php文件中关于fckeditor的路径
注释掉goods.php 文件的第107行
注释掉article .php 文件的第19行
到此为止,大功告成。感谢网友@大鱼和小鱼提供本教程!
/**
* ZG2020 前台公用函数库
* ============================================================================
* 版权所有 2010-2012 北京宅购坊电子商务有限公司,并保留所有权利。
* 网站地址: http://www.zg2020.com。
* ============================================================================
* $Author: liuhui $
* $Id: lib_main.php 17063 2010-03-25 06:35:46Z liuhui $
*/
if (!defined('IN_ECS'))
{
die('Hacking attempt');
}
/**
* 更新用户SESSION,COOKIE及登录时间、登录次数。
*
* @access public
* @return void
*/
function update_user_info()
{
if (!$_SESSION['user_id'])
{
return false;
}
/* 查询会员信息 */
$time = date('Y-m-d');
$sql = 'SELECT u.user_money, u.pay_points, u.user_rank, u.rank_points, '.
' IFNULL(b.type_money, 0) AS user_bonus, u.last_login, u.last_ip'.
' FROM ' .$GLOBALS['ecs']->table('users'). ' AS u ' .
' LEFT JOIN ' .$GLOBALS['ecs']->table('user_bonus'). ' AS ub'.
' ON ub.user_id = u.user_id AND ub.used_time = 0 ' .
' LEFT JOIN ' .$GLOBALS['ecs']->table('bonus_type'). ' AS b'.
" ON b.type_id = ub.bonus_type_id AND b.use_start_date <= '$time' AND b.use_end_date >= '$time' ".
" WHERE u.user_id = '$_SESSION[user_id]'";
if ($row = $GLOBALS['db']->getRow($sql))
{
/* 更新SESSION */
$_SESSION['last_time'] = $row['last_login'];
$_SESSION['last_ip'] = $row['last_ip'];
$_SESSION['login_fail'] = 0;
/* 取得用户等级和折扣 */
if ($row['user_rank'] == 0)
{
// 非特殊等级,根据等级积分计算用户等级(注意:不包括特殊等级)
$sql = 'SELECT rank_id, discount FROM ' . $GLOBALS['ecs']->table('user_rank') . " WHERE special_rank = '0' AND min_points <= " . intval($row['rank_points']) . ' AND max_points > ' . intval($row['rank_points']);
if ($row = $GLOBALS['db']->getRow($sql))
{
$_SESSION['user_rank'] = $row['rank_id'];
$_SESSION['discount'] = $row['discount'] / 100.00;
}
else
{
$_SESSION['user_rank'] = 0;
$_SESSION['discount'] = 1;
}
}
else
{
// 特殊等级
$sql = 'SELECT rank_id, discount FROM ' . $GLOBALS['ecs']->table('user_rank') . " WHERE rank_id = '$row[user_rank]'";
if ($row = $GLOBALS['db']->getRow($sql))
{
$_SESSION['user_rank'] = $row['rank_id'];
$_SESSION['discount'] = $row['discount'] / 100.00;
}
else
{
$_SESSION['user_rank'] = 0;
$_SESSION['discount'] = 1;
}
}
}
/* 更新登录时间,登录次数及登录ip */
$sql = "UPDATE " .$GLOBALS['ecs']->table('users'). " SET".
" visit_count = visit_count 1, ".
" last_ip = '" .real_ip(). "',".
" last_login = '" .gmtime(). "'".
" WHERE user_id = '" . $_SESSION['user_id'] . "'";
$GLOBALS['db']->query($sql);
}
/**
* 获取用户信息数组
*
* @access public
* @param
*
* @return array $user 用户信息数组
*/
function get_user_info($id=0)
{
if ($id == 0)
{
$id = $_SESSION['user_id'];
}
$time = date('Y-m-d');
$sql = 'SELECT u.user_id, u.email, u.user_name, u.user_money, u.pay_points'.
' FROM ' .$GLOBALS['ecs']->table('users'). ' AS u ' .
" WHERE u.user_id = '$id'";
$user = $GLOBALS['db']->getRow($sql);
$bonus = get_user_bonus($id);
$user['username'] = $user['user_name'];
$user['user_points'] = $user['pay_points'] . $GLOBALS['_CFG']['integral_name'];
$user['user_money'] = price_format($user['user_money'], false);
$user['user_bonus'] = price_format($bonus['bonus_value'], false);
return $user;
}
/**
* 取得当前位置和页面标题
* ( 2015-03-14 22:02:20 )
注释掉goods.php 文件的第107行
// include_once(ROOT_PATH . 'includes/fckeditor/fckeditor.php'); // 包含 html editor 类文件
注释掉article .php 文件的第19行
// require_once(ROOT_PATH . "includes/fckeditor/fckeditor.php");
什么是注释掉article .php 文件的第19行?我跟前面几步都改完了,之前的fckeditor文件我没有删除,如果删除的话文章列表不显示,不能编辑文章,现在是两个文件都在,只是产品编辑器写好的东西,点击确定,没有真的保证,我觉得应该是保存路径,但是我不找不到,谢谢 ( 2015-01-13 10:16:43 )
是admin目录下的goods.php和article.php
editor.sync();//同步编辑框的文字;
document.forms['theForm'].submit(); ( 2014-04-29 08:35:50 )
楼上正解 感谢支持