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

春雨沙沙地下着,有如绣花针,有如牛毛。河面雪融化了,雪水汇成小溪,淙淙地流着。河水中,一只只小蝌蝌顽皮地游着,好似找它妈妈,可爱极了。

以前讲过DedeCMS内容模型自定义字段及调用方法,后来也因为一些数据的调用说了DedeCMS专题页节点文档调用自定义模型字段方法,DedeCMS的自定义模型和字段是采用附加表的形式储存在数据库中,这样很多特殊的页面要实现自定义字段的调用就不一定能行得通,比如余斗要在交叉栏目中调用自定义字段的内容,用了下面的代码获取的内容为空:

	
	{dede:arclist addfields='add1,add2,...' channelid='自定义内容模型的ID' row='10' orderby='pubdate'} //(add1,add2为自字义的字段名) 
	[field:add1/]//(字段名1 调用 ) 
	[field:add2/]//(字段名2 调用 )
	{/dede:arclist}
	

看来常规的方法是实现不了的,余斗这个时候想起了Dede的万能标签[field:id runphp='yes'],我们直接调取数据库的内容,越过dede的底层标签就有好了,于是便有了下面这段代码:

	
	[field:id runphp='yes']
	$id=@me;
	global $dsql;
	$row=$dsql->getone("select aid,hx from `dede_addon17` where aid=$id");
	@me=$row["hx"] ;
	[/field:id]
	

代码释义:查询附加表dede_addon17的自定义字段hx,输出自定义字段hx的内容。这样就可以实现了栏目交叉的自定义模型字段调用,因为一个一个的调用会显得代码比较臃肿也加大了服务器的负担,于是我们可以批量查询并输出,代码如下:

	
	[field:id runphp='yes']
	$id=@me;
	global $dsql;
	$info='';
	$row=$dsql->getone("select aid,hx,fg,sjsf,zj from `dede_addon17` where aid=$id");
	$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>';
	@me=$info;
	[/field:id]
	

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

本文DedeCMS栏目交叉调用自定义模型字段的方法到此结束。聪明人创造的机会多于碰到的机会。小编再次感谢大家对我们的支持!

您可能有感兴趣的文章
织梦后台文档列表添加复制文档功能支持所有模型

织梦无法上传ico图标格式文件的如何解决方法

dedecms如何实现任意页面调用当前会员信息的方

织梦dede:tag调用指定多个栏目的TAG标签

织梦栏目列表按附加表自定义字段排序