- 定义
- fun 函数标签
- if else 判断标签
- foreach 循环标签
- for 循环标签
- dump 打印数据
- newstr 字符串截取 内容截取
- get_domain 获取网站域名
- GetIP 获取当前访问IP
- webConf 获取配置内容
- get_template 获取当前模板名
- adminInfo 获取管理员信息
- memberInfo 获取会员信息
- current_url 获取当前链接
- checkClass 判断栏目下级
- formatTime 人性化时间显示
- nl2br 输出换行
- str_replace 字符串替换
- stripos 判断字符串是否含有字符串
- htmldecode 去除HTML标签,同时去除空格
- htmlspecialchars_decode 输出原HTML代码
- explode 分割字符串
- trim 过滤字符串两边的字符
- jz_follow 获取用户的关注数
- jz_fans 获取用户的粉丝数
- isfollow 判断是否关注
- gourl 输出详情链接
- jzresize 自定义图片裁剪
定义
功能标签是系统自带的一些标签以及函数使用,熟练掌握可以更好的制作模板。
fun 函数标签
此函数标签可以使用PHP的函数及系统函数
简单尝试
#输出当前年-月-日{fun date('Y-m-d')}#输出当前时间戳{fun time()}
模板解析结果:
<?php echo date('Y-m-d');?><?php echo time();?>
if else 判断标签
此标签可以用于逻辑判断,制作模板会经常用到
经常会遇到 js 内容导致标签报错,使用 js 的时候,不要把
{if
粘连在一起,要么换行,要么空几个空格,如: { if 。切勿压缩代码,压缩代码很可能因为 js 问题报错!
判断一个变量是否为真(true,有值,不为空,有内容)
{if($a)}有内容这里输出{else}无内容{/if}
判断取反,如果条件为假(false),则输出
{if(!$a)}无内容{else}有内容这里输出{/if}
判断两种条件同时成立,$a为真,$b也为真,输出某个东西
{if($a && $b)}$a和$b都有数据,输出这里{else}有一个无数据,或者都没有数据{/if}
判断两种条件,有一个为真,就输出来
{if($a || $b)}$a和$b只要有一个为真,输出这里{else}$a和$b都不说真,输出这里{/if}
三种条件以上以此类推...
foreach 循环标签
此标签循环的一般是数组,得先有数据才能进行循环,如果没有数据,或者变量未定义,则无法循环输出。
栏目列表
$v是可以变化的,不是固定的。比如你可以设置为 $s $a $b $c $aa $bb 等等,推荐用字母,不能纯数字。
{foreach $lists as $v}内部使用 $v 变量进行循环输出内容{/foreach}
for 循环标签
for循环标签用的比较少,一般是循环次数使用
循环输出10次
{for $i=1;$i<=10;$i++}这里会循环执行10次,第{$i}次{/for}
dump 打印数据
可以打印所有模板中你想知道的变量和内容
如:
{fun dump($type)}
newstr 字符串截取 内容截取
此函数可以截取中文和字母,不会出现乱码。
注意:一个中文代表2个字符
{fun newstr('参数1','参数2')} 参数1:需要截取的字符串,可以是变量参数2:截取的长度截取标题的15个字长度
{loop table="article" isshow="1" limit="10" as="v"}标题:{fun newstr($v['title'],30)}{/loop}
温馨提示:大写字母占位比较大,但它是1个字符!
get_domain 获取网站域名
带http
{fun get_domain()}
GetIP 获取当前访问IP
{fun GetIP()}
webConf 获取配置内容
webConf('字段')
输出网站名称
{fun webConf('web_name')}
get_template 获取当前模板名
{fun get_template()}
adminInfo 获取管理员信息
adminInfo($id,$str=null)
$id : 管理员ID
$str: 管理员表字段,如:name
如果不填 $str 则返回数组,填了则返回对应的值
输出管理员ID=1的昵称
{fun adminInfo(1,'name')}
输出管理员ID=1各种信息
{php$admin = adminInfo(1);/}昵称:{$admin['name']} 电话:{$admin['tel']}邮箱:{$admin['email']}
memberInfo 获取会员信息
memberInfo($id,$str=null)
$id : 会员ID
$str: 会员member表字段,如:username
如果不填 $str 则返回数组,填了则返回对应的值
输出会员ID=1的昵称
{fun memberInfo(1,'username')}
输出会员ID=1各种信息
{php$user = memberInfo(1);/}昵称:{$user['username']} 电话:{$user['tel']}邮箱:{$user['email']}
current_url 获取当前链接
{fun current_url()}
checkClass 判断栏目下级
checkClass($pid,$tid) 判断 $tid 这个栏目的下级是否包含 $pid $pid : 栏目ID
$tid : 栏目ID 返回 bool //false or true
判断栏目12是否为1的下级
{if(checkClass(12,1))}是{else}不是{/if}
formatTime 人性化时间显示
formatTime($sTime, $formt = 'Y-m-d')
$sTime:时间戳
$formt:显示时间样式(如果超过人性化设定,则显示此格式,参考上面格式)
可能显示的类型:刚刚、x秒前、x分钟前、x小时前、x天前、x周前、x个月前、m月d日、Y-m-d
栏目列表页
{foreach $lists as $v}时间:{fun formatTime($v['addtime'])}{/foreach}
nl2br 输出换行
输出描述换行,文本框textarea换行
假设某个内容模型自定义字段 abc ,是一个 textarea 文本录入框,里面的内容用了 Enter 换行,你想要输出跟后台录入的一样的格式
{fun nl2br($jz['abc'])} //$jz['abc'] 只是一个举例的变量,根据不同情况,你可以替换你想要输出的内容
str_replace 字符串替换
str_replace($a,$b,$c)
$a : 一个需要被替换的字符串
$b : 需要替换成为的字符串
$c : 原字符串
假设需要替换 abcdef 里面的 bc 换成 123
{fun str_replace('bc','123','abcdef')} //输出 a123def
如果你想替换内容标题里面的 测试 换成 最新
{fun str_replace('测试','最新',$jz['title'])} //内容详情页内才可以写 $jz ,其他页面,请根据情景替换变量
stripos 判断字符串是否含有字符串
stripos($a,$b) //忽略大小写 strpos($a,$b) //区分大小写
$a : 目标字符串
$b : 判断的字符串
判断内容是否含有 极致
{if(strpos($jz['body'],'极致')!==false)}含有{else}不含有{/if}// $jz['body'] 仅在内容页有效,其他页面,请根据情况而定
htmldecode 去除HTML标签,同时去除空格
经常会遇到去除HTML显示文字的需求,这个函数就可以实现
去除内容的HTML标签,只输出文字
{fun htmldecode($jz['body'])} // $jz['body'] 仅在内容页有效,其他页面,请根据情况而定
htmlspecialchars_decode 输出原HTML代码
由于保持的代码会被编译,所以使用这个函数可以还原代码
{fun htmlspecialchars_decode($abc)}
explode 分割字符串
此函数会出现在tags输出的时候,由于tags存储的内容是逗号拼接的,如果要分别输出每个tags并且加上URL,就需要用这个函数将其拆分成数组
explode($a,$b)
$a : 拆分字符
$b : 拆分对象,字符串
输出文章tags,且加上URL
{foreach explode(',',$jz['tags']) as $v}{if($v)}tags : <a href="/tags/index?tagname={$v}" target="_blank">{$v}</a>{/if}{/foreach}
仅在内容详情页使用 $jz['tags'] ,其他页面,请根据情况来写
trim 过滤字符串两边的字符
如果你发现一个字符串两变有一些其他不相关的字符,那么你可以通过这个函数去掉,比如空格/逗号等等,只是去除两边,不能过滤中间的
去掉tags两边都逗号
{fun trim($jz['tags'],',')}
$jz['tags']仅在内容页有效,另外,由于tags存储是 `,测试,极致,` 这种方式,多了两边都 `,` ,所以要过滤掉。
jz_follow 获取用户的关注数
jz_follow($member_id)
$member_id : 用户ID
获取当前登录会员的关注数
{fun jz_follow($member['id'])}
jz_fans 获取用户的粉丝数
jz_fans($member_id)
$member_id : 用户ID
获取当前登录会员的粉丝数
{fun jz_fans($member['id'])}
isfollow 判断是否关注
isfollow($other_id,$member_id)
$other_id : 其他人都ID
$member_id : 判断人ID 判断 $member_id 是否关注了 $other_id
gourl 输出详情链接
此函数一般不用,当你使用loop输出非当前模型URL的时候可能用得到。
输出收藏的详情链接
{loop table="shouchang" as="v"}{php$molds = $classtypedata[$v['tid']]['molds'];$info = M($molds)->find(['isshow'=>1,'id'=>$v['aid']]);/}{if($info)}收藏内容详情链接:{fun gourl($info)}{else}已被删除{/if}{/loop}
jzresize 自定义图片裁剪
src_image 原图链接 根目录绝对链接,支持远程图片
out_image 生成图链接 写文件名即可
mode 1:按尺寸裁剪 2:按比例裁剪
out_width 生成的宽(比例)
out_height 生成的高(比例)
img_quality 压缩比例(PNG无法压缩)
direct 1:中间开始裁剪 0:左上角开始裁剪
debug 1:调试状态,每次请求都生成缓存 0:会直接调用已生成的缩略图
jzresize($src_image,$out_width = NULL, $out_height = NULL, $mode = 1, $out_image = NULL, $direct = 1 ,$debug = 0 , $img_quality = 90 )
输出栏目列表 200px × 100px 的缩略图
{foreach $lists as $v}{fun jzresize($v['litpic'],200,100)}{/foreach}
输出栏目列表缩略图比例为 宽 : 高 = 2 : 1
{foreach $lists as $v}{fun jzresize($v['litpic'],2,1,0)}{/foreach}
注意:如果是调试,必须填debug=1,否则每次都要清空图片缓存 cache/image ,后台清楚缓存可以选择删除
如:
{fun jzresize($v['litpic'],2,1,0,null,1,1)}
希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, Fastadmin, ClassCMS, LeCMS, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。