New community based form block

Permalink 1 user found helpful
Hi all, after following a few discussions here in the forums I decided that it's time to release a community based form block.
The idea is that anyone who wants to contribute to the block (and has some php and svn skills) will be able to do it.
I won't submit it to the marketplace just yet, cause I want to see how/if it evolves in the next few weeks.
Feel free to download it, test it and ask for svn access to commit your changes.

https://sourceforge.net/projects/c5formblock/...

matogertel
 
Tony replied on at Permalink Reply
Tony
good thinking man. hopefully this is the first of many community driven projects.
synlag replied on at Permalink Reply
synlag
Some ideas:

Editing:
- Html Block integration for descriptions
- Add user to group option on approved submission
- Should work with external form block, if action points to it
- Char or number limitation for text fields
- Add tooltips
- Page selector
- User/Group Picker
- Discussion selector
- Date Picker

View:
- Inline validation
- Tooltips
- etc
kirkroberts replied on at Permalink Reply
kirkroberts
This is will be a great addition! Thank you!

A few ideas (we all have them, right?):
- table-less layout for flexible arrangement/styling
- wrap required labels with a class for styling
- add a "separator" data type so forms can be visually broken into chunks

Apologies if any of this is already implemented... I haven't loaded it up yet.

I look forward to following this project. Thanks again!
matogertel replied on at Permalink Reply
matogertel
The new block is full MVC so table-less layouts and classes in labels are easy to do in the view.
I thought about the separator. It will fit many people's needs.
Remo replied on at Permalink Reply
Remo
I saw that Andrew updated the core form block. We might have to do the same with our code...
This seems to be an annoying thing to do /-:
matogertel replied on at Permalink Reply
matogertel
Well, as soon as you fork something from the core this is bound to happen. I suppose from all the new features people have been requesting for the form, this was a quick and easy to implement one, so it's a nice addition to 5.4
So far nobody except you have requested svn access to the repository, so I'm not too sure what will be the future of this block. I don't want to be the only developer working on it, and I don't want to play catch with the official form. The idea was to free the form development from Andrew and Tony's time contraints and allow everybody not only to have it's say, but actually write some code.
We'll see what happens... as I said before, I started this as an experiment...
synlag replied on at Permalink Reply
synlag
It would be great to get a little reply from Andrew, whats the internal roadmap for this block.

I would like to contribute, so you can give me access to the repository.
invision replied on at Permalink Reply
invision
Trying to install this community form block on my site. I ftp'd the package up to the server, but when I attempt to install the package using the dashboard (Add Functionality) I get the following error message:

"Fatal error: Cannot redeclare class FormBlockStatistics in [file path]/concrete/blocks/form/controller.php on line 405"

Any thoughts on how to troubleshoot? Looks like a conflict with the core forms block?
kirkroberts replied on at Permalink Reply
kirkroberts
I highly recommend using the Extended Form block:
http://www.concrete5.org/marketplace/addons/extended-form/...

As far as I can tell it solves many (if not all) of the problems people were having with the standard form block.

I just used it on a site, and to me it's well worth the $25 it costs.
invision replied on at Permalink Reply
invision
Thanks for the advice. I just purchased and installed the Extended Form block. Works great.

I had to remove the Community Form block directory form the Packages directory to get rid of the error listed on my previous post.

The Community Block tab still appears in the Dashboard, tho. It's blank.
matogertel replied on at Permalink Reply
matogertel
Sorry guys I haven't been able to work much on the community form block. I'll fix that issue and let you know through this thread... but won't happen for another week probably.
dihakz replied on at Permalink Reply
dihakz
Hi... I would have worked on this with you (and hope this is still a viable project) I just did not know about it, and that is why I never requested svn access!

We should have an announcement discussion group for such opportunities -- maybe with an rss feed? If so, I'll know about these right away, and will always respond if I'm interested in something like it!

Regardless, I'd like to join this venture if still active!

Thanks,
D.
matogertel replied on at Permalink Reply
matogertel
Hi, I need your sourceforge username. If you don't have one yet, you need to create one and then I can grant you access. I wouldn't say the project is really active, but it's there and it would be a shame to let it die, so any contribution is welcome!
I've been meaning to fix small but annoying bug for ages, but never find the time...
dihakz replied on at Permalink Reply
dihakz
So sorry it took so long to get back to you!

My SourceForge username:
evolvecs

Thanks!!
D.
matogertel replied on at Permalink Reply
matogertel
ok, done!
dihakz replied on at Permalink Reply
dihakz
cool beanz, man! hopefully we'll actually get this project back on track and in good shape!
TheRealSean replied on at Permalink Reply
TheRealSean
also like to register my interest, Im not to expert with php but I'd like to help out.

Ill have a look tonight at the block, but some nice features suggested and it would be good to work on some of them. Concrete5 certainly needs more community interaction, in comparison to the bigger cms systems that is.
benradler replied on at Permalink Reply
Yes, I would be willing to help out as well. This could be very useful, but at the moment I can't even test the block out. I get the same error:

"Fatal error: Cannot redeclare class FormBlockStatistics in [file path]/concrete/blocks/form/controller.php on line 405"
dihakz replied on at Permalink Reply
dihakz
I've often felt that there should be a Forum on here that is called something like: Group Projects or Community Driven Add-Ons... somewhere we can all look at what people are trying to accomplish, and need testers and developers to help with!
jasteele12 replied on at Permalink Reply
jasteele12
Bump.

So, is this dead or what?
jordanlev replied on at Permalink Reply
jordanlev
I would love to see something like this revived. @jasteele, are you interested in helping out or working together on something like this, or just wondering if it's already been done?

Also, see this thread for another take on this form issue:
http://www.concrete5.org/community/forums/customizing_c5/updating_f...
(specifically, the comment "akiller replied on Nov 7, 2009 at 3:39 pm")

