我无法将这个if语句转换为if / elseif语句。它不会工作。我究竟做错了什么?

时间:2012-11-21 00:29:57

标签: php drupal if-statement

我正在尝试使用if / elseif,并且无法理解为什么它在Drupal 6模板中无法正常工作。

此代码有效:

<?php
    if ((arg(0) == 'node') && (arg(1) == 'add') || (arg(1) == 'edit')){
    $node = node_load(array('nid' => arg(1)));
    print '<h2>' .  $title . '</h2>';   }
?>

如果我在node / add / whatever或node / nid / edit中,它会显示包含在h2中的title变量。 现在,我想在节点/添加和节点/编辑的情况下显示略微不同的内容。 所以,我试过这个:

<?php
if ((arg(0) == 'node') && (arg(1) == 'edit')) {
    $node = node_load(array('nid' => arg(1)));
    print '<h3>' .  $title . '</h3>';
} elseif ((arg(0) == 'node') && (arg(1) == 'add')) {
    $node = node_load(array('nid' => arg(1)));
    print '<h2>' .  $title . '</h2>';   }
} else {
    echo ""; //it shows nothing
}
?>

它不会起作用(不会显示任何内容)。 所以,我试过这个:

<?php
    if ((arg(0) == 'node') && (arg(1) == 'add')){
    $node = node_load(array('nid' => arg(1)));
    print '<h2>' .  $title . '</h2>';   }
?>
<?php
    if ((arg(0) == 'node') && (arg(1) == 'edit')){
    $node = node_load(array('nid' => arg(1)));
    print '<h3>' .  $title . '</h3>';
    }
?>

在这种情况下,它只适用于node / add,但完全忽略了node / edit。

我做错了什么? 谢谢你的建议!

1 个答案:

答案 0 :(得分:1)

节点编辑页面的路径为node/[nid]/edit ...您需要使用arg(2)代替:

if ((arg(0) == 'node') && is_numeric(arg(1)) && (arg(2) == 'edit')){