视图模板主题

时间:2010-01-15 17:15:01

标签: drupal-6 drupal-views

我有一个模板“views-view-field - tracker - name.tpl.php”用于名为tracker的视图,我在模板中使用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);
?>

不确定代码是否有错,因此寻找答案

2 个答案:

答案 0 :(得分: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);
}
?>

答案 1 :(得分:0)

在drupal中,一个烦人的用户== 0.但是,你应该首先检查一下以确保/ what / uid,你实际检查。换句话说,当您调试页面时 插入

echo“uid is:”。$ node - &gt; uid;

/ before / if语句,这将让你知道你正在检查什么(即如果它对于非烦人的用户总是0或0以外的东西) 希望这有足够的意义。如果else语句不起作用,那么回应价值观是你最好的朋友

[编辑] 还要确保您不是匿名用户,否则您的代码工作正常。只是一个人不能正常工作的情况(昨天也是如此)