如何创建具有WebForm的提交的节点? -- nodes 领域 和 webforms 领域 drupal 相关 的问题

How to create a node with submissions of a webform?


6
vote

问题

中文

我正在使用drupal 7,并创建一个与字段'标题','text'和'ople'的内容类型'newarticle'。用户有权创建一个'nearticle',但我不喜欢显示管理栏的方式,以便让他们创建一个'nearticle'。

相反,我想使用 webforms 。我的目标是创建一个与内容类型'newarticle'完全相同的字段的WebForm。所以我想要的是:当表单中的用户填写并提交它时,使用提交的信息创建一个新的节点'newarticle'。

我该怎么办?是否有模块使这成为可能?我找不到任何...

英文原文

I'm using Drupal 7 and created a content type 'NewArticle' with the fields 'Title', 'Text' and 'Image'. Users have the permission to create a 'NewArticle', but I don't like the way of displaying the administration bar in order to let them create a 'NewArticle'.

Instead, I'd like to work with Webforms. My goal is to create a Webform with exactly the same fields as the content type 'NewArticle'. So what I want is: when users filled in the form and submit it, a new node 'NewArticle' is created with the submitted information.

How can I do this? Are there modules that make this possible? I can't find any...

     
         
         

回答列表

7
 
vote
vote
最佳答案
 

而不是使用WebForms模块创建新节点,更好地让用户直接在 MY-SITE/node/add/CONTENT-TYPE 上创建它们。尝试从WebForm中攻击数据只会使事情不必要地更复杂。隐藏其他用户的工具栏,并为它们提供添加新内容的权限。最后,将节点表单调整为您的需求,使用模板文件和使用CSS样式。

 

Instead of using the Webforms module to create new nodes, it's better to let the users create them directly at MY-SITE/node/add/CONTENT-TYPE. Trying to hack data out of a Webform only makes things unnecessarily more complicated. Hide the toolbar for other users and give them permission to add new content. Lastly, adapt the node form to your needs with a template file and style it with CSS.

 
 
3
 
vote

webform默认字段使用此模块,您可以轻松地创建具有相同WebForm的大部分节点 字段。在回复表格的职位空缺的情况下,它可以适用, 质量反馈控制或无论您的思想暗示您。

因为您可以创建一个以上的支持WebForm的内容类型,您 可以分别为它们中的每一个附加不同的默认字段。

(或)

webform报告模块在每个webform提交上创建一个新节点。您可以使用视图检索数据,将其定制到您的要求。

此模块允许用户根据此介绍简单,动态报告 由WEBForm模块收集的数据。它添加了一个新的节点类型 包含报告条件,并更新显示的数据 自动提交WebForms。可以对数据进行排序 根据观众的偏好而不改变报告 标准。

 

Webform Default Fields With this module you can easily create much of nodes with same webform fields. It can be applicable in case of job vacancies with reply form, kind of quality feedback control or whatever your mind suggests you.

Because you can create more than one webform-enabled content types, you respectively can attach different default fields for each of them.

(or)

Webform report module create a new node on each webform submit. You can retrieve the data using views, customize it to your requirement.

This module allows users to create simple, dynamic reports based on data collected by the webform module. It adds a new node type that contains the report criteria, and the data displayed is updated automatically as webforms are submitted. The data can be sorted according to the viewer's preference without altering the report criteria.

 
 
         
         
0
 
vote

对不起,我无法评论我刚加入。

但除了Jeroen的答案之外,这也很好,直到你想跟踪提交并获得详细的报告,这是WebForms的效果很好!

但如果您想要使用此方法,我也可以建议高级表单块允许您将节点添加到一个块中,只需将其插入一个页面,即将其直接链接到节点添加表单,并且它还允许您保留所有网站样式:)

如果任何人都可以解决这个问题,请加紧!

 

Sorry i couldn't comment as I just joined.

But in addition to Jeroen's answer, this works quite well, until you want to track submissions and get detailed reporting, which is something that webforms does quite well!

but if you are wanting to use this method, may I also suggest Advanced Form Block which allows you to also put the node add form into a block and just insert that on one page and this negates the need to link directly to a node add form and it also allows you to keep all your site styling :)

If anyone can please figure this out please step up!

 
 
