【问题标题】:Views template theming视图模板主题
【发布时间】:2010-01-15 17:15:01
【问题描述】:

我有一个名为 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);
?>

不确定代码有什么问题,所以寻找答案

【问题讨论】:

  • 是第二种情况永远不会发生(总是第一种情况),还是第二种情况发生时打印不正确?

标签: drupal-6 drupal-views


【解决方案1】:

我不确定。翻转 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);
}
?>

【讨论】:

  • 我得到了和之前一样的结果。
【解决方案2】:

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

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

/before/ if 语句,这会让你知道你正在检查什么(即对于非匿名用户,它是否总是 0 或 0 以外的值) 希望这有足够的意义。当 if else 语句不起作用时,回显值是您最好的朋友

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    • 2012-01-22
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多