Skip to content
Aug 27 10

ecshop 验证码不显示的一些解决方法

by xecp_admin

问题都是一个,结论总是奇形怪状.
状况: 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

Aug 18 10

ecshop一次性选择多个相册图片上传的二次开发

by xecp_admin

需求描述:
客户要求在添加和修改商品时候,可以一次选择多个图片上传形成相册,而不必每次点加号增加一个图片
思路:
利用swfupload去做
效果如下:

需要此功能的朋友,请QQ 联系 733905

Jul 28 10

更改一个字,让ecshop 默认选择第默认的配送方式,支付方式

by xecp_admin

只需要修改一个地方,就可以实现更改默认的配送方式不选择的问题
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;
}
Jul 16 10

ecshop 2.7.2 goods.php 显示属性库存和货号 二次开发

by xecp_admin

效果图如上:
方法如下:
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}

下载代码:

货号显示库存

Jul 16 10

javascript 禁止操作的浮动层,仿 ems.com.cn 查询界面,仅ie 适用

by xecp_admin


floatjs_search_delay

例子:
http://xecp.com/dl/ems_float.html

Jul 14 10

ecshop 分类seo 一例

by xecp_admin

.htaccess

RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
rewriterule ^(.+?)/$ category.php\?cname=$1 [L]

可以形如下url

http://domainame.com/商品名/

Jul 12 10

ecshop 未注册用户点击购买提示请登录的小开发

by xecp_admin

需求已经很清楚了,下面直接写处理方法 针对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  代码结束
Jul 10 10

xecp.com 升级到 wordpress 3.0

by xecp_admin

that it is .

Jul 10 10

经测试 wp-synhighlight 和 SyntaxHighlighter Evolved 的两个插件不能在同一个post使用

by xecp_admin

这里就不贴了

可以单独使用,但是在同一个post 里面不能用两种语法

Jul 10 10

ecshop 之乱码,新手经常手工修改出错的原因

by xecp_admin

这类问题经常是在utf-8编码的ecshop 中出现,
如果参数没错而系统出错,一般是因为所用编辑器自动用了utf-8 bom 造成的
解决方法是: 使用editplus 另存为 utf-8 无bom