在用户注册表单上,我想附加内容类型的所有字段,然后在提交时创建该内容类型的新节点。
例如,每次用户注册时,他都需要填写有关COMPANY的信息(公司是一个包含大量字段的内容类型),这将进一步创建具有与USER-相关联的公司信息的新节点。 ID。
我该怎么做?
答案 0 :(得分:0)
在这种情况下,您可以使用PROFILE 2 module。该模块利用实体类型与用户配置文件的链接。您可以使用所需的CCK字段创建Profile 2类型,并将其与USER PROFILE链接。
答案 1 :(得分:0)
我从未尝试使用用户个人资料,但我猜你可以通过Profile2和References 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
上,这对您来说很方便。