高级用法

自定义PHP

有tp5框架作为程序驱动,苹果CMSV10其实远远比我们以往所认识的还要强大,当已有的tp5标签和cms标签满足不了需求时,就可以使用到模板自定义php。例如现在某些模板厂商都把自定义后台搬到模板里了,虽然足以说明模板自定义php很灵活,但是这种做法官方不推荐,一般用的最多就是自定义处理函数.

方法示例

在模板html目录中创建php 文件夹,并创建一个 extra.php文件
html
  └─php
     └─ extra.php
1
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 .'&nbsp;&nbsp;';
          }
          echo "<br />";
       }
    ?>
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    php
  • 然后在模板的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
    php

使用模型

在模板自定义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
php
要是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
php
Scroll Top