ecshop调用指定分类的文章的方法介绍 集锦

ecshop调用指定文章分类的方法

一.直接修改调用语句:

例如调用分类ID为5的文章
修改 index.php

 ' WHERE a.is_open = 1 AND a.cat_id = ac.cat_id AND ac.cat_type = 1' .
修改为
 ' WHERE a.is_open = 1 AND a.cat_id=5 AND a.cat_id = ac.cat_id AND ac.cat_type = 1' .
二.单独的函数调用:

1、先打开index.php文件找到以下代码:

$smarty->assign('new_articles', index_get_new_articles()); // 最新文章

在它下面增加以下:

//调用方法

$smarty->assign('class_articles_1', index_get_class_articles(1,6)); // 分类调用文章 
//调用多个就修改传进去的参数,以及模板接收的变量,其中上面的1就是文章分类ID,其中6是调用数量 
$smarty->assign('class_articles_2', index_get_class_articles(2,6)); // 分类调用文章 
$smarty->assign('class_articles_3', index_get_class_articles(3,6)); // 分类调用文章 
$smarty->assign('class_articles_4', index_get_class_articles(4,6)); // 分类调用文章 
$smarty->assign('class_articles_5', index_get_class_articles(5,6)); // 分类调用文章

2、在lib_goods.php增加以下函数

/** 
* 获得指定栏目最新的文章列表。 

* @access private 
* @return array 
*/ 
function index_get_class_articles($cat_aid, $cat_num) 

$sql = "SELECT article_id, title,open_type,cat_id,file_url FROM " .$GLOBALS['ecs']->table('article'). " WHERE cat_id = ".$cat_aid." and is_open = 1 LIMIT " . $cat_num; 
$res = $GLOBALS['db']->getAll($sql); 
$arr = array(); 
foreach ($res AS $idx => $row) 

$arr[$idx]['id'] = $row['article_id']; 
$arr[$idx]['title'] = $row['title']; 
$arr[$idx]['short_title'] = $GLOBALS['_CFG']['article_title_length'] > 0 ? 
sub_str($row['title'], $GLOBALS['_CFG']['article_title_length']) : $row['title']; 
$arr[$idx]['cat_name'] = $row['cat_name']; 
$arr[$idx]['add_time'] = local_date($GLOBALS['_CFG']['date_format'], $row['add_time']); 
$arr[$idx]['url'] = $row['open_type'] != 1 ? 
build_uri('article', array('aid' => $row['article_id']), $row['title']) : trim($row['file_url']); 
$arr[$idx]['cat_url'] = build_uri('article_cat', array('acid' => $row['cat_id'])); 

return $arr; 
}

3、第二步是在index.dwt模板想调用的地方增加以下代码,(注:以下调上面设置里的分类ID为1的文章列表):

<!--{foreach from=$class_articles_1 item=article}--> 
<li><a href="{$article.url}" title="{$article.title|escape:html}"><!--{$article.short_title|truncate:15:true}--></a></li> 
<!--{/foreach}-->
 
第三种方法:

在index.php中找到

$arr[$idx]['cat_url']     = build_uri('article_cat', array('acid'=> $row['cat_id']), $row['cat_name']);

在下面加入一句
$arr[$idx]['cat_id']      = $row['cat_id']; 

然后在调用的地方这样写
<!--{foreach from=$new_articles item=article}-->
<!--{if $article.cat_id == 5}-->
<li><a title="{$article.title|escape:html}" href="{$article.url}">{$article.cat_id}:{$article.short_title|truncate:10:"...":true}</a></li>
<!--{/if}-->
<!--{/foreach}-->

把if里面的数字改成分类对应该的id就可以了
原理:
修改首页里面调用文章列表的函数,使这个函数返回的数组里多加一个元素,也就是函数里新加的那一行,把文章的分类ID加到里面。
再在ecshop模板里调用的时候加一个if判断,只调用指定ID的文章。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值