2011-04-12 69 views
1

中的内容简介领域去这里有点疯了... :)Drupal的6 - 页user.tpl.php

我只是试图从内容简介内容类型添加CCK领域进入页面的用户.tpl.php(我正在创建一个高度主题的用户配置文件页面)。

似乎有是两种方法,这两者有一个独特的缺点,我似乎无法克服:

“$内容简介”的方法。

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

print $var['field_last_name'][0]['safe']; 

这是伟大的,但我似乎无法通过目前观看的用户到$ content_profile,因此它总是显示登录的用户。

'$ content profile load'方法。

$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中的'安全'格式))?

我已经谷歌搜索和谷歌搜索,我只是最终围绕圈子。 :(

干杯, 詹姆斯

+0

你在哪里试图使用这些?请解释一下你想要完成的事情 – yoavmatchulsky 2011-04-12 16:34:15

回答

5

内容配置文件加载方法似乎是最接近你想要什么。

在您的例子:

$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只是一个节点对象。您可以通过多种方式获得“完整渲染字段”(假设您的字段是应用了过滤器的)。

要检查的最重要的事情是,你的领域是实际配置正确。

转到: 管理/内容/节点型/ [节点类型] /场/ field_ [字段名称]配置你的领域,并确保下文本处理,你有已选择“筛选文本”。

如果不解决这个问题,尝试应用此:

content_view_field(content_fields("field_last_name"), $var, FALSE, FALSE) 

(关于这这里更多的信息:http://www.trevorsimonton.com/blog/cck-field-render-node-formatter-format-output-print-echo

代替这个:

print $var->field_first_name[0]['value']; 

如果没有这有助于...尝试一些我在我的博客上得到的关于这个问题的信息: http://www.trevorsimonton.com/blog/print-filtered-text-body-input-format-text-processing-node-template-field-php-drupal

+0

对于深入回复的干杯,仍然需要做一些测试,但是这里有一些好主意! – james6848 2011-04-14 18:04:17

1

当你创建一个用户个人资料页有一个内置的机制吧。只需要创建一个用户模板文件,user_profile.tpl.php。

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

I有一个名为profile_bio的字段,并且能够吐出所有标记而无需索要$账户。

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

我已经尝试过通过用户页面显示配置文件节点字段之前主题内容配置文件,它总是似乎有点“哈克”给我。我现在非常喜欢的只是进入该节点类型的内容配置文件设置页面,并将显示设置为“显示全部内容”。除了像内容配置文件注入的节点类型名称这样的愚蠢标记之外,这很好,很花哨。

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

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

一个类似于这个的函数应该可以做到。现在为主题用户配置文件,您可以简单地主题您的配置文件节点。