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

2017-05-24dedecms开发
408

需求:调用一个商城系统里面的产品数据到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;
 
}
 
 
?>
 
 
 
调用页面使用:
 
{wmd:hongyungoods}
 
 
[field:title/]
 
{/wmd:hongyungoods}
 
The End

相关推荐

织梦cms批量删除所有无效TAGS的办法
使用过DedeCMS的站长应当都遇到过这样的问题,在我们删掉一些文章内容后,tags标识中就慢慢拥有许多失效的标识存有,这种TAGS标识并不会跟随大家删掉文章内容一起删掉,如果是受欢迎的词还行,有很多文章内容都是有,如果是小众词,便会发生在TAGS目录有词,...
2023-08-17 dedecms开发
181

怎么修改织梦DEDECMS源码tags标签字数限制
修改织梦DEDECMS中TAG标签字数长度限制的方法共两个步骤,分别是对数据库字数和提交文件的字数进行修改。 一、我们通过织梦DEDECMS后台程序中的系统设置栏目下的SQL命令行工具,来修改数据库中表wmd_tagindex 和wmd_taglist的tag字段属性,将TAG字段属性中...
2023-02-16 dedecms开发
196

织梦dedecms列表页实现第一页与其他页调用不同模板的办法
我们想让dedecms织梦第一页与其他第二页、第三页、、、后面的页调用的不同模板,这个要怎么实现呢? 第一步 修改核心文件 打开 /include/arc.listview.class.php 找到,大概在第330行 $this-ParseDMFields($this-PageNo,1); 在它的上面加入: $tempfile = $GL...
2022-11-19 dedecms开发
195

织梦dedecms调用当前栏目文章数的方法
这篇文章给大家分享的是有关织梦dedecms调用当前栏目文章数的方法的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。 做模板时,经常需要为每个栏目加上此栏目的文章数。和大家分享下实现的方法,此方法适合5.6及5.7、5.7sp1其它...
2022-11-05 dedecms开发
186

dedecms织梦无需登录注册可下单购买的修改
dedecms织梦无需登录注册可下单购买的修改,首先找到/plus/carbuaction.php文件,找到如下代码: //确认用户登录信息if($cfg_ml-IsLogin()){ $userid = $cfg_ml-M_ID;}else{ $username = trim($username); $password = trim($password); if(empty($username)...
2022-11-02 dedecms开发
171

DEDECMS织梦复制https链接网站图片无法本地化的解决办法
现在许多网站使用了SSL技术,网站采用https链接,我们在复制https链接网站的内容,发现图片无法本地化,那么我们想要将这些图片本地化,要怎么操作呢? 第一步: 找到dede/inc/inc_archives_functions.php (注:前边红色的dede目录是您的后台目录) 定位到...
2022-06-15 dedecms开发
125