You probably know a long list of CMS (Content Management System) systems - Joomla, Moodle, E-107, MKPortal and many more. Well, strangely but true, Drupal doesn't directly fit in that list. "Why?" you might ask. The answer is very simple - Drupal is CMF (content management framework). CMS systems are firmly specialized in managing the content and aren't very (or aren't at all) flexible towards modifications. Meanwhile Drupal tends towards the other end of the spectrum - Abstraction. Let's say that you have a cool looking plane toy and a very nice speed boat toy. And as you're enjoying them, you realize that it would be great to have a plane that also works as a boat. But they are what they are and you can't change that. You may add a bigger motor, cool paint job or what ever, but the boat will still be boat and the plane will remain just a plane. But what if some one brings you a box full of hulls, motors and any other part that you can think of, all categorized according to their functionality. Now the idea of boat plane is entirely possible. And that's just the beginning. Drupal works in a very simular way. Let's take a closer look at the system itself. Drupal is based on nodes. A node can be considered as a jar - it's labeled to give information on it's contents and inside it are it's contents. Whatever content you decide to put in your Drupal based site, the text that you see on the page is stored in a node. Nodes may vary in type, but they're still nodes. News, blog articles or even forum posts are stored in Nodes. What if you want a comment? Do install a separate comment plugin for the blog, news or image gallery? That would happen in an ordinary CMS system, but in Drupal, the "comment feature" is a module, that can be applied to any node or actually to what ever information you decide, unlike the ordinary CMSs that have a specific plugin for each task or you're out of luck and you'll have to hire a programmer to create the specific addon. The functionality of a drupal module is threaded trough out the entire system. You can freely download modules created by members of the Drupal community and use the to construct whatever functionality you require. Now let's take a deeper look into the heart of the system that is Drupal.
- Data - the foundation of the system is the data pool, where all the the nodes reside.
- Modules - they provide functionality, and they're universal, so any module can be put to service for practically any need.
- Blocks & menus - those are the content containers, blocks hold various information while navigation links, login boxes, latest post and other similar stuff goes in the menus.
- Permissions - administrators create roles (something like ranks) with different permissions. Then users are assigned a role. Depending on the role of the user some pages may be displayed while others wouldn't be.
- Surface layer - this is the template. It consists of clean markup XHTML and CSS. All those are mixed with PHP tokens, that determine where the content will be outputed. Also there are functions a set a functions, included in each template that can override the standart funtions in the modules for managing the markup of the output on the fly. Templates may also be assigned per user.
You might think that this is a bit of overkill if you just want a simple news site. But actually you're very wrong - just upload the Drupal system to your favorite hosting service, connect it to your database and you're ready to start posting news. All that in just a few minutes.
Take some time to get familiar with the Drupal system, read the installation and configuration guide and take some step-by-step tutorials and you'll be ready to build whatever your needs require.
Have a happy site building experience with the Drupal CMF system.