Drupal 6-page-user.tpl.php中的内容配置文件字段

Drupal 6-page-user.tpl.php中的内容配置文件字段,php,drupal,drupal-6,Php,Drupal,Drupal 6,这里有点疯狂…:) 我只是尝试将CCK字段从内容配置文件内容类型添加到page-user.tpl.php中(我正在创建一个高度主题化的用户配置文件页面) 似乎有两种方法,这两种方法都有我无法克服的独特缺点: “$content profile”方法。 $var = $content_profile->get_variables('profile'); print $var['field_last_name'][0]['safe']; $account_id = arg(1); $ac

这里有点疯狂…:)

我只是尝试将CCK字段从内容配置文件内容类型添加到page-user.tpl.php中(我正在创建一个高度主题化的用户配置文件页面)

似乎有两种方法,这两种方法都有我无法克服的独特缺点:

“$content profile”方法。

$var = $content_profile->get_variables('profile');

print $var['field_last_name'][0]['safe']; 
$account_id = arg(1);
$account = user_load($account_id);
$user_id = $account->uid;

$var = content_profile_load('profile', $user_id);

print $var->field_first_name[0]['value']; 
这很好,只是我似乎无法将当前查看的用户传递到$content\u配置文件中,因此它总是显示登录的用户

“$content profile load”方法。

$var = $content_profile->get_variables('profile');

print $var['field_last_name'][0]['safe']; 
$account_id = arg(1);
$account = user_load($account_id);
$user_id = $account->uid;

$var = content_profile_load('profile', $user_id);

print $var->field_first_name[0]['value']; 
很好,但现在我无法访问完整的渲染字段,只能访问普通值(即,如果字段中有段落,它们将不会显示)

我怎么能同时拥有这两样东西呢?换句话说,我如何显示与当前查看的用户相关的字段(1中的“安全”格式)

我用谷歌搜索了又搜索,结果只是兜圈子(

干杯,
James

创建用户配置文件页面时,有一个内置的机制。只需创建一个用户模板文件user_profile.tpl.php

使用内置机制时,您可以自动访问正在浏览的用户的$account对象,包括所有用户配置文件cck字段。您可以在不必以编程方式加载用户的情况下获得要查找的字段

我有一个名为profile_bio的字段,我能够吐出任何加价,而不必要求任何美元帐户

<?php if ($account->content[Profile][profile_bio]['#value']) print "<h3>Bio</h3>".$account->content[Profile][profile_bio]['#value']; ?>

创建用户配置文件页面时,有一个内置的机制。只需创建一个用户模板文件user_profile.tpl.php

使用内置机制时,您可以自动访问正在浏览的用户的$account对象,包括所有用户配置文件cck字段。您可以在不必以编程方式加载用户的情况下获得要查找的字段

我有一个名为profile_bio的字段,我能够吐出任何加价,而不必要求任何美元帐户

<?php if ($account->content[Profile][profile_bio]['#value']) print "<h3>Bio</h3>".$account->content[Profile][profile_bio]['#value']; ?>

您的内容配置文件加载方法似乎与您想要的最接近

在您的示例中:

$account_id = arg(1);
$account = user_load($account_id);
$user_id = $account->uid;

$var = content_profile_load('profile', $user_id);

print $var->field_first_name[0]['value']; 
$var只是一个节点对象。您可以通过多种方式获得“完整渲染字段”(假设您指的是应用了过滤器的字段)

要检查的最重要的事情是,您的字段实际上配置正确

转到: 管理/content/node-type/[node-type]/fields/field.[field-name]来配置您的字段,并确保在文本处理下选择了“过滤文本”

如果这不能解决问题,请尝试应用以下方法:

content_view_field(content_fields("field_last_name"), $var, FALSE, FALSE)
(更多信息请点击此处:)

取而代之的是:

print $var->field_first_name[0]['value']; 
如果这些都没有帮助的话……试试我在博客上关于这个问题的一些东西:

您的内容配置文件加载方法似乎与您想要的最接近

在您的示例中:

$account_id = arg(1);
$account = user_load($account_id);
$user_id = $account->uid;

$var = content_profile_load('profile', $user_id);

print $var->field_first_name[0]['value']; 
$var只是一个节点对象。您可以通过多种方式获得“完整渲染字段”(假设您指的是应用了过滤器的字段)

要检查的最重要的事情是,您的字段实际上配置正确

转到: 管理/content/node-type/[node-type]/fields/field.[field-name]来配置您的字段,并确保在文本处理下选择了“过滤文本”

如果这不能解决问题,请尝试应用以下方法:

content_view_field(content_fields("field_last_name"), $var, FALSE, FALSE)
(更多信息请点击此处:)

取而代之的是:

print $var->field_first_name[0]['value']; 
如果这些都没有帮助的话……试试我在博客上关于这个问题的一些东西:

我以前尝试过通过用户页面显示配置文件节点字段来设置内容配置文件的主题,但对我来说,这似乎总是有点“骇客”。我越来越喜欢的是简单地转到该节点类型的内容配置文件设置页面,并将显示设置为“显示完整内容”。除了像内容概要文件注入的节点类型名称这样愚蠢的标记之外,这很好

解决方案是为内容配置文件模板添加一个预处理函数。该函数将取消设置$title并删除配置文件上通常显示的节点类型名称

function mymodule_preprocess_content_profile_display_view(&$variables) {
  if ($variables['type'] == 'nodetypename') {
    unset($variables['title']);
  }
}

类似于此的功能应该可以做到这一点。现在,要对用户配置文件进行主题化,您只需将您的配置文件节点设置为正常的主题即可。

我以前曾尝试过通过用户页面显示配置文件节点字段来设置内容配置文件的主题,但这似乎总是有点“黑客”对我来说,我越来越喜欢的是简单地转到该节点类型的内容配置文件设置页面,并将显示设置为“显示全部内容”。这很好,但内容配置文件注入的节点类型名称之类的愚蠢标记除外

解决方案是为内容配置文件模板添加一个预处理函数。该函数将取消设置$title并删除配置文件上通常显示的节点类型名称

function mymodule_preprocess_content_profile_display_view(&$variables) {
  if ($variables['type'] == 'nodetypename') {
    unset($variables['title']);
  }
}

类似于此的功能应该可以做到这一点。现在,要对用户配置文件进行主题化,您只需将您的配置文件节点设置为正常主题即可。

您想在哪里使用这些节点?请解释一下您想在哪里使用这些节点?请解释一下您想实现的主题为深入的回复干杯,仍然需要做一些测试,但这里有一些好主意!为深入的回复干杯,仍然需要做一些测试,但这里有一些好主意!