0
 
vote

您还可以使用迁移节点到webform 模块,将节点迁移到WebForm提交。这是关于它的引用(来自模块的项目页面):

将节点(drupal 6)迁移到WebForm提交(Drupal 7)。例如检索类型"文章" 的所有节点,并通过为每个节点创建一个提交来填充WebForm。

 

You may also migrate nodes to webform submissions using the Migrate Node-to-Webform module. Here is a quote about it (from the module's project page):

Migrates nodes (Drupal 6) to webform submissions (Drupal 7). e.g. Retrieves all nodes of type 'article' and fills up a webform by creating one submission for each node.

 
 
 
 
0
 
vote

是否有模块,使其成为可能?

是的:您可以使用规则模块。例如,考虑此规则(在规则导出格式中),这会对您所要求的:

  { "rules_create_a_node_from_webform_data" : {     "LABEL" : "Create a node from webform data",     "PLUGIN" : "reaction rule",     "OWNER" : "rules",     "REQUIRES" : [ "webform_rules", "rules" ],     "ON" : { "webform_rules_submit" : [] },     "IF" : [       { "webform_has_id" : {           "form_id" : [ "form_id" ],           "selected_webform" : { "value" : { "webform-client-form-191" : "webform-client-form-191" } }         }       }     ],     "DO" : [       { "drupal_message" : { "message" : "The webform submitted contains these fields:  u003C/ulu003E  u003Cliu003Ethe field labeled u0022[data:demoform_title-title]u0022 which has value u0022[data:demoform_title-value-raw]u0022.u003C/liu003E  u003Cliu003E the field labeled u0022[data:demoform_text-title]u0022 which has value u0022[data:demoform_text-value-raw]u0022.u003C/liu003E  u003Cliu003E the field labeled u0022[data:demoform_number-title]u0022 which has value u0022[data:demoform_number-value-raw]u0022.u003C/liu003E  u003Cliu003E the field labeled u0022[data:demoform_option-title]u0022 which has value u0022[data:demoform_option-value-raw]u0022.u003C/liu003E  u003C/ulu003E" } },       { "variable_add" : {           "USING" : { "type" : "text", "value" : "[data:demoform_text-value-raw]" },           "PROVIDE" : { "variable_added" : { "var_demoform_text" : "Form variable text" } }         }       },       { "variable_add" : {           "USING" : { "type" : "text", "value" : "[data:demoform_number-value-raw]" },           "PROVIDE" : { "variable_added" : { "var_demoform_number_text" : "Form variable number text" } }         }       },       { "data_convert" : {           "USING" : { "type" : "integer", "value" : [ "var-demoform-number-text" ] },           "PROVIDE" : { "conversion_result" : { "var_demoformvar_number" : "Form variable number" } }         }       },       { "variable_add" : {           "USING" : { "type" : "text", "value" : "[data:demoform_option-value-raw]" },           "PROVIDE" : { "variable_added" : { "var_demoform_option" : " Form variable option" } }         }       },       { "entity_create" : {           "USING" : {             "type" : "node",             "param_type" : "article",             "param_title" : "[data:demoform_title-value-raw]",             "param_author" : [ "user" ]           },           "PROVIDE" : { "entity_created" : { "article_created" : "Created article" } }         }       },       { "data_set" : {           "data" : [ "article-created:body:value" ],           "value" : [ "var-demoform-text" ]         }       },       { "data_set" : {           "data" : [ "article-created:field-free-format-nr" ],           "value" : [ "var-demoformvar-number" ]         }       },       { "data_set" : {           "data" : [ "article-created:field-optionlist" ],           "value" : [ "var-demoform-option" ]         }       },       { "data_set" : { "data" : [ "article-created:comment" ], "value" : "0" } },       { "entity_save" : { "data" : [ "article-created" ], "immediate" : "1" } },       { "drupal_message" : { "message" : "A new article got created, with nid=[article-created:nid] and url=[article-created:url]" } }     ]   } }   

有点熟悉规则和 webform ,虽然知道它通常是一个斗争访问提交的WebForm中包含的数据。主要是因为在构建规则操作时无法选择它们。

但是,通过引入那些 var-demoformvar-... 变量(如上所述),您可以使典型的规则魔法发生。请参阅我的答案"如何使用规则创建节点使用规则?" 有关所有这些的更多详细信息。
 

Are there modules that make this possible?

Yes there is: you can use the Rules module for this. As an example, consider this rule (in Rules export format), which does what you're asking for:

{ "rules_create_a_node_from_webform_data" : {     "LABEL" : "Create a node from webform data",     "PLUGIN" : "reaction rule",     "OWNER" : "rules",     "REQUIRES" : [ "webform_rules", "rules" ],     "ON" : { "webform_rules_submit" : [] },     "IF" : [       { "webform_has_id" : {           "form_id" : [ "form_id" ],           "selected_webform" : { "value" : { "webform-client-form-191" : "webform-client-form-191" } }         }       }     ],     "DO" : [       { "drupal_message" : { "message" : "The webform submitted contains these fields:\r\n\u003C\/ul\u003E\r\n\u003Cli\u003Ethe field labeled \u0022[data:demoform_title-title]\u0022 which has value \u0022[data:demoform_title-value-raw]\u0022.\u003C\/li\u003E\r\n\u003Cli\u003E the field labeled \u0022[data:demoform_text-title]\u0022 which has value \u0022[data:demoform_text-value-raw]\u0022.\u003C\/li\u003E\r\n\u003Cli\u003E the field labeled \u0022[data:demoform_number-title]\u0022 which has value \u0022[data:demoform_number-value-raw]\u0022.\u003C\/li\u003E\r\n\u003Cli\u003E the field labeled \u0022[data:demoform_option-title]\u0022 which has value \u0022[data:demoform_option-value-raw]\u0022.\u003C\/li\u003E\r\n\u003C\/ul\u003E" } },       { "variable_add" : {           "USING" : { "type" : "text", "value" : "[data:demoform_text-value-raw]" },           "PROVIDE" : { "variable_added" : { "var_demoform_text" : "Form variable text" } }         }       },       { "variable_add" : {           "USING" : { "type" : "text", "value" : "[data:demoform_number-value-raw]" },           "PROVIDE" : { "variable_added" : { "var_demoform_number_text" : "Form variable number text" } }         }       },       { "data_convert" : {           "USING" : { "type" : "integer", "value" : [ "var-demoform-number-text" ] },           "PROVIDE" : { "conversion_result" : { "var_demoformvar_number" : "Form variable number" } }         }       },       { "variable_add" : {           "USING" : { "type" : "text", "value" : "[data:demoform_option-value-raw]" },           "PROVIDE" : { "variable_added" : { "var_demoform_option" : " Form variable option" } }         }       },       { "entity_create" : {           "USING" : {             "type" : "node",             "param_type" : "article",             "param_title" : "[data:demoform_title-value-raw]",             "param_author" : [ "user" ]           },           "PROVIDE" : { "entity_created" : { "article_created" : "Created article" } }         }       },       { "data_set" : {           "data" : [ "article-created:body:value" ],           "value" : [ "var-demoform-text" ]         }       },       { "data_set" : {           "data" : [ "article-created:field-free-format-nr" ],           "value" : [ "var-demoformvar-number" ]         }       },       { "data_set" : {           "data" : [ "article-created:field-optionlist" ],           "value" : [ "var-demoform-option" ]         }       },       { "data_set" : { "data" : [ "article-created:comment" ], "value" : "0" } },       { "entity_save" : { "data" : [ "article-created" ], "immediate" : "1" } },       { "drupal_message" : { "message" : "A new article got created, with nid=[article-created:nid] and url=[article-created:url]" } }     ]   } } 

Anybody a bit familiar with Rules and Webform, while know that it's often a struggle to get access to the data contained in a submitted Webform. Mostly because they are not available to select them when building Rules Actions.

However by introducing those var-demoformvar-... variables (as in the above rule), you can make the typical Rules magic happen. Refer to my answer to "How to create a node from a Webform using rules?" for more details about all this.

 
 

相关问题

3  基于国家的城市名单选择  ( Country based city list selection ) 
我可以使用分层选择模块,但它包含很多在输入数据时的手动工作。我想要所有国家/地区他们的城市名单。怎么做 ? 是否有任何模块,有助于根据国家选择显示城市列表?有一种自定义方式吗?提前谢谢 ...

0  如何获得CMIS字段值  ( How to get the cmis field value ) 
我已将CMIS和CMIS视图模块配置为Drupal。当我测试可用的不同字段时,我可以访问我的遥远的alfresco存储库。 我的目标是向我的客户提出两种插入图像的方式: - 基本上传 - 来自他们的alfresco服务器 我有各种内容类型。所以我创建了一个图像字段和CMIS字段。 如果用户在alfresco服务器...

0  节点参考检索字段  ( Node reference retrieve field ) 
我正在使用视图RSS来生成自定义RSS源,其中包括Georss 我必须内容类型 Shops 和 Events 我可以从 Shops 获得位置,因为它具有专用位置字段,但<代码> Events 使用 Node Reference 生成所有 99887665 的下拉菜单,没有位置字段。 如何访问引用的 99887666...

1  是否有任何方法可以使用jQuery覆盖来确认/拒绝节点删除?  ( Is there any way to use a jquery overlay to confirm reject node deletion ) 
当我删除一个节点(任何类型的节点,概括)时,我想通过jQuery的是/否对话框来实现确认,而不是在页面上突破,而不是被重定向到单独的页面"此操作无法撤消" 消息。这是21世纪和所有... http://bootboot.com/ 似乎是处理对话框的好候选人,但问题是如何将其绑定到表单和节点删除过程中,理想情况下...

0  通过每个节点+回退上通过上传图像的滑块  ( Slider via uploaded image on each node fallback ) 
我想创建一个填充上传到活动基本页面的图像上的每个页面上显示的滑块块,文章,... 在这些页面上,只需显示上传的活动页面的图像,如果没有上传图像(例如,视图页面,分类页面,......) 应该显示一个逆向滑块。 我已添加一个名为slizerimage的Imagefield到基本页面(和其他),创建了一些页面并将单个图像...

0  如何在嵌入节点上的视图中过滤带分类学术语字段的节点?  ( How to filter nodes with taxonomy term field in a view embedded on a node ) 
我使用ubercart 3开发一个mp3商店。我创建了一个"专辑" 内容类型。我有另一个名为"歌曲" 的内容类型。我想在"专辑" 节点中嵌入一个视图,它将检索属于该专辑的所有歌曲。这是"歌曲" 的预览 http://www.houstestm.co.za /files/songz.png ,我希望附在"专辑" 节点上...

0  同时创建节点和相关节点?  ( Create node and related node at the same time ) 
我有一个由匿名用户创建的内容类型(配方),并且可以用另一个内容类型(评论)评级/审核。 用户应该能够在同一页面上同时编写一个配方和与该配方相关的审查。我想我正在寻找错误的东西,但我找不到这个问题的解决方案,而无需编写一个新模块。 提前感谢。 ...

0  如何解析缺少卸载模块的内容类型引用?  ( How do i resolve missing content type references from uninstalled modules ) 
在我的网站上的设置中,我安装了一堆模块,并卸载了它们。但现在我有很多孤儿或丢失内容类型,仍然位于数据库中。下面是字段列表页面上显示的内容,它试图引用这些不存在的内容类型。有一个地方可以去清洁吗?我会调查哪些表?如果我要删除这些条目,我还必须删除它吗? ...

0  在文章中设置默认文本  ( Set a default text in an article ) 
我正在寻找一种创建文本模板的方法或制作一个方法,其中,在创建特定内容类型的节点时,将文本预加载到节点中。 (类似于Word-Templates) 目前,每当我哈夫写一个状态报告时,我必须复制粘贴它,但我希望这会自动发生。 任何帮助将非常感激。 最好的问候。 ...

0  如何保存在NodeApi_example模块中的配置?  ( How is config saved in nodeapi example module ) 
在这个模块钩子负责将用户选择保存(在 9988877661 上)进入数据库? 我实现了 nodeapi_example_form_alter() 功能,就像它一样,但它没有保存任何东西。 我的hook_form_form_id_alter()在我的.module中 - 这不会挽救我的收音机的价值 - 这里缺少的东西?...

6  如何使用公共://在页面内容中  ( How to use public in page content ) 
因为内容作者创建一个页面,她想要有类似 <img src="public://picture.jpg" /> 。是否可以?目标是避免硬编码的Drupal安装路径;那是她不想在测试站点上拥有 <img src="/drupaltest/sites/all/file/picture.jpg" /> 和生产网站上的 <im...

0  如何自定义默认添加内容页面  ( How to customize default add content page ) 
我想自定义默认添加内容页面,更具体地,以便在底部中取出垂直选项卡,并为每个字段添加说明文本。 我该怎么办? 我应该修补什么php文件? 是否有一些模块? 谢谢你读这个。 ...

0  如何在块/节点页面中呈现此代码?  ( How do i render this code in block node page ) 
print render($page['content']['system_main']['nodes'][$nid]['rc_core_item_avail_form']); 我尝试将其放入omega主题中的节点,也直接在块中,但根本没有。任何人都可以帮忙吗? ...

0  如何获取已创建避风港的所有节点列表,并在系统上使用  ( How to get a list of all nodes that haven been created and are not in use on the ) 
标题说.. 我需要通过其他节点获取已创建的A类型和未使用(此刻)的所有已发布的节点。 换句话说,除了在实体参考字段中未引用的数据库中的类型A的类型A的所有节点的列表。 简单的方法将加载使用A型节点的所有节点,并且如果它对其引用,则加载所有类型的节点并检查每个节点并检查每个节点。 但是如果我添加另一个将使用类型A的节点...

1  用于Drupal中的内容类型的自定义CSS  ( Custom css for content types in drupal ) 
基于现有内容类型(页面)我创建了另一个内容类型(页面 - 没有视频)。这两种类型唯一的差异是我希望在第二个中跳过一个视频部分。其余的应该看起来一样。在创建"没有视频的页面" 内容类型之后,我前进,并调整了新创建的内容类型的自定义CSS(基本上只是将节点名称从"页面" 更改为"页面 - 没有视频" )。从某种原因,新的...

2  使用MySQL访问内容类型数据  ( Accessing content type data using mysql ) 
我正在尝试在我的drupal数据库中捕获的数据在另一个工具中推动一些分析。 我正在尝试开发一个查看我创建的内容类型的字段数据。 DB模型似乎相当复杂,任何人都可以给我任何关于如何将表加入的提示,以查找给定内容类型的字段。 欢呼声 a ...

2  卸载后未删除模块内容类型  ( Module content type not removed after uninstall ) 
我的模块通过实现 hook_node_info 来添加内容类型。在禁用和卸载模块后,内容类型仍在数据库中,仅标记为禁用。 注意:我还为创建的内容类型添加创建和实例化自定义字段。 自此答案在 hook_node_info 中创建的内容类型是自动删除的,如果数据库不一致,或者我做错了什么,是我的问题。 代码: ...

1  编辑按钮  ( Edit button in teasers ) 
我正在使用显示套件和我的预告内容类型之一的视图,我正在尝试在预告片中添加一个编辑按钮,但我找不到这样做的函数。所以我来这里寻求帮助。你能帮助我吗?谢谢 ...

8  为什么有时$ node-> field_name [0],有时$ node-> field_name ['und'] [0]?  ( Why is it sometimes node field name0 and sometimes node field nameund ) 
抱歉标题中的代码,我想不出更清晰的方式问它。 我有几个 9988877660 内容类型的节点,以及这些节点的视图输出扣式。我想在 node--location.tpl.php 中做一些自定义东西,以影响它们显示的各个地方。当我做一个简单的 dpm($node) 来获得变量时,一些字段值并不总是在同一个地方。 例如,我...

4  在仅在该页面登录后重定向到内容页面  ( Redirect to a content page after login only from that page ) 
在我的网站的某个页面上,用户必须进一步登录。他们不必登录才能看到其余的站点内容中的大部分内容,但在这个特定的页面上,他们确实必须登录。我弄清楚如何将障碍抵免用户登录在查看该页面的内容之前(即,如果用户未登录,则整个页面上唯一的是表示"创建内容的行,您必须先登录" ,并且有一个链接到登录页面),但是如何将新登录的用户重...




© 2021 it.wenda123.org All Rights Reserved. 问答之家 版权所有


Licensed under cc by-sa 3.0 with attribution required.