ECSHOP指定分类商品的调用

由于ECSHOP的产品分类页不能做得像频道页一样,甚至如果不进行二次修改,还无法自定义TITLE。如此对于大多数网站全站权重尚且不高的情况下,商品分类页在优化上就更显得有些单薄了。搞什么频道页对于俺这种非程序猿白痴来说那是不行的,PHP代码什么的最讨厌了~

曲线救国,还不到这么严重。不过想搞定调用指定分类这想法是想了很久的,搜索了些资料终于在今天完成了。完成的效果只是能用,至于这用着爽不爽,我就无能为力了。我甚至不知道下面代码的意义,纯粹就是生搬硬套横塞进去,好比霸王硬上弓。

首先是复制一个 index.php 文件,更名为 chengkao.php ,这次俺要做的是一个成人高考教材的频道页,因此就用成考的拼音来命名吧。

一、搜索 index.dwt 替换为 chengkao.dwt

二、把以下代码粘贴到文件倒数第二行的位置,</?> 的前面,非特定。

/**
* 获得指定分类商品列表。
*/
function cat_goods_list($cat_id)
{
$sql = 'SELECT g.goods_id, g.goods_name, g.goods_name_style, g.market_price, g.shop_price, g.goods_thumb , g.goods_img, g.cat_id ' .
'FROM ' . $GLOBALS['ecs']->table('goods') . ' AS g ' .
"WHERE g.is_on_sale = 1 AND g.is_alone_sale = 1 AND g.is_delete = 0 AND g.cat_id = ".$cat_id . " ORDER by g.goods_id DESC LIMIT 12" ;
$res = $GLOBALS['db']->getAll($sql);
$goods = array();
foreach ($res AS $idx => $row)
{
$goods[$idx]['id']                 =$row['goods_id'];
$goods[$idx]['name']            =$row['goods_name'];
$goods[$idx]['market_price']    =price_format($row['market_price']);
$goods[$idx]['shop_price']        =price_format($row['shop_price']);
$goods[$idx]['thumb']            = empty($row['goods_thumb']) ? $GLOBALS['_CFG']['no_picture'] : $row['goods_thumb'];
$goods[$idx]['goods_img']        = empty($row['goods_img']) ? $GLOBALS['_CFG']['no_picture'] : $row['goods_img'];
$goods[$idx]['url']                = build_uri('goods' , array('gid' => $row['goods_id']), $row['goods_name']);

}
return $goods;
}

三、已经说得有点傻了。然后把下面的调用复制到合适位置。

$smarty->assign('catid_39',       cat_goods_list (39));  //专升本
$smarty->assign('catid_40',       cat_goods_list (40));  //高升本专
$smarty->assign('catid_152',       cat_goods_list (152));  //专插本

这里可以看出调用了三个分类。

四、复制一个 index.dwt 文件,改名为 chengkao.dwt 。复制以下代码到合适地方,事实只要修改cat_goods.lbi 文件中的一些 smarty 调用就行了。这样就不需要重新整什么模版了。

<div>
<h3> <a href="http://www.booko.net/category-39-b0.html">成考高升本专</a></h3>
<ul>
<!--{foreach from=$catid_39 item=cat_goods}-->
<li>
<p><a href="{$cat_goods.url}"><img src="{$cat_goods.thumb}" alt="{$cat_goods.name|escape:html}" /></a></p>
<p><a href="{$cat_goods.url}" title="{$cat_goods.name|escape:html}">{$cat_goods.name|escape:html}}</a></p>
<!-- {if $cat_goods.promote_price neq ""} -->
{$lang.promote_price}<span>{$cat_goods.promote_price}</span><br />
<!-- {else}-->
{$lang.shop_price}<span>{$cat_goods.shop_price}</span><br />
<!--{/if}-->
</li>
<!--{/foreach}-->
</ul>
</div>

点击大分类时只显示该分类下子分类的解决方法

环境:EC2.70 。。
修改include/lib_goods.php文件
在 $parent_id = $GLOBALS['db']->getOne($sql);    (45行处) 下添加以下代码

  1. $row = $GLOBALS['db']->getRow(‘SELECT parent_id ,(SELECT COUNT(*) FROM ecs_category b WHERE b.parent_id = a.cat_id ) AS has_children FROM ‘ . $GLOBALS['ecs']->table(‘category’) .” AS a WHERE cat_id = ‘$cat_id’”);
  2. if($row['has_children']==”0″)
  3. {
  4. $parent_id = $row['parent_id'];
  5. }

复制 代码

解决方法来源于俺同学。不过这个解决方法还不是俺想要 的。现在的情况是选择最小分类(即该分类下已经没有下属分类),列出的是该分类的 同级分类。京东则不是。。

详情见:http://www.booko.net 比 如点击自考 书店链接http://www.booko.net/category-43-b0.html), 则只显示自考书店下的分类,在用户角度上俺理解这样是比较合理的。既然顾客选择了自考 书店这个分类,那其他分类并不是他所需要的,那就不应该显示给顾客看,影响顾客的视觉。

这里有人提问过,不知道楼主是不是想实现这样结果。http://bbs.ecshop.com/viewthread.php?tid=11495
这张贴的解决方法以前我用过,不过2.70的时候试验好像不成功:http://bbs.ecshop.com/thread-30409-1-1.html

ECSHOP整合UCenter通信不成功及不能同步登录登出的解决方法

先说一下环境:

UCenter 1.5  建在二级目录下
ECSHOP 2.70 一级目录http://www.booko.net/
UChome  二级目录:http://www.booko.net/home/
supesite   二级目录:http://www.booko.net/news/

ECSHOP网店一直以来都是独立运行着的,整合是最近的事。俺的安装顺序是ECSHOP -> UCenter -> UChome -> SupeSite。基本上我认为安装顺序是不影响程序间的整合的。EC与UC的整合教程可以参考官方的这一贴:http://bbs.ecshop.com/viewthread.php?tid=69903
。UCH或者SUPESITE与UCenter的整合就不说了,我想大家肯定是轻而易举就能解决的。

现在的问题是正如大家反应的一样,俺也同样不能减免得了。整合后在UCenter后台“应用管理”里会显示ECSHOP的通信是不成功的,但程序间的会员信息已经可以共享了,比如在ECSHOP新注册的会员在UCenter的“用户管理”里是能看到的,并且也能用新注册的ID在其他整合了的程序登录成功,说明整合基本上是成功的。除了不能同步登录登出外,还因为ECHSOP的通信不成功,没办法在UCenter的“积分兑换”进行整合程序间的积分兑换,这估计对大家来说是很严重的问题。积分兑换功能就像是搭建起不同程序间的桥梁,否则各自拥有一套积分系统却不能进行共享,跟各自为战没什么区别。

解决方法是今晚突然异想天开解决掉的,但自己也有点莫名其妙的,所以说一下自己的操作步骤,反正俺最终是解决了。

一、先检查下网店目录下的 uc_client/data/cache/apps.php 文件,查看’url’ => ‘http://www.booko.net’,  查看结尾是否有”/”,有则去掉。
二、下载 ECShop_V2.6.2_UTF,然后把”api”整个目录上传到网店根目录。

我估计解决通信不成功的原因估计是第二步,现在既然成功了我也不想折腾了。哪位试验成功后可以补充下。

上图为证,不信的同学也可以上网站测试下。不过从ECSHOP新注册的用户需要在UCHOME及SUPESITE都登录一次激活账号才能达到同步登录登出。

booko