tp5:公用html部分的整合
2018-05-07 本文已影响3人
developerAbble
根据html模板开发功能时,首先要做的就是整合:将html模板与后台框架整合。这要分三件事:
- 引用问题。js,css或者其它什么东西。每个后台框架都有它自己的规范,入乡随俗,html第一步要做的就是改变自己。
- 把header,footer或其它公用性的东西,提取出来。
- 将后台代码的值渲染到模板上。从概念上来说,要在两方面入手:第一就是显示值;第二就是根据后来传来值的不同,我们可以对html代码进行循环等操作,在一定范围内改变样式。
编程的大部分时间都在第三点上。今天我们来说第二点:将公用部分代码提取出来。
目前,笔者能回忆起来的有两点。后面遇到或想起再添上:
- 如何引用
- 常见值的渲染
如何引用具体就看用什么后台框架了,tp5上其中一种引用是这样的,目前也够用了:
{include file="public/menu"}
header、menu或footer上固定值如何处理?
固定值从哪里来?
固定值可以来自配置文件,也可以来自后台数据库。直接上代码吧,写不下去了:
class Base extends Controller
{
public function initialize() {
$this->initialView();
parent::initialize();
}
protected function initialView() {
$company = Config('company.');
(new think\view)->share('company', $company);
$current_page = strtolower($this->request->controller());
(new think\View)->share('current_page', $current_page);
}
}
关于菜单这多一句:
<li {if $current_page=='index'}class="active"{/if}><a href="{:url('Index/index')}">首页</a></li>
<li {if $current_page=='aboutus'}class="active"{/if}><a href="{:url('AboutUs/index')}">关于我们</a></li>
<li {if $current_page=='service'}class="active"{/if}><a href="{:url('Service/index')}">清洗对象</a></li>
<li {if $current_page=='show'}class="active"{/if}><a href="{:url('Show/index')}">产品展示</a></li>
这样的方式有点挫,暂时凑合着用。知道更好的方法再来优化。