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

thinkcmf模板使用php的方式,可以分为传统php内置标签两种方式。其中,内置标签是thinkcmf(thinkphp)特有的方式,也是本文重点介绍的内容。苏南大叔这里就是个抛砖引玉,具体的还是需要大家多多实践,才会有更加深刻的认识。

传统的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代码的两种方式 - taglib3

thinkcmf模板执行php代码的两种方式 - taglib4

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

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

thinkcmf模板执行php代码的两种方式 - taglib5

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

内置标签taglib的方式

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

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

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

thinkcmf模板执行php代码的两种方式 - taglib

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

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

thinkcmf模板执行php代码的两种方式 - taglib2

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

结论

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

本站采用创作共用版权协议, 要求署名、非商业用途和相同方式共享。
转载本站内容必须也遵循“署名-非商业用途-相同方式共享”的创作共用协议。
程序如此灵动~》下所有原创文章,如被用于商业用途,请您按规定支付稿费。