你在这里

在 node 中显示自定义 custom region Drupal 6

主标签

碰见自定义region的问题,找了些资料,简单意译的。没有尝试,写出来分享。

增加自定义的region,在drupal6中很简单,比如 http://drupalchina.org/node/4979 ,不过这样自定义的region只能在 page.tpl.php中使用。如果要显示在node中,需要添加一些代码。

如果要在每一个story nodes上,添加一个新的region,而且只需要这个region在full node的浏览下显示,而不需要在teaser的浏览下出现。这里使用的主题名称为: thenewtheme

1。在风格的 .info 添加新的region。选择合适的名称,比如 node_advert_top 其变量就为 $node_top_advert。添加
regions[node_advert_top]= node advert top
注意,如果添了新的region则需要把系统默认的region添加上去;由于主题缓存,所以要在后台重新保存一下主题,新的region才会在区块设置中出现。
参见: http://drupal.org/node/171205#regions

2。 在模板中使用添加的region

新的region变量只对 (page.tlp.php) 生效,如果在特定的node显示,就需要把新的region变量$node_advert_top添加到 node.tlp.php模板中。这里使用 preprocess_node() 函数,打开 template.php 文件,创建函数

thenewtheme_preprocess_node() , 然后把新的region赋予 $vars 变量。

<span style="color: rgb(0,0,0)"><span style="color: rgb(0,0,187)">&lt;?php<br />
</span><span style="color: rgb(0,119,0)">function<span class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,187)">thenewtheme_preprocess_node</span><span style="color: rgb(0,119,0)">(&amp;</span><span style="color: rgb(0,0,187)">$vars</span><span style="color: rgb(0,119,0)">,<span class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,187)">$hook</span><span style="color: rgb(0,119,0)">) {<br />
</span><span style="color: rgb(0,0,187)">$vars</span><span style="color: rgb(0,119,0)">[</span><span style="color: rgb(221,0,0)">'node_advert_top'</span><span style="color: rgb(0,119,0)">] =<span class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,187)">theme</span><span style="color: rgb(0,119,0)">(</span><span style="color: rgb(221,0,0)">'blocks'</span><span style="color: rgb(0,119,0)">,<span class="Apple-converted-space"> </span></span><span style="color: rgb(221,0,0)">'node_advert_top'</span><span style="color: rgb(0,119,0)">);<br />
}<br />
</span><span style="color: rgb(0,0,187)">?&gt;</span></span>

第2步,还有一个方法,使用不同的函数,参见: http://drupal.org/node/237391 , 在template.php 文件中加入
<span style="color: rgb(0,0,0)"><span style="color: rgb(0,0,187)">&lt;?php<br />
</span><span style="color: rgb(0,119,0)">function<span class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,187)">phptemplate_preprocess_node</span><span style="color: rgb(0,119,0)">(&amp;</span><span style="color: rgb(0,0,187)">$vars</span><span style="color: rgb(0,119,0)">) {<br />
if (!</span><span style="color: rgb(0,0,187)">$vars</span><span style="color: rgb(0,119,0)">[</span><span style="color: rgb(221,0,0)">'teaser'</span><span style="color: rgb(0,119,0)">]){<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; foreach (array(</span><span style="color: rgb(221,0,0)">'belowPost'</span><span style="color: rgb(0,119,0)">) as<span class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,187)">$region</span><span style="color: rgb(0,119,0)">) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,187)">$vars</span><span style="color: rgb(0,119,0)">[</span><span style="color: rgb(0,0,187)">$region</span><span style="color: rgb(0,119,0)">] =<span class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,187)">theme</span><span style="color: rgb(0,119,0)">(</span><span style="color: rgb(221,0,0)">'blocks'</span><span style="color: rgb(0,119,0)">,<span class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,187)">$region</span><span style="color: rgb(0,119,0)">);<br />
&nbsp;&nbsp;&nbsp; }<span class="Apple-converted-space"> </span><br />
} <br />
}<br />
</span><span style="color: rgb(0,0,187)">?&gt;</span></span>

3。然后把这个region放入您需要出现的地方。

 

打开 node模板文件 (node.tlp.php) 把region放入您需要出现的地方。注意,只在 story nodes出现,而且只有在阅读全文的时候出现。下面第一行if语句就做了这样的限制。

 

<span style="color: rgb(0,0,0)"><span style="color: rgb(0,0,187)">&lt;?php<br />
</span><span style="color: rgb(0,119,0)">if (</span><span style="color: rgb(0,0,187)">$node_advert_top<span class="Apple-converted-space"> </span></span><span style="color: rgb(0,119,0)">&amp;&amp; !</span><span style="color: rgb(0,0,187)">$teaser<span class="Apple-converted-space"> </span></span><span style="color: rgb(0,119,0)">&amp;&amp;<span class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,187)">$node</span><span style="color: rgb(0,119,0)">-&gt;</span><span style="color: rgb(0,0,187)">type<span class="Apple-converted-space"> </span></span><span style="color: rgb(0,119,0)">==<span class="Apple-converted-space"> </span></span><span style="color: rgb(221,0,0)">'story'</span><span style="color: rgb(0,119,0)">):<span class="Apple-converted-space"> </span><br />
</span><span style="color: rgb(0,0,187)">?&gt;</span></span>

 

 

<span style="color: rgb(0,0,0)"><span style="color: rgb(0,0,187)">&lt;?php<br />
</span><span style="color: rgb(0,119,0)">print<span class="Apple-converted-space"> </span></span><span style="color: rgb(0,0,187)">$node_advert_top</span><span style="color: rgb(0,119,0)">;<span class="Apple-converted-space"> </span><br />
</span><span style="color: rgb(0,0,187)">?&gt;</span></span>

 

 

<span style="color: rgb(0,0,0)"><span style="color: rgb(0,0,187)">&lt;?php<br />
</span><span style="color: rgb(0,119,0)">endif;<span class="Apple-converted-space"> </span><br />
</span><span style="color: rgb(0,0,187)">?&gt;</span></span>


 

Taxonomy upgrade extras: 
评分: 

猜你喜欢

评论

是新人,请多多指教

呵呵 网站很漂亮

这个函数现在对于d7还有没有效?