Our online study group, http://drupalistasgroup.com, meets via Skype for 1 hr on Monday nights. We concept a module & then create it. Each week we add to the complexity of the module. Then we go forth and create! When we meet again on the next Monday we share code and process. It has been quite the enlightening process!!
Now we have "concepted" ourselves into a corner. We are stuck. We are looking for a "Guest Expert" who would be willing to "drop by" and help us figure this problem out. If you are interested, or know of anyone interested, in helping out, let me know and I can provide more info! Thanks!
Here is an explanation of the process we've taken and where we are stuck:
Week 1:
Create a module that adds a basic form with simple fields to a page.
* First Name
* Last Name
Address
City
State (should be implemented as a dropdown)
Zip
* Email address
Phone
Best way to reach (Radio Buttons).
* Comments
SUBMIT button
Week 2:
print to screen data entered into the form to the screen
validation:
zip code is numeric: 5 digits, dash, 4 digits or just 5 digits
email construction - something before the at, at least two characters, something after, at least dot
do something with the phone field - break into three sections, auto format as entering, etc.,
Week 3 (we really stepped it up expecting this to cover several weeks):
Module creates table for data
Sends email to site admin and cc person who filled out form. Email should have cc, reply-to, subject line and body with contents of form and thank you message.
Prints data to screen on separate confirmation/thank you page
We are stuck on the very last thing - print the data to a confirmation/thank you page.This method has been very enlightening! We give ourselves an assignment then go do it. It's amazing to see the variety of solutions that come back. We learn by researching, trial and error, by doing and by watching how others solved the problem.
If you have suggestions or would like to be our "Guest Expert" and show us how it's done, we'd love to hear from you!!

