ecshop 验证码不显示的一些解决方法
问题都是一个,结论总是奇形怪状.
状况: ecshop 验证码不显示
1) 原因1: 有客户试图用前台英文后台中文模式工作,他就仿照一些方法,覆盖了语言文件
导致一些CFG 后台设置的变量无法读取,
解决方法,修改 captcha.php 文件,不包含 init.php, 然后手动传入宽高变量
首先定义 ROOT_PATH
define(‘ROOT_PATH’, “绝对路径”);
然后
$img = new captcha(ROOT_PATH . ‘data/captcha/’, $_CFG['captcha_width'], $_CFG['captcha_height']);
变为
$img = new captcha(ROOT_PATH . ‘data/captcha/’, 100, 20);
2) 原因2,修改了某些utf-8文件,结果保存成 utf-8+ 也就是传说中的 utf-8 with bom
解决方法,找到对应文件,应 editplus 重新保存成 utf-8 无bom
ecshop一次性选择多个相册图片上传的二次开发
更改一个字,让ecshop 默认选择第默认的配送方式,支付方式
只需要修改一个地方,就可以实现更改默认的配送方式不选择的问题
includes\lib_order.php 的函数
function last_shipping_and_payment()
{
$sql = "SELECT shipping_id, pay_id " .
" FROM " . $GLOBALS['ecs']->table('order_info') .
" WHERE user_id = '$_SESSION[user_id]' " .
" ORDER BY order_id DESC LIMIT 1";
$row = $GLOBALS['db']->getRow($sql);
if (empty($row))
{
/* 如果获得是一个空数组,则返回默认值 */
$row = array('shipping_id' => 1, 'pay_id' => 0);
// 修改这里的 shipping_id 和 pay_id 就可以选择默认的配送和支付方式
}
return $row;
}
ecshop 2.7.2 goods.php 显示属性库存和货号 二次开发
效果图如上:
方法如下:
includes\lib_goods.php 行 612开始的
function get_goods_properties($goods_id)
{
/* 对属性进行重新排序和分组 */
$sql = "SELECT attr_group ".
"FROM " . $GLOBALS['ecs']->table('goods_type') . " AS gt, " . $GLOBALS['ecs']->table('goods') . " AS g ".
"WHERE g.goods_id='$goods_id' AND gt.cat_id=g.goods_type";
$grp = $GLOBALS['db']->getOne($sql);
if (!empty($grp))
{
$groups = explode("\n", strtr($grp, "\r", ''));
}
/* 获得商品的规格 */
$sql = "SELECT a.attr_id, a.attr_name, a.attr_group, a.is_linked, a.attr_type, ".
"g.goods_attr_id, g.attr_value, g.attr_price " .
",p.product_sn,p.product_number " . //phpsir
'FROM ' . $GLOBALS['ecs']->table('goods_attr') . ' AS g ' .
'LEFT JOIN ' . $GLOBALS['ecs']->table('attribute') . ' AS a ON a.attr_id = g.attr_id ' .
'LEFT JOIN ' . $GLOBALS['ecs']->table('products') . ' AS p ON g.goods_attr_id = p.goods_attr ' . //phpsir
"WHERE g.goods_id = '$goods_id' " .
'ORDER BY a.sort_order, g.attr_price, g.goods_attr_id';
$res = $GLOBALS['db']->getAll($sql);
$arr['pro'] = array(); // 属性
$arr['spe'] = array(); // 规格
$arr['lnk'] = array(); // 关联的属性
foreach ($res AS $row)
{
$row['attr_value'] = str_replace("\n", '<br />', $row['attr_value']);
if ($row['attr_type'] == 0)
{
$group = (isset($groups[$row['attr_group']])) ? $groups[$row['attr_group']] : $GLOBALS['_LANG']['goods_attr'];
$arr['pro'][$group][$row['attr_id']]['name'] = $row['attr_name'];
$arr['pro'][$group][$row['attr_id']]['value'] = $row['attr_value'];
}
else
{
$arr['spe'][$row['attr_id']]['attr_type'] = $row['attr_type'];
$arr['spe'][$row['attr_id']]['name'] = $row['attr_name'];
$arr['spe'][$row['attr_id']]['values'][] = array(
'label' => $row['attr_value'],
'price' => $row['attr_price'],
'format_price' => price_format(abs($row['attr_price']), false),
'id' => $row['goods_attr_id'],
'product_sn' => $row["product_sn"],
'product_number' => $row["product_number"],
);
}
if ($row['is_linked'] == 1)
{
/* 如果该属性需要关联,先保存下来 */
$arr['lnk'][$row['attr_id']]['name'] = $row['attr_name'];
$arr['lnk'][$row['attr_id']]['value'] = $row['attr_value'];
}
}
return $arr;
}
模板 goods.dwt
货号 : {$value.product_sn} 库存 : {$value.product_number}
下载代码:
ecshop 分类seo 一例
.htaccess
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
rewriterule ^(.+?)/$ category.php\?cname=$1 [L]
可以形如下url
http://domainame.com/商品名/
ecshop 未注册用户点击购买提示请登录的小开发
需求已经很清楚了,下面直接写处理方法 针对ecshop 2.7.2 的
/*------------------------------------------------------ */
//-- 添加商品到购物车
/*------------------------------------------------------ */
if ($_REQUEST['step'] == 'add_to_cart')
{
include_once('includes/cls_json.php');
//xecp.com 代码开始
if ( empty($_SESSION['user_name']) )
{
$json = new JSON;
$result['error'] = "999";
$result['message'] = "请首先登录";
die($json->encode($result));
}
//xecp.com 代码结束
xecp.com 升级到 wordpress 3.0
that it is .
这里就不贴了
可以单独使用,但是在同一个post 里面不能用两种语法
ecshop 之乱码,新手经常手工修改出错的原因
这类问题经常是在utf-8编码的ecshop 中出现,
如果参数没错而系统出错,一般是因为所用编辑器自动用了utf-8 bom 造成的
解决方法是: 使用editplus 另存为 utf-8 无bom


