0

我正在试验 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 中的标题变量。现在,我想在节点/添加和节点/编辑的情况下展示一些稍微不同的东西。所以,我试过这个:

<?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>';
    }
?>

在这种情况下,它只适用于节点/添加,但完全忽略节点/编辑。

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

4

1 回答 1

1

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

if ((arg(0) == 'node') && is_numeric(arg(1)) && (arg(2) == 'edit')){
于 2012-11-21T00:35:02.897 回答