2010-01-15 78 views
0

我有一个模板“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); 
?> 

不知道什么是错的代码,所以寻找答案

+0

第二种情况从来没有发生过(总是第一种情况),或者第二种情况发生时某些东西不能正确打印? – 2010-01-15 17:44:53

回答

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); 
} 
?> 
+0

我得到的结果与之前相同。 – user251722 2010-01-15 17:29:27

0

在Drupal,一个annoymous用户== 0,但是,你应该先做检查,以确保/什么/ UID,你居然核对。换句话说,当你在调试你的页面时 插入

echo“uid is:”。$ node - > uid;

/before/if语句,并且可以让您知道您正在检查的内容(即,对于非恼人的用户而言,它始终为0或0以外的其他值) 希望具有足够的意义。回声的价值观是你最好的朋友,如果其他语句不起作用

还要确保你不是匿名用户,否则你的代码工作正常。只是一个人不能正常工作(昨天也是这样做的)