0

ドキュメントを読んだ後、それを行う正しい方法は次のようになります。

<?php print $user_picture; ?>

これは機能しません (何も印刷されません)。

周りに尋ねた後、私はこの答えを得ましたが、残念ながらうまくいきません:

<?php global $user;
$image = theme('user_picture', $user);
print $image;?>

そのコードは「最後のリソース」として提案されましたが、使用しようとすると、次のエラー メッセージが表示されます。

致命的なエラー: 1054 行目の /includes/theme.inc の配列として型 stdClass のオブジェクトを使用できません

その特定の行を探しています: if (isset($variables['#theme']) || isset($variables['#theme_wrappers'])) {、およびコンテキスト内:

  if (isset($variables['#theme']) || isset($variables['#theme_wrappers'])) {
    $element = $variables;
    $variables = array();
    if (isset($info['variables'])) {
      foreach (array_keys($info['variables']) as $name) {
        if (isset($element["#$name"])) {
          $variables[$name] = $element["#$name"];
        }
      }
    }

機能することは明らかですが、機能しません。

contemplate モジュールを使用すると、代わりに次の出力が得られます。

<?php print $node->picture ?>

どちらも機能しません。

次にDevelモジュールを試しました(ノードの/ develタブを使用):

私はこれを得る:

picture (String, 4 characters ) 2876
$...->picture

出力は「2876」だけなので、これは機能しませんが、そこにある唯一の「画像」です。

それで、なにかお手伝いできますか?この問題を追跡するにはどうすればよいですか?

4

2 に答える 2

1

ご了承ください

theme('user_picture', $vars);

tpl.php ファイルです。このテーマ関数の前処理関数を dpm($vars) して、使用できるものを確認できます。

于 2012-08-19T06:27:18.463 に答える
0

Drupal docs のnode.tpl.phpトピックによると、 $user_picture は node.tpl.php ファイルの有効な変数です (および node--book.tpl.php のようなそのバリエーション)

このコードは間違っています:

<?php global $user;
$image = theme('user_picture', $user);
print $image;?>

現在のユーザーの写真を表示することであり、Drupal 7 AFAIK 用ではありません。$user_picture がまだ機能しない場合は、node.tpl.php で dsm($content) または dsm($node) を試して正しい変数を見つけてください。

于 2012-08-18T13:00:49.657 に答える