阅读文档后,似乎正确的做法是这样的:
<?php print $user_picture; ?>
Wich 不起作用(它根本不打印任何东西)。
在四处询问后,我得到了这个答案,遗憾的是这也不起作用:
<?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”,但却是那里唯一的“图片”。
那么我能做什么呢?我该如何追踪这个问题?