zoukankan      html  css  js  c++  java
  • 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}

     

  • 相关阅读:
    1-直播转点播
    3-美团 HTTP 服务治理实践
    3-SSDB 高性能NoSQL数据库, 用于替代 Redis.
    配置kubectl在Mac(本地)远程连接Kubernetes集群
    4-rocketmq 发送时异常:system busy 和 broker busy 解决方案
    3-RocketMQ 简单梳理 及 集群部署笔记
    2-Rocketmq产品架构(参考阿里云)
    1-RocketMq 学习 中文文档(一)
    tar命令参数详解
    Ubuntu 安装 .bundle 文件
  • 原文地址:https://www.cnblogs.com/heui/p/1980358.html
Copyright © 2011-2022 走看看