[Articulate Presenter 5]
Get up and running with Drupal: the most powerful open source CMSThe future of web publishing is CMS and the future of CMS is Drupal argues Tom Arah.
Drupal is the most powerful open source CMS available.
Last month I looked at the real world problems of running a traditional static HTML website and decided that the best solution for most users is to turn to a scalable CMS (content management system). This month I’m going to look at how to go about implementing what is generally recognized to be the most powerful, open-source - ie free - CMS available: Drupal (drupal.org). Be prepared for a bumpy ride.
The first hurdle to overcome is the name. Let’s face it, “ Drupal” pronounced " droo-puhl", with its suggestion of gentle decline at best is about as bad a brand name as you could possibly devise - and the Drupal slogan, “community plumbing”, just makes matters worse. The explanation for the name isn’t exactly confidence-inspiring either. Drupal was originally created in 2000 by Dries Buytaert as a small news site with built-in webboard to enable a group of students at the University of Antwerp to discuss which pub they should go to. After graduation they decided to put the site online and Dries chose the domain drop.org after mistyping his original choice dorp.org (Dutch for “village”). The Dutch for drop is “ druppel” which anglified became drupal and a legend was born. OK, you’re right: “Dorpal” would have been even worse.
A much more serious practical hurdle is installation. Drupal like all CMS solutions is dynamically data-driven which demands dedicated server-side support and some reasonably advanced database handling and set-up; a stark contrast to the inherent simplicity of hosting and posting static HTML pages. In terms of requirements you’ll ideally need an Apache server supporting PHP 4 or 5, MySQL, ModRewrite and local . htaccess files (IIS and PostgreSQL are also supported though to a lesser extent). You’ll also need to be able to set up your own database, load the drupal database scheme and then edit the settings.php file to connect it to the database you’ve created (full details and links to OS specific guidelines at http://drupal.org/node/260).
Don’t stop reading! If your eyes glazed over reading the previous paragraph don’t be embarrassed – that is how most humans would react. If there was no way to get Drupal up-and-running without existing experience of MySQL it would be doomed to remain a niche solution. But there are alternatives. For dedicated Drupal hosting you can turn to Bryght.com which will set everything up for you and offers expert support. Or you can now do it yourself with a server provider that offers Fantastico support (now that is a name to conjure with). Fantastico is a third-party script installer designed to work with the popular cPanel site administration system and with it you can install Drupal with just a couple of clicks. With hosts such as BlueHost providing Fantastico support along with 10GB storage, 250GB transfer and up to 50 MySQL databases for $8 a month there’s really nothing to stop you. And if you want to put your toe in the water first you can always visit http://opensourcecms.com which lets you explore a clean installation that is refreshed every two hours.
With Fantastico installing Drupal is painless.
UPDATE: Bad news I'm afraid - The Fantastico support for 4.7 is broken so until it's fixed it's wiser not to use it (see http://drupal.org/forum/fantastico-de-luxe). The good news is that the in-built installation has improved - it's still daunting but it is doable.
After the major high of getting Drupal up and running so easily, the obvious next question is: what do you do now? With commercial software the answer would be to turn to the manual or online help, but that’s not an option with constantly developing open source software. Instead you need to visit the font of all wisdom at Drupal.org itself - and be prepared to come crashing back down to earth. It’s not that the necessary information isn’t there or is inaccessible – quite the reverse. With its various hypertext “handbooks” Drupal covers everything you could possibly want to know in exhaustive detail (PDF versions are available at www.puregin.org). The problem is twofold: Drupal is a powerful system which inevitably brings its own jargon – “blocks”, “nodes”, “modules”, “taxonomies”, “vocabularies”, “terms”, “snippets” and so on – and the explanatory handbooks have been developed in an ad-hoc fashion by multiple authors who are mainly addressing expert users. The result is that the first-timer is left flailing, unable to plot an intelligible path through the sea of information and in serious danger of submerging.
But don’t despair. The following basic steps should help you to keep your head above water and get you started in the right direction. So let’s get stuck in. After installing, the first thing you need to do is to visit your new home page and log-on – as first user you will automatically gain full administration rights to do whatever you want with the site and to set the permissions for all other users. When logged in, the side menu presents just four options, of which My Account (where you can change your username, email address and password) and Log Out are self-explanatory. It’s the other two, Create Content and Administer, where Drupal’s power is to be found.
Drupal is all about content management so let’s kick off by creating some sample pages with the Create Content link. By default this offers two choices: Page (for static content such as an About page for which time of posting is irrelevant) and Story for everything else. Click on Story and you’ll be taken to a new page where your username and the current date and time have already been entered and where you can set a few publishing options such as whether the page needs to be approved before publication. Below this are the two main text entry boxes where you enter the title and body copy. By default the text you enter is treated as Filtered HTML, which automatically takes care of paragraph breaks and allows you to enter a few basic tags such as <a>, < em> and <strong>. Alternatively, as administrator, you can also choose full HTML or PHP input (the scripting language in which Drupal is written) for maximum design control. Once you’ve made your choices and entered your text you can hit Preview to check the appearance of your pages and Submit to publish them.
Content publishing in Drupal is simple and available to all.
It’s certainly simple but again the first reaction is likely to be: is this all there is? Logout and visit your home page and you will begin to see the benefits of a CMS compared to traditional static HTML publishing as each of the stories you have added automatically appears as a headline and cut-down teaser linked to the relevant page. Even better, at the bottom of each content page there is an Add Comment option – this is a massive advance meaning that web publishing is no longer a one-way process but rather an ongoing dialogue. And Drupal takes this fundamental paradigm shift to its natural conclusion – users aren’t just limited to commenting on existing articles, they can publish them too. No longer does all content have to be funneled through a reluctant and/or expensive webmaster, instead you can extend publishing rights to all members of your workgroup, or to anyone who visits the site!
Of course such power has to be managed and to do this you’ll need to click on the side menu’s Administer link which opens up a hierarchical list of further associated links. First up is the Access Control page where you can set permissions for Anonymous and Authenticated users and any other roles that you specify. Other core Administer pages include Settings where you can specify the site name, page caching options and switch on the use of Clean URLs which omits the search-engine unfriendly “?q=” from URLs (it’s for this that you need ModRewrite support). Then using the Themes page you can swap instantly between a selection of provided themes and set up a list of primary and secondary links that will automatically appear in the banner area at the top of every page.
These static theme-based links are fine for the main site section links, but what about the links to each story page? The solution here is to turn to the Administer>Blocks page where you can create and control “blocks” that can be set to appear in columns to the left or right of each page. Bizarrely however there is no option to automatically list the most recent stories nor any obvious way to add links apart from manually via HTML. And with data-driven URLs such as “/node/3” this isn’t exactly user-friendly (“node” is Drupal’s catch-all term for customizable page types). And be careful too – if you create two blocks with blank descriptions you’ll generate a SQL error.
The implementation of blocks for navigation is certainly disappointing at first sight but Drupal more than redeems the situation with its “taxonomy” system for tagging, classifying, organizing and accessing content. This is managed via the Administer>Categories page where you can set up hierarchical or freeform lists (known as “vocabularies”) of organizational keywords (know as “terms”) – think Holiday Destinations: Spain/Greece/Italy, Hotel Type:Luxury/Romantic/Family. These lists are then automatically presented for selection when users add content so that each page is tagged as it is created. Crucially each term that has been applied to a page then appears in a list of hyperlinks under the main heading – click on one and you are immediately taken to an automatically created home page for that term listing teasers for all nodes that have been tagged with it.
Drupal’s category system is the secret to successful site organization.
The benefits of Drupal’s unique taxonomy system are immense. Most importantly, for the end user it just makes intuitive sense enabling them to quickly drill through directly to those areas of content they are interested in (it certainly makes the problem of setting up traditional sidebar menu blocks less acute). It’s great for the publisher too as, once set up, taxonomy tagging handles everything necessary to provide multiple routes through to content automatically. This is hypertext as it should be. And Drupal’s taxonomy also provides the necessary organizational framework to provide more traditional sidebar links as, by inserting a PHP-based MySQL database query into a block, you can automatically list recently added nodes from any given term or group of terms.
Insert a what! Again the assumption is made that even new users are already experts, but don’t panic. You should be able to achieve what you want by customizing one of the range of “PHP snippets” that existing users have posted to the Drupal site. Between blocks, categories and snippets the main building blocks are in place to produce a well-organized, scalable, accessible, centrally-controlled site complete with advanced community-based features such as commenting and distributed authoring. However there are still plenty of things on the wish list when it comes to basic site organization such as ways of adding and controlling hierarchical menus and meaningful URLs.
In fact all of this functionality and much more is there and ready-to-go with Drupal, you just need to find it and unlock it. To do this it’s time to visit the Administer>Modules page. Here you’ll see the list of Drupal components or “modules” that we’ve already seen in action – Story, Page, Comments, Blocks, Taxonomy – and a further list of available modules that are switched off by default. Simply tick their checkboxes and you can instantly turn on new modules that enable new node types – Book, Blogs, Forums, Polls and so on – and others that manage features such as Archive, Search and Statistics. Most impressive has to be the Aggregator module which lets you automatically aggregate incoming RSS feeds and produce outgoing feeds – Web 2.0 here we come!
Each Drupal site is built with module-based building blocks.
For our immediate needs however the two most useful optional modules are Menu and Path. Switch on Menu and you can add and edit your own new menu blocks complete with collapsible lists of sub-items. Switch on Path and, when you create content, you can automatically provide a human and search-engine friendly URL such as “/Spain/Alicante” rather than “/taxonomy/term/8”. These keyword-based URLs don’t just help site organization and understanding, they help boost your page’s Google ranking and so traffic. Even better Menu and Path are a good example of how modules working together can be more than the sum of their parts – by creating directory-based URL aliases you can then use wildcards to target your menu blocks, et voila, each effective section of your site finally has its own customized menu.
By switching on these optional modules you can take your site onto another level but, as soon as you do, you inevitably start wishing that Drupal could do more. For site setup, for example, it’s disappointing that you still seem to be expected to laboriously add individual aliases and menu items by hand. Moving beyond organization and navigation there are other crucial areas of functionality that still have to be tackled: how to enable contributors to format their copy and to include images; how to create and style your own customized node types; how to move beyond the basic layout; how to take more control of teasers and how these are presented; how to handle events; how to enable form-based feedback; how to tackle spam posting; and so on.
Begin thinking about it and the requirement/wish list seems almost endless and the chance of getting your site running how you want it virtually nil. But this is where the true beauty of open source development comes to the fore and where Drupal’s developer-friendly systems of modules, APIs and hooks – its “community plumbing” - really comes into its own. If you want a particular feature the chances are that someone else has wanted it too, developed a solution and donated the resulting module back to the Drupal community. The place to look is drupal.org/project/Modules where you’ll find lists of these “Contributed Modules” divided into tabs for each recent release of Drupal.
The number of contributed modules available is mind-boggling with over 250 available for the current 4.6 release (at the time of writing). Crucially each of the issues above is addressed and, in most cases, comprehensively tackled by a whole range of modules: Pathauto for automatically generating URL aliases; Taxonomy Block, Taxonomy Context, Taxonomy Menu and others for automatically generating category-based links; TinyMCE, BBCode or FCKEditor for text formatting during content creation; Image and Img_Assist for image handling; FlexiNode for custom node creation; FlexiBlock and Dashboard for custom layout; Excerpt, Front Page and Views for closer control over teasers and listings; Event for time-based handling; plus Feedback, Mailhandler, Spam, Simplenews, Voting and literally hundreds of others!
Even after a decade of reviewing professional design software when I first saw this list of contributed modules I felt like all my Christmases had come at once – all this for me, and for free! That’s still my main feeling (along with humble gratitude to all the contributors), but by Boxing Day reality dawns and with it major indigestion and a whole series of headaches. The obvious first stumbling block is the sheer amount of functionality that’s on offer here - so much that it’s virtually impossible to take it all in.
Christmas for webmasters – a tiny sample of Drupal’s extensive range of contributed modules.
As you begin playing with all the new toys, further problems appear. To begin with most of the developers seem to have forgotten to put in any documentation as if each module is self-evident and in no need of explanation. They certainly aren’t and getting to grips with each can take anything from a few hours to a lifetime. Moreover getting each module up and running isn’t necessarily plain-sailing. Most are just a question of unzipping and ftp- ing to your site’s Modules directory but others involve adding new tables to your database. This is another hurdle for the beginner to overcome and a bit of Fantastico-style magic for painless script-based installation would be very welcome. However, if you have access to PHPAdmin or have installed the Database Administration module, it’s usually just a question of running the provided mysql file.
Once you’ve installed your modules there’s another problem – they don’t necessarily play well together. To get automatic URLs and an automatic taxonomy-based menu system for example I installed Pathauto and Taxonomy Context only to find that the automatically generated menu used the ugly node-based URLs rather than the Google-friendly aliases - and there are plenty of other more serious clashes. An even more central compatibility issue is the imminent arrival of a new version of the Drupal core itself. To work with the new 4.7 release every contributed module will have to be updated or it will effectively fall by the wayside! I have to admit that when the significance of these compatibility issues dawned I began to have serious doubts about Drupal’s fundamental viability as a platform. It’s like trying to build a toy railway system with slightly different sections of track from different manufacturers - and with the underlying gauge of the track changing every year!
Integration and upgrading remain important concerns but, on reflection, I’ve decided that they certainly aren’t insurmountable obstacles. To begin with at the time of writing Drupal 4.7 is still in beta but there are already well over a hundred 4.7-compatible contributed modules available on the site. That’s more than enough to be getting on with and in fact the combination of a bit of focus and enforced time-out waiting for the official release is welcome. Moreover, as these early adopter modules are clearly being actively developed, this should mean that they are good bets for release 4.8 and onwards. And, by the time the version after that is released, I’d hope to have picked up the necessary PHP and MySQL skills to upgrade modules where necessary and to enhance them where possible. And of course to then contribute the results back to the Drupal community. After all, it’s this open source principle, the combination of Drupal’s community plumbing architecture and a massive amount of communal effort, which is the ultimate secret of Drupal’s success.
Getting to grips with Drupal has certainly been a roller-coaster ride and in many ways I’m now at the lowest point: over the minor hurdles but finally fully aware of just how much needs to be done before any site can go live. On the other hand I’m more excited than ever about the heights that can be achieved with Drupal and the very different experiences it can provide for both site visitors and webmasters.
Yes the name is dreadful but I’m confident that you’re going to be hearing a lot more about Drupal in the years ahead.
Hopefully you've found the information you were looking for. For further information please click here.
For free trials and special offers please click the following recommended links:
For further information on the following design applications and subjects please click on the links below:
[3D], [3ds max], [Adobe], [Acrobat], [Cinema 4D], [Corel], [CorelDRAW], [Creative Suite], [Digital Image], [Dreamweaver], [Director], [Fireworks], [Flash], [FreeHand], [FrameMaker], [FrontPage], [GoLive], [Graphic Design], [HTML/CSS], [Illustrator], [InDesign], [Macromedia], [Macromedia Studio], [Microsoft], [NetObjects Fusion], [PageMaker], [Paint Shop Pro], [Painter], [Photo Editing], [PhotoImpact], [Photoshop], [Photoshop Elements], [Publisher], [QuarkXPress], [Web Design]
To continue your search on the designer-info.com site and beyond please use the Google and Amazon search boxes below:
|designer-info.com: independent, informed, intelligent, incisive, in-depth...|
All the work on the site (over 250 reviews, over 100 articles and tutorials) has been written by me, Tom Arah It's also me who maintains the site, answers your emails etc. The site is very popular and from your feedback I know it's a useful resource - but it takes a lot to keep it up.
You can help keep the site running, independent and free by Bookmarking the site (if you don't you might never find it again), telling others about it and by coming back (new content is added every month). Even better you can make a donation eg $5 the typical cost of just one issue of a print magazine or buy anything via Amazon.com or Amazon.co.uk (now or next time you feel like shopping) using these links or the designer-info.com shop - it's a great way of quickly finding the best buys, it costs you nothing and I gain a small but much-appreciated commission.
Thanks very much, Tom Arah
[DTP/Publishing] [Vector Drawing] [Bitmap/Photo] [Web] [3D]
[Articles/Tutorials] [Reviews/Archive] [Shop] [Home/What's New]