The Drupal Cookbook (for beginners)
German version
Download as PDF (October 25, 2008)
Purpose
To help Drupal "newbies" who seemed overwhelmed on Drupal.org at first.
- W3 Schools - for virtually everything Internet-related.
- The Official PHP Site - the full PHP implementation.
- PHP Builder - some tutorials and code ready-to-use.
This tutorial uses HTML and tweaked CSS, but not one line of PHP code. Everything is precompiled under the hood of: Drupal!
Some may think the learning curve for Drupal is going to be steep and it will take you months, or even years, to get a web site up and running? Wrong. Hogwash! Your first, largely static, web site with 36 pages can be up in less than a week after you installed your first copy of Drupal. Then it's just a matter of sorting out hosting arrangements and domain names with a helpful hosting provider.
You can do it! Yes, YOU.
- Search to see if the subject you care about has already been covered. That is to avoid having duplicate postings & issues.
- Put only one question subject for each posting, this can shorten the time and make it easier for you get an answer.
- If you don't understand the responses to your question, don't hesitate to ask again and add "I'm a newbie, can you say this in easier to understand terms?"
- When loking for help, read the tips for posting in the Drupal Forums. Try to completely describe your situation/case. Explain what you have done so far and exactly what you want to do.
- For example, if a page is not showing up correctly, it could be:
- Browser problem, so make sure you tell the reader what browser you're using. (Name, Version ...Plugins ..)
- Always mention which release of Drupal you're using (4.7.x, 5.x, 6.x etc)
- Any contributed modules you're using(add version) that may be at play.
- Also wouldn't hurt to know which version of PHP and MySQL you're using(or your Hosting Provider).
- Node: This is, in simple terms, a unit of content. It may for example be a "page," "story," "book page," or "blog entry." These different types of content are also referred to as "Content types".
- Theme: This is the way your site is displayed (or rendered) to the end-user. The graphic look, layout and colors of Drupal sites are defined by the themes.
- Block: This is a "container" for pieces of content on your displayed page. You may also have "Recent posts," "Sponsor links," or "Who's online."
- Menu:A menu displays a list of links. Drupal menus are often located in a column on the left. For example, your navigation menu.
Administer >> Access control >> User management >> Roles. This means click on "Administer" in the navigation menu, then "Access control," then "User management," and then "Roles."Occasionally you will see refer to "production" or "live" sites. These terms are pretty much interchangeable. The latter term is more modern and accepted in reference to web sites and means: "the site that your end-users interact with". The former term is largely synonymous but is a more "traditional" data processing term.
These are some recommendations before you start with Drupal:
- Never try anything for the first time on a live site. Use a test site that uses the same modules and same data (different database).
- Don't try to make the "perfect site" on your first shot. Muddle through for a while until you understand a better way. Stressing over the perfect solution will slow you down.
- Start by learning and using the basic functionality of Drupal. Find what it can do first before working towards exactly what you want it to do. Once you are confident with "core" features, you may start to use more complex contributed modules like: Views, Category, CCK, and Organic Groups modules.
These modules and some others require a good bit of understanding to master and it might discourage you if you try to dive in too fast. However, over time you will come to realize that these are some of the most powerful and flexible modules out there. [Nancy's note: also stay away from access control (security) modules until later. They can really destroy your site if you don't know what you're doing.] - Customize one of the default themes before creating your own, the Theme Developer's Guide in the handbook is a big help.
- When you run into a problem with a module, make sure to read the "readme," then do several searches with different terms. Only rarely have my problems not already been answered in the forums or in an issues queue.
- Use google search in this most effectively way:
subject site:drupal.orgYou can often quickly find your issue - and solutions to it - already posted somewhere. - To make a site really successful, make it work for the users, not against them. Once you have the basic site set up, get your friends, family, or anyone who will talk to you to look at your site and give honest feedback, or do user testing for a more formal approach (I run a company intranet and I do user testing every couple of months).
- Participate in the forums when you can. It's surprising how explaining something to someone else helps you understand it yourself.
- Go easy on what I call "gadgets" such as useless blocks, images, and graphics that clutter the page. I prefer simplicity and I only place something on the page if it is needed. This of course depends on your application.
Good Luck!
| Attachment | Size |
|---|---|
| drupal_cookbook_10_25_2008.pdf | 634.87 KB |

Encountered a problem in the cookbook
In section "C. Creating Multiple Sites On a Local Computer", there are instructions for copying an existing database to create a test database.
I kept getting an error ("Duplicate entry '1' for key 1") when I copied the database with these options set as directed:
Verify that the radio buttons are clicked for:
o Structure and data
o CREATE DATABASE before copying
o Switch to copied database
Click on the Go button just below this area.
On my fourth attempt to copy the database, I found that if I selected "Add AUTO_INCREMENT value" in addition to the above options, I was able to copy the database without any problems.
Note: I'm using Drupal 6.x, so this could be something that doesn't apply to 5.x
Another Note: I'm running Linux, so that could also be the reason I was getting this error