When I was first researching Entityforms and other survey form modules, I had four basic questions I was trying to resolve.
- I don't want to create a survey form, so why would I want to use a survey form module?
- How does Entityform help solve my problem?
- When should I use it
- How is it different from other solutions?
After doing some research and talking with Tedbow, this modules author, I think I can start to answer these questions.
I just had this same discussion with a friend of mine the other day. She wanted to include a signup form at the bottom of an event content type node. This sign up form would allow people to register for the event. (Yes, I know she could’ve used the signup module. However she needed more functionality than the signup module offered.) I suggested she use either Entityform or Webform. Her immediate response was "I want to create a signup form, not a survey form". And therein lies the confusion of “survey” form modules.
Survey forms modules are the name given to the class / category of modules that enable you to create a form that will capture the additional information that is NOT designed to be content on your website. What do I mean by this?
System content is information that is meant to be displayed on the home page or subsequent page and is meant to be read by most, if not all, of the site’s users. Survey information, on the other hand, is not supposed to be available to the general user community. It is meant to be read by the person submitting the information and the person(s) responsible for processing that information.
Entityform (and other survey modules) can be used to create any form where you need to gather additional "private" information. Some examples of the types of forms you can create:
- Contact forms
- Event registration (see also Entity Registration)
- "Was this article helpful?" questions that appear at the end of articles.
- Application forms such as
- Club Enrollment
You can argue that surveys are not private information as the results are often published. Notice, I said the results are published, not the individual survey forms. The information on the individual survey forms are private.
How does Entityforms help me solve my problem?
Entityform helps to solve your problem by enabling forms to be attached to menus or content types. You can configure each form to be:
- Draftable – That is, the user does not have to complete the entire form in one sitting. Rather, the user can complete pieces of the form over time. When they’ve entered all the required information, they can then submit the completed form.
- Single or multiple responses - You can configure the form to allow the user to submit either a single response or multiple responses per form.
- Email the response – Using the Rules module, you can specify to whom the response should be emailed.
The responses to this form are stored as nodes with an entity type of “Entityforms”. You can access the responses using the Views module or manipulate the data using any entity aware module.
When should I use Entityforms?
This is a somewhat difficult question to answer at this point as we need to understand the differences between Entityforms and the other survey type solutions. So please let me address this question at the end of this article.
All though Entityforms is powerful tool, it is not always the best solution. There are many ways to create survey type forms. Unfortunately, I do not have time to compare Entityforms to all of the different methods. Therefore, I will compare Entityform to Content Type and the Webform module. Webform is one of the other big player in the survey arena.
While these "survey" forms enable you to capture important information from your site's visitors, this information would normally not be your "site content". For example, let's assume you are developing a web site for a company that owns apartment complexes. The site content, which is view-able by all visitors, would contain articles about the different complexes and their amenities, locations, and nearby attractions. The main goal of the site would be to entice the viewer to submit an application to rent an apartment. However, this application would never become "site content". That is, the application information would not be published on the web site for all visitors to view.
That, in a nutshell, is the difference between survey / application information and site content! Site content is meant to be viewed by most, if not all, of your site visitors. Surveys or application type forms are not meant to be viewed by the general public. Rather, they are normally viewed by the person who completes the form and the person(s) who processes the form.
This basic difference is critical to the your understanding of when to use survey modules such as Entityforms and Webforms and when to use Content Types such as articles or basic page.
Below is list of advantages and disadvantages that Entityforms have over other methods of creating user submit-able forms.
Entityform and Content Types Pro & Cons
Entityform has two major advantages over adding a new content type.
- Entityforms allows users to have the ability to create new forms without requiring them to have permission to create any and all Content Types.
- Entityforms also allows the creation of a large number of forms without "cluttering" the Permission form. This is because the role permissions for each form are specified in the Access Settings vertical tab of the Edit Entityform form. Creating many different Content Types may create administrative complications on a site.
- More modules that integrate with node permission regarding who can view nodes
- More modules that help with how and where you can view nodes.
Nodes are usually used for user generated and user viewable site content. Entityforms modules does not produce nodes. Therefore, some advantages of Content type are:
If I fill out a survey or apartment application, I would not expect to have everyone see that information. However, if I post a blog, then I would expect everyone to see it.
Entityform and Webform Pros & Cons
- Since Entityform is an entity,
- Uses Drupal Fields - can make use of countless contributed modules
- Rules Integration - provides very flexible notifications system
- Rules can determine all values of submission via Fields tokens
- Adding Webform components may be easier that creating Fields
- Because of how Webform stores submissions it works better for Forms that have a large number of fields(50+?)
When should I use Entityforms?
Now that we understand all of the differences, my recommendation would be to use this module when you need to create a survey or application type form that integrates with other existing field or entity aware modules such as date, email, links, views, display suite, panels, rules, calendar, features, .