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


 织梦要在交叉栏目中调用自定义字段的内容,用了下面的代码获取的内容为空:

  {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]

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