博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ecshop调用指定ID分类下的文章列表(指定分类下的文章)
阅读量:5992 次
发布时间:2019-06-20

本文共 3041 字,大约阅读时间需要 10 分钟。

我们先打开根目录下的article_cat.php这个文件,
在第19行      require(dirname(__FILE__) . '/includes/init.php')
这是一个加载includes目录下的init.php这个文件,init.php是一个初始化文件,在里边定义的很多初始页面的文章。
而我们的article_cat.php是文章分类页面的程序,但是并没有调用指定ID分类的文章这个程序,所以我们需要自己写一个这样功能的程序。
添加的程序可以添加在article_cat.php文件里,也可以添加在init.php文件下。
我们在这里只介绍在init.php中添加,在article_cat.php中添加的方法类似,只是在article_cat.php中添加的就只能在文章分类下调用这个添加的函数。
打开init.php之后,在php代码结束符?>之前添加一下代码:
 
//指定分类指定分类模板指向----------请先看完下面说明再动手复制
$smarty->assign('class_articles_5', index_get_class_articles(5,3));// 分类调用文章
$smarty->assign('class_articles_6', index_get_class_articles(6,3)); // 分类调用文章
//指定分类指定分类模板指向----------请先看完下面说明再动手复制
 
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;
}
 
//这里建议最好修改下上面那句也就是文章链接的调用,因为本人测试如果调用了文章缩略图(后台文章那个上传文件当做文章缩略图调用),有的文链接章路径就会出错,会变成图片路径
//把
    
$arr[$idx]['url'] = $row['open_type'] != 1 ?
    build_uri('article', array('aid' => $row['article_id']), $row['title']) : trim($row['file_url']);
//改成
   
$arr[$idx]['url'] = build_uri('article', array('aid' => $row['article_id']), $row['title']);
 
现在说明一下这个函数的调用
$smarty->assign('class_articles_5', index_get_class_articles(5,3));// 分类调用文章
中的5是文章的分类ID,3是该分类下调用的文章总数。
 
在这里特别说明下 (//指定分类模板指向,也就是函数调用:$smarty->assign('class_articles_5', index_get_class_articles(5,3));// 分类调用文章) 这一段最好放到所需要显示的php里面,
比如index.php、article.php 、article_cat.php
经过本人测试,指定分类模板指向放到init.php最后这里,会导致前台验证码无法显示。就算注释掉那断 /* 判断是否支持 Gzip 模式...*/ 代码也不管用,其他人不知道有没有出现这种情况
 
1、如在文章内容模板调用 先打开article.php,
先找到 if (!$smarty->is_cached('article.dwt', $cache_id)),大概45行,
把 $smarty->assign('class_articles_5', index_get_class_articles(5,3));// 分类调用文章
复制到 if (!$smarty->is_cached('article.dwt', $cache_id)) 之前一行,之后会出错啊
2、如在文章列表模板调用 先打开article_cat.php,
找到 $smarty->display('article_cat.dwt', $cache_id); 就在最后吧,
把 $smarty->assign('class_articles_5', index_get_class_articles(5,3));// 分类调用文章
复制到 $smarty->display('article_cat.dwt', $cache_id); 之前一行,之后会出错啊
如何在ecshop中查看文章分类的ID号
上边是程序里定义的代码,接下来就是说一下是怎么在前台调用出来
只需要在模板里添加下边的代码就OK了。
<!--{foreach from=$class_articles_5 item=article}-->
<a href="{$article.url}" title="{$article.title|escape:html}"><!--{$article.short_title|truncate:15:true}--></a>
<!--{/foreach}-->
 
分享给小伙伴们:
 

转载于:https://www.cnblogs.com/zhicheng/p/4387608.html

你可能感兴趣的文章
Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图
查看>>
Android系统架构图及简单的系统架构介绍
查看>>
【电子书】C++编程开发30问
查看>>
彻底删除mysql
查看>>
IntelliJ IDEA For Mac 快捷键
查看>>
React 世界的一等公民 - 组件
查看>>
阿里云ACP认证详细笔记(一)
查看>>
Java Web学习计划
查看>>
EZ430 Chronos 如何提高开发调试效率探讨
查看>>
终极解决方案:Emacs+Slime+Lisp启动错误:Polling "/tmp/slime.50
查看>>
mysql 配置文件样例
查看>>
闲暇处才是生活
查看>>
Mysql中查询速度的优化
查看>>
ES6中this的三种用法
查看>>
Quartz指南
查看>>
java Math类中的pow方法的问题Math.pow(64,1/3)是1而不是4
查看>>
要出去找工作了,看看多线程和并行的区别及什么时候该用
查看>>
蔡先生论道大数据十九:王羲之与大数据
查看>>
3DES加密
查看>>
时光穿越_电脑时间显示为2011年6月1日
查看>>