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

时间:2015-07-05 12:51:33

标签: drupal-7

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

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

我该怎么做?

3 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

我从未尝试使用用户个人资料,但我猜你可以通过Profile2References Dialog实现目标。 “引用”对话框添加了指向节点编辑表单的链接,用户可以使用该表单添加,编辑或搜索引用。例如:我有两种内容类型“商店”和“商店联系”。当编辑器添加“shop”节点时,节点编辑表单包含一个对话框,编辑器可以使用该对话框查找现有的“shop-contact”节点或添加新节点(在模式窗口中),而无需离开节点编辑表单“商店” - 节点。使用Profile2,通过引用对话框添加对公司内容类型的引用,并将其作为必填字段。

答案 2 :(得分:0)

您必须为此目的创建一个小模块。 首先在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上,这对您来说很方便。