• 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
    /**
     */
    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}

     

  • 相关阅读:
    WebPart 生存周期
    【Linq to SharePoint】对列表查询的分页技术
    新闻联播 代码
    首页顶部图片带Flash代码
    [翻译]简单谈谈事件与委托
    asp.net调试
    ASP.NET 2.0加密Web.config 配置文件
    网站用户登录和验证的资料
    Membership的一些资料
    asp.net网站登录的一些资料。
  • 原文地址:https://www.cnblogs.com/heui/p/1980358.html
Copyright © 2020-2023  润新知