home-code

示例❤源码



### Url输出

* surl() 标签函数(假设当前模板组为`demo`)
  - &#123;surl(0)} : (当前)Demo首页 <br>
  - &#123;surl(book:0)} : 文档首页<br>
  - &#123;surl(tptag-tagf);} :标签函数 - 文档<br>
  - &#123;surl(demo:tptag-tagf);} :标签函数 - Demo<br>
  - &#123;surl(tptag-tagf,0,1);} :标签函数 - 文档 - 完整地址<br>
  - &#123;surl(demo:tptag-tagf,0,1);} :标签函数 - Demo - 完整地址<br>
  - &#123;surl(xgroup:ymod)} :无效链接 (xgroup模板组无效)<br>
  - &#123;surl(ymod)} :自定义模型链接 <br>
  - &#123;surl(news.2016-12-abcd)} //详情地址<br>
  - &#123;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:&#123;sopt(cosys,cargo,0,$null)} 
  - cargo栏目-ouapi:&#123;sopt(ouapi,cargo,0,$null)} 

* 多个选项
  - 多个选项-cosys+ouapi:&#123;sopt(cosys+ouapi,cargo,0,$null)} 
  - 模版显示-cosys+ouapi:&#123;sopt(cosys+ouapi,cargo,$tpl,$null)}

* china类别选项
  - china-cnhn:&#123;sopt(cnhn,china,$tpl,$null)} 
  - china-cngd:&#123;sopt(cngd,china,$tpl,$null)} 

* 字段属性
  - cargo.fixsys字段属性-imcat:&#123;sopt(imcat,cargo.fixsys,0,$null)} 
  - cargo.fixsys字段属性-imblog:&#123;sopt(imblog,cargo.fixsys,0,$null)} 
  - cargo.fixsys字段属性-ourhouse:&#123;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. &#123;spic($v['mpic'],demo_120x90.jpg,160x120)}
  - 比如,本地调试放在几层目录中,正式使用上传到跟目录,根本不担心图片不显示。

* 标题输出 title 标签函数
  - 主要处理标题设置的颜色,如新闻;和长度剪切; 
  - 语法:`{`title($val,$len=24,$paras=array())`}`
  - $val, 为保存的键值,
  - $len, 长度剪切,按汉字计算,字母算1/2个长度,
  - $paras, 当前行数据资料,
  - eg. {title&#40;$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
  - &#123;html($t_detail)} Html
  - &#123;text($t_detail,120,1)} 无br换行
  - &#123;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-