Drupal模板if语句

时间:2014-04-14 19:13:24

标签: php drupal

我正在尝试在page.tpl.php中写一个if语句来说:

如果nodeid == 51, 52, 53打印:

<div class="band main-content">
 <?php print render($page['content']); ?>
</div>

另外打印:

<div class="band main-content">
  <section class="layout">
   <?php print render($page['content']); ?>
  </section>
</div>

3 个答案:

答案 0 :(得分:2)

我没有对此进行测试,但它应该有效:

<?php
 if ($node) {
     // Get the current node nid
     $nid = $node->nid;
 }

//now compare the current node id present in $nid with some node ids you desire that you can put in $desired_node

$desired_node = array(51,52,53);  //enter your desired node ids

if (in_array($nid, $desired_node)){        
print render($page['content']); 
}

if (!in_array($nid, $desired_node)){ ;?>
<section class="layout">
 <?php print render($page['content']); ?>
</section>
<?php } ;?>

答案 1 :(得分:1)

您正在寻找的条件是in_array($nid, array(51, 52, 53))(或者您可以使用一堆逻辑OR)。

将所有这些放在一起产生:

<?php if(in_array($nid, array(51, 52, 53))): ?>
  <div class="band main-content">
    <?php print render($page['content']); ?>
  </div>
<?php else: ?>
  <div class="band main-content">
    <section class="layout">
      <?php print render($page['content']); ?>
    </section>
  </div>
<?php endif; ?>

另外,我不确定最终目标是什么,但我会对模板中的硬编码节点ID保持警惕。这绝对不是最好的做法。

答案 2 :(得分:0)

我不知道你怎么在$ nid中得到一个数组,而是应该调用一个用自定义模块编写的函数。该函数应该通过从URL中获取当前nid并返回TRUE为FALSE来检查当前nid。在任何情况下,(除了已知节点),您应该在自定义模块中定义的函数中添加逻辑。这有助于调试和增强。