[Vtigercrm-developers] Hello and the webform module
Alan Lord
alanslists at gmail.com
Tue Apr 8 13:55:47 PDT 2008
Sorry in advance - this is quite a long message...
----------
Hello.
I'm Alan, and I run an Open Source training, consulting and support
services business here in the UK.
We have been "playing" with vtiger for some time and now would like to
contribute something back.
I have recently been looking at the webform module and have some ideas,
but I am struggling to get passed first base due to the db abstraction
library and some rather obfuscated code...
Anyway, first, A brief idea of what I'd like to do with the webform module:
1. Abstract the client side so that there is minimal or no hardcoding of
form parameters and eliminate the need for manual duplication of lists
of php arrays in 5 or 6 places as is now the case.
2. Migrate the forms to be valid XHTML (no tables) with external
stylesheet(s).
3. Option to notify admin or other vtiger user by email that a form has
been submitted.
4. Introduce a nice and friendly form builder (probably using something
like the dojo toolkit to give a good user experience).
With respect to the above I have done some work already.
1. During some initial hacking, the client end of the webform package
now has a single array construct which holds the basic form field
parameters and labels etc in config.php. This is the only place - on the
client side - where changes need to be made to alter your form's basic
field layout and structure. However, the interaction to the server is
not fixed. The vtiger file soap/webform.php needs manually hacking in
several places to match the client side configuration.
2. This is kind of done.
3. Sort of done. It works but the email notification is done at the
client end. This depends on the client server having sendmail(). I'd
like to move this function back to vtiger. Don't think it should be too
hard, but haven't looked into it yet.
4. Not started
Completing "1." above is giving me a headache!
What I am trying to achieve is something along the following lines:
*Start the client end "form building process"
*Select the type of form you'd like to make/edit
*Upload the schema for the relevant fields from the user's vtiger
installation and use that information to create the basic form layout
data...
It is here's where I am stuck. Is there any decent documentation on the
database abstraction library that is being used? I find even simple
queries respond with vast amounts of superfluous data. For example a
query like:
"SHOW TABLES LIKE 'vtiger_".$form."%'"
responds with the data but also with a tremendous amount of noise. And
with that particular query I can't seem to iterate through the result
and filter it because of using a wildcard in the query. Any ideas?
My plan is generate an xml schema for the fields that are available for
a particular kind of form. This would be used to generate the wsdl on
vtiger and be cached in a local (client-side) file and only updated as
and when necessary. The benefit being it will display any custom fields
or should vtiger's schema change with a new release, no manual updating
would be necessary.
The client side Form Builder would be able to use this data to build the
initial UI and when the user has selected the fields to display etc,
the "design" will be saved in an XHTML file for deployment along with a
basic stylesheet.
**Any help with extracting the data from the db would be most helpful.**
I have looked at some of the functions in the MS word module (which gets
the "lead" field structure for example, but no schema information) as a
starting point but it doesn't go far enough and also has hardcoded wsdl
structures.
I also have some ideas to develop the webform module further once I get
the basics working:
Possibly use a Javascript SOAP library, so no client-side "server
scripting" language like PHP would be needed at all (fully platform
agnostic). Or, enable the form to be so standalone that other
contributors could write client form processors in other languages like
ASP, Ruby, Java etc...
Improvements in end-user functionality such as addition of optional
calendar features for using the form for booking appointments/events,
adding a unique UUID to individual mail campaign emails (or just
campaigns) so when a new user hit's the form, we know how he got
there... And a few others ideas too.
Sorry again for the length.
Alan
--
The way out is open!
http://www.theopensourcerer.com
More information about the vtigercrm-developers
mailing list