建站之家专注提供完整无错带后台数据网站模板下载
用户名:
密码:
注册帐号

海量网站模板下载 免费也不乏精品(整站带数据)

VIP会员更多整站带数据模板无限制下载(持续更新 测试完整)

建站之家交流群:网站建设交流群

当前位置: 首页 > 建站教程 > ecshop建站教程 >

ECShop首页调用指定栏目ID文章分类列表的多种方法

更新时间:2017-02-28 浏览次数:

PHP源码 ASP源码 织梦模板 DISCUZ社区论坛模板 ECSHOP商城模板 帝国CMS模板 Wordpress主题 网站源码 其它源码模板 网站模板源码下载大全

ECSHOP首页显示调用指定文章分类文章

根目录下文件 index.php     
    $smarty->assign('wenz1',    get_cat_articles(26, 1, 8 ));
    $smarty->assign('wenz2',    get_cat_articles(27, 1, 8 ));
    $smarty->assign('wenz3',    get_cat_articles(28, 1, 8 ));

 

26文章分类ID   1 排   显示 8个数量

模板目录下文件 index.dwt

     <!--{foreach from=$wenz1 item=art}-->
<tr><td height="25">·<a href="{$art.url}" title="{$art.title}">{$art.title}</a></td></tr>
<!--{/foreach}-->

 

ecshop首页调用指定id分类的文章列表简单说一下修改程序的步骤:
第一种方法:

在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就可以了

第二种方法:
我们是在首页调用文章列表,所以我们需要修改首页的程序,即修改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));   // 分类调用文章

另外,需要在includes/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;
}
这个函数。


接下来
在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}-->
其中的8为你调用的id。

 

现在介绍一种成功的方法,适用各种模板。修改ecshop不要注重技巧,注重一个思路。

ecshop模板一般分为三栏或者两栏,两栏是left和right,三栏的left,center,right之类的。
现在以两栏的为例,现在一个思路就是在你想调用文章的地方加一个可编辑区域,可编辑区域在后台模
板设置里是可以设置的,然后在后台把文章调用在这个可编辑区域里就是了。
明白了原理就可以动手了。在模板index.dwt里找到右边模块结束的地方,也就是<!--right end-->,
在<!-- TemplateEndEditable -->之后加上
<!-- TemplateBeginEditable name="文章区域" --><!-- TemplateEndEditable -->,其中“文章区域
”这个名字是可以修改的,和你在后台看到的名字是一致的。
然后修改模板里的库文件cat_articles.lbi,替换成下面的代码
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<div style="width:243px; float:left; margin-right:3px;">
  <div class="box">
   <div class="box_1">
    <h3>
    <span><a href="{$articles_cat.url}">{$articles_cat.name|escape:html}</a></span>
    <a href="{$articles_cat.url}"><img src="../images/more.gif" alt="more" /></a>
    </h3>
    <div class="boxCenterList RelaArticle">
     <!--{foreach from=$articles item=article}-->
     <a href="{$article.url}" title="{$article.title|escape:html}">{$article.short_title}
</a><br />
     <!--{/foreach}-->
    </div>
   </div>
  </div>
</div>
其中需要注意编码,用GBK的自行替换成GBK,其中的宽度自己控制,自己多试下就知道大小了。
至于调几列出来,可以在后台设置,再加上修改上面的宽度来控制。
其中里面的box box_1 和boxCenterList RelaArticle 如果有的模板不一样的话 可以自行替换成你模板里的风格,这样应该就可以搞定了。自己在京东两栏模板里设置成功了
无链接信息! 提取密码:无需密码

栏目导航

WEB前端开发教程织梦建站教程ecshop建站教程帝国建站教程Discuz使用教程wordpress建站教程