跳转到主要内容
刘鑫 提交于 30 December 2016

Drupal8开发习惯之一:如何建立一个单独的页面(主页,某个活动页面等需要完全定制的页面)

最近研究好多的Drupal8打包发行的版本和acquia的论文,书籍等,发现了一些建站习惯和我自己的完全不同,所以总结一些

 

今天我们讲的是如何建议里一个页面,有下面几种选择:

1.使用page_manager ui模块

2.新建模块,建立一个routing指向Controller,在输出到MODULENAME.module中定义的twig模板

3.创建一个node

显然,最合理应该是第三种方案,我以前比较笨,一直用前两种方法

但是如何正确的用node 来创建一个页面呢

同样有两种方法:

1.:创建一个Landing Page(名字随意)内容类型,字段全部删除。

       创建这个这个内容类型的页面,然后复写这个node的模板,并添加一些东西,region,html等,一些简单的网站推荐用这种方法来创建主页,活动页等2016-12-30_192628.png

2:同样是创建一个Landing Page内容类型,字段全部删除,但是另外安装一个模块panelizer,并在显示中选择Panelize this view mode(此种方法没必要启动page_maneger ui模块)2016-12-30_192729.png

 

 

 

2016-12-30_192744.png

 

2016-12-30_192800.png

第二种方法是Acquia对于中等 规模以上网站官方推荐的做法,因为第一种方法在页面增多时,block layout页面会极其臃肿,造成管理上的不便

另外问题来了,如何Theme这个panelizer的页面呢,因为复写node模板在此完全失效了

1.系统的模板复写推荐功能是没有推荐这个panelizer如何去复写,所以我在这里总结以下,直接复制panelizer下的panelizer-view-mode.html.twig到你的主题中,重命名为panelizer-view-mode--node-id.html.twig,panelizer-view-mode--(panelizermachineid).html.twig等等,和复写其他模板一样规则,只是twig-debug功能没有提醒罢了

2.在复写的这个模板中添加自己的css js libraries等,或者通过THEMENAME.theme中的preprocess功能来添加(这个下回再讲)

 

 

本文所说的,只是国外一些大型机构,名人建站时使用的一些习惯,讲的不对的地方还请包涵,哈哈,并不是说就要用这种方法,还是根据你的业务需求来

 

Drupal 版本