求帮忙,think-template关于include包含文件 动态路径问题

1619443919

webman里面
第一次用think-template做的后台 想做多套模板,方便用户自己选择喜欢的模板

模板需要包含不同的在公用文件(header.html,footer.html)里包含不同文件下的的文件
目前是在$webpath里做的文章,根据用户的选中的模板 赋予不同的路径
模板:
{include file="$wpath/common/header" /}
...
{include file="$wpath/common/footer" /}

理想很丰满,显示很骨感,死活不行!!!

百度了一下,嘿,还真有办法,改源码,哈哈!!!

..../vendor/topthink/think-template/src/Template.php改566行

截图

改think-template源文件 内心此起彼伏,不想这样搞

求比较熟悉think-template 支下招 能优雅的实现

833 2 1
2个回答

北月

模板主题对模板引擎来说无非就是多一层目录,这种情况下宁愿多写一些一样的公共头尾文件,也不要用改第三方库源码的方式。
模板主题目录类似于这样子
截图

然后重写support/view/ThinkPHP这个类,相当于重写render方法
截图

再修改config/autoload.php文件,引入自己的文件base_path() . '/support/view/ThinkPHP.php'

  • 1619443919 2022-06-14

    非常感谢您的回答,tpl_replace_string,这个玩意我在html模板里引入css,js文件有用到,在include包含标签内使用think-template是不行的

  • 北月 2022-06-14

    我刚才看了源码,确实不能这么搞,重新编辑了回答

  • 1619443919 2022-06-15

    好的 谢谢

  • wanyuwei 2023-05-11

    标记

a178251115

可以采用layout 布局,然后直接修改模板目录就行了,用户切换的时候,直接换模板目录view_path 这个参数,

年代过于久远,无法发表回答
🔝