跳转到主要内容
sosyuki 提交于 24 November 2016

先放上 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 版本