Drupal 7 Drupal 7,在所有配置文件页面上阻塞。打印来自';查看用户';不是';当前用户';

Drupal 7 Drupal 7,在所有配置文件页面上阻塞。打印来自';查看用户';不是';当前用户';,drupal-7,profile,Drupal 7,Profile,我试图在每个配置文件页面上打印一个块中的几个字段 该块需要显示正在查看的用户的字段,而不是登录用户的字段 $account=user_load($node->uid);-不起作用。用户->uid也不会。 Globals用户将返回登录的用户信息 不太清楚我该怎么把东西装进一个街区。有什么想法吗?假设您正在查看具有如下URL路径的用户配置文件 drupal/user/user\u ID 您可以执行以下操作: //选项1 $user=explode('/',current_path()); $user

我试图在每个配置文件页面上打印一个块中的几个字段

该块需要显示正在查看的用户的字段,而不是登录用户的字段

$account=user_load($node->uid);-不起作用。用户->uid也不会。 Globals用户将返回登录的用户信息


不太清楚我该怎么把东西装进一个街区。有什么想法吗?

假设您正在查看具有如下URL路径的用户配置文件

drupal/user/user\u ID

您可以执行以下操作:

//选项1
$user=explode('/',current_path());
$user\u id=结束($user);
//选择2
//$path=explode('/',current_path());
//$user_id=$path[count($path)-1];
$account=user\u load($user\u id,true);
文件

这样,您可以获得URL的最后一部分,并将其传递给
user\u load
函数。我们将
true
设置为第二个参数,以便它从数据库而不是缓存加载

另一种在不将URL拆分的情况下执行相同操作的方法是使用

在本例中,代码如下所示

//选项3
//drupal/用户/用户ID
//drupal=arg(0)
//用户=arg(1)
//用户ID=arg(2)
$account=用户加载(arg(2),true);
在这两种情况下,检查
$user\u id
是否为整数,不要让它通过至少是整数,然后可以检查
user\u load
的结果

更新

如果在URL中使用用户名,则可以使用

所以代码会有一点变化。试试这个:

$account=user_load_by_name(arg(2));
为了简单起见,我使用了
arg
,您可以根据需要从URL获取用户名


希望有帮助。

谢谢!我正在使用url[user:roles]/[user:name raw]的自定义路径,因此我尝试了通过url搜索获取信息的方法,但结果是空的,即example.com/writers/username或example.com/editors/username。再次感谢。谢谢你的更新!我让它与以下内容一起工作:$user_id=end(explode('/',current_path())$帐户=用户负载($user\u id,true);我假设它在清除url之前从url获取用户ID。Devel显示,它也是用户ID号。我现在得到这个错误,但它正在工作。eval()中只能通过引用传递变量(第2行/home/myliving/public_html/modules/php/php.module(80):eval()'d代码)。这就是:$user_id=end(explode('/',current_path());我更新了我的答案。检查第一个示例,我修复了它。我不应该直接传递
explode
函数,而是一个变量。现在它不应该显示错误消息。太好了!非常感谢:)