Drupal 前端的解决办法


用drupal开发,前端是一个很大的问题,因为无法完全使用比较熟悉的MVC。

drupal能控制显示的地方从下到上。

字段 字段显示格式

  1. field field.tpl.php
  2. 这里是各种Entity
  3. block block.tpl.php
  4. region region.tpl.php
  5. page page.tpl.php
  6. html html.tpl.php

node.tpl.php 只是Entity的一种,node模块带的node.tpl.php 只能控制node。自己写的Entity只能自己写tpl文件了。

主要需要控制的是1和3层,1层控制主要通过FIELD FORMAT来实现,需要有一定的开发能力。

3层,由于只能在modules中编写也需要一定的开发能力。主要为theme(主题层)提供各种块模版的结构,及覆写钩子。

上面的模版文件为通用模版,一般情况下不动。

2层定义各种entity的html结构,如node.tpl.php。

覆写views模版,并向其中注入变量。

覆写模版是需要先定义使用 hook_theme 然后使用 hook_preprocess 和 hook_process 覆写模版 $variables['theme_hook_suggestions']。

覆写views模版时需要使用这两个钩子,'views_view' 'views_view_fields' 一个是对字段集,一个是对views。剩下的就是处理和注入变量,比如要注入一个 $time 则$variables['time'] = time(); $variables这个数组的键都是在模版里面可以使用的变量。而且drupal是原生PHP模版,可用的完全不仅仅是这一点点变量。只不过太多了反而麻烦。这个需要自己进行规范了。这样就可以分离views和模版层了,数据层与视图层了。