Drupal文档教程翻译 - 覆写输出 - 概述

logo-drupal-documentation本站原创编译,转载请给面子,尊重劳动果实,欢迎交流指正。

各位早;继续Drupal文档中文翻译。前面一篇里面,我们大致了解了一下Drupal主题对从右到左的语言的支持情况CSS部分的话题随之结束。今天进入新的一档,Overriding themable output,覆写输出。

取决于我们的站点设置,用来构成页面的HTML代码是由众多Drupal模块的输出编译而成的。如果某些模块的默认输出无法满足我们的特定需求,我们就需要对输出进行覆写,妥协的不要。

举例说,我们希望为站点的搜索框添加一个放大镜图标,搜索按钮中的文案为“Discover great stuff!”,发现牛叉的玩意儿。这是一个很典型的覆写需求。

对于“覆写”的概念,有必要了解清楚先;诚然,对于前面的例子,我们可以找到对应的搜索模块,直接修改默认代码;但我们是绝对不推荐这样做滴,因为直接修改,或称系统heck,可以解一时之需,但对将来的升级维护都很不利,尤其是大量使用了系统heck的方式来满足需求的话,在升级的时候会很囧。话说其实也得看具体需求,几百年不会动的东西,也许直接heck系统代码更节省资源提高效率。不推荐...

所以无论DrupalJoomla或任何其他优秀CMS,所推崇的都是“覆写”方式。对于Drupal来说,覆写输出大致有以下步骤:

  1. 定位模块,找到需要覆写的对象。
  2. 如果该模块提供tpl.php模板文件,则将该文件复制到我们的主题路径中。如果输出是由模块的预处理功能(preprocess function)输出的,则将该函数的定义代码复制到当前主题的template.php文件中,并将其“theme_”或“template_”前缀替换为我们的主题名称。例如,对于“theme_breadcrumb”函数,在覆写时需要更名为“mythemename_breadcrumb”,mythemename就是我们的主题名称。
  3. 根据需求,对复制过来的模板文件或功能函数进行修改。
  4. 刷新主题的缓存。

覆写的过程中,即使需要修改功能函数的输出,我们也无需真正精通PHP;输出HTML的语句总是可以找的到,按需调整即可。

很多模块会提供默认的CSS样式文件,它们同样是可以被覆写的,具体方法可以参见之前的“Drupal文档教程翻译 - 怎样覆写模块和基主题的样式表”。

概述就到这里,接下来的一篇将正式进入状态。

译者:Viiiix7210

如需转载,请注明官方英文文档及本人译文的出处,谢谢。查看英文原文: Overriding themable output


收藏与分享

添加评论


Security code
换一张图