### Url输出
* surl() 标签函数(假设当前模板组为`demo`)
- {surl(0)} : (当前)Demo首页 <br>
- {surl(book:0)} : 文档首页<br>
- {surl(tptag-tagf);} :标签函数 - 文档<br>
- {surl(demo:tptag-tagf);} :标签函数 - Demo<br>
- {surl(tptag-tagf,0,1);} :标签函数 - 文档 - 完整地址<br>
- {surl(demo:tptag-tagf,0,1);} :标签函数 - Demo - 完整地址<br>
- {surl(xgroup:ymod)} :无效链接 (xgroup模板组无效)<br>
- {surl(ymod)} :自定义模型链接 <br>
- {surl(news.2016-12-abcd)} //详情地址<br>
- {surl(news.2016-34-eeff)} //详情地址 <br>
* 输出的url,会根据设置变化而变化:
- 如程序配置在网站根目录,或不同子目录,会自动补全前面的路径;
- 如配置了伪静态,则会输出伪静态链接;
- 如果生成了静态,则会输出实体静态路径;
- 还可绑定域名输出;
* Demo代码效果
- [Demo效果]({=PATH_PROJ}/demo.php?tptag-tagf),
[Demo代码]({=PATH_PROJ}/demo.php?home-code&fp=demo/tptag/tagf.htm)
### 多语言标签
* 场景
- 模板中,如果只显示一个语言版本;那使用多语言标签没有什么意义,反而增加了麻烦;
- 如果某些模板区块,供多个语言版本调用;或可切换多个语言(如后台),这是才有实际意义;
- 提示:核心语言包位置:/imcat/lang/kvphp/;
* lang() 标签函数
- `<`?php=lang('core.sms_errtel')?`>`, 则调用到:`/imcat/lang/kvphp/core-cn.php` 中的 sms_errtel 键对应的值;
- 或者是其它语言(根据设置不同而不同)包对应的 值;
* 扩展
- 多语言 扩展,见后面更多章节
**提示:**surl(), lang() 既是标签函数,又是助手函数;
助手函数可以用在系统任意地方,标签函数只能用于模板;
### 类别选项
* opt 标签函数
- 针对栏目,状态 等一些单选,多选字段;保存的是一些键值,显示时要显示对应的值;而且可能要表现出不同状态,颜色等;
- 这里的 标签函数 就专门针对此场景设计;
- 语法:`{`opt($val='', $mod='', $split=0, $null='')`}`
- $val, 为保存的键值,
- $mod, 为系统模型(如国内地区:china-取其类别,新闻:news-取其栏目,或单选多选字段如:order.status-字段配置)
- $split, 分割标记, 一般为0,
- $null, 如果值为空时,默认输出。
* 预备代码
```
<?php
$split = '|';
$tpl = "<i class='itm-(k) cF00'>(v)</i>";
$null = '';
?>
```
* 默认自动彩色显示
- cargo栏目-cosys:{sopt(cosys,cargo,0,$null)}
- cargo栏目-ouapi:{sopt(ouapi,cargo,0,$null)}
* 多个选项
- 多个选项-cosys+ouapi:{sopt(cosys+ouapi,cargo,0,$null)}
- 模版显示-cosys+ouapi:{sopt(cosys+ouapi,cargo,$tpl,$null)}
* china类别选项
- china-cnhn:{sopt(cnhn,china,$tpl,$null)}
- china-cngd:{sopt(cngd,china,$tpl,$null)}
* 字段属性
- cargo.fixsys字段属性-imcat:{sopt(imcat,cargo.fixsys,0,$null)}
- cargo.fixsys字段属性-imblog:{sopt(imblog,cargo.fixsys,0,$null)}
- cargo.fixsys字段属性-ourhouse:{sopt(ourhouse,cargo.fixsys,0,$null)}
- cargo为模型,fixsys为多选字段
* Demo代码效果
- [Demo效果]({=PATH_PROJ}/demo.php?tptag-tagf),
[Demo代码]({=PATH_PROJ}/demo.php?home-code&fp=demo/tptag/tagf.htm)
### 图片标题
* 图片输出 spic 标签函数
- 输出图片地址,自适应:本地存储,云存储,Ftp远程存储;切换存储不需要修改代码和资料;
- 输出图片,处理缩略图,如果无图片,可处理默认图片;
- 语法:`{`spic($val, $def='', $resize)`}`
- $val, 为保存的键值,
- $def, 如果无图片,设置的默认图片路径
- $resize, 缩略图大小。
- eg. {spic($v['mpic'],demo_120x90.jpg,160x120)}
- 比如,本地调试放在几层目录中,正式使用上传到跟目录,根本不担心图片不显示。
* 标题输出 title 标签函数
- 主要处理标题设置的颜色,如新闻;和长度剪切;
- 语法:`{`title($val,$len=24,$paras=array())`}`
- $val, 为保存的键值,
- $len, 长度剪切,按汉字计算,字母算1/2个长度,
- $paras, 当前行数据资料,
- eg. {title($v['title'],12,$v)}
* Demo代码效果
- [Demo效果]({=PATH_PROJ}/demo.php?tptag-tagf),
[Demo代码]({=PATH_PROJ}/demo.php?home-code&fp=demo/tptag/tagf.htm)
### (富)文本
* html(), 输出Html文本块
- 语法:`{`html($val)`}`
- 处理 文本里的url链接 和 媒体链接
* text(), 输出Text文本块
- 语法:`{`html($val,$len=0,$nobr=0)`}`
- 处理 文本里的url链接 和 媒体链接
- len: 长度剪切
- nobr: 换行控制
* Demo
- {html($t_detail)} Html
- {text($t_detail,120,1)} 无br换行
- {text($t_detail,120)} 有br换行
### 时间输出
* stime(), 由时间戳输出时间字符串
- 语法:`{`stime($val,$fmt='auto',$null='')`}`
- fmt: 格式;auto: 自动,
d: Y-m-d,
min: Y-m-d H:i,
full: Y-m-d H:i:s,
dm: m-d H:i
- null: 为空时的默认值
* Demo代码效果
- [Demo效果]({=PATH_PROJ}/demo.php?tptag-tagf),
[Demo代码]({=PATH_PROJ}/demo.php?home-code&fp=demo/tptag/tagf.htm)
<!--
##-# show
* 'show' => 'vopCell::cShow',
-->
-End-