织梦DedeCMS多函数嵌套在调用标签的方法
我们经常在使用Dede的时候,用的最多的就是调用标签,而有些网站因为特殊性,在使用调用标签的时候需要对调用的内容进行二次加工处理,这个时候就可能会用到Dede的函数,比如我们最常见的截取字符长度的函数cn_substr,能实现对调用的内容进行长度截取,html2text能实现去html样式转换为纯文本字符,每个都有自己的用处。但是有的时候我们可能既要去样式又要截取字符,那么就要用到多函数嵌套了,今天K1源码网就说说如何使用dede的多函数嵌套功能(就拿cn_substr与html2text函数举例)。 基本语法: 获取指定数值的字符串 function=cn_substr(@me,200) 去掉html样式,转换为纯文本字符 function=html2text(@me) 组合嵌套即提取指定个数的字符串并去掉html样式,转换为纯文本字符 {dede:field.content function=Html2Text(cn_substr(@me,110)) /} 这段代码实现的是获取获取栏目信息摘要信息(提取
有时刻我们在使用织梦DedeCMS建站的时刻想使用缩略图展示出来,由于织梦默认的缩略图截取为240*180px,以是会由于尺寸的缘故原由,导致图片失真,影响雅观,
K1源码网以前说过如何挪用Dedecms自界说字段中的第一张图片(含第二张第三张),这个方式虽然也适用于我们今天要解决的问题,然则稍显贫苦,
DedeCMS修改友情链接fink默认样式
DedeCMS默认的友情链接调用标签为: {dede:flink row=24} 这样生成的友情链接格式为这样: lia href=https://www.k1ym.com/ target=_blankK1源码网/a/li 但是有的时候我们会根据网站的模板来调整这个样式,不一定会用到li标签,这样一来,直接用调用标签调用出来的内容就会很难看,我们需要修改Dede默认的友情链接调用样式,打开 /include/taglib/flink.lib.php 文件找到代码(大概在第110行): if(trim($ctag-GetInnerText())==) $innertext = li[field:link /]/li; 修该为: if(trim($ctag-GetInnerText())==) $innertext = [field:link /]; 这样就去掉了li标签了,同时,我们也可以根据自己的需要来做其他修改,把要加上的代码加入这里即可。 修改前 修改后
K1源码网今天就说一个更简朴的方式,我们直接凭证缩略图的路径规则来替换为原图路径: 打开
include/extend.func.php,在最后面加上代码:
//取第一张图地址 function firstimg($str_pic) { $str_sub=substr($str_pic,0,-7).".jpg";//删除缩略图字符串最后七位,然后再补上后缀.jpg return $str_sub; } |
在模板中挪用语法为:
[field:litpic function=firstimg('@me')/] //首页或列表页 {dede:field name='litpic' function="firstimg(@me)"/} //内容页 |
这样就实现了挪用文章缩略图原图地址。然则在使用的时刻余斗又发现一个问题,我们这里只思量了后缀为jpg名堂的缩略图,其他图片的名堂没有思量在内,需要进一步修正,修正如下:
//取原图地址 function firstimg($str_pic) { $str_houzhi=substr($str_pic,-4); $str_sub=substr($str_pic,0,-7).$str_houzhi;//删除缩略图字符串最后七位,然后再补上后缀 return $str_sub; } |
挪用标签稳固。
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的内容。这样就可以实现了栏目交叉
评论(0)