标题: {$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 下