Drupal 7 Drupal7:如何将节点创建表单附加到用户注册表单

Drupal 7 Drupal7:如何将节点创建表单附加到用户注册表单,drupal-7,Drupal 7,在用户注册表单上,我希望附加内容类型的所有字段,然后在提交时创建该内容类型的新节点 例如,每次用户注册时,他都需要填写有关公司的信息(公司是一个包含许多字段的内容类型),这将进一步创建一个新节点,其中包含与用户ID关联的公司信息 我怎样才能做到这一点?在这种情况下,您可以利用。此模块提供实体类型与用户配置文件的链接。您可以使用必需的CCK字段创建Profile 2类型,并将其与用户配置文件链接。我从未在用户配置文件中尝试过,但我想您可以通过和实现您想要的。“引用”对话框将链接添加到节点编辑表单,

在用户注册表单上,我希望附加内容类型的所有字段,然后在提交时创建该内容类型的新节点

例如,每次用户注册时,他都需要填写有关公司的信息(公司是一个包含许多字段的内容类型),这将进一步创建一个新节点,其中包含与用户ID关联的公司信息


我怎样才能做到这一点?

在这种情况下,您可以利用。此模块提供实体类型与用户配置文件的链接。您可以使用必需的CCK字段创建Profile 2类型,并将其与用户配置文件链接。

我从未在用户配置文件中尝试过,但我想您可以通过和实现您想要的。“引用”对话框将链接添加到节点编辑表单,用户可以使用该表单添加、编辑或搜索引用。例如:我有两种内容类型“Shop”和“Shop Contact”。当编辑器添加“店铺”节点时,节点编辑表单包含一个对话框,编辑器可以通过该对话框搜索现有的“店铺联系人”节点或添加新节点(在模式窗口中),而无需离开“店铺”节点的节点编辑表单。使用Profile2,通过“引用”对话框添加对公司内容类型的引用,并使其成为必填字段

为此,您必须创建一个小模块。 首先在
mymodule.module
文件中创建一个块

function mymodule_block_info() {
    $blocks = array();
    $blocks['Node_add_form'] = array(
    'info' => t('Node add form'),
    'cache' => DRUPAL_NO_CACHE, // this will exclude the block from Drupal cache
  );

  return $blocks;
}
然后必须显示块内容

function mymodule_block_view($delta = '') {
    if (!function_exists('node_add')) { 
    module_load_include('inc', 'node', 'node.pages');
    $form = node_add('Your_NODE_TYPE');  }
    $output = drupal_render($form);
    $block = array();
    switch ($delta) {
        case 'qs_forum_topic_add':

    if (!user_is_logged_in()){ // Change this condition according to your's
    $block['title'] = t('If any title');
    $block['content'] = $output; }
}

这创建了一个节点添加表单,并在
/admin/structure/blocks
中创建了一个块。使用任何方式(上下文、窗格、代码)将该块放置在
/user/register
上等。我已经使用profile 2模块将配置文件类型表单附加到用户注册表单,但我需要将节点创建表单附加到用户注册表单,然后在提交时按该内容类型创建新节点。请详细说明需要附加到用户配置文件的节点类型。例如,我创建了一个自定义内容类型:有很多字段的公司,我想将公司字段附加到用户注册表单中。我只想更好地理解它--->是不是每次用户注册时,他都需要填写有关公司的信息,这将进一步创建一个新节点,其中包含与USER-ID。请编辑帖子并在问题中提及所有这些细节:)此逻辑块将创建2个提交按钮(一个用于节点添加表单,一个用于用户注册表单),这不是我需要的。您可以创建另一个自定义回调函数
$form['actions']['submit'][='your_custom_callback'在表单上提交用户注册表单。