Drupal文档教程翻译 - 覆写输出 - 入门指南(1)

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

阴雨阴郁的早上好,Drupal文档中文翻译时间;很痛恨在这个时候突然被布置任务,人为五斗米折腰。话说昨天对覆写输出做了大致的概述,今天开始具体看下相关话题。

在对输出进行覆写之前,我们可以先考虑如下的一些可能性,也许我们可以完全不必做覆写修改。

首先,有没有可以做些设置的改动就可以满足需求?举例说每个区块(block)都会有各自的设置(Configure),我们可以修改标题,设置其显示或隐藏的判断条件,将区块移动到页面其他的区域(region);另外有不少扩展模块允许我们为区块设置额外的属性,比如输出的顺序,域的标题等。在内容类型的设置页面,同样有很多涉及到输出的设置选项可以做调整。

另外,有没有可能只通过修改样式表来满足需求?Drupal中绝大多数的输出元素是由语义化的、拥有明确id及class的容器封装的,很多样式需求是可以通过样式表的调整来轻松实现的。

如果这些方面的建议都无法满足需求,只有改变HTML输出才可以做到,那么恭喜我,接下来的话题还是可以对我们有所帮助的。

覆写主题函数(theme functions)

首先来看主题函数方面的覆写。主题函数是常规的PHP函数,名称以“theme_”为前缀。通常的覆写步骤如下:

  1. 打开当前主题的template.php文件
  2. 对于我们要修改的页面输出,找到对应的模块文件,将函数代码复制到template.php文件中;定位模块文件通常有两种方法,一是参考http://api.drupal.org,另外可以使用Devel开发模块。
  3. 对复制过来的函数重命名,将“theme_”前缀替换为当前的主题名,例如将“theme_xyz”替换为“mythemename_xyz”,或是将“template_preprocess_xyz”替换为“mythemename_preprocess_xyz”。
  4. 修改函数代码,自定义某些部分的HTML输出。
  5. 上传template.php文件到主题路径中。
  6. 刷新主题缓存。可参考http://drupal.org/node/173880#theme-registry

今天到这里,接下来的一篇中,我们将看看怎样覆写主题文件。

译者:Viiiix7210

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


收藏与分享

添加评论


Security code
换一张图