ecshop标签 随笔笔记

标题: {$page_title}

公告: {$shop_notice}

关键字:{$keywords}

描述:{$description}

获取分类信息

获取所有父级分类

<!--{foreach from=$categories item=cat}-->
        <li><a href="{$cat.url}">{$cat.name}</a></li>
        <!-- {/foreach} -->
获取某父类下子类

<!--{foreach from=$categories item=cat}--> //获取所有分类
        <!-- {if $cat.id == 16} -->//判断ID为16的父类
            <!--{foreach from=$cat.cat_id item=child}-->//循环ID为16下的子类
            	<li><a href="{$child.url}">{$child.name|escape:html}</a></li>
                <li>|</li>
            <!--{/foreach}-->
        <!-- {/if} -->
        <!--{/foreach}-->
获取某一商品分类下特定状态的商品

比如我在这里是在index页面中显示橱窗分类下的信息,则在index.php中$smarty->display()前加入如下代码

$smarty->assign('goods_chugui',    get_category_recommend_goods('best',get_children(16)));           // 获取橱柜分类下信
get_category_recommend_goods方法在/includes/lib_goods.php文件里       大约413行

接着在index.dwt模板中foreach遍历

这里主要是显示推荐、最新、热门、促销的商品

获取某一商品分类下所有商品

同上,在index.php中$smarty->display()前加入以下代码

$cat_goods_16 = assign_cat_goods(16,5);		//获取cat ID16 的所有商品信

assign_cat_goods()方法在/includes/lib_goods.php文件里       大约750行

这里主要是执行assign_cat_goods()方法,将ID为16传到方法中

$GLOBALS['smarty']->assign('cat_goods_' . $cat_id, $goods);
所以直接在dwt模板中遍历

<!-- {foreach from=$cat_goods_16 item=good} -->
<!-- {/foreach} -->

获取特定状态的商品

<!-- {foreach from=$best_goods item=best_good name=best} -->
<!-- {/foreach} -->

有best---推荐、new---最新、hot---热门、promote---促销   四种状态


获取商品信息

{$goods.goods_style_name}

goods数组,存放商品的详细信息


页面中调用css文件

如{insert_scripts files='common.js,index.js'}调用多个js文件

在/includes/cls_template.php中 select 方法中添加如下代码

 case 'insert_css':
                    $t = $this->get_para(substr($tag, 10), 0);
                    return '<?php echo $this->smarty_insert_css(' . $this->make_array($t) . '); ?>';
                    break;
在添加以下方法
function smarty_insert_css($args)
    {
        static $css = array();

        $arr = explode(',', str_replace(' ', '', $args['files']));

        $str = '';
        var_dump($args);
        foreach ($arr AS $val)
        {
            if (in_array($val, $css) == false)
            {
                $css[] = $val;
                if ($val{0} == '.')
                {
                    $str .= '<link href="'.$val.'" rel="stylesheet" type="text/css" />';
                }
                else
                {
                    $str .= '<link href="themes/default/'.$val.'" rel="stylesheet" type="text/css" />';
                }
            }
        }

        return $str;
    }

接着在/includes/lib_common.php中添加以下方法

/**
 * 页面上调用的css文件
 *
 * @access  public
 * @param   string      $files
 * @return  void
 */
function smarty_insert_css($args) {
    static $css = array();

    $arr = explode(',', str_replace(' ', '', $args['files']));

    $str = '';
    foreach ($arr AS $val) {
        if (in_array($val, $css) == false) {
            $css[] = $val;
            if ($val{0} == '.') {
                $str .= '<link href="' . $val . '" rel="stylesheet" type="text/css" />';
            } else {
                $str .= '<link href="themes/default/' . $val . '" rel="stylesheet" type="text/css" />';
            }
        }
    }

    return $str;
}

最后在dwt模板中调用就ok了,同js调用一样

{insert_css files='style.css,index.css'}


调用指定分类下产品

在/includes/cls_template.php中select方法在’结束tag‘   if判断下加入中加入如下代码

 case 'get_cat_goods':
                    $output = '<?php endforeach;unset($result); ?>';
                    return $output;
                    break;

在else中加入

case 'get_cat_goods':
                    return $this->_get_cat_goods(substr($tag, 28));
                    break;
最后再添加两个方法

/**
     * 处理_get_catgoods标签
     *
     * @access  public
     * @param   string     $tag_args
     *
     * @return  string
     */
    function _get_cat_goods($tag_args)
    {
        $attrs = $this->get_para($tag_args, 0);
        $arg_list = array();
        !empty($attrs['type']) ? $type = $attrs['type'] : $type = '';
        !empty($attrs['cats']) ? $cats = $attrs['cats'] : $cats = '';
        !empty($attrs['brand']) ? $brand = $attrs['brand'] : $brand = 0;
        !empty($attrs['min']) ? $min = $attrs['min'] : $min = 0;
        !empty($attrs['max']) ? $max = $attrs['max'] : $max = 0;
        !empty($attrs['ext']) ? $ext = $attrs['ext'] : $ext = '';
        $item = $this->get_val($attrs['item']);
        $output = '<?php ';
        $output .= "\$result = \$this->_get_goods('$type','$cats','$brand','$min','$max','$ext');";
        $output .= "foreach(\$result as $item):\n";
        return $output .'?>';
    }
    
    function _get_goods($type,$cats,$brand,$min,$max,$ext)
    {
        return get_category_recommend_goods($type,$cats,$brand,$min,$max,$ext);
    }

ok了,现在就是前台dwt模板调用

<!-- {get_cat_goods item=goods type=new cats=16} -->
                    {$goods.name}
                <!-- {/get_cat_goods} -->

这里的名称可以自己定义,方法也可以类推


获取某分类下的信息列表

get_cat_articles()   方法

在include/lib_articles.php 下























  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值