新浪微博不支持多个参数

日前,写了个插件程序给ECShop,并按领导要求,添加了新浪微博的分享和腾讯微博的分享。结果有人报告,在插件详情页上的新浪微博的分享,有mysql错误显示,但能生成短地址,而腾讯微博正常。

这个错误很妖异,放狗搜了一下,也没搜到类似的案例。仔细考虑了一下,一般,分享框都是标题和地址,现在只有地址,没有标题,说明是标题生成出了问题。但生成的HTML页面上,title又是能正常生成的(因为新浪微博的分享按钮,通常在未做指定的情况下,是直接取HTML页面的title元素的)。考虑到通常的商品详情页面的新浪微博分享又是正常的,猜测是因为该页面的URL地址有两个参数,形如:http://www.xxx.com/xxx.php?a=b&c=d,其中a=b是选择不同的页面动作,于是将这个动作,独立写成一个PHP文件,将地址缩短到形如http://www.xxx.com/xxx.php?a=b,果然,立刻吃嘛嘛香,身体倍儿棒,新浪微博分享立刻显示正常。看来这是由于新浪的分享功能不支持当前页面的URL地址有多个参数,从而无法获取标题造成的。

ECshop实现同时显示购物车方式和一步购物方式

工作需要,要研究这个问题。屡思不得,遂放狗上网。狗吠曰:


在后台开启一步购物 则可以不用到购物车 直接结算 。从而实现立刻购买。然而购物车的功能又没有了。有没有像淘宝那样即可以立刻购买。又有购物车功能呢。?

首先 我们先将添加购物车的跳转链接复制粘贴到收藏商品的按钮上 然后设一个bool值为1 。

<a href=”javascript:bool =1;addToCart({$goods.goods_id})”>。然后直达JS处理页面common.js 在这个脚本的第一行代码之上加一个全局变量var bool =0; 然后查找点击购物车之后的那条链接即:flow.php?step=cart 

找到这个(在第88行 那块)之后 然后在下面加这句话 (bool == 1) && (cart_url = ‘flow.php?step=consignee’);

意思是 当bool = 1 条件满足时 则cart_url链接到  ‘flow.php?step=consignee’ 直接购买的页面

大致就是这样子了   从而实现立刻购买与添加到购物车并存的方法。


但是,我使用的ECshop是最新的2.7.2版,在common.js的88行没有找到那段代码,后来在大约92行的样子找到了,在后面加上了作者写的那段代码,依然出错。继续在common.js搜索作者提到的flow.php?step=cart,发现在890到900行的样子,还有一处,在这一行下面也加上作者的代码,这才OK。


为了保证更丰富地进行设置,我又做了如下调整。

1,数据库里shop_config表code字段,one_step_buy属性增加值2
2.language/admin/shop_config.php,增加
$_LANG[‘cfg_range’][‘one_step_buy’][‘2’] = ‘同时开启购物车和一步购物’;
修改
$_LANG[‘cfg_range’][‘one_step_buy’][‘0’] = ‘开启购物车’;
$_LANG[‘cfg_range’][‘one_step_buy’][‘1’] = ‘开启一步购物’;
3、include/lib_common.php,去除
$arr[‘one_step_buy’]         = empty($arr[‘one_step_buy’]) ? 0 : 1;
4、themes/模板名称/goods.dwt,增加“立刻购买”的图片,作者说的<a href=”javascript:bool =1;addToCart({$goods.goods_id})”>代码就加在“立刻购买”图片的<img>标签前后。

<!– {if $cfg.one_step_buy eq 1 or $cfg.one_step_buy eq 2} –>
<a href=”javascript:bool =1;addToCart({$goods.goods_id})”><img src=”images/bnt_subOrder.gif” width=”145″ height=”40″ /></a>
<!– {/if} –>
<!– {if $cfg.one_step_buy eq 0 or $cfg.one_step_buy eq 2} –>
<a href=”javascript:addToCart({$goods.goods_id})”><img src=”images/bnt_cat.gif” width=”72″ height=”41″ /></a>
<!– {/if} –>

以上代码的意思是,当“是否一步购物”的选择项选择1,也就是选择一步购物的时候或者同时开启两者的时候,显示“立刻购买”的图片,当“是否一步购物”的选择项选择0,也就是选择购物车的时候或者同时开启两者的时候,显示购物车的图片。

 

搜到的资料,来自于新浪博客陈耀雄氏,地址为http://blog.sina.com.cn/s/blog_6f5ae1880100o4dj.html。