ecshop浏览记录商品图片标题宽带长度修改方法

ECSHOP教程 来源: ECSHOP教程网www.ecshop119.com 时间:2015-05-07 ECSHOP教程分类:ECSHOP商品详情页修改

 ecshop里面有浏览历史记录,在ecshop二次开发的时候,常常对这个地方进行调整.到不是说修改浏览历史记录的原理。而是修改ecshop浏览历史记录的数据显示方式.很简单,ecshop的商品浏览历史记录。他是借助cookie 来实现的。他是记录在ecshop的$_COOKIE['ECS']['history']变量里面的。

   我们先看ecshop的商品详细内容页面goods.php,里面有段程序.

   if (!empty($_COOKIE['ECS']['history']))
{
    $history = explode(',', $_COOKIE['ECS']['history']);

    array_unshift($history, $goods_id);
    $history = array_unique($history);

    while (count($history) > $_CFG['history_number'])
    {
        array_pop($history);
    }

    setcookie('ECS[history]', implode(',', $history), gmtime() + 3600 * 24 * 30);
}
else
{
    setcookie('ECS[history]', $goods_id, gmtime() + 3600 * 24 * 30);
}
  首先我们看下includes/lib_insert.php里面的function insert_history()函数

  在商品的浏览历史记录里面,可以通过商品ID来取得所有的浏览历史记录.

  $where = db_create_in($_COOKIE['ECS']['history'], 'goods_id');
        $sql   = 'SELECT goods_id, goods_name, goods_thumb, shop_price FROM ' . $GLOBALS['ecs']->table('goods') .
                " WHERE $where AND is_on_sale = 1 AND is_alone_sale = 1 AND is_delete = 0";

  从而返回一个浏览历史记录的商品信息数组.


需要修改的文件:includes\lib_insert.php,找到函数:function insert_history(),下面的代码:

$str.=’<ul><li><a href=”‘.$goods['url'].’” target=”_blank”><img src=”‘.$goods['goods_thumb'].’” alt=”‘.$goods['goods_name'].’” /></a></li><li><a href=”‘.$goods['url'].’” target=”_blank” title=”‘.$goods['goods_name'].’”>’.$goods['short_name'].’</a><br />’.$GLOBALS['_LANG']['shop_price'].’<font>’.$goods['shop_price'].’</font><br /></li></ul>’;

上面的代码就是所对应的样式代码,修改即可。

另外,调用的模板文件:history.lbi,中的:

<div id=’history_list’>
  {insert name=’history’}
</div>

其中,id=”history_list”是“清空”操作的ID。


参考案例二:


$str .= '<ul class="wytoplist"><li>

      <div>

        <div class="wyimg"><a class="track" target="_blank" href="'.$goods['url'].'"><img style="width: 68px; height: 95px; display: inline;" alt="'.$goods['goods_name'].'" src="'.$goods['goods_thumb'].'"></a></div>

        <div class="wytitle" style="width:105px;">

          <div class="wytitle1"><a title="'.$goods['goods_name'].'" target="_blank" class="track" href="'.$goods['url'].'">'.$goods['goods_name'].'</a></div>

          <div class="wyshoujia">優惠價:</div><b>'.$goods['shop_price'].'</b>

        </div>

      </div>

    </li></ul>';



标题长度控制:


浏览历史中标题长度的控制:因为不是在模板文件而是在系统文件中,所以在模板文件中能使用的控制方法并不适用,而是需要使用函数进行控制。

 

程序中用于控制short_name长度的语句

 

$goods['short_name'] = $GLOBALS['_CFG']['goods_name_length'] > 0? sub_str($row['goods_name'], $GLOBALS['_CFG']['goods_name_length']) hxrow['goods_name'];

 

这个语句的本意是用全局属性goods_name_length来控制长度,这个是可以在后台修改的,不过由于这个函数同时在网站的各个地方被调用,因此修改之后可能会引发其它问题,所以并不适合。

 

在这里把sub_str($row['goods_name'], $GLOBALS['_CFG']['goods_name_length'])

 

改为sub_str($row['goods_name'], 18,$append = true)即可。

 

其中,18是标题长度,这里是按照中文字符算的,18就表示18个中文。$append = true表示当原标题超过18个字符时,以【…】结尾。


本文模板屋原创地址: https://www.ecshop119.com/ecshopjc-938.html
模板屋版权所有 © 转载时必须以链接形式注明出处!

ECSHOP模板屋
ecshop开发团队 ecshop开发中心 ecshop模板制作 ecshop模板屋
ECSHOP
ecshop下载 ecshop安装教程 ecshop在线演示 ecshop后台测试
ECSHOP二次开发手册
ecshop教程 ecshop二次开发 ecshop模板教程 ecshop微信配置
ECSHOP商城网站建设
ecshop空间域名 ecshop商城建设 ecshop模板修改 ecshop开发定制
服务支持:7X24小时 151 059 55077
ECShop二次开发
ecshop搭建
qqtelcodeback_top
温馨提示

确定取消
温馨提示

关闭