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_4', index_get_class_articles(4,6)); // 分類調用文章
//調用多個就修改傳進去的參數,以及模板接收的變量,其中上面的4就是文章分類ID,其中6是調用數量
$smarty->assign('class_articles_5', index_get_class_articles(5,6)); // 分類調用文章
$smarty->assign('class_articles_6', index_get_class_articles(6,6)); // 分類調用文章
$smarty->assign('class_articles_7', index_get_class_articles(7,6)); // 分類調用文章
$smarty->assign('class_articles_8', index_get_class_articles(8,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爲8的文章列表):
<!--{foreach from=$class_articles_8 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加到裏面。

再在模板裏調用的時候加一個if判斷,只調用指定ID的文章。

關於分類的ID怎麼查看,如果你這個都找不到,那這篇文章對你也沒什麼用了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章