推56论坛

 找回密码
 立即注册(限中文)

QQ登录

只需一步,快速开始

查看: 608|回复: 0

[ECshop教程] ECSHOP调用指定DEDECMS织梦栏目文章列表

  [复制链接]
发表于 2018-4-28 13:22:59 | 显示全部楼层 |阅读模式
系统:dedecms + ecshop

实现步骤:
1.在文章模版goods.dwt添加一个新的库文件dede_articles.lbi
themes/default/goods.dwt,请根据你的目录结构修改,如果是首页,请在index.php中添加,栏目页在category.php中添加
<!-- #BeginLibraryItem "/library/dede_articles.lbi" --><!-- #EndLibraryItem -->
2.themes/default/library/dede_articles.lbi
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <!-- {if $dede_articles} -->
    <div class="h3Title"><h3>相关资讯</h3></div>
    <ul class="brandList">
      <!-- {foreach from=$dede_articles item=article} -->
            <li><a href="{$article.url}"  title="{$article.title}" rel="external">{$article.short_title|escape:html}
</a> </li>
      <!-- {/foreach} -->
    </ul>
    <!-- {/if} -->
3.goods.php载入dede,请根据你的目录结构修改,如果是首页,请在index.php中添加,栏目页在category.php中添加。
    define('IN_ECS', true);
    /*载入dede*/
    require_once(dirname(__FILE__)."/luxury/include/common.inc.php");
4.goods.php调用dede数据,如果是首页,请在index.php中添加,栏目页在category.php中添加
    $smarty->assign('dede_articles', get_dede_articles()); //dede文章列表

5.get_dede_articles函数简单实现,如果是首页,请在index.php中添加,栏目页在category.php中添加。
    /**
     *
     * 获取dedecms的文章
     * @author http://www.heui.org
     * @return 文章列表
     */
      
    function get_dede_articles() {   
      
        //文档排序的方式
        $orderby = 'rand';
        $ordersql = '';
        if($orderby=='hot' || $orderby=='click') $ordersql = " ORDER BY arc.click $orderWay";
        else if($orderby == 'sortrank' || $orderby=='pubdate') $ordersql = " ORDER BY arc.sortrank $orderWay";
        else if($orderby == 'id') $ordersql = "  ORDER BY arc.id $orderWay";
        else if($orderby == 'near') $ordersql = " ORDER BY ABS(arc.id - ".$arcid.")";
        else if($orderby == 'lastpost') $ordersql = "  ORDER BY arc.lastpost $orderWay";
        else if($orderby == 'scores') $ordersql = "  ORDER BY arc.scores $orderWay";
        else if($orderby == 'rand') $ordersql = "  ORDER BY rand()";
        else $ordersql = " ORDER BY arc.sortrank $orderWay";
      
        //limit条件
        $line = 10;
        $limit = trim(preg_replace('#limit#is', '', $limit));
        if($limit!='') $limitsql = " LIMIT $limit ";
        else $limitsql = " LIMIT 0,$line ";
      
        $orwhere = '';
        if(isset($orwheres[0])) {
            $orwhere = join(' And ',$orwheres);
            $orwhere = preg_replace("#^ And#is", '', $orwhere);
            $orwhere = preg_replace("#And[ ]{1,}And#is", 'And ', $orwhere);
        }
        if($orwhere!='') $orwhere = " WHERE $orwhere ";
      
        $addfieldsSql = '';
        $addfieldsSqlJoin = '';
      
        $sql =  "SELECT  
      
    arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart,
                tp.moresite,tp.siteurl,tp.sitepath
                $addfieldsSql
                 FROM `dede_archives` arc left join `dede_arctype` tp on arc.typeid=tp.id
                 $addfieldsSqlJoin
                 $orwhere $ordersql $limitsql";
      
        $res = $GLOBALS['db']->query($sql);
        $arr = array();
        while ($row = $GLOBALS['db']->fetchRow($res))
        {
            $row['url']         = GetFileUrl($row['id'],$row['typeid'],$row['senddate'],$row['title'],$row['ismake'],
                    $row['arcrank'],$row['namerule'],$row['typedir'],$row['money'],$row['filename'],$row
      
    ['moresite'],$row['siteurl'],$row['sitepath']);
      
            $row['short_title'] = $GLOBALS['_CFG']['article_title_length'] > 0 ?
                sub_str($row['title'], $GLOBALS['_CFG']['article_title_length']) : $row['title'];
      
            $arr[] = $row;
        }
      
        return $arr;
      
    }

总结:最主要是需要实现获取文章路径, 在这个案例中我们载入dede, 直接调用GetFileUrl

提示:把$orwhere = '';改为$orwhere = 'arc.typeid=1';//表示调用栏目ID为1的文章列表
$line = 10;//返回记录数

学建站、学推广、学赚钱,上56站长论坛就够了!个性签名请到个人资料里面修改……

本版积分规则

站长QQ
在线咨询
咨询热线
QQ:405327411
站长

QQ|关于我们|联系我们|免责声明|网站导航|站长论坛 ( 豫ICP备11018337号-5

王宝臣旗下网站 推56论坛(www.tui56.com)站长论坛 SEO论坛 网络营销论坛 新手站长论坛 网络推广论坛 站长社区 站长网

Powered by Discuz! X3.4 Licensed

©2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表