2010-01-15 79 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以外的其他值) 希望具有足夠的意義。回聲的價值觀是你最好的朋友,如果其他語句不起作用

還要確保你不是匿名用戶,否則你的代碼工作正常。只是一個人不能正常工作(昨天也是這樣做的)