# 高级用法 PHP
# 自定义PHP
有tp5框架作为程序驱动,苹果cmsV10其实远远比我们以往所认识的还要强大,当已有的tp5标签和cms标签满足不了需求时,就可以使用到模板自定义php。例如现在某些模板厂商都把自定义后台搬到模板里了,虽然足以说明模板自定义php很灵活,但是这种做法官方不推荐,一般用的最多就是自定义处理函数.
# 方法示例
在模板html
目录中创建php
文件夹,并创建一个 extra.php
文件
html
└─php
└─ extra.php
1
2
3
2
3
- 在这个
extra.php
可是使用php为所欲为,包括调用内部模型、查询数据库、自定义api接口都是可以的。 - extra.php
<?php
//extra.php
//自定义模板处理,变量 函数 等等
//检查入口是否非法访问
defined('ENTRANCE') or exit('Access Denied');
//自定义函数
function get_time(){
return date('Y-m-d H:i:s',time());
}
function get_weekday(){
$weekarray = array("日","一","二","三","四","五","六");
return "星期".$weekarray[date("w")];
}
//输出99乘法表
for($i=1;$i<=9;$i++) {
for($j=1;$j<=$i;$j++) {
echo "$i*$j=".$i*$j .' ';
}
echo "<br />";
}
?>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
然后在模板的html文件中使用模板php引入 extra.php
文件即可执行里面的php代码和使用里面定义的函数:
{php}require MAC_ROOT_TEMPLATE . 'php/function.php'{/php}
1
# 整合插件
- 可以使用tp5 助手函数 (opens new window) 获取后台参数
- 还可以使用插件函数来调用某个插件的参数
示例
# 获取ppvod插件的配置参数
$ppvod = get_addon_config('ppvod');
print_r($ppvod );
# 助手函数获取全后台数据
$mac = config('maccms');
print_r($mac);
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 使用模型
在模板自定义php中不仅仅支持全局通用函数的调用,还支持直接使用模型中的方法,例如 maccms:vod
这个标签的原始查询方法。完全可以使用listCacheData()
方式来模拟,满足一些特殊要求。
$list = [];
$where = []
$where['by'] = 'time';
$where['num'] = 20;
$where['type'] = 'all';
$list = model('Vod')->listCacheData($where);
print_r($list);
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
要是model('Vod')
模型中已有的方法还满足不了查询,还可以使用,模型 + where()自定义查询语句。
$list = [];
$where = [];
$where['vod_id'] = 123;
$list = model('Vod')->where($where)->limit(10)->select();
print_r($list);
1
2
3
4
5
2
3
4
5
← 全局標簽