如何在Drupal 7中向用户个人资料页面添加内容?

时间:2011-12-15 21:21:52

标签: drupal rendering user-accounts

我正在尝试在Drupal 7中的用户配置文件中添加几个部分:

<div class="profile" typeof="sioc:UserAccount" about="/drupal/user/1">

我正在添加三个新的部分,但问题是,虽然我使用相同的方式添加三个部分,但只有一个部分被渲染为上面div的子节点,而其他两个部分被渲染作为兄弟姐妹。我做错了什么?

这就是我创建内容的方式:

function plan_user_user_view($account) {    
//Create the markup for the events region
$account->content['events'] = array(
  '#type' => 'user_profile_item',
  '#theme' => 'events',
  '#events' => $events);

 //Create the region for the venues
  $account->content['venues'] = array(
   '#type' => 'user_profile_item',
   '#theme' =>'venues',
   '#userid' => $user->uid,
   '#venues' => $venues);

  //Create the region for creating an event
  $account->content['creator'] = array(
    '#prefix' => '<div class="user-event-item" id="quick-event-creator">',
    '#suffix' => '</div>',
    '#type' => 'user_profile_item',
    '#title' => t('QUICK EVENT CREATOR'),
    '#markup' => drupal_render(drupal_get_form('event_creation')));
 }

此外,有没有更好的方法来创建最后一段内容?另外两个在模板文件中看起来很好但是最后一个因为它是一个表格我想知道是否有更好的方法来做到这一点。

谢谢,

2 个答案:

答案 0 :(得分:0)

也许您应该看一下这个项目profil2,这是Drupal 6的content_profil的继承者。有了它,您将能够在用户概要文件中添加信息,如果您想自己编写自定义字段的代码它应该是一个很好的起点。

最佳。

答案 1 :(得分:0)

这个怎么样:

// Create the category.
$account->content['mymodule'] = array(
    '#type' => 'user_profile_category',
    '#title' => t('My module content'),
);

// Create first item (child).
$account->content['mymodule']['events'] = array(
    '#type' => 'user_profile_item',
    '#title' => t('Events'),
    '#markup' => t('Whatever'),
);

// Create second item (child).
$account->content['mymodule']['venues'] = array(
    '#type' => 'user_profile_item',
    '#title' => t('Venues'),
    '#markup' => t('Whatever'),
);

等等。底线是user_profile_item项应该是user_profile_category项的子项。