虾米窝窝 -- » ECShop调用具体的自定义商品属性
Subscribe RSS
ECShop调用具体的自定义商品属性 04月 24

      ECSHop的自定义属性很是好用,但是在前台输出的时候非常麻烦,只能循环输出所有的附加商品属性,不能输出制定的某个自定义的属性,本来它用的是Smarty模板,但是到2.5之后好像是把Smarty修改很多,里面好多东西不能用了。今天给朋友改东西,随便就写了下。

      我只在商品具体信息页面(goods.php)做了这个事情,可以的话可以写到每个页面去。

修改goods.php

PHP代码
  1. $smarty->assign(‘properties’,          $properties['pro']);  

这句前添加:

PHP代码
  1. //By Sharmy   
  2. $pros = array();   
  3. foreach($properties['pro']['商品属性'as $k=>$pro){   
  4.     $pros[$pro['name']]['specId'] = $k;   
  5.     $pros[$pro['name']]['value'] = $pro['value'];   
  6. }   
  7. $smarty->assign(‘pros’,          $pros);   

然后在模板部分可以这样调用(例如调用自己在后台定义的"净重"的商品类别属性):

XML/HTML代码
  1. <ul><li> 净重:{$pros.净重.value}</li></ul>  

      嘿嘿,是不搜很爽?
      接下来就可以修改它的其它页面了,最好是修改调用的function部分,例如修改lib_goods.php里的get_goods_propertiess。

Category: PHP&MySQL  | 标签: ,  | 3524次阅读
你可以通过RSS 2.0来关注此文章的评论. 也可以留言或者从你的主页trackback.
6 条留言
  1. sharmy 说到:

    在商品列表中不能使用是不是有的函数没有加载?可以把相关的函数移植过去啊。反正源代码是可以修改的,不像supe-site和x-space,麻烦的很。

    [回复]

  2. sharmy 说到:

    呵呵,受教,多谢了。

    [回复]

  3. 苍狼 说到:

    补充下:这个代码 只能在goods.php 中使用,因为
    要使用到 lib_goods.php 中的
    get_goods_properties函数
    而get_goods_properties函数带的参数是$goods_id

    本人也想在商品列表中使用,但是怎么思考都想不出来,希望大家能帮帮忙。

    [回复]

  4. 苍狼 说到:

    经过测试你的代码有时候会出现错误代码:
    Invalid argument supplied for foreach()
    我稍微改进了一下

    /*
    调用自定义属性
    by catro
    */
    $pros = array();
    if (isset($properties) && is_array($properties))
    {
    foreach((array)$properties['pro'][$GLOBALS['_LANG']['goods_attr']] as $k=>$pro)
    {
    $pros[$pro['name']]['specId'] = $k;
    $pros[$pro['name']]['value'] = $pro['value'];
    }
    $smarty->assign(’pros’, $pros); //End 调用演示: 净重:{$pros.净重.value}
    }

    [回复]

  5. sharmy 说到:

    最新版本的ECshop已经把Smarty改了,要实现你的功能只有自己写函数了。

    [回复]

  6. soe 说到:

    请问一下,ecshop 2.5是不是不能用 {$xxx|replace:”":”"} 这样的方法了?如果是不行,怎么实现这个功能呢?多谢了……

    [回复]

留言

XHTML: 你可以使用以下的标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>