First off, I would like to state that I am a total noobie when it comes to Drupal and do not have a great deal of experience with web development in general. On the other hand I have a good deal of experience programming in general and will not shy away from some serious PHP hacking.

I am trying to create a webpage that will allow users to submit project files (which will be .zip files) which need to be extracted, then analyzed, then stored.

I would like to have a main ladding page that will allow user to navigate to different types of projects or allow them to follow a link to submit their own project.

So far I have not been able to find many good resources that talk about challenges associated with user generated content. Can anyone suggest any books, videos, tutorials, really anything that would help me get started on this specific topic? I own the book Drupal 7 module development, which was a decent starting point but doesn't really offer much information about my specific problem.

Also, any modules that might be helpful for this task?


So far I have been able to create a new content type which can be added using add content and then will show up in one of the main tabs on my basic page. So far I only allow the user to add screenshots and a title, one big thing I am wondering if how would I handle anything more complex? So far I have created everything by using the GUI interface under structure->content types but I see no way that I could call some php code after the user has uploaded the project to unzip their project and do whatever else I need to do. Am I going about this wrong?

3 Answers 3


"Drupal7 Development", Apress publishing is a very good book covering the full range of coding issues when working with Drupal including issues such as how to create, search and modify content nodes, user info, taxonomies, fields, comments, and etc. It will also give you a good look under the hood at how Drupal works. This site is always good for specific answers, as is the IRC for Drupal which as some real experts online at #Drupal-Support.

As for user-generated content, I have not seen a great deal published. My first priority would be KISS! If there is a way to screw it up, they will. You will, of course, want to sort and store the information they submit in fields. You will arrange your submission forms to make it clear to the user how the info should be split up. All content is stored in the database and the Views module is an UI for the database query engine. Design your database relationships for the data first. You will use the form API to generate the input from the users. It provides a system for creating forms, validating input and plugging it automatically into the database.

Another consideration should be the styling of the materials for rendering on the site. The first rule here should be don't get fancy. Drupal provides a plain text widget, but you can also add WSYWIG editors. BUEditor (see the module on the Drupal site) allows you to create custom buttons so you could create, for example, a button called Headline to provide HTML codes, or table formats or lists etc...

I would also recommend looking into Panels and Panels Everywhere. The Drupal theming process is fairly complex and the various third party themes can make styling your content a nightmare. Panels w/ Page Manager provides an excellent method for creating complex formats and making your CSS easy to manage. You may want to look at the book Drupal Building Blocks, which does a great job of explaining how to go about creating a site using Views and Panels.

Workbench is another module you should look at. It will help you monitor what is going on with your sites content so you can do things like edit the project info before it is published.

There's more, but this is a start.


Have you taken a look at Open Atrium? It is not a Drupal module, rather a Drupal distribution pre-configured with a set of modules to help you manage projects. It includes functionality to upload files into projects, allows users to create new projects, etc.

Open Atrium has been around for a few years now, and it is pretty stable. Since it is Drupal (and hence, GPL'd), if the features that it brings does not satisfy your needs, as always, you can create your own modules to extend the existing functionality, or as a minimum, you could use Open Atrium to provide you ideas on how you might structure your project, which modules might help you out, etc.

There's also Storm, but it is currently available only for Drupal 6.x, and it's 7.x version is still not stable.


You could always use the rules module to perform a task when the node is saved. Rules has the ability to let you do some pretty nifty complex things without having much knowledge of the drupal hook system or drupal's underlying workings

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.