酷源码-帝国cms模板及插件下载交流论坛

×

用户登录

  1. 用户名:
  2. 密    码:
  3. 注册

百度整站+单词快速见效
百度排名1-5天上首页见效扣费
【百度优化】2-7天快速上首页
文字广告位出租10点/天
文字广告位出租10点/天
文字广告位出租10点/天
文字广告位出租10点/天
文字广告位出租10点/天
文字广告位出租10点/天
文字广告位出租10点/天
文字广告位出租10点/天
文字广告位出租10点/天
文字广告位出租10点/天
文字广告位出租10点/天
文字广告位出租0点/天

查看: 回复:0

DedeCMS栏目交叉调用自定义模型字段的方法

 

3080

主题

3080

帖子

1

积分

管理员

版主

积分
1
登陆

Warning: Illegal string offset 'loginnum' in /www/wwwroot/kyuanma.com/e/data/tmp/dt_temptext13.php on line 257
私信
注册时间

Warning: Illegal string offset 'registertime' in /www/wwwroot/kyuanma.com/e/data/tmp/dt_temptext13.php on line 261

Warning: date() expects parameter 2 to be long, string given in /www/wwwroot/kyuanma.com/e/data/tmp/dt_temptext13.php on line 261
最后登陆时间

Warning: Illegal string offset 'lasttime' in /www/wwwroot/kyuanma.com/e/data/tmp/dt_temptext13.php on line 263

Warning: date() expects parameter 2 to be long, string given in /www/wwwroot/kyuanma.com/e/data/tmp/dt_temptext13.php on line 263
楼主
发表于 2020-08-29 08:58:56
跳转
 DedeCMS的自定义模型和字段是采用附加表的形式储存在数据库中,这样很多特殊的页面要实现自定义字段的调用就不一定能行得通,比如要在交叉栏目中调用自定义字段的内容,用了下面的代码获取的内容为空:
1 {dede:arclist addfields='add1,add2,...' channelid='自定义内容模型的ID' row='10' orderby='pubdate'} //(add1,add2为自字义的字段名)
2 [field:add1 /]//(字段名1 调用 )
3 [field:add2 /]//(字段名2 调用 )
4 {/dede:arclist}

 
  看来常规的方法是实现不了的,这个时候想起了Dede的万能标签[field:id runphp='yes'],我们直接调取数据库的内容,越过dede的底层标签就有好了,于是便有了下面这段代码:
1 [field:id runphp='yes']
2 $id=@me;
3 global $dsql;
4 $row=$dsql->getone("select aid,hx from `dede_addon17` where aid=$id");
5 @me=$row["hx"] ;
6 [/field:id]

 
  代码释义:查询附加表dede_addon17的自定义字段hx,输出自定义字段hx的内容。这样就可以实现了栏目交叉的自定义模型字段调用,因为一个一个的调用会显得代码比较臃肿也加大了服务器的负担,于是我们可以批量查询并输出,代码如下:
1 [field:id runphp='yes']
2 $id=@me;
3 global $dsql;
4 $info='';
5 $row=$dsql->getone("select aid,hx,fg,sjsf,zj from `dede_addon17` where aid=$id");
6 $info='<p class="p2"><span><strong>户型:</strong>'.$row["hx"].'</span><span><strong>风格:</strong>'.$row["fg"].'</span></p> <p class="p2"><span><strong>设计收费标准:</strong>'.$row["sjsf"].'</span><span><strong>造价:</strong>'.$row["zj"].'</span></p>';
7 @me=$info;
8 [/field:id]

 
  大家根据自己的自定义字段存储的表以及相关自定义字段名来分别做相应修改就好了。
验证码 换一个

扫一扫,反馈当前页面

咨询反馈
扫码关注

阿里云代理商公众号

返回顶部