基础篇20. 覆写模板文件、page模板

ok,我们先回到首页,在地址栏上将node/1删除,然后点击回车,这样就回到首页了。

然后我们把元素检查区域的代码往下拉,并展开,可以找到page.html.twig模板文件的开始。我们可以看到这个模板文件的出处是在stable中。这是因为我们之前新建自定义主题nowicode的时候在info文件中将stable主题声明为我们的基主题。而且,自定义主题中还没有定义任何的模板文件,因此,系统自动启用了stable主题中的模板。

现在,我们切换到编辑器,在core文件夹中,根据theme debug模式给出的路径,找到相应的文件,并复制一份到我们自定义的主题中。具体来说,是主题中的templates文件夹中。

然后,我们再次刷新首页,可以看到,page模板依然是来自于stable主题,这是因为我们还没有重建缓存,所以我们再次使用drush命令重建缓存。然后再次刷新,这一次,page模板的出处则变成了nowicode主题。

刚才,我们把模板文件拷贝到我们自定义的主题文件夹中的做法,叫做覆写。现在的首页页面是没有变化的,因为我们在拷贝page模板的时候,并没有修改这个文件。通过这种覆写的方式,我们就可以任意改动我们拷贝到自己主题中的模板文件,而不会影响核心或者下载的主题。

现在让我们来看一下刚才复制的page模板,也就是page.html.twig文件。在文件开头的注释中列出了一些你可以使用的变量。你可以仔细阅读以下注释中的说明。

然后下面还列出了区域,比如,你要在page模板中打印header区域,你就可以使用page.header。但是,我们可以看到在注释中,除了我们之前在info文件中定义过的header,content和footer区域之外,还有一些其他的区域。这些是在stable主题中定义的,(此处有误,见后面的说明)在这里,我们并不需要,因此,我们应该在模板文件中删除他们相对应的代码。

说明:page模板注释中的区域并不是在stable主题中定义的,stable主题并没有定义任何区域,当主题没有定义任何区域的时候,会自动使用drupal系统默认提供的区域,也就是page模板注释中的区域。详见第17节

然后,让我们在这个page模板中随意添加一些临时的改动,刷新页面之后,就可以看到页面变化了。

我们来回顾一下:在这一节中,我们先通过twig debug模式,找到相应的模板文件,复制一份到我们自定义的主题中,然后修改这个模板——这就是覆写。

本书共84小节:

评论 (写第一个评论)