Building Powerful and Robust Websites With Drupal 6
Michael J. Ross writes "For creating Web sites, developers are increasingly making use of content management systems (CMSs), any of which can provide the framework for a new site. But just as there are many similarities among all the leading CMSs, there are some significant differences, such as how easy they are to install, administer, and build upon, for creating new sites. If developer loyalty is any measure of the present and future success of a CMS, then Drupal should be considered a standout among other CMSs. For instance, its online documentation alone is often cited as a distinguishing advantage. But most developers would prefer learning Drupal from a book, such as Building Powerful and Robust Websites With Drupal 6, by David Mercer." Keep reading below for the rest of Michael's review.
Building Powerful and Robust Websites With Drupal 6
author
David Mercer
pages
380
publisher
Packt Publishing
rating
8/10
reviewer
Michael J. Ross
ISBN
1847192971
summary
A comprehensive, readable, and upbeat guide to Drupal 6.
This particular book was published on 1 February 2008, under the ISBNs 1847192971 and 978-1847192974. It is one of the latest titles from Packt Publishing, a relatively new technical publishing firm that is nonetheless gaining a reputation for its support of the open source software movement, including open source CMSs such as Drupal and Joomla. The firm's "about us" page notes that, with the purchase of every book that covers an open source technology, they pay a royalty to that open source project. A recent article on the Drupal Web site states that the company has raised more than $100,000 through these open source royalties.
In his book's "About the Author" section, David Mercer mentions that this title is a follow-up to a first edition of the book, even though the publication information that follows the title page, mentions nothing about this being a second edition. Most likely he is referring to his 2006 book titled Drupal: Creating Blogs, Forums, Portals, and Community Websites, which covered Drupal version 4.7.
The publisher makes available a Web page devoted to the book, where readers can download the sample code, submit feedback, post a question about the book, read an online excerpt, and obtain a sample chapter, on "Advanced Content," as a PDF file. Readers can also purchase the electronic version of the book, which contains everything found in the print version. For any programmer who plans on developing Drupal sites on a laptop, while away from their home or office technical library, the e-book version could prove especially valuable and convenient.
Building Powerful and Robust Websites With Drupal 6 aims to cover all the major aspects of using Drupal, and is targeted at Drupal beginners, though the author does state in the preface that the book's broad coverage may be helpful to intermediate users. The information spans 380 pages, and is organized into 10 chapters and one appendix, covering: an introduction to Drupal, installation, modules and blocks, site configuration, user access control, creating content, advanced content, themes, advanced features, site management, and site deployment.
The first chapter serves as an introduction to Drupal, and explains the purpose of CMSs, the advantages of Drupal and other open source software, a brief history of Drupal, what Drupal offers to the site developer, and the many types of sites that can be built. The author discusses the reasons for keeping an unfinished site unavailable to visitors, the purpose of a placeholder page, and the importance of planning the intended site ahead of time. Especially useful to the beginner is the second half of the chapter, which discusses the support information available on the Drupal Web site, such as the well-regarded Handbook in the forums. The chapter concludes with a summary that, like all the others in the book, adds no value and could be cut, to make the book more concise. Newcomers to programming in general, and Drupal in particular, may find this chapter to be quite worthwhile; but experienced Drupal developers can skip it.
To the uninitiated, installing a substantial piece of software and getting it running, is usually the first hurdle, and sometimes the most difficult. Chapter 2 explains how to obtain and install Apache, PHP, and MySQL — in the form of Apache2Triad. This is preceded by a brief overview of the underlying needed technologies, which would be helpful to someone unfamiliar with them. However, the diagram on page 33 could certainly use better labeling of the inner components. Also, on page 47, the reader is instructed to look for the file php.ini in "C:\windows"; that may be the case for users of Apache2Triad, but for everyone else, the PHP configuration file is by default located in the PHP root directory. Nevertheless, the chapter explains not only the (relatively few) steps involved in installing Drupal on a Windows server, but also explains how to troubleshoot some of the more common problems that can be encountered. It concludes with an overview of the administration area, and how to create a simple homepage. The author provides the URL that a reader can use in case they accidentally disable user login (including admin login); but the URL (.../user/login) would only work if the reader succeeded in enabling clean URLs.
The critical topics of modules, blocks, menus, and links, are discussed in the third chapter, titled "Basic Functionality." It covers how to enable and configure modules, and how to find and install third-party modules. Three commonly used modules — Forum, Comments, and Search — are examined in detail, as is a third-party module that implements DHTML menus. They are put to use in constructing the sample Web site used throughout the book for illustrative purposes. The chapter's material is comprehensible, but the discussion of primary and secondary links, at the end, could certainly use clarification.
Chapter 4 is straightforward, and covers the fundamentals of site configuration. The author discusses clean URLs, error reporting, file uploading, system event logging and reports, high-level site information, and site maintenance. The subsequent chapter addresses the powerful functionality within Drupal for allowing site administrators to control user access to content — utilizing roles, permissions, users, registration, and access rules. It is a valuable discussion, marred only by a subpar illustration at the beginning (on page 117), and, at the end, the absence of a clear explanation as to the application of host type access rules.
All of the aforementioned topics would be of little value in a site that had no content, and in Chapters 6 and 7, David Mercer discusses simple and advanced content, respectively. The former chapter covers the various types of content, how to work with them, and how to administer content — with particular emphasis on two of the modules that are most applicable to content: Aggregator and Book. The illustration on page 152 does not include the "language" filter criterion mentioned on the next page. The biggest improvement that could be made to this chapter, would be for the author to more frequently specify how in the Drupal menu system the reader can go to the administrative section under discussion — similar to site breadcrumbs. Currently, the reader has to skip back, sometimes several pages, just to discover the steps needed to go to the specific Drupal section. In the subsequent chapter, the author explores taxonomy, the Content Construction Kit (CCK), and handling content posting using HTML and PHP. But the illustration on page 216 is missing the URL filter; the multi-page summary of HTML should be replaced with a few references to quality online HTML guides; the initial HTML code on page 227 is missing from the screenshot; and the image file path on page 228 should not have the localhost hardcoded.
Chapter 8 discusses Drupal's user interface and themes, at some length — in fact, too much length, as this is some of the book's most long-winded material. The CSS review section could be replaced with a few well-chosen links. It is stated that all five available themes have been enabled in the discussion, and yet that is not reflected in any of the screenshots. The penultimate chapter covers some advanced features — OpenID, actions, triggers, languages, localization, performance, caching, throttling, and JavaScript. Apropos of that last topic, the author several times advises the reader to "reload" a theme in order to implement any change to the .info file, but fails to explain how the reader can do the reload. For resolving this question, the book's index is characteristically unhelpful. The final chapter briefly explores Drupal site backup, task scheduling, and other site maintenance issues. The section on the Path and Pathauto modules should be combined with Chapter 4's section on clean URLs. The appendix explains how to deploy a site, and thus should have been located at the beginning of the last chapter.
Overall, the book accomplishes most of which it sets out to achieve. It provides a generous amount of information about Drupal, and discusses the material at an even pace that should not overwhelm even the most inexperienced programmer. Also, the book is packed with screenshots and other illustrations, so the reader can see the pages where they would make changes, and also see the effects. Nonetheless, readers will get even more out of it if they follow along and make the changes in a sample Drupal installation.
Despite the book's merits, it still has some areas of weakness. They include, as alluded to earlier, the index, which is missing some key topics, such as views and clean URLs, to mention only two.
In various places throughout the book, the writing could be markedly improved. Many of the sentences are awkwardly constructed, and consequently more difficult to understand at first glance. This is especially true in the first chapter, which has more high-level description and less technical detail. In addition, many of the sentences are run on, exacerbated by a lack of commas, which would alert the reader when to pause within the sentences. Dashes are frequently used where semicolons are called for. In some instances, new terms are incorrectly put in title case (e.g. on page 8). The terms "which" and "that" are sometimes interchanged incorrectly, as are "that" instead of "who" (e.g., page 126).
In general, the book is too wordy — on a large scale (chapter summaries, and entire paragraphs, that could be excised), and on a small scale (unneeded phrases here and there, such as "hopefully like contributing meaningfully" on page 34). The discussions, while friendly, could certainly use some tightening up and correction. Readers can do without the imagined musings of a Web server and a Google bot. In the aforesaid article on the Drupal site, the author notes, "...I have cut out quite a bit of the old text and trimmed that which remained..." Further cutting and trimming needs to be done.
Like most programming books nowadays, this one contains numerous errata: "DevelopmentEnvironment" (page i), "openID" (page 3), "Javascript" (ditto), "little to now experience" (page 4),....and many many more.
Some of the phrasing in the book is a bit awkward; for instance: "sell it on as" (page 28), "Meg" (for MB; page 35), "before last again" (page 84), and "remit" (presumably to mean boundaries; pages 116 and 117). There are some inconsistencies, such as on page 4, where, in the same CSS rule, we see both "#FF0000" and "#aaa." There are countless compound adjectives lacking hyphens (too many to catalog here). Finally, there are too many exclamation marks that serve no purpose.
This is the first book I have ever seen — and I hope the last — for which the title is never written in title case, but instead in sentence case. This may be of no consequence on the book's title page, where the nature of the title is obvious. But it becomes quite misleading when incorporated into a regular sentence, such as in the second paragraph on page 2, which causes the reader to initially conclude that the author is talking about the process of "Building powerful and robust websites..." Only later does it become clear that the author is not discussing any such building process, but rather the book itself.
Yet aside from these blemishes, the book does an excellent job of covering all the important topics that would be of interest to beginning and intermediate Drupal programmers. The author clearly has a genuine passion for Drupal, and frequently encourages readers to contribute to the Drupal community and its growing body of knowledge. Building Powerful and Robust Websites With Drupal 6 is a comprehensive, approachable, and valuable guide to making the most of Drupal — easily recommendable.
Michael J. Ross is a Web developer, writer, and freelance editor.
You can purchase Building Powerful and Robust Websites With Drupal 6 from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
In his book's "About the Author" section, David Mercer mentions that this title is a follow-up to a first edition of the book, even though the publication information that follows the title page, mentions nothing about this being a second edition. Most likely he is referring to his 2006 book titled Drupal: Creating Blogs, Forums, Portals, and Community Websites, which covered Drupal version 4.7.
The publisher makes available a Web page devoted to the book, where readers can download the sample code, submit feedback, post a question about the book, read an online excerpt, and obtain a sample chapter, on "Advanced Content," as a PDF file. Readers can also purchase the electronic version of the book, which contains everything found in the print version. For any programmer who plans on developing Drupal sites on a laptop, while away from their home or office technical library, the e-book version could prove especially valuable and convenient.
Building Powerful and Robust Websites With Drupal 6 aims to cover all the major aspects of using Drupal, and is targeted at Drupal beginners, though the author does state in the preface that the book's broad coverage may be helpful to intermediate users. The information spans 380 pages, and is organized into 10 chapters and one appendix, covering: an introduction to Drupal, installation, modules and blocks, site configuration, user access control, creating content, advanced content, themes, advanced features, site management, and site deployment.
The first chapter serves as an introduction to Drupal, and explains the purpose of CMSs, the advantages of Drupal and other open source software, a brief history of Drupal, what Drupal offers to the site developer, and the many types of sites that can be built. The author discusses the reasons for keeping an unfinished site unavailable to visitors, the purpose of a placeholder page, and the importance of planning the intended site ahead of time. Especially useful to the beginner is the second half of the chapter, which discusses the support information available on the Drupal Web site, such as the well-regarded Handbook in the forums. The chapter concludes with a summary that, like all the others in the book, adds no value and could be cut, to make the book more concise. Newcomers to programming in general, and Drupal in particular, may find this chapter to be quite worthwhile; but experienced Drupal developers can skip it.
To the uninitiated, installing a substantial piece of software and getting it running, is usually the first hurdle, and sometimes the most difficult. Chapter 2 explains how to obtain and install Apache, PHP, and MySQL — in the form of Apache2Triad. This is preceded by a brief overview of the underlying needed technologies, which would be helpful to someone unfamiliar with them. However, the diagram on page 33 could certainly use better labeling of the inner components. Also, on page 47, the reader is instructed to look for the file php.ini in "C:\windows"; that may be the case for users of Apache2Triad, but for everyone else, the PHP configuration file is by default located in the PHP root directory. Nevertheless, the chapter explains not only the (relatively few) steps involved in installing Drupal on a Windows server, but also explains how to troubleshoot some of the more common problems that can be encountered. It concludes with an overview of the administration area, and how to create a simple homepage. The author provides the URL that a reader can use in case they accidentally disable user login (including admin login); but the URL (.../user/login) would only work if the reader succeeded in enabling clean URLs.
The critical topics of modules, blocks, menus, and links, are discussed in the third chapter, titled "Basic Functionality." It covers how to enable and configure modules, and how to find and install third-party modules. Three commonly used modules — Forum, Comments, and Search — are examined in detail, as is a third-party module that implements DHTML menus. They are put to use in constructing the sample Web site used throughout the book for illustrative purposes. The chapter's material is comprehensible, but the discussion of primary and secondary links, at the end, could certainly use clarification.
Chapter 4 is straightforward, and covers the fundamentals of site configuration. The author discusses clean URLs, error reporting, file uploading, system event logging and reports, high-level site information, and site maintenance. The subsequent chapter addresses the powerful functionality within Drupal for allowing site administrators to control user access to content — utilizing roles, permissions, users, registration, and access rules. It is a valuable discussion, marred only by a subpar illustration at the beginning (on page 117), and, at the end, the absence of a clear explanation as to the application of host type access rules.
All of the aforementioned topics would be of little value in a site that had no content, and in Chapters 6 and 7, David Mercer discusses simple and advanced content, respectively. The former chapter covers the various types of content, how to work with them, and how to administer content — with particular emphasis on two of the modules that are most applicable to content: Aggregator and Book. The illustration on page 152 does not include the "language" filter criterion mentioned on the next page. The biggest improvement that could be made to this chapter, would be for the author to more frequently specify how in the Drupal menu system the reader can go to the administrative section under discussion — similar to site breadcrumbs. Currently, the reader has to skip back, sometimes several pages, just to discover the steps needed to go to the specific Drupal section. In the subsequent chapter, the author explores taxonomy, the Content Construction Kit (CCK), and handling content posting using HTML and PHP. But the illustration on page 216 is missing the URL filter; the multi-page summary of HTML should be replaced with a few references to quality online HTML guides; the initial HTML code on page 227 is missing from the screenshot; and the image file path on page 228 should not have the localhost hardcoded.
Chapter 8 discusses Drupal's user interface and themes, at some length — in fact, too much length, as this is some of the book's most long-winded material. The CSS review section could be replaced with a few well-chosen links. It is stated that all five available themes have been enabled in the discussion, and yet that is not reflected in any of the screenshots. The penultimate chapter covers some advanced features — OpenID, actions, triggers, languages, localization, performance, caching, throttling, and JavaScript. Apropos of that last topic, the author several times advises the reader to "reload" a theme in order to implement any change to the .info file, but fails to explain how the reader can do the reload. For resolving this question, the book's index is characteristically unhelpful. The final chapter briefly explores Drupal site backup, task scheduling, and other site maintenance issues. The section on the Path and Pathauto modules should be combined with Chapter 4's section on clean URLs. The appendix explains how to deploy a site, and thus should have been located at the beginning of the last chapter.
Overall, the book accomplishes most of which it sets out to achieve. It provides a generous amount of information about Drupal, and discusses the material at an even pace that should not overwhelm even the most inexperienced programmer. Also, the book is packed with screenshots and other illustrations, so the reader can see the pages where they would make changes, and also see the effects. Nonetheless, readers will get even more out of it if they follow along and make the changes in a sample Drupal installation.
Despite the book's merits, it still has some areas of weakness. They include, as alluded to earlier, the index, which is missing some key topics, such as views and clean URLs, to mention only two.
In various places throughout the book, the writing could be markedly improved. Many of the sentences are awkwardly constructed, and consequently more difficult to understand at first glance. This is especially true in the first chapter, which has more high-level description and less technical detail. In addition, many of the sentences are run on, exacerbated by a lack of commas, which would alert the reader when to pause within the sentences. Dashes are frequently used where semicolons are called for. In some instances, new terms are incorrectly put in title case (e.g. on page 8). The terms "which" and "that" are sometimes interchanged incorrectly, as are "that" instead of "who" (e.g., page 126).
In general, the book is too wordy — on a large scale (chapter summaries, and entire paragraphs, that could be excised), and on a small scale (unneeded phrases here and there, such as "hopefully like contributing meaningfully" on page 34). The discussions, while friendly, could certainly use some tightening up and correction. Readers can do without the imagined musings of a Web server and a Google bot. In the aforesaid article on the Drupal site, the author notes, "...I have cut out quite a bit of the old text and trimmed that which remained..." Further cutting and trimming needs to be done.
Like most programming books nowadays, this one contains numerous errata: "DevelopmentEnvironment" (page i), "openID" (page 3), "Javascript" (ditto), "little to now experience" (page 4),....and many many more.
Some of the phrasing in the book is a bit awkward; for instance: "sell it on as" (page 28), "Meg" (for MB; page 35), "before last again" (page 84), and "remit" (presumably to mean boundaries; pages 116 and 117). There are some inconsistencies, such as on page 4, where, in the same CSS rule, we see both "#FF0000" and "#aaa." There are countless compound adjectives lacking hyphens (too many to catalog here). Finally, there are too many exclamation marks that serve no purpose.
This is the first book I have ever seen — and I hope the last — for which the title is never written in title case, but instead in sentence case. This may be of no consequence on the book's title page, where the nature of the title is obvious. But it becomes quite misleading when incorporated into a regular sentence, such as in the second paragraph on page 2, which causes the reader to initially conclude that the author is talking about the process of "Building powerful and robust websites..." Only later does it become clear that the author is not discussing any such building process, but rather the book itself.
Yet aside from these blemishes, the book does an excellent job of covering all the important topics that would be of interest to beginning and intermediate Drupal programmers. The author clearly has a genuine passion for Drupal, and frequently encourages readers to contribute to the Drupal community and its growing body of knowledge. Building Powerful and Robust Websites With Drupal 6 is a comprehensive, approachable, and valuable guide to making the most of Drupal — easily recommendable.
Michael J. Ross is a Web developer, writer, and freelance editor.
You can purchase Building Powerful and Robust Websites With Drupal 6 from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
In a related development to a story posted eariler today Taco has bought copies for the entire /. dev team.
I tried Joomla and mambo once and was somewhat impressed. may be Drupal is better, but is it? How easy is its installation? What advantages does it have over the other two? A slashdotter wants to know.
It sounds way too much like Ru Paul
Agent K: A *person* is smart. People are dumb, stupid, panicky animals, and you know it.
I looked at Drupal and Joomal and found sites powered by both of them to be lacking for my needs. Right now I'm in the initial stages of transitioning a prominent not-for-profit site I administer to Expression Engine, which seems to be nicer than anything else out there than any CMS I have looked at. Of course, it isn't free like many of the alternatives, but it seems to deliver exactly what I want in terms of functionality, visual appeal and extensibility.
Part of the hardcore faithful who believed in Apple long before it was cool again to do so
Drupal is a great tool if you want to do what Drupal already does and slap a new coat of paint on it, pretending it's a whole new look and feel.
You can move modules from one column to another to another to the footer. You can plug in any of a large variety of different modules and have them do exactly what they were designed for. You can make the blue bits a different color and up font sizes on your headers with awesome power.
For the vast majority of sites, where true design and functionality customization isn't really key, it's an awesome tool and all the better for being free. If a PTA wants a site up, a local sports team needs something, even an engineering company that doesn't care much about design and just needs an informational website, it's great at doing that and doing it very quickly.
The problem is, the moment you make the mistake of thinking you're going to add fields to modules, apply true custom skins to them, rearrange their content, etc. on top of an already largely built framework, it very quickly falls apart. You get two choices at that point: add on systems that kinda sorta give you some of what you need but still leave you limited or hacking in to the source code that's really not built with that kind of customization in mind.
In short: It's a great system so long as you use it for what it's good for. Make the mistake of thinking you can just add a few tweaks beyond that and build something outside of its realm and you open yourself up for a whole world of hurt.
Sorry about the AC - given I work with Drupal as one of several CMSs, professionally, it's not wise to be seen to be bashing a tool you [selectively] sell.
Hi,
I was having a discussion not long ago with a colleague. I was proposing using Drupal has the framework for a web application. I've done it with a lot of success in other small projects.
He objected that it was too big for what we needed. At the end, he agreed that we needed a framework. So he proposed zend. I know that zend can be used with Drupal to make modules.
For me, building a Drupal module would make sense. The application is a big RSS aggregator. We could use drupal for user management, right management and others. But more importantly, we can use Drupal also has a framework. We can even use Zend over it.
What do you think about it? Would you base a web application that need user, right management and other standard web stuff on Drupal even if the core business of the application is not really supported by Drupal?
I've just spent the morning looking at CMSs, in preparation for moving our company website over, so this review is very timely for me. We have a fairly standard small business site, lots of static content, a number of reply forms, etc. We're not looking to build a community or anything like that, so I'm leaning towards something like CMS Made Simple. My question is, for a site like this, should I even bother moving to a CMS or stick to a straight html/CSS static site? It would be nice to have other people be able to update content, but would the initial learning curve & added complexity be worth it? Anyone have any experience with this move?
(BTW, the site I'm discussing is not the one in my sig.)
Yup. May be powerful and robust, but all the core is super heavy and not so easy to extend.
Don't even talk about "Joomla" and "Mambo". They're a nightmare to maintain, and a royal pain in the ASS for building an SEO friendly site with friendly URL's that don't look like a matrix reloaded computer screenshot.
Sigh.
Newsfollow.com
I'm a writer... previously published a decade or so ago, and now polishing my skills once more to re-enter the market.
Michael J. Ross would be a perfect editor for me; he's ruthless and cuts right to the problems in a chunk of prose. However, judging by this article, I would pay a large sum of money to ensure he never reviewed my book.
If he has an overall favorable opinion, he should allow that to be the tone, with his reservations being an undertone, suggestions for improvement, and a notice to the reader that the book needs a little more polishing. I felt his tone was overly negative.
If you love something, or even like it, show this in your review...
Then again, perhaps I'm being overly critical.
*Note: This post contains some obvious cliches, grammatical errors, and dodgy spelling choices.
You can't talk about Wikipedia's flaws on Wikipedia
what the hell is with this clear advertisement? Can I advertise my asshole?
I've deployed a few websites using Drupal, and it's great once you understand its framework, the interaction of "modules" and "themes", the concept of a objects within drupal (nodes, users, etc), its permissions scheme. But that's a huge uphill climb for anyone other than a hacker.
I will say that I was able to configure one fairly customized blog using freely available modules and without touching a line of PHP code, which was nice.
However, if you want to customize the behavior of the CMS at all, you really have to start digging into the core, and breaking a few things.
This is why my current website is still Drupal 5.3, and why I don't see myself migrating anytime soon.
To anyone considering Drupal for their project I simply say this: If you must use Drupal, do it yourself. All Drupal evangelists are coincidentally Drupal consultants. The CMS solution they pitch as being effortless will turn into what any software customization project is -- work. If you don't know Drupal, you'll either have to learn it or have to pay someone to do it. Also, don't look too deeply into its architecture unless you don't cry enough.
Ahhh ... so this is what the latest in computer-generated trolling looks like? I had kind of assumed CGT would be more impressive and entertaining by now.
...on the needs of your project. I spent months with Drupal, tracking the boards, reading the docs, listening to many podcast series. But I came away feeling that, despite its many features and modules, it's quite kludgey. I've also looked at Joomla and give it great marks for also being powerful and pretty, if limiting for some tasks. Lower-level MVC frameworks such as CakePHP, Rails, etc. are good for when you would like to manage the CMS side and let the framework manage the infrastructure. Zend Framework is my choice for its extensive capabilities while not forcing you into any particular paradigm. I'm sure that this and other posts will cause a "Battle of the Frameworks". So, I will say again that it all depends on the needs of your project. All frameworks and all CMSs have their merits. I was just putting forth my opinion in light of my particular development needs.
It's pretty easy to edit the CSS in the theme files and achieve whatever custom look you want. If you can do it on a static web page, you can get Drupal to output it. I'm in the process of converting a static website to Drupal, and I've had no problem replicating the look and feel of the current static page precisely.
Now, if you're starting out without knowing any CSS or unwilling to customize a theme from the source, you are always going to be limited to the themes and options that someone else is kind enough to provide. But aside from there being more potential themes for some CMS engines (like Wordpress), I've not experienced any drawbacks in Drupal from the standpoint of page design.
How is modx compared to joomla and drupal ?
I, for one, would never touch Drupal again. It might be better than Joomla, but for anything beyond a small site, Drupal is inadequate. Customization requires many work arounds. The core is very DB driven, and they only support MySQL and Postgres (to a small extent). Want to use Oracle? Good luck. The framework is not flexible enough.
Never again would I use Drupal unless it was for an out-of-the-box site.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
As an aside for those interested in how easy it is to setup or how much you can customize it. I setup this site for my last job at http://www.gwca.org/ (its been a bit butchered since then so your mileage may vary) and it had a steep learning curve but was extremely powerful and very easy to customize.
I bought the book and wish I didn't. The book is more for folks who don't know PHP, CSS, HTML, etc.
The Handbooks on the Drupal site are much better than the book. You can find the beginner's cookbook here...
http://drupal.org/handbook/customization/tutorials/beginners-cookbook
And the tutorials here...
http://drupal.org/handbook/customization/tutorials
Drupal is good for quick website development and comes with a ton of modules for added functionality. It's a good way to go if you know PHP or if you want to provide an easy way for non-HTML literate folks to add content. Version 6 and above are better architected and nicely modular. You can get a lot of function without reinventing the wheel and if you need more functionality than is available in the wealth of core modules and contributed modules you can develop and plug in your own modules. And if your modules are any good you can contribute them back to the user community.
Of course, if you're not interested in productivity and you feel a need to reinvent wheels and do everything yourself then you just ignore open source CMS in general.
"Many of the sentences are awkwardly constructed, and consequently more difficult to understand at first glance."
Back at ya.
"In addition, many of the sentences are run on, exacerbated by a lack of commas, which would alert the reader when to pause within the sentences."
The hilarious irony of your criticism of this author's writing style really made my day. Please clean up your own act before criticizing others.
Drupal modules are software components, not things that are displayed on pages. Perhaps you mean blocks? They're themable. Which you would know if you read the documentation. As for the rest of your comment, which currently is moderated "interesting," it displays a remarkably shallow understanding of the platform for someone who claims to be selling it. Learn to use the tool before you criticize it.
Funny thing is: I don't like PHP. Many other programmers don't like PHP as well. But there's no CMS out there that comes near to some of the PHP CMS like MODx or Drupal. WTF? Is everybody else writing yet another hand-made CMS on his own, over and over again?
Yup. May be powerful and robust, but all the core is super heavy and not so easy to extend.
If you mean installing modules, I've found that to be pretty easy.
If you mean writing modules... wel I've not done a lot of work there but I did not find it so hard to port a module written for Drupal 5.x to 6.x, and the API looks OK from what little I saw. Between setting up blocks right and using CSS well, you can customize a site pretty well.
Don't even talk about "Joomla" and "Mambo". They're a nightmare to maintain, and a royal pain in the ASS for building an SEO friendly site with friendly URL's that don't look like a matrix reloaded computer screenshot.
I'm not sure why then you did not mention that Drupal makes it very easy to have SEO friendly links all over the site. That was one of the features most critical to me in looking at CMS applications, not because I care so much about search engines parsing it as I simply like human readable URL's when I visit a site instead of nasty GUIDs all over the place.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
I'm using Drupal 6 to develop a site right now. I like it quite a bit, I like especially the ease of creating human friendly (SEO) URLs for each page, and also for the caching you can enable.
But, one thing to note is that using Drupal 6 is harder than it should be right now because a number of the more interesting Drupal modules are still only for version 5.x, and you can't just load them in. If you really need a module check the dev notes as there may be patches to let it work with 6.x (as is true of the SMTP module which you'll want to use an external SMTP server like GMail).
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Maybe I'll give it a try when PostgreSQL is properly supported.
Ha ha. (Actually, in it's latest incarnation it's quite good - am I allowed to say that on Slashdot?) Magnolia, Liferay and Alfresco are worth checking out in the Java space. Community wise you're going to have to integrate other features though.
-- For evil to triumph it is enough that good men do nothing.
When you approach your next potential client of your new wiz-bang productivity tool, hammer the sale home with a wink and a smile by telling them:
"Oh, and by the way, as an added bonus my product has a steep learning curve."
I don't think you really know what you're talking about. It almost sounds like you're talking about Joomla.
Drupal is great for extending functionality. You didn't even mention CCK, which is an incredibly powerful module that lets you add fields to existing content types.
Drupal can be fully customized through CSS and modules. The architecture is built just for this.
Somewhat contrary to your post, Drupal is actually difficult to use if you're new. Its true power is realized after you become familiar with it.
"super heavy"? Take a look at http://buytaert.net/cms-code-base-comparison ... Drupal is less than half the size of even Wordpress.
Not easy to extend? The Drupal API site shows you how. Thousands of module developers prove it's not rocket science.
Yeah buddy, whatever.
Honestly, why people that seem somewhat intelligent have this idiotic idea that their anecdotal evidence is proof of anything?
IANAL but write like a drunk one.
How can I build a corporate website in Drupal 6 if LDAP ISN'T READY FOR 6? Active Directory, OpenLDAP, Fedora Server....nada.
Big ball drop here...
I wish all these web systems hadn't abducted the term CMS. It used to mean something that provided very fine grained control for different types of "enterprise" (in the truest meaning of the word - big organizations with heterogeneous systems and requirements) uses. Since these Web CMSs came along the term has been significantly diluted.
Compare the feature set of Drupal to something like Alfresco for anything past Web based content - polls and blog posts - and you'll see what I mean (Dries, the founder of Drupal, admitted this).
Anyway, I used Drupal for some projects at version 4.something. It's success is undeniable and many large sites are using it, but I think if you're not a core developer and need anything outside of what the core provides, you're in for a world of sorrow and pain, aka hacks and patches and blatant disregard. Among other things, PHP just isn't a good language to develop a large stable API in, and Drupal's systems of "hooks" just makes things all the more confusing.
The fact that the core developers intentionally disregard compatibility between even point releases means most modules and customizations get orphaned quickly.
I've since moved on to Java based systems, it's not for every use, but there are plenty of high quality mid level libraries that give you a good mix of control and re-use, and at least I can tell if something is outright broken after a release, know if a function is dealing with the right kind of data, and do refactoring. As well, the community is often more professional, though there is certainly a lot more up front learning and design required.
So which Java CMS did you move too, do you recommend any? Must be OSS. Alfresco is free for trial only 30 days or so
I want something Java ans OSS that have the potential of replacing Sharepoint. i.e. use to create departmental site. Share documents, news, information about project, Active Directory authentication.
You guys need to look at Xaraya. Linux.com is using Xaraya and it's never gotten the recognition it deserves. It is extremely customizable to the point of making other systems laughable. It is completed templated and has an awesome feature called Dynamic Data that will allow you to add data fields to any existing module by using the DD hook. Drupal is nice too, but for customization, I prefer Xaraya.
Hmm? Alfresco is totally Open Source as far as I know, with commercial support options. Another alternative is Jahia, though some of the more important bits are closed.
But in my case, since my app wasn't mainly a CMS, I ended up going with a collection of about 30 open source Java libraries which I find quite nice. Instead of hoping Drupal would do what I want and hacking it (in the bad sense of the word) in the meantime, it gives a lot of control, and I get very fine grained best of breed approaches to each problem.
I'm afraid what I'm working on doesn't really relate to general CMS requirements, though I'd be interested in a focus on the best solution. The fact is many "enterprise" CMSs are very heavy, and that's why organizations go with solutions like Drupal, since it's simple and self contained.
I personally have found Drupal to be pretty confusing. I'm no web expert by any means, but from an average-joe designer standpoint, it was very difficult for me to use and figure out. Joomla wasn't too bad for the most part. The administrator section was a lot easier to use, but of course a wee bit of documentation was necessary to figure out certain things. I'm personally looking for an incredibly easy to use CMS that is meant specifically for people with really simple websites. I came across CMSMS (CMS Made Simple) and it was pretty nice all things considered. I could imagine myself customizing the CSS to make some cool themes, but most importantly, almost anybody could modify their webpage without having to cycle through tons of options to find what they're looking for. The only problem was that it ran incredibly slow so I ditched it. My server runs other MySQL backend websites without any issues so I'm assuming there's some improperly written queries in the software. I'm curious to know if there's any solution to this, or if there are any other really, and I mean REALLY easy to use CMS's out there. Sounds cheesey, but sometimes we all don't need super-duper CMS sites with advertisement portals and user management. I just want a 5 to 15 page website that the customer can edit themselves that also has a media manager.
*plays the Apogee theme song music*
The only difference is that it's written in Perl; still; I like WebGUI as much as I like Drupal.
I've always liked Coranto, also written in Perl but a lot more user-friendly & much smaller in footprint.
cmsmatrix is also coincidentially hosted by plainblack if my mind doesn't leave me now...
--- I am known for the ones who want to find me on the net. Is that a privacy risk or a privilege? One might wonder..
I used both during last years and I must say that APEX is much, much better if you want to design something nonstandard (i.e. missing in Drupal out of box). I wanted some menu items to be shown only to certain users in Drupal... arrrgh, what a problem doing a simple task! While authentication and authorization methods in APEX are easy to use and understand (and you can create your own authorization method and bind it to the page OR any element, be it tab on the page or button, or report, whatever -- if the user passess authorization he sees the item, it's that simple). The only drawback of APEX is that you are stuck either with free Oracle XE with its limitations (1gb of ram and 4gb of disk) or with non-legal copies of recent oracle without access to the patches. Unfortunately there still no open-source projects to create a free version of APEX for PostgreSQL (it's quite possible because PostgreSQL is mature enough to handle such system, with all triggers and stored procedures)...
Recently we managed to phase out our corporate drupal-based site. It was close to impossible to upgrade from Drupal 4.x up to 5.x (and 6.x) because of custom modules and we have no human resources to recode someone's crap from version to version every year.
i cant be the only person that is sick of this mandatory chapter in almost every book i come across. i would think if you're a developer setting up a complex site running drupal 6, you probably already have your hosting platform set up, or if not, are capable of checking one of a million guides on the internet.
it seems like nothing short of padding to include this. maybe if there are discussions with regards tuning it up to run with heavy load, but basic setup should really be left out of technical books like this.
on a side note, i agree with the developer loyalty thing, i've been using drupal for a few years and love it...
jaymz
Why should we bother again and again to install the CMS on our own? paying for LAMP provider, taking care of all the boring details of installing and maintaining the software?? Modern CMSs should take the course of CMSs like Novoya.com (my favourite). Building common web sites should be a pieace of cake even for my mom, and not a nightmare (like in drupal's VERY complicated CMS and "node" concept) I had tried many of them in my career: Drupal, Joomla,Mambo,you name it. They all suffer the need of close baby sitting (constantly be aware of new bugs and holes, backups, using the correct software versions, resolve conflicts in extensions etc). It is just not how modern service should be provided.