作者:Evance | 源文: Add some regions to node.tpl.php for drupal 本来是想翻译drupal Theme developer 的Regions in PHPTemplate的. 后来仔细看了看,好像有些部分比如说How to define custom regions已经相关的中文文章,比如说是Joe的regions. 但是要说明的是,上面的方法不适应于添加regions到node.tpl.php和comment.tpl.php,所以写了这篇文章哈。 以我的网站为例,我在为node页面添加一个regions(不是block喔。) 示例网址: http://www.evance.name/node/942 我想在node内容的右面添加一个regions,取名为node_inner_right 打开 /theme/your_theme/template.php 文件,如果你使用的theme没有这个文件template.php的话,手动建立一个。 定义一个function _phptemplate_variables() 函数,如果它已经存在的话,就直接使用它。 加入如下代码: function _phptemplate_variables($hook, $variables) { // loead the regions only for full views if($hook == 'node' && !$vars['teaser']) { //load region content assigned via blocks foreach(array('node_inner_right') as $region) { $variables[$region] = theme('blocks', $region); } foreach(array('node_inner_bottom') as $region) { $variables[$region] = theme('blocks', $region); } } return $variables;} ok,现在去/admin/build/block,就可以发现,多了一个名为“Node inner right”的regions。现在在那一个regions里面增加block了,比如说偶增加了一个google_ad-node inner right。 增加regions了,我们最终要让它显示在node里相应的位置。 因此,打开node.tpl.php,找到: 增加显示node_inner_right的代码: 至于是把regions放到$content前还是后,css怎么写,这个又是另外一个范畴了。本文介绍的仅仅是如何添加一个regions到node.tpl.php里面。 来源