我们相信:世界是美好的,你是我也是。平行空间的世界里面,不同版本的生活也在继续...

thinkcmf模板使用php的方式,可以分为传统php内置标签两种方式。其中,内置标签是thinkcmf(thinkphp)特有的方式,也是本文重点介绍的内容。

苏南大叔:thinkcmf模板执行php代码的两种方式 - thinkcmf-template
thinkcmf模板执行php代码的两种方式(图5-1)

苏南大叔这里就是个抛砖引玉,具体的还是需要大家多多实践,才会有更加深刻的认识。

传统的php方式

在thinkcmf的模板文件中是可以运行传统的php代码的,加载方式也很简单。下面是几个例子。

<body>
  <?php
    echo "这个是在html模板里面调用的";
  ?>
  <php>
    echo "这个也是在html模板里面调用的";
  </php>
  {:sub_str("这个演示调用php函数",0,-1)}
  {:my_diy("这个演示调用自定义php函数")}
</body>

其中自定义函数,可以定义在模板html目录中。代码方式类似:

<include file="public@function"/>

比如:在/public/themes/simpleboot3/public/head.html文件中,引入的就是public/function.html中的自定义函数。函数的编写是类似这样的:

<php>function my_diy(){}</php>

不过,在html中定义php函数,是不是非常的怪异?反正,苏南大叔是这么想的。其实<php></php>这种也是自定义标签的做法,只不过苏南大叔把它归类到这边了。

苏南大叔:thinkcmf模板执行php代码的两种方式 - 代码范例
thinkcmf模板执行php代码的两种方式(图5-2)

在最新的tp5中,实际上在每个<module>目录下面,可以定义一个common.php文件,可以用于放置公共的自定义函数。在tp3时代,苏南大叔记得是一个function.php来搞定的。但是tp5系列,貌似不识别function.php了。

值得一提的是:common.php这里面定义的函数,在controller、model、view里面都是可以使用的。

苏南大叔:thinkcmf模板执行php代码的两种方式 - 代码范例2
thinkcmf模板执行php代码的两种方式(图5-3)

这里你可以看到更多信息。

内置标签taglib的方式

thinkcmf内置标签taglib这种方式,苏南大叔认为:很好很强大,值得推广。在thinkcmf中,内置标签的提供方,有两个,分别是thinkphpthinkcmf。当然,您也可以自定义属于自己的taglib

第一部分就是thinkphp提供的基础性的标签。常见的包括volist,foreach,if,else等等。这些标签一般都不涉及业务逻辑。也不需要特殊设置,直接能在模板html里面使用。

这些标签定义来自/thinkphp/library/think/template/taglib/Cx.php这个文件。

苏南大叔:thinkcmf模板执行php代码的两种方式 - 代码范例3
thinkcmf模板执行php代码的两种方式(图5-4)

第二个部分就是thinkcmf提供的业务相关的标签。包括articles,categories等。这些thinkcmf独有的标签,是需要在模板中,特殊指定才能识别的。

例如在官方例子中,/public/themes/simpleboot3/public/head.html中的<taglib name="app\portal\taglib\Portal"/>,实际上加载的是/app/portal/taglib/portal.php中的内置标签。

苏南大叔:thinkcmf模板执行php代码的两种方式 - 代码范例4
thinkcmf模板执行php代码的两种方式(图5-5)

所以,如果您想diy自己的标签的话,就应该仿照thinkcmf的这种加载方式。

结论

充分发挥动手能力,改造thinkcmf系统。更多苏南大叔的经验文章,请马上点击:https://newsn.net/tag/thinkcmf/

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。

 【福利】 腾讯云最新爆款活动!1核2G云服务器首年50元!

 【源码】本文代码片段及相关软件,请点此获取更多信息

 【绝密】秘籍文章入口,仅传授于有缘之人   php    thinkphp