0

我有一个名为 tracker 的视图的模板“views-view-field--tracker--name.tpl.php”,并且我在模板中使用 If...Else 语句来打印字段。

<?php
if ($node ->uid == 0) {
  print $view->field['field_authorname_value']->render($row);
} else {
  print $view->field['name']->render($row);
}
?>

上面的代码没有按应有的方式运行,它很好地打印了第一部分,但没有打印第二部分。不过,没有 if 语句的打印似乎可以正常工作。例如:

<?php
print $view->field['name']->render($row);
?>

不知道代码有什么问题,所以寻找答案

4

2 回答 2

0

我不确定。翻转 if 语句会发生什么?

<?php
if ($node ->uid != 0) {
  print $view->field['name']->render($row);
} else {
  print $view->field['field_authorname_value']->render($row);
}
?>

或者使用 switch 语句:

<?php
switch ($node ->uid) {
    case 0:
        print $view->field['field_authorname_value']->render($row);
        break;
    default:
        print $view->field['name']->render($row);
}
?>
于 2010-01-15T17:21:02.310 回答
0

在 drupal 中,一个讨厌的用户 == 0。但是,您可能应该首先检查这个以确保 /what/ uid,您实际上正在检查。换句话说,当您调试页面插入时

echo "uid is: ".$node ->uid;

/before/ if 语句,这将让您知道您正在检查的内容(即对于非匿名用户,它是否始终为 0 或 0 以外的其他值)希望这很有意义。当 if else 语句不起作用时,呼应值是你最好的朋友

[编辑] 还要确保您不是匿名用户,否则您的代码工作正常。只是一个人不能正常工作的例子(昨天也这样做了)

于 2010-01-15T17:27:16.573 回答