One day (when I actually have some time -- ugh) I hope to go through this and that other one's code and see which works best (or combine best features from both). Getting a github repo for this and also other free blocks that could be useful to a general audience would be great -- really help spur community development on C5.

PM me if you're interested in helping out.

-Jordan
matogertel replied on at Permalink Reply
matogertel
Ok, I finally had some time to fix the bugs. No other updates have been made to the package though, and I believe the official form has gotten slightly better in the meantime :-)
Anyway, here's the link:http://sourceforge.net/projects/c5formblock/files/community_form.zi...
terasoft replied on at Permalink Reply
terasoft
I installed and created a community form, then got an error when I went back to edit the community form?

"Fatal error: Class 'MiniSurvey' not found in /home/test/packages/community_form/blocks/community_form/edit.php on line 4"

Changing references in community_form/blocks/community_form/edit.php from "MiniSurvey" to "CF_MiniSurvey" seemed to fix it.
TheRealSean replied on at Permalink Reply
TheRealSean
Thank you for that saved much time :) current version the error is on line 6 but splitting hairs, I have posted the bit to change below as only changing one of the references seems to stop it working.

Old Code
$miniSurvey=new Minisurvey($b);
$miniSurveyInfo=$miniSurvey->getMiniSurveyBlockInfo( $b->getBlockID() );
MiniSurvey::questionCleanup( intval($miniSurveyInfo['questionSetId']), $b->getBlockID() );


Replace with this
$miniSurvey=new CF_Minisurvey($b);
$miniSurveyInfo=$miniSurvey->getMiniSurveyBlockInfo( $b->getBlockID() );
CF_MiniSurvey::questionCleanup( intval($miniSurveyInfo['questionSetId']), $b->getBlockID() );
TheRealSean replied on at Permalink Reply
TheRealSean
Im also in for this revived thread post, I would like a better form, that also sends a html email out not just plain text, im a sucker for bold titles :)

The main problem for me is time at the moment, 3 sites on the go I need a site that has a complex form to get me to sit down in front of this for a few hours.
kirkroberts replied on at Permalink Reply
kirkroberts
I'd love to see an effort to incrementally improve the standard c5 form block. You know, set up a priority list of items and milestones to submit the code to c5 for inclusion in the core. Surely they'd welcome improvements to an important but neglected block?

There are some basics we can probably all (or most) agree on, and then about a billion possibilities after that... seems like the project could get crushed by trying to do too much. And the too many cooks issue...

For now if I need more advanced functionality I just go with the Extended Form block. It has its faults and the price keeps inching upward, but generally fits the needs I have and I haven't had any stability issues.
jordanlev replied on at Permalink Reply
jordanlev
I've been making some incremental improvements to the built-in form block recently. First I made a div-based layout (see the "Form Tableless Layout" addon), and yesterday I just submitted an ajax version of the form (hopefully will be approved soon). These were all custom templates, so I didn't modify any of the functionality of the built-in form block. I wonder if these can/should be ported over to this as well.

(I did see this a while back but I was mostly needing a template I could style easily, whereas this seemed to be about overriding the controllers).

-Jordan
jordanlev replied on at Permalink Reply
jordanlev
Just to clarify my point a little: in order for the form to layout to be styled in a sane way, all of the presentation needs to be moved out of the controller's "loadSurvey()" function and into the template. Look at the Form Tableless Layout to see what I mean:
http://www.concrete5.org/marketplace/addons/form-tableless-layout/...

(ideally all that crap at the top of the file would be in the controller, but most importantly the loadSurvey() function should return an array of data about each form field, but not the actual html that it is displayed in.

Also, the custom controllers should probably extend the built-in controller instead of just being a completely different one, then you only override the methods that you want to be different for you own implementation.

I would be happy to help with this, but probably don't have time for a while -- let me know if anyone else wants to tackle it and could use a little assistance.

-Jordan
TheRealSean replied on at Permalink Reply 1 Attachment
TheRealSean
I have gone through and added the community form to my latest site I am working on some really nice work going on there, I have added a template that changes those tables to divs and also added in an errorClass on each row for each missing input

Within the controller function (action_submit_form) I added around line 278 the following - this was added within the foreach($rows as $row) loop but not within a particular if statement
//If Blank Set a variable that we can check on
$this->errorClass[$row['msqID']]=true;


Then Within the setting of variables section (around line 315)
$this->set('errorClass',$this->errorClass);


Then I have create a template which replaces the tables with dives and adds an error onto a row if the entry is missed,

The style sheet also alters the default msg box, to have a red background and border,

Each Question row that is required and missing is also highlighted red with a red border placed around the input.

This has not been check in any other browsers then Chrome so far.

I also noticed that the "sample_controller.php" needs its class call renaming to "SampleControllerExternalFormBlockController" instead of "TestFormExternalFormBlockController"
kedaitsolutions replied on at Permalink Reply
Hi Guys,

I am rather new to C5 but not to the MVC concept or php.

I am having some trouble installing the community_form block on one of my projects. Can any one help me out with some instructions?
jordanlev replied on at Permalink Reply
jordanlev
I unfortunately can't help you with instructions because I never could get this thing to work myself. But I wanted to let you know about a free addon I've made called "Form Tableless Layout":
http://www.concrete5.org/marketplace/addons/form-tableless-layout...

This solves the problem of letting you customize the "view" portion of the form block. It does not let you add new functionality to the controller (like this community form block supposedly does), so it may or may not be helpful to your situation.

Best of luck.

-Jordan
kedaitsolutions replied on at Permalink Reply
Hi Jordan,

Thank you very much for this. Will definitely have a look and give it a go!

:)

- Jaco