Comments
I could be available
What time Monday nights?
-john
Awesome!
We meet at 7:30 MST on Skype. We try to start on time and only stay for an hour.
Would love to help!
Hi there. I am Ray James and I have been working with Drupal for several years now. I would love to help you out if you need it. If you already have it covered then no problem. I could also do a presentation for you guys some time where I showcase a lot of extremely custom drupal modules I have built over the years and go over some of the projects I have created such as a custom LMS that is scorm compliant, a scheduling system inspired by phpScheduleIt, a project for the state of Colorado that we won and I got to build the site in Drupal, a time keeping app for Android that connects to a drupal website, a custom debugging-to-file module, and a couple of others. I do almost all my work in custom modules and custom themes. So, if you need me I am here. Thanks.
Awesome!
Thanks for your offer to help. I'll get more details to you...
K
Where is it explained how you
Where is it explained how you use Skype to make these exercises, please?
@rayjames Are you saying that
@rayjames Are you saying that you've developed a SCROM compliant LMS and a scheduling system similar to phpScheduleIt in Drupal with custom modules?
@rayjames: Is this the same
@rayjames: Is this the same LMS system that might have been presented ~1 year ago for DBUG and that was done privately for Linux ETC around the same time period that I requested?
@kreynen: If this is the same one, then per my understanding it is a SCROM compliant Drupal LMS that rayjames put together quite nicely. :-)
Not the same one.
Hi there, I did build a SCORM compliant LMS but never had the opportunity to present it to anyone. I built it for a truck driving school in Colorado, my employer.
And yes, I did build a scheduling system similar to phpScheduleIt in Drupal and added a ton more features. It currently is being used in production and they love it. Never got to present that one either.
And yes, all in Drupal and custom modules.
Thanks
@rayjames: My apologies for
@rayjames: My apologies for the misunderstanding if you did or did not present to DBUG.
That said, I think both might make good DBUG presentations. ;-)
Can I suscribe to this group
Hi:
I'd like to suscribe to these group. Can I do it ?
Thanks.
Manuel.
When introducing people to
When introducing people to Drupal development it's probably better to set an expectation that eventually some of what they do should be contributed back. They should be learning git, patching, and issue queues as well as building their module. Learning from example projects where none of the code is shared really sends the wrong message. New developers need to be introduced to the culture of contribution vs. developers using Drupal. While not every module needs to be contributed back, when working in spaces like learning management and scheduling there are a lot of people who benefit when you contribute back to even a sandbox or case study... the same way you've benefited from what was already shared.
Having taught Drupal at the university level, it is a really interesting to see where self directed study takes a motivated group. I've read through most of http://drupalistasgroup.com/forums/project-1-build-module and before anyone else volunteers to be the "guest expert", they should look at the code that's being posted to get some idea of what you'd be in for...
http://drupalistasgroup.com/contact-us-too-create-db-table-and-insert-fo...
Once you get over the fact that the Drupalistas group is using a forum as a form of version control, the approach of defining a custom table to store contacts is probably going to make most experienced developers cringe. That said, I think there's real value in going this far using a custom table before looking at other approaches like defining an entity and mixing some custom form and validation functions with fields added using the UI. I'd actually recommend going even further.
@kappaluppa Is there some curriculum to the Drupalistas Study Group or did you decide to build a contact form yourselves? Are you looking for someone to help with specific Drupal/PHP questions to "finish" the modules in the direction you are already going or are you looking for suggestions on better ways to achieve the functionality you are after?
I'd actually suggest solving your confirmation/thank you page problem AND at least attempting to add Views support to your table BEFORE rewriting the functionality to leverage the Entity API. It is much easier to see why an Entity would be a better choice once you've done a completely custom solution. One easy fix for your thank you page is building the page with a menu hook that accepts the contact's id as an argument and then using drupal_goto to send the user to that page after the db_insert.
Whether you succeed or fail in getting the point you've integrated Views, I would rewrite the module as an Entity based solution after discussing the benefits to this approach. You could make the case for custom data storage over CCK back in 2006 like Nick Lewis did in his Neutered Nodes: CCK's Dark Secret post, but by 2008 the most of the issues with Hybrid CCK Module Development had been solved and by D7's release w/ fields in core and entities, it would be difficult to make the case non-entity custom table based development. There are cases where custom storage is the right solution, but a contact form is not one of them.
I'm going to be out of the country for a few weeks, but I'd be glad to discuss the advantages for using entities with the group after the holidays.
@kreynen You are more than
@kreynen
You are more than welcome to stop by and visit the group after the holidays. We look forward to hearing about a variety of methods, process, uses, etc. Learning about the advantages of entities will help us to integrate that knowledge into this or another project.
Just to let you know, none of the members in our group are brand new Drupal users. We are experienced in a variety of ways with Drupal and the Drupal Community and aware of the usefulness of contributing back - and do so in many ways. We come from a variety of backgrounds and experience levels with Drupal and other programming environments.
The premise of our group is not to mirror learning in the traditional sense of any type of classroom settings. We are a bunch of people who are trying to grasp some of the concepts involved in creating a module and how to do other things we come across along the way. It is merely an exercise. We are not building a module with plans that it will be used in any production environment. We started with a simple project and then add complexity as we go along. Basically, we are tinkering.
The exercise is a vehicle for us to get familiar with building a module, using the forms API, Database API, and general Drupal dev. We all understand that there are much better ways to do a contact form. It is a programming exercise and not a real-world solution - and a very beneficial one at that.
This has been a very useful process for all of us. It is definitely a unique environment that may not be right for everyone, but we are learning by doing and sharing. It has been quite enlightening. BTW, we are not using the forum as version control, that would be just silly, wouldn't it, lol. No, we are merely sharing the code we've written or found with each other via the forum. We interact quite a bit via Skype and Join.me too. Although our meetings are on Monday night, we often exchange ideas and questions via the Skype group throughout the week. An added benefit, as is often the case when working with Drupal, is that we are building new Drupalista friendships.
Thanks for your suggestion re: drupal_goto. We had another developer suggest the same thing and have begun looking at that solution already - as well as other wild and crazy ideas. We like to look at a variety of ways to solve a problem, so it will be interesting to learn how entities might fit as a solution. Please contact me when you have some time to visit.
@kreynen, I think it's super
@kreynen, I think it's super important to realize that some people are very intimidated by getting started with contributing to Drupal and are hesitant (very mild word for it) to jump into the Ladder groups or other groups for learning. This Drupalistas group is meant to be non-judgmental and friendly and provides a SAFE space for people to experiment and learn.
Please let's respect that lots of folks need to have a space without judgment and criticism to feel safe enough to learn.
The need to prioritize
The need to prioritize contributing was meant more for @rayjames and @LinuxETC. I'm not a big fan of the "look at this really great thing I made that I'm not sharing" presentation... especially when it's in a space I'm often working in. I also get annoyed by the number of groups selling Drupal based SaaS who aren't feeling the pressure form the community to contribute back. I think this is partially due by the shift in the community from people getting involved because they are passionate about open source to people learning to develop in Drupal because it can pay well. Not everyone who sells SaaS fails to contribute nor are all new developers just in it for the $$, but it's a noticeable shift.
As far as using something other than version control to share code and creating disposable projects, I understand that too. Way back at Sunnyvale, I presented a session called Development Eye for the Design Girl/Guy where I showed the curriculum I had used to introduce Drupal to journalism graduate students and integrated media undergrads. I used an exercise called 10 Things that started as 10 items in a spread sheet used in a mail merge in Word. The spreadsheet was then imported into MySQL and displayed online using a standalone PHP script created in Dreamweaver. Only a few students in each class ever completed the next step successfully which was to create a form to add items to the table. After all of that, we'd create a content type in Drupal adding fields for each column in the original spreadsheet, add the items, and start displaying the nodes in different ways.
Many students be a little upset they spent so much time making the stand alone script work when everything was so much easier in Drupal... until they did something that broke their site and had no clue how to fix it. Then the complexity of using a CMS for a simple task was working against them.
The the type of things the students used wasn't really important other than to using data the student was interested in. Students used CDs, videos, concerts, their friends, etc. Once they had the basic CRUD working, the students had to add at least one additional feature using a module we hadn't covered in class. As you can imagine, the quality of sites/applications varied wildly. Some students were drawn to the possibilities and spent several weekend testing dozens or modules and themes while others did the bare minimum.
Nothing done for the 10 Things exercise was part of the final project. The idea was to learn the basics of managing different types of data and extending functionality with additional modules. At the graduate level, the students produced a site called OurTahoe that won several journalism awards. There wasn't a single site developed as part of the undergrad level course, but the use of Drupal by students after the class was amazing to see. While not in my Drupal class, @Steven Merrill, @bmcmurray and @davidneedham were all students introduced to Drupal at that university. None of the journalism students made Drupal development their full time career, but several still use Drupal for special projects and have thanked me for making them more effective when working with developers as journalists.
I think what you are doing is great would love to see this approach made into a reusable, Open Education Resource (OER). I only questioned the decision to use contact form because it isn't disposable enough.
On contributing
@kreynen:
I think you might be confused here since I just asked and referenced rayjames' LMS project since he showed/demoed that to me directly. Neither Linux ETC nor myself personally have anything to do with rayjames' project nor rayjames directly nor rayjames' employer.
rayjames did the LMS project for rayjames' employer IIRC, mentioned it on the DBUG list, and it caught my attention since I was researching LMS systems (still do today even) at the time. I know the general idea of what rayjames put together from my discussion and talk with him, but that would be similar to anyone attending a DBUG presentation on the topic.
So for clarification, Linux ETC nor myself personally hired, requested, or similar rayjames nor his employer to do a custom LMS or the Drupal PHP scheduler.
My apologies about the confusion this may have caused as well.
both might make good DBUG
both might make good DBUG presentations
I think even 'good' is a stretch when presenting custom solutions. What would make a GREAT LMS presentation is demonstrating a solution like http://drupal.org/project/elms
I'd even be happy to learn what features @rayjames's custom LMS has over ELMS and/or the changes that would have to be made to ELMS to work in for the truck driving school. Anything that helps make better shared solutions.
The more we hear about custom solutions to common problems that aren't shared in any form, the more people feel it is acceptable to use Drupal without contributing. At BADCamp I asked several employees of a company distributing a Drupal product to several universities for a copy of the code. I was told they weren't sharing it, but I could request a demo via WebEx. This was not a SaaS solution. This is a Drupal, contrib modules, and additional code being sold and distributed. If only a few people get upset by that, it will only happen more often.
While I'm not suggesting every Drupal learning experience start with the group 'singing' a contribution version of the Balmer Developer Dance, it should part of the curriculum. Similarly, presentations about custom solutions should focus on why the existing shared solutions didn't work before getting into the really great thing I'm not going to share with you.
Contributors, contributors, contributors, contributors... I love Drupal.
Still just offering to help.
Hi guys, my original post still stands. I would really love to help anyone with what they are working on and will demo any of my work to showcase the possibilities of what can be accomplished with Drupal. All my code and projects are super custom but I would not hesitate to help anyone tackle a problem they are working on. So, I am available to any one of you if you need help or want to talk shop. Thanks.
There are no limits when you have a Drupal. :)
Ray James
Hi everyone: Really I'd like
Hi everyone:
Really I'd like to participate in this group that I feel awesome, but can you give me the Skype name from the leader or some people to add to my contact list so I can reach you in that hour in the virtual meeting.
Thank you.
About the ELMS
Hi:
Once a time I have installed Dokeos (Chamilo today). I have made a course in that plataform and I know about the some restrictions it has.
I have more than 10 (ten) years teaching people and perhaps can I give some knowledge about the learning process.
I work with Drupal and registered in Drupal about 5 (five) but lastly with more intensive contributors modules using.
In my profile you can see the web sites I have developed.
That's why I'd like to participate in your group.
Manuel.
A suggestion
Perhaps the way to go is to create a view with your module? It believe it would be a good practice, applicable in a lot of situations.
Just a thought.