Jump to content

ProcessWire Form Builder


ryan

Recommended Posts

This looks great, and I hope it’s a big success - I will gladly pay a good price for this.

I was actually just playing with the previous experimental "Form Template Processor" module you released, so this is great timing. The scenario I am looking to build is a community site that accepts new events - If the user is logged in (via Standard login / Facebook or Twitter) they can add new events (date, location, category). So I would be interested in being able to save form entries to a page. Is this is scenario where you would recommend using the new Form Builder? Or as they will be logged in should I just give them access to the main PW admin area?

sending mail

one of my main concerns with building web forms for clients is the reliability of sending emails - not all hosts are equal - some host have no way to send email, or have unreliable / poorly implemented mail send. I consider any client website form as business critical, so I want to make sure that the emails are being delivered. This is one of the main reasons I use Wufoo.com for most all my clients website forms (as well as the other advantages you mentioned with this module - the speed of creating a form, the spam protection, the database logging of all entries and ability to export.)

Maybe the ability to use a full email account (imap / pop3) for sending? Or the option to use a mail sending service like Postmakapp.com, Amazon SES, Sendgrid.com, Mandrill.com…

Just to clarify -

- You can use any field type within processwire, including page types and custom fields?

- You will have full control over the markup?

For future ideas, one of the really cool things I like about Wufoo are the integrations with other services - for example allowing a user to be added to a mailing list on campaign monitor / mail chimp when using a contact form. I’m sure this is something that could be easily done with PW.

Thanks!

  • Like 1
Link to comment
Share on other sites

If the user is logged in (via Standard login / Facebook or Twitter) they can add new events (date, location, category). So I would be interested in being able to save form entries to a page. Is this is scenario where you would recommend using the new Form Builder?

Once we've got the ability to publish to pages (coming soon), this might be a good use case for the Form Builder. However, I did something very similar here (http://modules.processwire.com/add/) and opted to go the route of making my own form and creating/updating pages using the API. It's easy enough to do in ProcessWire, and maximizes the control you have over it. I see the Form Builder is something ideal for collecting data. But when your needs are as much about application/user logic and publishing, as they are about the form itself, then this is not as much of a use case for the form builder.

one of my main concerns with building web forms for clients is the reliability of sending emails - not all hosts are equal - some host have no way to send email, or have unreliable / poorly implemented mail send.

I'd hard for me to imagine a web host that wouldn't have a workable PHP mail() function... I've never come across a case where it didn't work as it should. But also know you are right about this, and there are hosts out there that for whatever reason can't send mail (which seems like a seriously disabled hosting service). So I think it's a good idea to add an alternative way fo sending mail. Though should also mention that the Form Builder saves everything in it's database, and the email part is optional. But I will put this on my list, to support alternatives on the email side.

You can use any field type within processwire, including page types and custom fields?

The Form Builder doesn't use Fieldtypes, just Inputfields. All Inputfields are supported by the Form Builder, except for: File, Image, Repeater, Password, PageListSelect, PageListSelectMultiple, PageAutocomplete, TinyMCE.

The Page inputfield IS supported (as of yesterday) with Select, SelectMultiple, Checkboxes, Radios, and AsmSelect. These four inputs can also be used on their own (where you specify the options, like you saw in the video).

You will have full control over the markup?

It depends. You have control over the wrapper markup around the inputs. You don't have markup control of the inputs themselves. Even though you have control over the wrapper markup, it's going to be preferable for most not to change it. That's because the auto-generated nature of it means that it can provide you with theming support, collapsible fields, fieldset groups, column width, and inline error messages. If you provide your own markup, you may lose some or all of these capabilities.

allowing a user to be added to a mailing list on campaign monitor / mail chimp when using a contact form. I’m sure this is something that could be easily done with PW.

This is something I'm also very interested in adding, but probably won't be in the initial release version. However, we will have the ability to carbon-copy post the data to another URL, so this will enable much integration potential. For instance, I'm using this aspect to integrate with Salesforce.

  • Like 1
Link to comment
Share on other sites

Ryan, have you thought about having file field for attachments?

Yes, this will definitely be coming if the Form Builder is sustainable. Unlike other Inputfields, the File/Image Inputfields in ProcessWire require a $page to operate. I'll have to build custom file Inputfields for use with the Form Builder. However, the bigger issue is just the security. Anything that lets a user (especially an anonymous user) upload a file to a server is a huge security consideration and a lot of responsibility. I'll probably spend a month just on developing that and ensuring that it's absolutely bulletproof. I don't want to hold up the rest of the Form Builder just for file support, so decided to tackle it after the product is out there and confirmed I can afford to take the time off my regular job to really build it well. Because of the environment of this input (anonymous, public facing) the approach just has to be very different from the file inputs in PW's admin.

Also might be required: rich text possibilities for success output. Also possibility to add another success output for email confirmation. Rich text mainly for creating links.

We actually do support rich text, but indirectly. It wants you to specify what page and field to pull the success text from. So basically you would create a "thank you" page in ProcessWire and populate the body field with everything you need. Then in the Form Builder, enter "/path/to/page/:body" for your success text. However, there's a better option:

