需求:调用一个商城系统里面的产品数据到dedecms文章页,希望对需要类似需求的人有所帮助 功能实现:为了不用垮数据库查询,dedecms安装到商城系统数据库里面 下面是实现的代码(请根据自己的环境进行修改) include/taglib/hongyungoods.lib.php
文件内容如下: if(!defined('DEDEINC')) exit('Request Error!'); functionlib_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(); if(trim($innertext)=='') $innertext= GetSysTemplets("hongyungoods.htm"); //@todo 智能条件 $where= 1; $limit= 5; $ctp= newDedeTagParse(); $ctp->SetNameSpace('field', '[', ']'); $ret= ''; $query= "SELECT p.`Name` AS title, CONCAT('http://www.genban.org/', ps.`AcStr`, '-view-', p.`ID`, '.html') AS url, CONCAT('http://www.genban.org/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; } ?>
调用页面使用: {dede:hongyungoods} [field:title/] {/dede:hongyungoods} 本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!