Intro to Drupal

Intro to Drupal: Build a Simple CMS

Drupal’s popularity has lately been rising. It’s a great platform for setting up content management systems and community driven sites. Here, I’ll give a general overview of Drupal and build a simple site for a fake client. We’ll begin with outlining the client’s needs, installing and configuring a few modules, creating user roles and assigning permissions, and finally we’ll add in some content. We won’t go into theming, as it’s a bit out of the scope of this article.


1. A fake client

Let’s start off with a fake client.

SmartMarks is a small marketing consulting firm, with 4 employees. Each employee would like their own blog. The site will need a few pages in addition to the blogs:

  • Home
  • About
  • Contact
  • Links
  • Blogs

Shannon, the business owner, wants full control over the site. The rest of the employees (Bill, Jean, and Terry) should only be able to write blog entries, but Bill may publish links.

The contact us form will accept the user’s name, phone, email, and a short message. Submissions of the contact form should be sent only to Shannon.

Sounds pretty simple, huh? Well with Drupal, a lot of this core functionality is already built in. We’ll use as much of the core functionality as we can, and we’ll add in a few other modules to make building this site a breeze!


2. Install some stuff

First, start out by installing Drupal. I’ll be developing this one on my local machine, but you can install it anywhere you wish. For this tutorial, I’ll be working with Drupal 6.x.

