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

上記のコードは正常に機能しておらず、最初の部分はうまく印刷されていますが、2 番目の部分は印刷されていません。ただし、 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 に答える