先放上 github 地址:
https://github.com/sosyuki/drupal7-demo
这套代码 带安装完整的数据库一份 在根目录中 drupal7_demo.zip
- 用户名:root
- 密码:root
这个方法没有修改核心,但是需要对 drupal 有一定的开发能力,主要针对的是开发者。
虽然是 Drupal 7 但是使用的是 twig 作为模版引擎,完整可用,自带常用开发模块。
核心有两点,提供了一个 PageController 和 覆写 默认模板。
PageController 在:
sites\all\modules\custom\common\src\CommonPageController.php
模版覆写参考:
sites\all\themes\website_pc\templates\system
使用示例:
sites\all\modules\custom\sosyuki
原理解释:
这个方法利用 Drupal 模版渲染的模版查找机制,common 模块注册了一个 content 模版。然后在主题中覆写 system 模块的模版,将其中的 html 代码全部移除。使其只输出一个区块的内容。然后将全部变量都放在这个区块中进行处理。
例:sites\all\themes\website_pc\templates\content--front.tpl.twig
Drupal 模版有一个机制,如果页面 url 是 xxx.com/a/b/c 是可以使用 page--a.tpl.twig page--a--b.tpl.twig 这样的模版的,而且 page--a--b.tpl.twig 是覆盖 page--a.tpl.twig 的。这个方法就是利用的Drupal 这部分相关代码。
如有问题,欢迎留言。
板块
Drupal 版本