drupal 7在page.tpl.php中定位特定数组

时间:2012-05-11 12:43:01

标签: drupal-7 drupal-theming

我有一种情况,我需要满足两个不同的条件才能将给定节点的标题打印到页面上(下面的这一位来自我的page.tpl):

<?php if 
($title && ($user->uid == 1) || $title && ($page['#object']['type']['blog_post'])
/* is the node a full blog post? */
): ?>

我想仅在用户登录时显示节点的标题。这是有效的,但我不知道如何显示我的特定节点类型的标题。显然我正在钻进阵列的错误部分。但我似乎无法弄清楚阵列的哪一部分能满足我的条件。

谢谢!

2 个答案:

答案 0 :(得分:2)

当diaplayed page为node时,您可以在page.tpl.php中使用$ node变量。节点类型存储在$ node-&gt;类型中。但仅适用于节点页面。类型&#39; blog_post&#39;的节点页面显示完整的博客文章。

<?php if(isset($node) && $node->type == 'blog_post');?>
  <?php print $title; ?>
<?php endif?>

在page.tpl中,只会在您的类型的完整节点上打印标题。

答案 1 :(得分:0)

您可以使用node.tpl.php来处理特定的节点参数, 您可以在/modules/node/node.tpl.php中找到node.tpl.php

节点模板为您提供了用于检查该节点的视图模式($ view_mode)和$ title的参数。

P.S。,如果你想检查你的用户是否已登录,drupal会为你提供一个函数user_is_logged_in()