主页教程 ECshop教程 查看内容

ecshop 整合dedecms 调用指定文章栏目列表

发表于 14-06-27 22:11 | 栏目: ECshop教程
ecshop 系统二次开发整合dedecms 织梦系统,并且调取其栏目列表文章,教程如下:
实现步骤:
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


  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
  2.     <!-- {if $dede_articles} --> 
  3.     <div class="h3Title"><h3>相关资讯</h3></div> 
  4.     <ul class="brandList"> 
  5.       <!-- {foreach from=$dede_articles item=article} --> 
  6.             <li><a href="{$article.url}"  title="{$article.title}" rel="external">{$article.short_title|escape:html}
  7. </a> </li> 
  8.       <!-- {/foreach} --> 
  9.     </ul> 
  10.     <!-- {/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中添加。

  1.     /** 
  2.      * 
  3.      * 获取dedecms的文章 
  4.      * @author http://www.heui.org 
  5.      * @return 文章列表 
  6.      */ 
  7.       
  8.     function get_dede_articles() {   
  9.       
  10.         //文档排序的方式 
  11.         $orderby = 'rand'; 
  12.         $ordersql = ''; 
  13.         if($orderby=='hot' || $orderby=='click') $ordersql = " ORDER BY arc.click $orderWay"; 
  14.         else if($orderby == 'sortrank' || $orderby=='pubdate') $ordersql = " ORDER BY arc.sortrank $orderWay"; 
  15.         else if($orderby == 'id') $ordersql = "  ORDER BY arc.id $orderWay"; 
  16.         else if($orderby == 'near') $ordersql = " ORDER BY ABS(arc.id - ".$arcid.")"; 
  17.         else if($orderby == 'lastpost') $ordersql = "  ORDER BY arc.lastpost $orderWay"; 
  18.         else if($orderby == 'scores') $ordersql = "  ORDER BY arc.scores $orderWay"; 
  19.         else if($orderby == 'rand') $ordersql = "  ORDER BY rand()"; 
  20.         else $ordersql = " ORDER BY arc.sortrank $orderWay"; 
  21.       
  22.         //limit条件 
  23.         $line = 10; 
  24.         $limit = trim(preg_replace('#limit#is', '', $limit)); 
  25.         if($limit!='') $limitsql = " LIMIT $limit "; 
  26.         else $limitsql = " LIMIT 0,$line "; 
  27.       
  28.         $orwhere = ''; 
  29.         if(isset($orwheres[0])) { 
  30.             $orwhere = join(' And ',$orwheres); 
  31.             $orwhere = preg_replace("#^ And#is", '', $orwhere); 
  32.             $orwhere = preg_replace("#And[ ]{1,}And#is", 'And ', $orwhere); 
  33.         } 
  34.         if($orwhere!='') $orwhere = " WHERE $orwhere "; 
  35.       
  36.         $addfieldsSql = ''; 
  37.         $addfieldsSqlJoin = ''; 
  38.       
  39.         $sql =  "SELECT  
  40.       
  41.     arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,tp.namerule,tp.namerule2,tp.ispart, 
  42.                 tp.moresite,tp.siteurl,tp.sitepath 
  43.                 $addfieldsSql 
  44.                  FROM `dede_archives` arc left join `dede_arctype` tp on arc.typeid=tp.id 
  45.                  $addfieldsSqlJoin 
  46.                  $orwhere $ordersql $limitsql"; 
  47.       
  48.         $res = $GLOBALS['db']->query($sql); 
  49.         $arr = array(); 
  50.         while ($row = $GLOBALS['db']->fetchRow($res)) 
  51.         { 
  52.             $row['url']         = GetFileUrl($row['id'],$row['typeid'],$row['senddate'],$row['title'],$row['ismake'], 
  53.                     $row['arcrank'],$row['namerule'],$row['typedir'],$row['money'],$row['filename'],$row 
  54.       
  55.     ['moresite'],$row['siteurl'],$row['sitepath']); 
  56.       
  57.             $row['short_title'] = $GLOBALS['_CFG']['article_title_length'] > 0 ? 
  58.                 sub_str($row['title'], $GLOBALS['_CFG']['article_title_length']) : $row['title']; 
  59.       
  60.             $arr[] = $row; 
  61.         } 
  62.       
  63.         return $arr; 
  64.       
  65.     }
 总结:最主要是需要实现获取文章路径, 在这个案例中我们载入dede, 直接调用GetFileUrl
 
提示:把$orwhere = '';改为$orwhere = 'arc.typeid=1';//表示调用栏目ID为1的文章列表
$line = 10;//返回记录数

到此工作就完成,喜欢的可以试下,简单整合

说明:本站所有资源仅供学习与参考,请勿用于商业用途,否则产生的一切后果将由您自己承担!如有侵犯您的版权,请及时联系我们,我们将尽快处理。

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)