网站地图    收藏   

主页 > 后端 > dedecms >

ecshop在首页如何调用dedecms文章

来源:未知    时间:2014-11-12 22:02 作者:xxadmin 阅读:

[导读] ecshop的文章功能实在是太过于简单了,所以我们为了丰富网站的内容,一般会集成DEDECMS来添加一些资讯文章,主要是DEDECMS文章处理相当强大,便于二次开发,下面通过两大步骤实现e...

ecshop的文章功能实在是太过于简单了,所以我们为了丰富网站的内容,一般会集成DEDECMS来添加一些资讯文章,主要是DEDECMS文章处理相当强大,便于二次开发,下面通过两大步骤实现ecshop在首页调用dedecms文章:
一、在index.php中的添加和修改的两步:
1、在index.php里载入DEDECMS数据库文件,这样才能查询数据库:
define('IN_ECS', true);
/*载入dede*/
require_once(dirname(__FILE__)."/dede/include/common.inc.php");
2、把查询到的文章列表赋给dede_articles数组:
$smarty->assign('dede_articles', get_dede_articles()); //dede文章列表
3、获取dedecms的文章
/**
 *
 * 获取dedecms的文章
 * @author http://www.majiaping.com/
 * @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;
 
}

二、在模板文件index.dwt中两步实现首页调用DEDECMS文章
1、单独建立一个模板文章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="http://blog.163.com/bgh1988@126/blog/{$article.url}"  title="{$article.title}" rel="external">{$article.short_title|escape:html}
 
</a>
        </li>
  <!-- {/foreach} -->
</ul>
<!-- {/if} -->
2、在index.dwt中需要显示文章的地方包含dede_articles.lbi文件,实现ecshop首页调用dedecms文章:
<!-- #BeginLibraryItem "/library/dede_articles.lbi" --><!-- #EndLibraryItem -->

 
 
 
 
 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论