阅读量:0
在ECShop中,可以通过修改模板文件或使用插件来实现调用指定分类的文章。具体方法如下:,,1. 打开ECShop后台,找到需要调用文章的模板文件,如
index.dwt
、list.dwt
等。,2. 在模板文件中,找到需要插入文章的位置,添加以下代码:,,``php,{dede:sql name=get_articles sql="SELECT * FROM dede_article WHERE tid='指定分类ID' AND ismake='是' AND isdel='否' ORDER BY pubdate DESC"},
`,,3. 将
指定分类ID替换为实际的分类ID。,4. 在需要显示文章的地方,添加以下代码:,,
`php,{dede:field name=title/},{dede:field name=writer/},{dede:field name=pubdate function="MyDate('m-d',@me)"/},{dede:field name=body/},
``,,5. 保存模板文件并更新缓存。,,通过以上步骤,即可在ECShop中调用指定分类的文章。直接修改调用语句
1、修改index.php文件:在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'
这将使查询只返回分类ID为5的文章。
方法二:单独的函数调用
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)); // 分类调用文章
2、创建index_get_class_articles函数:在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}-->
相关问题与解答
1、如何查看分类的ID?
在ECShop后台管理界面中,进入“文章管理”或“分类管理”页面,可以看到每个分类的ID信息,这些ID会显示在分类列表的某一列中。
2、如果需要调用多个分类的文章怎么办?
如果需要调用多个分类的文章,可以在index.php
文件中多次调用index_get_class_articles
函数,每次传递不同的分类ID和调用数量,调用分类ID为4和5的文章,可以这样写:
```php
$smarty->assign('class_articles_4', index_get_class_articles(4,6)); // 分类4的文章
$smarty->assign('class_articles_5', index_get_class_articles(5,6)); // 分类5的文章
```
然后在模板文件中分别展示这两个分类的文章列表。
小伙伴们,上文介绍了“ecshop调用指定分类的文章的方法介绍”的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。