Hello All.
I have started to learn the Drupal system. So far I am very impressed with all of it's features. However, at times it seems that everything that was once hard is now easy.
Obviously the part that becomes easy is that other people can intuitively add content and change navigation. (a huge plus)
However, some things like a list of forms with corresponding links, seams to be more challenging for me, the developer/designer.
For example, do I create a content type with a Title (file name), a body (Form descriptions) and a file link (using the file field.) Using this functionality takes away the need to have people use FTP. This seems like a good solution to me.
I worry that if I take the application to my corporate environment, some of the individual customizations might be more challenging. I'm guess i will just need to learn the behind the scenes functionality if I am to have the same degree of flexibility that I would on a website written from scratch?
A major issue that I face is integrations. I currently utilize translation tables for seamless log ins with other websites. Would I create a user profile and then store the log in information on that profile and then create something (module, panel, etc.) to then pass that information along as I do now?
I also worry about what happens when the system releases a new version with "improvements." If something once was a module but is now "core", who is responsible for getting the information moved over? I guess I am. Will I be able to figure that out? Will it be possible with great amounts of time?
How do you know when to use a module and when to try and something yourself? Should I be making them modules even if it is just for me?
I feel like there are HUGE benefits to a CMS but I worry (I think reasonably) about the "loss of control".
This is my deep philosophical pondering for the day. I'm curious what the rest of the world out there thinks.
Comments
Every developer would face
Every developer would face "Loss of control" problem initially. Maybe, I felt that prior to 2005. Once you learn the internals, you will find easy to control better. Also, when you get the benefiting of handling more projects/clients in a shorter span of time, every other problem disappears.
-Babu
Promote Drupal with Tshirts/merchandise: http://paramprojects.com/drupalstore
Drupal Projects showcase: http://paramprojects.com/website/drupal-servicesprojects
Thanks
What do you think the best method to start learning about the "internals"? Theming?
Getting Started with Drupal
In addition to the documentation at: http://drupal.org/getting-started
I would suggest reading the following books:
1. Using Drupal (great intro and some hands on configuration/site building)
2. Cracking Drupal (security)
3. Front End Drupal (theming)
4. Pro Drupal Development (module development)
You can find these and other great Drupal books at: http://drupal.org/books
If you prefer in person training, workshops, videos, online learning, etc... then see: http://drupal.org/training-services
Do it with Drupal http://www.doitwithdrupal.com/ starts tomorrow, too late to make arrangements but last year they sold access to the videos for less than $100 which was a great value.
And last but not least attending Drupalcon.org and Drupalcamps such as: http://drupalcampchicago.org/ (for more see: groups.drupal.org) would be a great way to immerse yourself.
Just on one point of your
Just on one point of your post - when modules are moved into core: This really only happens for a select few modules, and in this case there will most likely be an upgrade path written for your module. So you're not on your own.
In terms of learning the internals, the best way is to do it. As with anything, the more you do it, the better you get. Almost every developer is still learning to a certain extent.
Making modules is actually really easy too, when you consider how small a module can be. Try to use the modules from drupal.org first, but don't be scared of making your own if you need to.
Takes a look at the hanbooks for more details (see documentation, above).
A few modules do a lot.
One thing that continues to amaze me about drupal is the massive amount of things you can do without writing any modules, using a few very solid modules.
I needed a scheduling system.. basically an office scheduling system. I looked at all the scheduling modules and while there are a few that do the job, they didn't do my job. My partner who is up to snuff on php just wanted to write a new module. (that always seems to be his solution, "lets just write a module") Using views 2, nodereferrer, and rules.. I created an excellent scheduling system using only 15 lines of new php. The only thing I can compare it to is the animation software, Lightwave. Everyday, I figure out ways to do things I thought the day before impossible without "writing a new module". I prefer to tackle problems by avoiding new modules, but if you like to write code, then there is always that route as well. I can't imagine doing my current web project from scratch.. it would have taken twice as long.
Modules From Scratch
I think I am just getting through the basic shock of "other people" working. For instance, if a module does most of what you want but then you have to go change it to go the rest of the way, do you then follow that module with future upgrades? Will you be able to do without breaking your system?
I have also been amazed with what I have been able to do thus far without any custom PHP code.
One Specific example, if you want to allow someone to rate something by multiple criteria. By default there is only one rating per node. Someone suggesting shoving two content types together. They said make a review node (content type) and then let whatever multiple ratings you want exist there. I guess that makes sense, but you could no do that without some basic coding?... right?
Multiple reference.
Just have one node that is the item to be reviewed. Then have X content types of different types of reviews. Have all the review content types reference the item to be reviewed. The number of different content types that could be reviewed could be infinite. No, no coding is needed. If you wanted to use an additional rating module also, you probably could. Or you could just create a field with X levels of rating as a drop down. Views module could easily display the ratings, sort by rating etc. (top 10) All without a word of code.
Thanks
I would like to give this a try!
I will let you know how it goes. Thanks for taking the time to answer.
No problem
You will need the Content Creation Kit (CCK module)! This allows the node Reference field.