To install Drupal, simply download (http://drupal.org) and unpack it, create your database, and visit http://localhost/ (or your own dev URL). Installation should be relatively simple for ya.

You’ll need to create a config file. You can copy /webroot/sites/default/default.settings.php to /webroot/sites/default/settings.php. Be sure to make it writable to the server. Also, leave a copy of sites/default/default.settings.php where it is; Drupal will use it during installation.

After your config file is created, you can go ahead and install Drupal.

On the next screen, you’ll setup the first account for the site. This is the main administrator, or super user. This user will have permission to do anything and everything on the site.

And you can go ahead and specify a few server settings. If your server is configured for mod_rewrite URL rewriting, then you can go ahead and enable Clean URLs now. This will change your URLs from something like /?q=node/3 to just /node/3.

After successful installation, you can visit the site and login as the superuser.


3. Get some modules

For this site, we’ll be using a few contributed modules. We’ll have to download those and activate them before we can use them.

All modules that you’ll install will be placed in the directory /webroot/sites/all/modules. If the modules directory doesn’t exist there, just make a new one and name it modules.

Make sure to download the modules compatible with the version of Drupal that you’re using. I’m using Drupal 6.x.


4. Admin Menu

This module is a must have for working with Drupal. It’s not totally necessary, but it will save you loads of time.

Download it over at http://drupal.org/project/admin_menu and place it in /webroot/sites/all/modules

PathAuto & Token

Next, go grab a copy of PathAuto and Token. PathAuto is a module that will have Drupal automatically generate nice URLs. PathAuto requires Token to work.

Meta Tags (Nodewords)

Originally titled NodeWords, the Meta Tags module allows users to specify common meta tags, like meta keywords and meta description.

Get a copy of this module over at http://drupal.org/project/nodewords

CCK (Content Construction Kit)

CCK allows you to easily create new content types, without ever having to write any code! We’ll use this for the company’s external links section.

Get CCK at http://drupal.org/project/cck

Views

The views module allows you to configure custom views for displaying content. They’re very useful when you have complex content types and categories. Here we’ll use Views to display Links.

Get the Views module at http://drupal.org/project/views

Install some modules

After you’ve downloaded and unpacked the above modules into /webroot/sites/all/modules, you can go ahead and install them.

Visit http://localhost/admin/build/modules to turn some of them on.

For this site, we’ll need to install the following. Simply check the boxes and click “Save configuration”.

  • Administration – Administration Menu
  • Core – Blog
  • Core – Contact
  • Core – Path
  • Content – Content
  • Content – Text
  • Other – Meta tags
  • Other – Pathauto
  • Other – Token
  • Views – Views
  • Views – Views UI

5. Content Types

Before we work with users and roles, we’ll create our Links content type. Each Link will need a title, URL, and short description.

What’s a node?

Almost every piece of content in Drupal is stored as a single node. All nodes have a title and an optional description. By creating content types, you can add fields to the content type to extend the node.

In our case, each Link will need one additional field that’s not provided by default, the URL.

Create a Link content type

We’ll create a content type called Link. We’ll then add a field to the content type called URL.

Visit http://localhost/admin/content/types/add

In the name field, enter the human-readable name. In the type field, enter a unique name for the type. The system will use this name internally. You can make it up, but generally it’ll look like a variable name, lowercase and underscored. Also enter a short description of the content type.

Next we’ll modify slightly this content type from the general node. In the “Submission form settings” group, instead of “Body”, we’ll title the body field “Short Description”.

Next, we’ll edit the “Workflow settings.” Allow the link to be published by default, and disable automatic promotion to the front page.

And finally, disable comments on the Links.

Save the content type. If you visit the “Create Content” page, you’ll now see the new content type, Link.

Additional fields with CCK

So we’ve got our base Link content type set up. But we need to add an additional field to each Link: URL. Visit http://localhost/content/types and “Manage fields” for content type Link.

Add a field titled “url”, and name it “field_url”. Choose text data and text field.

Save it. Another page will come up, with some more options. The defaults are ok for this, so just contine by clicking “Save field settings”. After this, the Link content type should appear like this:


6. Views

Now let’s set up a view for our new content type, Links.

Views can become quite complex, but for our example, we’ll keep it very simple. We’ll make a page view that displays Links. Plain and simple

Visit http://localhost/admin/build/views to get started. Click the tab “Add” to create a new view.

Name the view “Links” and choose type node.

The next few pages can grow quite complex, but be paitent. A bit of practice will get you more comfortable with views.

Firstly, we’ll want our Links view to be a full page. So add a page display.

We’ll have to make some settings next. Change the name and title of the view to Links. Set the “Row Style” to node, and choose to display teaser and links.

Make sure you’re clicking “Update Default Display” every time.

Set the Path to “links”. This will be the URL path and our page view will show up at http://localhost/links.

Then set a menu for the view. Choose “Normal menu entry”, title it Links, and put it into Primary Links. (More on menus a bit later).

The Basic Settings area should be similar to this by now:

And finally for the view, we’ll need to setup a filter. The filter will allow us to restrict the view to only display nodes of type “link”.

Add a filter by using the “+” button at the top of the Filters box.

Scroll down until you find the filter titled “Node: Type”. Check it’s box, then add it as a filter.

Choose a node type of “Link”.

At this point, our whole view should look very simliar to the following.

Save the view. We’ll come back to it later.


7. Users, Roles, & Permissions

Next we’ll set up some user roles and permissions, and then we’ll create some real users. Refer to the site requirements above to refresh on what our users need to be able to do.

User settings

Only SmartMarks staff will be able to have accounts. Public registration will not be necessary for this site. So we need to restrict regsitration at http://localhost/admin/user/settings and disallow public registration.

Roles

We’ll need a couple of roles. Since Shannon wants full control, we’ll need an Admin role. Since Bill can modify certain things that others can’t we’ll setup a Manager role. And finally, the rest of SmartMarks’ employees will need to belong to an Employee role.

Visit http://localhost/admin/user/roles to get started.

Create a role titled Admin.

Repeat the process to create two more roles, Manager and Employee. We should have something like this now.

Perimssions

Next, we’ll define permissions for each of the roles. Visit http://localhost/admin/user/permissions to set up permissions. Set them up like so.

You may be wondering why we didn’t give Manager too many permissions. This is because we’ll set Bill to also be part of the Employee role, so Manager simply needs to be able to add and edit links. All of the permissions associated with Employee will be granted to Bill.

Now that we’ve got roles and permissions going, we can create our sites’ users.

UserRole
ShannonAdmin
BillEmployee, Manager
JeanEmployee
TerryEmployee

Go ahead and create these users at http://localhost/user/user/create, assigning roles to each of them. We should end up with something like this on http://localhost/admin/user/user:


8. Creating Content… Finally!

And finally we can start creating content. We’re well over halfway done at this point.

Create pages

First off, let’s begin with the home page. Visit http://localhost/content/add to create a new Page.

Enter the page title and some sample content for the home page. Set up a menu item for this page. You may also enter some meta tag info if you’d like.

Leave the URL alias setting alone. We’ll let Pathauto handle it, and we’ll set that up shortly.

Save the page and create another for the About page.

If you now visit the main page, you’ll notice that we’ve got a menu already going. These items come from the pages we just made and from the view we made for Links earlier.

Create some Links

Next, we’ll create a few links. Visit the create content page again, but this time choose Link. Create a few links.

After we’ve created a few links, we can visit the view for Links. Visit http://localhost/links to see our links. Here’s what I’ve got. Remember this is coming from the view we made earlier.

Contact form

Drupal’s built-in Contact module is totally sufficient for SmartMarks. We’ll just need to set it up. Visit http://localhost/admin/build/contact and click “Add Category” to begin.

Add a category for “General Enquiries”, enter Shannon’s email as the only recipient, and set “Selected” to yes. This will cause this category to be the default for the contact form. (You could setup multiple categories to handle contact submissions for areas such as Sales, Support, etc.)

You may now view your contact form at http://localhost/contact

Create some blog entries

Last of the content, we’ll make a few sample blog entries. We could log out, and then log back in as each user individually, creating a blog entry under each. Or, since you’re already logged in as superuser, you can create a few entries and change the author to each user.

Visit http://localhost/node/add/blog and create a sample entry.

Under the authoring info, enter shannon. This entry will become Shannon’s first blog entry.

Repeat that to create a blog entry for the other users (bill, terry, jean). Then visit http://localhost/blog to see the user blogs.


9. Finishing touches

We still have a few things to tidy up before we’re done. We need to setup pathauto to handle automatic URL aliases, finish our menu, check out each user account, and then we’ll add a few blocks to demonstrate a little about blocks.

Menus

Let’s start with menus. We’ve already created a few menu items beneath the Primary Links menu. We did this when we created the view for Links and when we created each static page.

Visit http://localhost/admin/build/menu. Here you’ll see several menus available. Choose Primary Links.

Choose “Add item”. We’ll create an item for the Contact form.

Note that the path is relative to the site root. So don’t enter “/contact”; just enter “contact”.

Repeat the above to create another menu item for user blogs, using a path of “blog”. Then visit the tab “List items” to view all the menu items within the Primary Links menu. Now we can reorder the items using the drag and drop handles on the left.

Make sure to save!!!

Now our primary links in the header should be complete and sorted.

Pathauto

Next up, we’ll setup pathauto to handle our nice URLs. Visit http://localhost/admin/build/path.

Before we configure paths, let’s remove any existing URL aliases. You can do this by visiting the tab “Delete Aliases”, then just go ahead and choose all aliases and delete them.

Now we’ll setup the automatic aliases under the tab “Automated alias settings”.

Open up “Blog path settings” and check the box to have the system “Bulk generate aliases”.

Now open up the “Node path settings.” Here we’ll set up a few rules to handle paths for different node types. Use the replacement patterns (this is where the Token module comes into play) to set up appropriate paths. Make sure your URL alias scheme will produce only unique URLs! And be sure to have it “Bulk generate aliases.”

Then save. Then view “List” again. You should see new aliases made for all of our existing content.

A note about URL aliases: Don’t forget to delete aliases if you change your URL scheme and regenerate aliases. Deleting and recreating aliases may seem a bit scary, but the more you do it, the more confident you’ll become in your URL scheme.

Blocks

Shannon just informed us that she wants the site to highlight the company’s recent office move. This is a good opportunity to go over blocks.

A block in Drupal is simply a ‘chunk’ of content, be it a list of nodes, some static HTML, a few images, or whatever. We’ll set up a simple block to hold the notice about the office move.

Visit http://localhost/admin/build/block. Add a new block by using the tab “Add block”.

After adding a block, you’ll have to assign it to a region for display. Assign it to the left sidebar on http://localhost/admin/build/block, and don’t forget to save!!!

You may also sort them with the drag handles, like menu items.

You should now see the new block displayed in the left sidebar after save.

Check user accounts

Now we’re almost there. Just want to login as the users to make sure they’ve got the right permissions and that they can access the links to allow them to get stuff done.

Log out of the system and log back in as Shannon. Shannon is our administrator, so let’s make sure she’s able to create/edit all content. After logging in as Shannon, we should see a link to create content.

Go through and login as each user. Just take a look to make sure each one has the permissions and links available to get stuff done. If they don’t, try going back to administer user permissions, and verify that they’ve been granted the correct permissions. Or also make sure you’ve correctly assigned roles.

Set the home page

We also need to tell Drupal to use our home page as the default home page. You can do this under http://localhost/admin/settings/site-information.

Before you change this data, though, we need to grab the node id of our home page. Visit our welcome page at http://localhost/welcome-smartmarks. Click or mouse-over the “Edit” tab; we just need the node’s ID.

Our home page has a node id of 1, so we’ll use that for the default home page. Visit http://localhost/admin/settings/site-information and enter some data. At the bottom, you’ll see a field for the default home page. Enter “node/1″. Note that we’re using the node id becuase of pathauto. If we were to change the URL alias of the home page, then we won’t have to change its node id, since it will remain the same. Drupal will automatically print out the correct URL alias.


10. Summary

This overview only scratches the surface of what Drupal can do. Hopefully I’ve given you a good overview of how to get started with the system in building this very simple CMS.

Themes

Drupal supports multiple themes, and each user can even chose their own theme.

Building a custom theme is out of the scope of this tutorial. But you can download and install some contributed themes. A good starting place is over at Theme Garden. Download and unpack themes into /webroot/sites/all/themes, then enable and configure them at http://localhost/admin/build/themes. Note that whenever you activate a new theme, you’ll have to visit the blocks page to assign blocks to the theme’s regions.

If you’re ready to start building a theme, you might want to check out the Theme Guide.

Good luck!

Good luck in your Drupal ventures, and feel free to ask questions! Also check out http://drupal.org for more information and helpful articles.

Note: Want to add some source code? Type <pre><code> before it and </code></pre> after it. Find out more
  • JR

    Steve – I’ve been researching Drupal for the past few days and will almost definitely be using it in the new version of a client’s site. I’m sure you can imagine how incredibly helpful this post will be to a person in my position. Thank you very much!

  • http://mhuntdesign.com Matt

    Drupal is complicated for novice web professionals or even someone new to Drupal. It simply takes time. Which is why WordPress is so easy to argue. I use WordPress as a simple CMS, but let’s face it, WP is not a CMS. It bothers me that these two systems are always being compared. It depends on the project, which you will choose. Drupal can handle anything. It’s really hard to complain about Drupal when it’s open source. I agree it’s not very user friendly, but its getting a redesign. Great things are happening with drupal.

  • Pingback: links for 2008-12-17 « Minesa IT

  • Tugu

    MySource Matrix > Drupal > WordPress!

    joke aside, very nice thorough introduction to Drupal.

    Will have a look into it.

    Cheers.

  • http://instantsolve.net/blog/ Thomas Milburn

    Drupal seems to be a good content management system. Unfortunately all Drupal sites look very similar. I’d love to see a good tutorial on how to truly use the whole potential of Drupal and create templates which are as good as WordPress ones.

  • Matt

    As others have said, great post and only needs to be followed up with a good tutorial on Drupal theming in order to have a pretty good coverage.

    @kevin: I don’t think you can say that WordPress is not a CMS (it does manage content). What you can say is that it isn’t as full-featured or designed to be as scalable as Drupal.

    Also, you can’t really crank a site like Missionmetallica.com out with Drupal without a great deal of customization (and Flash!). But that is part of the big assumptions and myths about CMSs–they don’t solve all of your web site development challenges.

  • http://www.duzodesign.com Timothy

    Why not just build your own CMS? PHP or Ruby, some Mootools, TinyMCE… And BAM. We’ve got a solid product

  • http://duncanmckean.co.uk dmk

    I’ve played around w/ Drupal a couple of times, but it’s just too damn big! I don’t need it to do much, so I’ve always ended up using wordpress or some small and simple CMS.

  • Eduardo

    It’s good to have alternatives to wordpress, like joomla and drupal. Thanks for the tut ;)

  • http://www.brainythink.com/ Amr T

    mmmmmmm…. Drupal, It’s more than a CMS…
    but I’m really love what I made from nothing ‘almost ;) ‘!

  • mike

    The WordPress vs Drupal argument is pretty old…

    We actually use a combination of both WordPressMU and Drupal.

    Drupal for the heavy lifting CMS and WordPress for blogs and social network projects… Both are excellent at what they do and they actually integrate pretty well together using XML-RPC

    http://drupal.org/node/74350

  • http://www.kevinquillen.com Kevin Quillen

    “Also, you can’t really crank a site like Missionmetallica.com out with Drupal without a great deal of customization (and Flash!). But that is part of the big assumptions and myths about CMSs–they don’t solve all of your web site development challenges.”

    Well yeah. But I was making the point that Drupal isn’t some monster that is only capable of the blue garland themed websites. People think its impossible to theme for, when really, its not. You gotta spend more than 15 minutes with it to see whats going on.

    I hated it at first too, until I understood how it worked. Now we can achieve anything.

  • Pingback: links for 2008-12-17 at DeStructUred Blog

  • http://psd2cssonline.com Shaun

    You can convert a Photoshop PSD design directly to a Drupal theme at http://psd2cssonline.com. There are some video tutorials there to show you how it works.

  • http://neemtree.com.au theneemies

    Nice coverage of core and common contributed modules. Title might need a little adjusting though – you’re using a CMS, not building one ;)

  • http://phantomcto.com/blog Vanessa Pagan

    This is a great tutorial on how to set up a Drupal site. This cuts down on that learning curve associated with using Drupal as a solid scalable cms. Will use as a reference.

  • http://eneza.wordpress.com Eneza

    Whoa!!! Time.. Need time to go around with this….. Its all good stuff 2 THUMBS UP!

  • http://www.cityocracy.com Greg S.

    Design-wise, most sites that use Drupal suck. There are always exceptions.

  • http://yoosuf.awardspace.com/ M.A.Yoosuf

    Hmm, its being a long conversation, any way Drupal sucks in Theming part, unless WordPress support for a high quality end., and when we are comparing with WordPress and Drupal,

    WordPress for Any one(beginner- advance geek) for Any use, it has a well structured documentation and friendly forum

    Drupal for Advance users and for Advance use, still complected documentation and flow is like only for Advance users.

    so my conclusion is Drupal for limited users! and WordPress for Anyone

  • http://butenas.com Ignas

    Great one, but I’m waiting for the next part called something like this “Developing modules for Drupal” :) I hope I’ll see it :)

  • http://www.internetovehry.cz Online hry zdarma

    Easy and fast. Better than WP :-D

  • http://www.zairabbas.com Zair Abbas

    Wow! great tutorial. Thanks.
    I know wordpress very well and a bit of Joomla.

    Now I think its time to use Drupal

    I hate Joomla btw :P

  • Pingback: links for 2008-12-17 « Bloggitation

  • Tucchus Johnson

    it’s your loss if you guys want to argue that WP is better than Drupal or whatever your dillusional head wants to conjure up.

    you will waste time arguing, as well you are wasting time trying to get it to sing and dance for you in making a site that isn’t a blog or e-zine.

    if Drupal is too much for you, too boring, too unintuitive, whatever, then ignore the tutorial and let others learn peacefully. this envato network is way too WP-centric sometimes.

    anyone who’s tried to build a community site without being a code wiz will always keep an open mind to this particular CMS.

  • http://d3.lt Zy

    Actually making theme in Drupal’s way is much easier task than WP :)

    Maybe I could make one tutorial on how to process PSD theme design to usable Drupal theme. It is much easier than you think.

    And here is some theme made for and running on Drupal (sorry its Lithuanian language).
    http://www.exodus.lt/

  • http://digitalexpression.co.za Alex M.

    I’m busy looking into upgrading to a more capable open source CMS (I am a WP guy at the moment) for more complex requirements. Looking at Joomla, it seems to have a much nicer admin GUI than Drupal (which means it would be easier to hand over to a client – perhaps?).

    Any opinions in comparing the two (ie Drupal vs Joomla)?

    @Zair: Why do you hate Joomla?

    Some insider info from anyone who has used both would be greatly appreciated.

  • Shyamali

    Like to see more Tutorials on Drupal in future too…!!!

    Thanks a lot for this..

  • http://neemtree.com.au theneemies

    @Alex M. – Opinions? You asked for it – expect a deluge from commenters – http://tinyurl.com/3kjbll

  • http://linuxandfriends.com rkms

    Drupal is my favourite content management system. In fact, I started hosting my domain http://linuxandfriends.com on Drupal 6. But later I changed it to wordpress because for a blog I found Drupal to be too much of an effort.

    All the same, Drupal has a special place in my heart for the flexibility it offers and the rich set of themes and modules found on drupal.org.

  • Pingback: Strange Attractor » Blog Archive » links for 2008-12-18

  • http://www.kevinquillen.com Kevin Quillen

    Joomla doesn’t have the community backing Drupal does, and is not as secure or transparent.

  • http://www.gohalo.net DJ Monzyk

    Drupal is scalable, and works great for complex application. If you want a simple CMS, with SUPER easy templating and end user content creation and updates, try CMS Made Simple (cmsmadesimple.org). I use this solution all of the time for lower complexity websites.

    I much prefer it over WordPress if the goal is anything but a blog engine.

  • goatse

    Drupal rocks! It is so much more than just a CMS though.

    WordPress is best for blogging and ok as a cms for small/simple sites.

  • http://stevejamesson.com Steve Jamesson
    Author

    @Nick Brewer – Drupal supports installation profiles. This is pretty cool! What this means is that you can configure a website to have all sorts of functionality, then wrap it all up into one installation. For example, say all your client sites need modules like meta tags, blog, contact form, etc. You could deploy your custom drupal package in no time, without having to redo everything each time you build a new site.

    @Jason – Good breakdown. That’s pretty much how I approach it. If I can get away with wordpress, than hell yeah I’ll use it. If not, then I gotta start planning out the drupal.

    @JR – Glad to help!

    @Timothy – Agreed, but some of us are strictly designers that have had luck working with templates in wordpress.

    I’ve noticed that designers will generally stick to wordpress, where developers will prefer drupal, ee, or custom/proprietary apps.

    @Kevin Quillen – “I hated it at first too” Me too.

    @theneemies – I think it’s still a matter of building a cms, since drupal doesn’t come ready to go for your end admin out of the box. But I accept your argument and point.

    @Zy – “[Theming] is much easier than you think.” Indeed it is.

    With a drupal theme, you have to really take charge of it to make it work. If you are assertive with the theme, it’s really not that difficult.

  • http://www.mikeb.info Michael Babao

    Think Drupal as an alternative to Joomla!

  • james

    “When you’re developing and selling/producing projects for clients, the only logical choice you can have is Drupal or Joomla.”

    I want to second the guy who asked why no mention of Expression Engine? That seems like it’s the hot thing going right now, but maybe I’m wrong? I’m a fairly experienced html/css guy looking to dig into a CMS and I was planning on learning ExpressionEngine. Is this a bad idea? Should I be looking at Drupal?

  • v-render

    huge tutorial on drupal intro ! thanks for the efforts. helped me a lot !

  • Pingback: » Intro to Drupal: Build a Simple CMS - NETTUTS TechTango

  • http://www.brainythink.com/ Amr T

    Guys!, just notice that in the new version 6+, you have to set register_globals in php config to be OFF, the solution is to make php.ini with this text
    register_globals = Off
    and put it in the drupal folder “root”/

    Amr

  • http://www.gradientgraphics.net Wes D.

    Almost every CMS out there has its ups and downs. Drupal does has a frustrating setup process…that definately becomes easier the more you use it.

    This was a really good introduction to Drupal so thanks!

    also @ Kevin Quillien: WordPress is a blogging utility, but it can be used as a CMS. Check out this link for some more info:http://css-tricks.com/video-screencasts/41-wordpress-as-a-cms/

    While it is not as in depth of a CMS as Drupal or Joomla, it does have its benefits allowing you to easily maintain a blog like format and integrate certain CMS elements fairly easy.

  • http://sergibosch.com sergi

    whoa. lot of opinions out there. that’s a good thing.

  • Rick

    @Kevin Quillen

    Joomla has a much larger community than Joomla. Check the stats! Some of my dev friends that work at some big firms in Boston ditched Drupal as a viable solution for bigger projects too. I don’t think it’s up to snuff (though Joomla has it’s quirks too)

  • Pingback: Intro to Drupal: Build a Simple CMS - NETTUTS | micro jmw blog

  • http://www.chrisgunther.net Chris Gunther

    Interesting intro tutorial.

  • milos
  • Jason

    I could build the same thing custom, with Ruby On Rails, and still have free time to write a complaint about Drupal. ;)

  • http://james.padolsey.com James

    @Rick, “Joomla has a much larger community than Joomla” … interesting…

    Great tutorial Steve and as usual, bravo to the Nettuts readership; the comments have once again been quite a pleasure to read!

  • http://chriscarvache.com Chris Carvache

    In regards to WordPress scalability. It is totally true that it is not as scalable as Drupal or Joomla! However WordPress is moving towards being a fully featured CMS. The POD Plugin makes a bold attempt at this – however its not working correctly yet. I can foreshadow that once mainstream WP users understand the power of creating content types and relationships, that a plugin like that could end up in the WP core – if at very least a highly supported plugin that will share APIs with other highly supported plugins such as the role manager, shopping cart and caching plugins.

    Just theorizing :)

  • MikeM

    Yeah, the web design studio I work with doesn’t use Drupal but this looks interesting. I have heard Drupal is a little more user friendly compared to Joomla.

  • http://www.want8.net webdepeloper

    Joomla notorius for its limited content structure (sections & categories only) although it’s categorized as a mature CMS, then its frustrating built-in sef (search engines friendly) path function. But its number of enthusiastic users are second to none.

    WordPress has limitation in its content flexibility. It’s definitely excellent for blogging and simpler CMS. It’s excellent in its streamlined & compact core code, theme flexibility and ease of creating plugins (modules). I must admit am very comfortable constructing WordPress theme.

    Drupal is very flexible in content types. Not easy to start with due to its flexibility. Not very good at presenting itself. Though, I noticed some serious, complex & beautiful websites built on it, checkout http://www.observer.com/ or http://www.thejakartapost.com/ to name some.
    Must admit I start loving Drupal for more complex project.

    All have their own pros and cons.