广

ECSHOP教程

  • 帝国cms教程
  • 织梦CMS教程
  • PHP CMS教程
  • ECSHOP教程
  • WordPress教程
  • Discuz教程
  • CMS学习

    ecshop调用指定分类的文章的方法介绍

    2018-02-01 11:29:38 次阅读 稿源:非官媒
    广告

    一.直接修改调用语句:

    ECSHOP调用指定文章分类的方法,例如调用分类ID为5的文章

    修改 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' .

    二.单独的函数调用:

    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)); // 分类调用文章 

    $smarty->assign('class_articles_7', index_get_class_articles(7,6)); // 分类调用文章 

    $smarty->assign('class_articles_8', index_get_class_articles(8,6)); // 分类调用文章 

    2、在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}-->

    第三种方法:

    在index.php中找到

    $arr[$idx]['cat_url']     = build_uri('article_cat', array('acid'=> $row['cat_id']), $row['cat_name']);

    在下面加入一句

    $arr[$idx]['cat_id']      = $row['cat_id'];

    然后在调用的地方这样写

    <!--{foreach from=$new_articles item=article}-->

     

    <!--{if $article.cat_id == 5}-->

    <li><a title="{$article.title|escape:html}" href="{$article.url}">{$article.cat_id}:{$article.short_title|truncate:10:"...":true}</a></li>

    <!--{/if}-->

    <!--{/foreach}-->

     

    把if里面的数字改成分类对应该的id就可以了

    原理:

    修改首页里面调用文章列表的函数,使这个函数返回的数组里多加一个元素,也就是函数里新加的那一行,把文章的分类ID加到里面。

    再在模板里调用的时候加一个if判断,只调用指定ID的文章。

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告