Drupal8开发习惯之一:如何建立一个单独的页面(主页,某个活动页面等需要完全定制的页面)
最近研究好多的Drupal8打包发行的版本和acquia的论文,书籍等,发现了一些建站习惯和我自己的完全不同,所以总结一些
今天我们讲的是如何建议里一个页面,有下面几种选择:
1.使用page_manager ui模块
2.新建模块,建立一个routing指向Controller,在输出到MODULENAME.module中定义的twig模板
3.创建一个node
显然,最合理应该是第三种方案,我以前比较笨,一直用前两种方法
但是如何正确的用node 来创建一个页面呢
同样有两种方法:
1.:创建一个Landing Page(名字随意)内容类型,字段全部删除。
创建这个这个内容类型的页面,然后复写这个node的模板,并添加一些东西,region,html等,一些简单的网站推荐用这种方法来创建主页,活动页等
2:同样是创建一个Landing Page内容类型,字段全部删除,但是另外安装一个模块panelizer,并在显示中选择Panelize this view mode(此种方法没必要启动page_maneger ui模块)
第二种方法是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功能来添加(这个下回再讲)
本文所说的,只是国外一些大型机构,名人建站时使用的一些习惯,讲的不对的地方还请包涵,哈哈,并不是说就要用这种方法,还是根据你的业务需求来