请选择 进入手机版 | 继续访问电脑版
繁体中文

巅峰霸主

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ecshop调用指定分类下的文章标题的方法介绍总汇

[复制链接]
烈火大地 发表于 2018-1-29 13:06:43 | 显示全部楼层 |阅读模式

游客只能显示部分内容,请登录后查看帖子完整内容!!!注册完全免费。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
ecshop调用指定文章分类的方法
方法一.直接修改调用语句:
例如调用分类ID为5的文章
修改 index.php

  1. ' WHERE a.is_open = 1 AND a.cat_id = ac.cat_id AND ac.cat_type = 1' .
复制代码

修改为
  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文件找到以下代码:
  1. $smarty->assign('new_articles', index_get_new_articles()); // 较新文章
复制代码

在它下面增加以下:
  1. //调用方法
  2. $smarty->assign('class_articles_1', index_get_class_articles(1,6)); // 分类调用文章
  3. //调用多个就修改传进去的参数,以及模板接收的变量,其中上面的1就是文章分类ID,其中6是调用数量
  4. $smarty->assign('class_articles_2', index_get_class_articles(2,6)); // 分类调用文章
  5. $smarty->assign('class_articles_3', index_get_class_articles(3,6)); // 分类调用文章
  6. $smarty->assign('class_articles_4', index_get_class_articles(4,6)); // 分类调用文章
  7. $smarty->assign('class_articles_5', index_get_class_articles(5,6)); // 分类调用文章
复制代码

2、在lib_goods.php增加以下函数
  1. /**
  2. * 获得指定栏目较新的文章列表。
  3. *
  4. * @access private
  5. * @return array
  6. */
  7. function index_get_class_articles($cat_aid, $cat_num)
  8. {
  9. $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;
  10. $res = $GLOBALS['db']->getAll($sql);
  11. $arr = array();
  12. foreach ($res AS $idx => $row)
  13. {
  14. $arr[$idx]['id'] = $row['article_id'];
  15. $arr[$idx]['title'] = $row['title'];
  16. $arr[$idx]['short_title'] = $GLOBALS['_CFG']['article_title_length'] > 0 ?
  17. sub_str($row['title'], $GLOBALS['_CFG']['article_title_length']) : $row['title'];
  18. $arr[$idx]['cat_name'] = $row['cat_name'];
  19. $arr[$idx]['add_time'] = local_date($GLOBALS['_CFG']['date_format'], $row['add_time']);
  20. $arr[$idx]['url'] = $row['open_type'] != 1 ?
  21. build_uri('article', array('aid' => $row['article_id']), $row['title']) : trim($row['file_url']);
  22. $arr[$idx]['cat_url'] = build_uri('article_cat', array('acid' => $row['cat_id']));
  23. }
  24. return $arr;
  25. }
复制代码

3、是在index.dwt模板想调用的地方增加以下代码,(注:以下调上面设置里的分类ID为1的文章列表):
  1. <!--{foreach from=$class_articles_1 item=article}-->
  2. <li><a href="{$article.url}" title="{$article.title|escape:html}"><!--{$article.short_title|truncate:15:true}--></a></li>
  3. <!--{/foreach}-->
复制代码


方法三:第三种方法
在index.php中找到
  1. $arr[$idx]['cat_url']     = build_uri('article_cat', array('acid' => $row['cat_id']), $row['cat_name']);
复制代码

在下面加入一句
  1. $arr[$idx]['cat_id']      = $row['cat_id'];
复制代码

然后在调用的地方这样写
  1. <!--{foreach from=$new_articles item=article}-->
  2. <!--{if $article.cat_id == 5}-->
  3. <li><a title="{$article.title|escape:html}" href="{$article.url}">{$article.cat_id}:{$article.short_title|truncate:10:"...":true}</a></li>
  4. <!--{/if}-->
  5. <!--{/foreach}-->
复制代码
把if里面的数字改成分类对应该的id就可以了,这里的<!--{if $article.cat_id == 5}-->即表示分类ID为5的分类。
原理:
修改首页里面调用文章列表的函数,使这个函数返回的数组里多加一个元素,也就是函数里新加的那一行,把文章的分类ID加到里面。
再在ecshop模板里调用的时候加一个if判断,只调用指定ID的文章。
回复

使用道具 举报

 楼主| 烈火大地 发表于 2018-1-29 13:07:53 | 显示全部楼层
index.php均为根目录下的index.php文件
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|巅峰霸主 ( 京ICP备12023415号-2 )

声明:本站的任何信息和内容仅代表作者的立场和观点,与巅峰霸主网无关。

禁止在巅峰霸主网发布任何与《中华人民共和国法律》相抵触的言论!

GMT+8, 2018-9-21 00:44 , Processed in 0.151137 second(s), 25 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表