ecshop调用指定栏目下的文章的方法
来源:互联网 发布:mac用手机app 编辑:程序博客网 时间:2024/06/05 08:37
ecshop调用指定栏目下的文章的方法
1.打开 /index.php (手机端在mobile/index.php)添加 fun函数一个,需放在php开始符与结束符?>中间。
/** * 获得指定栏目的文章列表。 * @param int $cat_aid 栏目ID * @param int $cat_num 条数 * @return array */function index_get_articles($cat_aid= 0, $cat_num= 10){ $ta = $GLOBALS['ecs']->table('article'); $tac = $GLOBALS['ecs']->table('article_cat'); $sql = " SELECT a.article_id, a.title, ac.cat_name, a.add_time, a.file_url, a.open_type, ac.cat_id, ac.cat_name FROM $ta AS a, $tac AS ac WHERE a.cat_id = ac.cat_id AND a.cat_id = $cat_aid ORDER BY a.article_type DESC, a.add_time DESC 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']), $row['cat_name']); $arr[$idx]['cat_id'] = $row['cat_id']; } return $arr;}
2.第二步,在/includes/lib_goods.php(手机端在/mobile/includes/lib_goods.php)查找以下代码,并添加代码所示内容:
$smarty->assign('invoice_list', index_get_invoice_query()); // 发货查询$smarty->assign('new_articles', index_get_new_articles()); // 最新文章$smarty->assign('group_buy_goods', index_get_group_buy()); // 团购商品$smarty->assign('auction_list', index_get_auction()); // 拍卖活动$smarty->assign('shop_notice', $_CFG['shop_notice']); // 商店公告// 找到上边的代码,添加下边这行(8是栏目ID,9是条数):$smarty->assign('service_article', index_get_articles(8,9)); //售后服务文章
3.第三步,在你需要调用的dwt文件或者lib文件里加入以下代码:
<ul class="arcList"><!--{foreach from=$service_article name=service_article item=article}--> <li><a href="{$article.url}" title="{$article.title|escape:html}">{$article.title}</a></li><!--{/foreach}--></ul>
备注:如果只是查一个单独表,例如“ecsmart_article”中的文章;可以将 第二步中的方法里面的sql语句改一下,也可以参照下面代码:
/** * 获得指定栏目最新的文章列表。 * * @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('ecsmart_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; }
为避免方法名冲突可以将第二步的“service_article”改成 “class_articles_18”(自己定义),第一步循环调用中“from”和“name”也改成同样的名字即可,第一步参考代码:
<!--{foreach from=$class_articles_18 name=class_articles_18 item=article}--> <a class="aaa">{$article.title}</a> <!--{/foreach}-->
第二步改动代码:
$smarty->assign('class_articles_18', index_get_articles(18,1));
这就是我今天遇到的问题,同样也是亲自测试过得,这是别人的成果,我只是梳理成自己更容易理解的内容。
0 0
- ecshop调用指定栏目下的文章的方法
- ECSHOP调用指定栏目文章
- PhpCms V9调用指定栏目子栏目文章的方法
- ecshop调用指定文章分类的方法
- ecshop调用指定分类的文章的方法介绍
- ecshop调用指定分类的文章的方法介绍 集锦
- DEDECMS不调用指定栏目或隐藏栏目下的文章
- Ecshop如何在首页调用指定栏目的商品
- dedecms如何调用指定栏目下指定的关键字文章集合
- ECSHOP调用分类文章,ECSHOP调用公告的方法
- ecshop调用指定的广告位的方法
- ecshop调用指定广告的方法
- ecshop调用文章限制字数的方法
- dede织梦跨频道调用指定栏目文章的解决方法
- 实现统计每个栏目下的文章总数的调用
- 织梦调用指定顶级栏目名称的方法
- PHPCMS调用多个栏目下文章的两个办法
- phpcms v9中调用某个栏目页面下的 子栏目里面的 所有文章列表
- WPF字体图标——FontAwesom
- 存入数据库的日期类型(推荐)
- js中split的一点注意事项
- Mysql Innodb死锁解决
- dba 常用查询
- ecshop调用指定栏目下的文章的方法
- 单行固定表头
- krpano全景之内置函数---asyncloop roundval 等(不定期更新)
- LintCode 433: Number of Islands
- C++上机
- js 间隔时间执行函数
- thinkphp核心源码注释|Storage.class.php
- JAX-WS与JAX-RS区别是什么?
- gcc,gdb,makefile