dedecms 添加自定义标签显示非dede表数据

需求:调用一个商城系统里面的产品数据到dedecms文章页,希望对需要类似需求的人有所帮助

功能实现:为了不用垮数据库查询,dedecms安装到商城系统数据库里面

下面是实现的代码(请根据自己的环境进行修改)

include/taglib/hongyungoods.lib.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<?php
/**
  * @author http://blog.runphp.net/
  */
if (!defined( 'DEDEINC' ))  exit ( 'Request Error!' );
 
function lib_hongyungoods(& $ctag , & $refObj )
{
     global $dsql $envs $cfg_cmsurl ;
     
     //属性处理
     $attlist = "row|6,titlelen|0,tid|0" ;
     FillAttsDefault( $ctag ->CAttribute->Items, $attlist );
     extract( $ctag ->CAttribute->Items, EXTR_SKIP);
     
     //只在指定栏目显示
     if ( $tid >0 &&  $tid !=  $envs [ 'typeid' ])  return '' ;
     
     if ( ! $dsql ->IsTable( "sl_products" ) )  return '没安装鸿运产品模块' ;
     
     $innertext $ctag ->GetInnerText();
     //@todo hongyungoods.htm
     if (trim( $innertext )== '' $innertext = GetSysTemplets( "hongyungoods.htm" );
     
     //@todo 智能条件
     $where = 1;
     $limit = 5;
     
     $ctp new DedeTagParse();
     $ctp ->SetNameSpace( 'field' '[' ']' );
     $ret '' ;
     $query = "SELECT p.`Name` AS title,
  CONCAT( 'http://www.hongyun2000.com/' , ps.`AcStr`,  '-view-' , p.`ID`,  '.html' ) AS url,
  CONCAT( 'http://www.hongyun2000.com/uploadfile/s/' , p.`Images`) AS img
  FROM `sl_products` AS p
  LEFT JOIN `sl_products_sort` AS ps ON p.`SID` = ps.`ID`
  WHERE  " . $where . " ORDER BY RAND() LIMIT " .  $limit ;
     
     $dsql ->Execute( 'me' , $query );
   while ( $rs $dsql ->GetArray( 'me' ))
   {
       $rs [ 'title' ] = 0 ==  $titlelen ? $rs [ 'title' ]:cn_substr( $rs [ 'title' ],  $titlelen );
         $ctp ->LoadSource( $innertext );
       foreach ( $ctp ->CTags  as $tagid => $ctag ) {
             if (! empty ( $rs [ strtolower ( $ctag ->GetName())])) {
                 $ctp ->Assign( $tagid , $rs [ $ctag ->GetName()]);
             }
           }
           $ret .=  $ctp ->GetResult();
   }
 
   return $ret ;
}
 
?>

调用页面使用:

1
2
3
4
5
6
{dede:hongyungoods}
< dd >
     < span class = "tlink" >< a href = "[field:url/]" >< img src = "[field:img/]" alt = "[field:title/]" /></ a >
     < a href = "[field:url/]" target = "_blank" >[field:title/]</ a ></ span >
</ dd >
{/dede:hongyungoods}

 

你可能感兴趣的:(dedecms)