您好,欢迎来到建站之家源码网建站之家!只做精品网站源码
  • 首 页
  • 当前位置:首页 > 建站教程 > ecshop建站教程 >
    ECShop首页调用指定栏目ID文章分类列表的多种方法
    时间:2017-02-28 18:34 来源:未知 作者:admin 浏览:收藏 打印

    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 如果有的模板不一样的话 可以自行替换成你模板里的风格,这样应该就可以搞定了。自己在京东两栏模板里设置成功了
    标签:建站之家

    郑重声明:
    本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
    我们不承担任何技术及版权问题,且不对任何资源负法律责任。
    如无法下载,联系站长索要。
    如有侵犯您的版权,请及时联系QQ:1395550247,我们尽快处理。

    ECSHOP网站模板安装教程图文详解ECSHOP网站模板安装教程图文详
    ecshop安装教程(超详细)ecshop安装教程(超详细)
    如何安装ECShop商城程序到虚拟主机如何安装ECShop商城程序到虚拟
    支持建站之家广告栏目
      客服:我们竭诚为您服务!

      客服:我们竭诚为您服务!