好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

织梦CMS arclist标签调用自定义字段方法 - DeDecms

织梦CMS arclist标签调用自定义字段方法

其实方法非常的简单我们只要使用addfields就可以实现增加自定自段了,不过有一点需要注意的是如果你在在后面加的我们需要把底层给选中,否则是可能调用不到字段的.

语法代码如下:

{dede:arclist  addfields = '附加字段1,附加字段2,附加字段3'   row = '8'   channelid = '自定义模型id号' }  [field:textlink /]   [field:附加字段1/]   [field:附加字段2/] <   [field:附加字段3/] < < br   />   {/dede:arclist} 

实例代码如下:

{dede:arclist  flag = 'c'   typeid = '23'    channelid = '1'    addfields = 'tpic2'   limit = '0,8' }  < div   class = "works" >   < a   title = "[field:title /]"   href = "#" >   < img   src = "[field:tpic2 function='GetOneImgUrl(@me,1)'/] "   width = "940"   height = "440"   alt = "#" >   </ a >   </ div >   {/dede:arclist} 

要求:

1、指定 channelid 属性

2、指定要获得的字段 addfields='字段1,字段'

3、必须选择  使字段可以在列表的底层模板中获得(自定义字段默认仅能在文档模板显示,启用此选项将使列表查询变慢,如无必要请不要选择),这个可以用来做普通的文字类型,如果要是图片的类型的话会出现.代码如下:

{dede:img  text = ''   width = '270'   height = '129' } /uploads/101017/1-10101H21F54P.gif {/dede:img} 

这明显不是我们想要的,这个时候我们弄一个自定函数,代码如下:

function  GetOneImgUrl( $img , $ftype =1){   if ( $img  <>  '' ){  //var articleUrl = http://www.phpfensi.com     $dtp  =  new  DedeTagParse();   $dtp ->LoadSource( $img );   if ( is_array ( $dtp ->CTags)){   foreach ( $dtp ->CTags  as   $ctag ){   if ( $ctag ->GetName()== 'img' ){   $width  =  $ctag ->GetAtt( 'width' );   $height  =  $ctag ->GetAtt( 'height' );   $imgurl  = trim( $ctag ->GetInnerText());   $img  =  '' ;   if ( $imgurl  !=  '' ){   if ( $ftype ==1){   $img  .=  $imgurl ;   }   else {   $img  .=  '<img src="' . $imgurl . '" width="' . $width . '" height="' . $height . '" />' ;   }   } } }   }   $dtp ->Clear();   return   $img ;   }   } 

调用代码如下:[field:tpic2 function='GetOneImgUrl(@me,1)'/]这样即可.

查看更多关于织梦CMS arclist标签调用自定义字段方法 - DeDecms的详细内容...

  阅读:53次