【ecshop教程】实现ecshop内页调用新闻列表最新文章
Ecshop的新闻系统之类的是无法跟dedecms进行比较的,Ecshop不能随意的在自己想要的页面调用本身模板没有的项目,如果硬要的话,只能通过修改一些文件达到效果 首先ecshop打开article.php 及 article_cat.php文件,在文件中加上下面代码: /** * 获得最新的文章列表。 * * @access private * @return array */ function index_get_new_articles() { $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 ' . $GLOBALS['ecs']->table('article') . ' AS a, ' . $GLOBALS['ecs']->table('article_cat') . ' AS ac' . ' WHERE a.is_open = 1 AND a.cat_id = ac.cat_id AND ac.cat_type = 1' . ' ORDER BY a.article_type DESC, a.add_time DESC LIMIT ' . $GLOBALS['_CFG']['article_number']; $res = $GLOBALS['db']->getAll($sql); $arr = array(); foreach ($res AS $idx => $row) { $arr[$idx]['id'] = $row['article_id']; $arr[$idx]['titles'] = $row['title']; $arr[$idx]['short_titles'] = $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]['urls'] = $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']); } return $arr; } 还需要加上这句smarty语句: $smarty->assign('new_articles', index_get_new_articles()); // 最新文章 因为用首页的new_articles.lbi会更内页新闻的标题内容产生冲突,所以需要自己建立一个文件,这里命名为one_article.lbi吧,文件中的代码如下: NEWS
最后在article.dwt 、article_cat.dwt 、article_pro.dwt文件中需要显示的位置调用one_article.lbi文件即可。 |
版权声明:本文来源于互联网,如有侵权,请联系下方邮箱,一个工作日删除!