Use the success redirect option instead. That way it redirects to your success page which can contain whatever you want. When using the frame-based embed options, this is preferable to having the Form Builder output any success message for you. That's because Form Builder is running from a template that may not be consistent with your site's type styles. So you can get around that just by doing a success redirect. To use the redirect option, just specify the /path/to/page/ in your success text (and nothing more).

More spam: on preview tab it would be nice to have edit icon or link on each field, which would be a shortcut for field edit.

Good idea, I'll look into this and plan to implement.

Link to comment
Share on other sites

Where do I send the money? I have been embedding forms generated with a self hosted form builder and integrating that into installations. Having a native solution would be preferable. I ask that you consider selling a developer license as a onetime fee for unlimited PW sites in addition to a site license.

Another exciting edition to PW's impressive capabilities. Thank you Ryan.

  • Like 1
Link to comment
Share on other sites

Wow, this is absolutely incredible!

One thing though (only minor and I may be in the minority): I have never really liked per-site licenses for things. I have no issue with people using them, I just prefer not to purchase them myself where there are other options.

Would you consider a per developer license (for more than the per-site license obviously)? My biggest reason for this is that I make a lot of small sites for family friends etc on the side and whilst this functionality would be great I don't want to be thinking about purchasing components each and every time I make a site for someone like that.

Of course this is far from a demand. I don't expect something for nothing nor do I think that my reasoning is the 'only right way'. All I am saying is that you will have a guaranteed customer here if you do a one-time-purchase type option :)

Either way, it is really great to see some more advanced functionality being done with the ProcessWire functionality. I can think of at least two sites that I can likely make use of this module, regardless of the license setup you decide on.

  • Like 1
Link to comment
Share on other sites

Would you consider a per developer license (for more than the per-site license obviously)? My biggest reason for this is that I make a lot of small sites for family friends etc on the side and whilst this functionality would be great I don't want to be thinking about purchasing components each and every time I make a site for someone like that.

Agree with you. I'm planning to use the same purchase options as Gravity Forms, which does include a Developer license with use on unlimited sites.

  • Like 3
Link to comment
Share on other sites

For future ideas, one of the really cool things I like about Wufoo are the integrations with other services - for example allowing a user to be added to a mailing list on campaign monitor / mail chimp when using a contact form. I’m sure this is something that could be easily done with PW.

This capability will be included in the first version, as I've now got it working. Here's a screenshot of a form configured to cross-post to Salesforce. When a form is submitted, it saves locally, emails to me, and then posts to Salesforce.

Like many other services, Salesforce requires some extra variables in the request like "oid" (some sort of customer ID they use). They also use some of their own variable names, which you find when exporting a web-to-lead form there. In the screenshot you'll also see how to do these variable replacements.

This same method can easily be used with other services like Campaign Monitor, Mail Chimp, etc. So we'll have this capability right from the beginning.

post-2-0-82201800-1347299018_thumb.png

  • Like 2
Link to comment
Share on other sites

Wow... That's great!

I have been trying to get the simple contact form works in PW. It works but with a bit of problem...

With this powerful form builder module I would be able to create forms and collect data easily.

Would there be a license for non-profit organisation?

Link to comment
Share on other sites

Will multi-page forms be a possibility (so like Step 1, Step 2 etc)?

On the form builder side of things, this could be a little like putting fields in groups like you can already do in PW - I imagine adding a fieldtype of "page divider" or something that is draggable & droppable and can be used to split them up that way. Optional label for the Step title as you may want to give each page a specific title if it's a different subject for example.

Just a thought.

Link to comment
Share on other sites

Hi Ryan,

Just a thought, this has probably already been suggested or goes against the approach you take for new pieces of core PW functionality but just in case it hasn't and it doesn't, I just again used http://flourishlib.com/ in a PW project to easily give me "2 days ago" (etc) when comparing dates.

I noticed flourish has a ton of value-add for forms and so just thought I'd note it here in case it helps directly or indirectly now or one day.

Thanks again so much for the up-coming forms module and I cannot say often enough how delightful it is to build with PW, it literally leaves me happy from my ability to 'make functionality'.

Link to comment
Share on other sites

One more thought on forms (which I'm guessing you have already had), for a future release of the module perhaps, the ability for portions of the form to programatically appear. E.g. if a tick is ticked then a bunch of optional fields appear. Apologies and even wider grin if this is already part of the module ;)

I've found this programatic facility valuable when designing forms with WuFoo.com

This is not a request (you do SO much as it is!) just noted in case it's helpful one day.

Link to comment
Share on other sites

E.g. if a tick is ticked then a bunch of optional fields appear.

While I agree that this could be integrated in the form builder, I don't think it is very urgent because you can do that already using Javascript. But one question comes to mind: What about dynamic fields? I mean ajax-requested content? Is it already possible to "inject" fields or values? Or do you validate the fields and their contents against the settings in the builder? I think one could work around that by defining hidden fields that are filled via Ajax... well, Ryan should answer this before I speculate too much :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...