phpwind模板
打开一个十几年前的老论坛,页面底部赫然写着“Powered by phpwind”。这行字现在看起来像文物。phpwind的模板系统,就是那个时代站长们又爱又恨的东西。 2003年到2012年,国内做论坛的,一半用Discuz,另一半用phpwind。phpwind的模板机制比Discuz更“裸”——它没有后来Discuz那么复杂的DIY拖拽,模板文件就是纯PHP混HTML,变量用 phpwind模板文件集中在 模板里最麻烦的是“钩子”。phpwind没有现在流行的插件钩子机制,想加功能要么直接改模板,要么用 phpwind模板的缓存机制也值得说。后台“更新缓存”会生成 风格切换是另一个坑。phpwind支持多风格,但不同风格的模板文件不共享。你从 现在回头看,phpwind模板系统粗糙,但透明。你知道每一行HTML从哪来,知道变量怎么传。不像现在的某些前端框架,一个组件套三层,改个按钮颜色得翻五个文件。phpwind的模板就像老式机械表,零件都露在外面,修不修得好看手艺。很多老站长至今还留着当年的模板文件,偶尔翻出来改两行,当怀旧。那些<?php echo $var; ?>直接输出。好处是改起来直接,坏处是新手容易把页面改崩。我见过一个站长,为了在帖子列表页加个广告位,把threadlist.htm里循环的<?php foreach($threadlist as $thread){ ?>拆了,结果整个版块白屏。他后来在QQ群里骂了半小时,最后还是老老实实还原备份。template目录下,默认风格叫wind。里面分得很细:header.htm、footer.htm、read.htm、post.htm……每个页面都有对应文件。改模板不需要动核心代码,这一点比某些CMS强。但它的变量命名很随意,比如帖子内容用$read[content],用户头像用$read[face],没有统一规范。你改一个页面,得先翻半天require进来的PHP文件,看变量到底怎么赋值的。eval执行PHP代码。有个做地方门户的站长,想在帖子页显示“同城天气”,硬是在read.htm里插了一段<?php echo file_get_contents('http://weather.com/...'); ?>。结果天气接口挂了,整个帖子页卡死。他后来学乖了,把这段代码写到require的global.php里,加了个if判断超时。data/tpl_cache目录下的编译文件。你改了read.htm,不更新缓存,前台根本不生效。很多新手改完模板刷新页面没变化,急得抓耳挠腮。其实点一下后台的“更新模板缓存”就行。但phpwind的缓存有时候会抽风——你明明更新了,它还是读旧的。这时候得手动删掉tpl_cache里的对应文件。我见过一个站长,为了一个页脚版权年份,折腾了一下午,最后发现是缓存目录权限不对,PHP写不进去。wind切到new,得把wind里改过的文件全部复制过去。没有继承机制。所以那时候做模板的,通常直接复制一份默认风格,改完打包成.xml导入。导入的时候还经常因为编码问题乱码——GBK和UTF-8混用,中文全变问号。有个做汉服论坛的姑娘,导入了七八次,最后发现是xml文件头写错了编码声明。<?php ?>标签,现在看依然亲切——它们代表一个时代:你改一行代码,刷新页面,立刻看到结果。没有构建,没有打包,没有热更新。简单,直接,偶尔崩溃,但你知道问题出在哪。
-
上一篇
-
下一篇
- 随机阅读
- 搜索
-
- 友情链接
-