Additional Registration Form fields

jducka1 - March 9, 2008 - 16:30
Project:Event Manager
Version:5.x-1.x-dev
Component:User interface
Category:feature request
Priority:normal
Assigned:Unassigned
Status:active
Description

Would like to be able to create custom fields for collection additional information on registration (e.g., guest names, number in party, professional affiliation, etc.)

#1

mdowsett - March 12, 2008 - 14:28

is there any allowance for this? any interface to include taxonomy, CCK and or Profile fields into the signup form?

I've done some custom theming work with the signup.module to write-back to profile fields but it wasn't easy...lots of custom coding.

#2

shane_jordan - March 12, 2008 - 17:27

I would like the ability to add additional fields also. I'd want to do it on a per event basis. For instance, I have one event that I only need the name/e-mail/phone, but then on another event, I want to capture name/e-mail/phone/comments/address/etc.

#3

mdowsett - March 12, 2008 - 17:35

even better would allow the event creator (possibly not the site admin) to have checkboxes beside which fields are shown on their specific event signup form...and the ability to create more themselves...

#4

shane_jordan - March 12, 2008 - 17:40

That might be an easier implementation. I see in the database that each field on the form has a unique field in the table. Then I'd only let administrators add new fields, but event creators could choose which fields to have displayed.

#5

mdowsett - March 14, 2008 - 12:40

i'm pretty sure the signup form data does NOT go into fields in the table....it all gets dumped into the signup_log field instead of in separate fields. I think this makes it tough to repurpose the data or define field types.

#6

shane_jordan - March 14, 2008 - 13:05

Take a look at the event_participant table (structure posted below). As someone registers, there information is getting posted here.

mysql> describe event_participant;
+-------------------------+------------------+------+-----+---------+----------------+
| Field                   | Type             | Null | Key | Default | Extra          |
+-------------------------+------------------+------+-----+---------+----------------+
| pid                     | int(10) unsigned | NO   | PRI | NULL    | auto_increment |
| fname                   | varchar(256)     | YES  |     | NULL    |                |
| lname                   | varchar(256)     | YES  |     | NULL    |                |
| email                   | varchar(4096)    | YES  |     | NULL    |                |
| phone                   | varchar(24)      | YES  |     | NULL    |                |
| confirmation_by_default | int(2)           | YES  |     | 1       |                |
+-------------------------+------------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)

The easiest solution to make additional fields would be to only allow an administrator to create new fields. When a new field is created, alter the table to add in the new field. Then, you could have the page for registration display the fieldname to the user and let them select which fields they want. That is the easiest solution I could think of, but definitely not the best solution. For it to work properly, without constantly having to alter the table, I would create an event_registration_fields table

create table event_registration_fields (
     fid int(10) unsigned auto_increment NOT NULL,
     name varchar(50),
     description varchar(4096),
     active varchar(1),
     PRIMARY KEY (fid));

Then, i'd create another table to hold additional participant info, so it would have a structure of:

create table event_participant_info (
     pid int(10),
     fid int(10),
     value varchar(4096),
     PRIMARY KEY (pid,fid));

Administrators would add new fields into the event_registration_fields table, and event coordinators would select their fields from this table. As someone registers, it would add their information into the event_participant table (general info that every participant should have, such as first name, last name, e-mail). Then all other information for that participant would go into the event_participant_info table.

- Shane

#7

Jérôme - March 25, 2008 - 23:18

It can be a pain to register if there are to many fields. (it is already)

I guess a solution could be to automatically "grab" data from the user profile module.

The idea being :
When an event is set to "register" list all profile custom fields with a checkbox so that the event creator can select the data he wants.

This way you can dynamicaly chose the relevant Form fields you want in the report AND achieve a handy lightweight "one click registration".

Furthermore :
- it observes the Drupal privacy policy for email addresses.
- no need to email "Confirmation Code" if userID is used for authentication.

#8

gracearoha - March 26, 2008 - 14:05

So, is there an answer to question #1 above:
"is there any allowance for this? any interface to include taxonomy, CCK and or Profile fields into the signup form?"

I am interested in using CCK with this module to simply add to the default form. I wouldn't need to change it for every event.
Also, i would like to know if event-repeat, resource conflict and RSVP can be used with this module?

It looks like quite a handy tool :)

#9

shane_jordan - March 26, 2008 - 14:23

I understand that you don't want a lengthy registration form all of the time. However, at times there are some additional questions that would need answered. On the same note, if i'm a user that is logged in, I really shouldn't have to provide a name, e-mail, etc. I should just be able to register for the event unless there are some questions that are needing answered that my profile would not contain.

For instance, I may be logged in, but the event i'm going to could be a family event. I do not want to register each member of my family, but instead register one time with number attending as 5.

Thanks,
Shane

#10

rastarr - April 6, 2008 - 13:32

Subscribing ....

#11

fersman4 - April 6, 2008 - 23:55

Subscribing

To the owner: depending upon my boss's decision for a current project, I may be able to help with development for this feature request.

#12

anders - May 21, 2008 - 21:07

I am very interrested in the ability to add additional fields as well. I want to use the module to enable registering for sailing events, and I need fields for sail number, boat class and similar. I can use the roles for boat classes, but then I need to be able to set the label.

I think the simplest way would be adding a list of custom fields to the current table, including their data.

#13

anders - May 21, 2008 - 21:16

Btw, it would be usefull to be able to provide default extra fields, so that one wouldn't have to create them each time.

Also, it would be nice with varuious field types, eg checkboxes, radiobuttons, text fields. Hm, CKK field types?

#14

mdowsett - June 2, 2008 - 14:59

anders - looking for something like this:
http://www.goflyxc.com/2008/bigspring

I had to code it into the signup.theme and signup.module

Not easy (since I'm not a coder)...I had to enlist some help to get as far as I did. And it's supposed to write back the data to the core profile fields (not sure if that is working or not). All the info is donwloadable in the signup data.

I wish it was in the GUI too (cck fields would be nice)

#15

shane_jordan - June 3, 2008 - 17:10

Would it be possible to maybe incorporate the webform module? That would allow each registration form to be unique. I have to use the event module for a project, but it is going to need some additional fields on it. During my project I am going to try and incorporate either CCK or the webform module as the way to add those fields. If I do come up with anything good, i'll be sure to post back.

Thanks,
Shane

#16

mtorbin - June 19, 2008 - 15:24

I've looked into this and I'd like to lend my voice to this. PLEASE, if there's any other options here other then what I'm describing I'd love to know about it. IMO, there are really two options that are available to doing this right:

1) Modify [TABLENAME].event_participant so that it contains the additional fields that you want. Then modify event_manager.module to handle the new columns in your table. This isn't not difficult but it is rather tedious.

2) Add additional columns to the user profile using the profile module. However, some questions are specific to the event and not the user so this may not work. Recalling this information in a combined table/form may require some custom PHP, but not nearly as much as option 1.

Any other ideas?

- MT

#17

shane_jordan - June 19, 2008 - 15:35

There is a new module being created called event_webform. I think this may have what would be needed, but it is not quite there yet.

#18

mtorbin - June 19, 2008 - 18:20

Sweet! This will help others in the future. Unfortunately I'm on a short time limit and have to get something done sooner then later. :(

Thanks for the feedback!

- MT

 
 

Drupal is a registered trademark of Dries Buytaert.