Slashdot Mirror


Drupal Multimedia

Michael J. Ross writes "Of the leading content management systems used by developers for creating websites, Drupal is highly regarded for many characteristics, including a much smaller initial footprint, compared to Joomla and other CMSs. Yet some developers find this a disadvantage as well, because one of the most common criticisms leveled against Drupal is its lack of built-in support for images and multimedia elements — thereby forcing new Drupal developers to choose from the thousands of contributed Drupal modules those that would be optimal for implementing their websites' multimedia functionality. Aaron Winborn's book Drupal Multimedia is intended as a guide to help such developers." Keep reading for the rest of Michael's review. Drupal Multimedia author Aaron Winborn pages 264 publisher Packt Publishing rating 7/10 reviewer Michael J. Ross ISBN 978-1-847194-60-2 summary A guidebook for adding images, videos, and audio content to Drupal sites The book was put out by Packt Publishing on 30 October 2008, under the ISBN 978-1-847194-60-2. On the publisher's book page, visitors can learn more details about the book and its author, purchase the electronic or print editions of the book (or both, at a discount), download the sample source code, send feedback or questions to the publisher, read the book's table of contents, or download a sample chapter for free ("Third Party Video") in PDF format. As with all other Packt Publishing titles, the errata is annoyingly not available directly from the book page; instead the visitor must go to the general Packt Publishing support page, find the title in a lengthy drop-down list box, click a button, and finally click another link (the one that should have been on the book page from the start) — only to have the errata displayed in a pop-up window. Among all the technical book publishers, Packt's procedure for accessing errata is surely the most tedious, and one can only hope it will be improved in the future. As of this writing, only one erratum has been reported. It is listed as being on "page 0," but that instead should read "page 34" (an erratum in an erratum!). Speaking of online resources, one would expect the author's own site to have further information on the book, but there does not appear to be any there.

Drupal Multimedia is a fairly slender volume, at 264 pages, no doubt because it focuses on a limited subject area — implementing multimedia with some key contributed modules — as opposed to most of the recent spate of Drupal books, some of which try to cover every major aspect of the CMS. The material in Aaron Winborn's book is organized into eleven chapters, addressing most if not all of the key topics within the chosen subject area: Drupal basics; images, galleries, and slideshows; image theming and effects; third-party and local video; file management; audio nodes and fields; theming audio; and the future of multimedia in Drupal. The book concludes with a skimpy five-page index, which fails to contain such basic entries as Flash, FLV, SWF, sprites, star ratings, slideshows, and countless others. A robust index is especially critical for any technical book, such as this one, that divides related topics among multiple chapters, and has section and subsection names that in some cases are quite similar to one another and thus could be easily confused.

Because this book is geared more toward programmers new to Drupal, and not well-versed veterans, the first chapter — the second longest in the book — introduces the reader to the core concepts of Drupal (nodes, regions, blocks, themes, and modules — core and contributed) as well as two essential modules (CCK and Views). The explanations do not go into any great detail, but should be enough to give any Drupal newbie a head start. Nonetheless, readers may be confused by the screenshots on pages 16 through 19, which appear to be from Drupal 5. Also, the brief coverage of views arguments is inadequate, and needs to be beefed to be useful later in the book. For creating a new theme, the author advises copying wholesale an existing theme; instead, a sub-theme is a much better approach. Chapter 1 wraps up with a discussion of some basic concepts in Drupal theming, which makes puzzling the title of the section, "Advanced Theming." Speaking of themes, readers should note that when the author refers to "theming" an image or video, he means making the uploaded file display as content on the node's page (and not just exist as an attachment to that node).

For many programmers new to Drupal, the first hurdle they encounter is how to add an image to the content of a page or story — a seemingly trivial task that is built into most major CMSs — without writing HTML and hard coding the path of an image file they FTP-ed to the server. Drupal version 6 and presumably all prior versions, do not have native support for uploading and embedding in-line images. In his second chapter, the author explains how one can create image galleries, teaser thumbnails, and images embedded in content. However, in the discussion on page 45, some details are incorrect, such as the label for the "Save" button (three times) and the presence of the galleries drop-down list. Readers will undoubtedly be confused by two additional inaccuracies: There is no Navigation menu item for displaying the "image galleries" created by default, because initially the image_gallery view has no menu assigned in the Gallery page settings. Secondly, the gallery description is not shown on the gallery page; in fact, it is not even listed as an available view field. The section titled "Image Gallery Settings" suggests that the author may have been using an older version of the Image module. But this probably does not explain the erroneous statement on page 56, that "image nodes created with Image attach will automatically be marked as not published." The chapter concludes with an explanation of how to embed an image in content, using manually inserted image tags, or the ImageAssist module, optionally supplemented with a WYSIWYG HTML editor, such as TinyMCE. The fourth chapter looks at how to theme images, and discusses — it greatly varying levels of detail — style overriding, the Firebug Firefox extension, the Theme Developer module, image nodes, image-based rollover menus, sprites, light boxes, star ratings, slideshows, and various special effects: drop shadows, magnification, and watermarks.

The subsequent chapter — oddly titled "Developing for Images" — extends the discussion by showing how to insert images as fields utilizing ImageField and several supporting modules. One of those modules is referred to as "FileField Tokens" (page 70), but there is no such module; the author probably meant ImageField Tokens. Also extending the previously noted problem of non-Drupal 6 content, is the screenshot for "Display fields," on page 83, as well as the narrative, which appear to be pre-version 6. The latter half of the chapter delves into how to create galleries and slideshows (using views), user pictures, and images associated with taxonomy terms.

With Chapters 5 and 6, the author shifts attention to what is perhaps the second most commonly used type of multimedia on websites nowadays — video — with the former of those chapters devoted to third-party videos (such as content hosted on YouTube), while the latter chapter is devoted to "local video" (local in the sense of hosted on one's own remote Web server — not one's local development machine). The author demonstrates how to utilize a YouTube-hosted video, first using core Drupal modules only, then using the Embedded Video Field module. For using local video files, the author shows how to use the FileField module so the user can upload QuickTime video files. Unfortunately, the instructions on page 146 may prove confusing to beginners, since it is not entirely clear as to whether the later, more-detailed paragraphs are repeating earlier instructions, or specifying something new. More significantly, the use of the FileField module necessitates writing theme PHP code, just to have the video display on the page — which less technical readers may not feel comfortable attempting on their sites. The second part of the chapter may be more useful to the typical reader, because it covers how to embed Flash videos, a more popular format. The author advocates the use of the jQuery Media module (which he created) in conjunction with the jQ module. Unfortunately for the reader, the details of implementing this approach are glossed over at the end of the chapter, with only meager instructions ("... add .node .content a to the classes."), and without any illustrative example. No explanation is provided as to why this particular JavaScript-dependent solution is recommended, as opposed to a more straightforward one, such as the Flash Node module — which is far less problematic for FLV files. (By the way, the author states that he and some other developers are creating a fully GPL media player module and that there is a development version available of this Media Player module. But there is no such version on that page, and the situation may never change, because the project appears to have fizzled in August 2008, judging by the comments on the Drupal.org site and the author's site.)

In written tutorials, videocasts, and other discussions of Drupal multimedia, one important area that is often neglected is asset management. This includes such seemingly mundane matters as where in a Drupal site's file system one should place plug-in files and even the uploaded multimedia files themselves. A more far-reaching topic is how to best associate multimedia assets with nodes so they can be accessed by various modules — for instance, as stand-alone content types versus CCK fields. Chapter 7 examines some of these topics, first discussing how to create and theme nodes whose associated videos can be used elsewhere on a site, such as in a gallery — using the Embedded Media Field and Node Reference modules. However, some readers may become frustrated because a couple critical steps are skipped, and, even worse, no guidance is provided as to how to make the video show up on a node reference content page, or what content provider selection to use (since "Local" is not an option). Next the author considers how to set access to videos by user role — using the Asset module. Unfortunately, the reader is apparently not shown how to do anything useful with video content uploaded and managed using the Asset module, including the scenario proposed at the beginning of the section. (Incidentally, one might assume that the author's solution would use the Asset Embedded Media submodule, but it is not compatible with the latest version of Drupal 6.) The Media Mover module, and its many submodules, offer an alternate method of video asset management, and the author shows how to e-mail a video from a mobile phone, to be automatically attached to a new blog post. The chapter concludes with a brief look at Kaltura, an open-source platform for storing and editing multimedia.

Some Web developers and end-users may consider online audio as the poor cousin of video. In truth, audio-only content plays a key role in many Web applications — from podcasts embedded in RSS feeds, to sample tracks on music sellers' websites. The subsequent three chapters of the book are devoted to managing audio content within Drupal using several resources and solutions — specifically, the Audio, getID3, FileField, jQuery Media, Embedded Media Field, XSPF Playlist, and Views modules

In the last chapter, titled "The Future of Drupal Multimedia," the author speculates as to what media-related capabilities he thinks we will likely find in Drupal 7 and beyond — such as native file handling (via hook_file) and multimedia support in core Drupal, the merging or deprecation of non-FileField modules, dissociation of data from nodes, improved module interfaces and usability, embeddable widgets (for data distribution), semantic multimedia (microformats, RDF, and taxonomy-powered tagging), mobile Web access, virtual reality (such as Second Life), tactile and olfactory media, and motion sensing (such as the Wii Remote controller).

One laudable feature of this book is the inclusion of numerous screenshots, which can be quite reassuring to a reader getting lost in the technical minutia of any particular recipe. Also helpful is the manner in which the author, for the most part, keeps the reader informed as to all configuration settings — and where to find them within the Drupal administration interface — that the reader must or may want to modify, depending on his or her needs. Technical books that fail to do this can be extremely frustrating to anyone trying to learn a nontrivial technology.

Yet there are some major flaws with the book: Far too much of the material suggests that the author was using Drupal 5. Aside from the screenshots mentioned earlier, sections of the text point in that direction, such as the statement, "The multiple image issue might be taken care of by Drupal 6" (page 56). Fortunately, none of these gaffes prevent the reader from learning how to perform the tasks using version 6. The second and more important flaw is the poor coverage of Flash content, as detailed above. A follow-up edition to the book, in which all of these problems are resolved, would be most welcome and valuable.

A revision would also be an opportunity to fix the grammatical errors that should have been caught in the proofreading process. For instance, the fourth complete sentence on page 11, is missing a verb. Errata include "Autrhor" (credits page), "you [have] learned" (page 2), ". you'll" (page 2), a ")" without a "(" to match it (page 17), "isin" (page 31), "it [is] installed" (page 32), "provide files" (page 33; should instead read "provide functions"), "hierarchal" (page 46), "formated" (page 57), "[the] FTP" (page 75), "menu — By" (page 117), "going a view" (page 119), "quicktime" (page 146), and "[Submit] Audio" (page 179). In addition, there are eight pairs of adjacent words missing their separating spaces — five on page 159, and three more on page 174.

As seen in many other Packt Publishing titles, this one contains excessive usage of inappropriate title case (e.g., several on page 8 and 9 alone), though occasionally title case is neglected (e.g., "Image attach" throughout the book). In addition, some of the phrasing is rather awkward, which may pose no barrier to a reader who already understands the particular idea being discussed in the text, but could prove a real detriment to anyone unfamiliar with that idea. For instance, on page 36, the author states that "Often you may wish to override a theme that is not provided as a file in the default theme." But no theme is contained within a single file, and one does not override themes anyway; rather, one can disable a theme, or modify a copy of it, or create a variation as a sub-theme.

Yet overall, this book's strengths outweigh its weaknesses. For Drupal developers who wish to add image, audio, and video content to their sites, Drupal Multimedia is a useful resource with which to begin.

Michael J. Ross is a freelance Web developer and writer.

You can purchase Drupal Multimedia from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

130 comments

  1. Drupal Sux by Ethanol-fueled · · Score: 5, Interesting

    Drupal sucks balls. It's very counterintuitive for something that claims to be simple and modular. Behaviors are inconsistent across themes, half of the available themes are broken, TFS is right about Drupal not supporting jack shit right off the bat. Enabling the modules requires manual downloads and dependency hells. The notion of using the site as you build it is shit, and using an "admin theme" just causes trouble because of the inconsistent behaviors across themes. Even its own advocates recommend just writing your own PHP and CSS.

    Can somebody please develop a CMS for people without Asperger's ?!

    1. Re:Drupal Sux by nilbog · · Score: 2, Insightful

      Yes, because you lack the ability to understand something, it must suck. I bet basic arithmetic, shiny objects, and women suck too, right?

      --
      or else!
    2. Re:Drupal Sux by Anonymous Coward · · Score: 0

      and women suck too, right?

      Hey, this is Slashdot. How could you possibly know?

    3. Re:Drupal Sux by Atomm · · Score: 1

      I know everyone is going to mark the OP as a troll, but I have to agree. I started out using PHPNuke nearly 10 years ago. I moved on to PostNuke, then Joomla, then Drupal, back to Joomla, then Wordpress. Of all the CMS/Blog software I have used, Drupal was the most unintuitive and cumbersome. Everything about it was hard to do, hard to customize. I could not stand it. I've never understood how so many people can love it so much.

    4. Re:Drupal Sux by Ethanol-fueled · · Score: 5, Interesting
      The only people who are willing to waste the time to understand Drupal enough to use it are those who are stuck chasing buzzwords for a living. Even the preface of the O'reilly book alludes to that.

      Read the summary and a few of the comments below. You'd get better, quicker results from coding your own HTML/PHP/CSS around a crude template...and that's pretty sad considering that the first hit for a Google of "Drupal themes" yields this:

      "This theme saved me at 2am. Three hours of messing with 1000+ lines of nasty Garland-adapted code later, I abandoned it and recoded the site as a Zen sub-theme in under an hour. Thank you, thank you, thank you. - Greg "

      'Nuff said, asshole.

    5. Re:Drupal Sux by criznach · · Score: 1

      Most of the arguments I see about Drupal are something like "I'm an ordinary Joe, and I couldn't make whitehouse.gov". So what? If you know nothing about a complex system, how can you expect to succeed with it immediately? If PBX systems were as popular as CMS systems, everyone would be running around saying "I tried Asterisk for my home phone and I couldn't figure it out, and therefore it sucks". Unfortunately Drupal is in a market where everyone is interested in using it, but not everyone has the skills to use it, or the patience to learn it. If you want easy out of the box, and don't have money to hire someone, use Wordpress... Meanwhile, Drupal is carving out a deep niche of consultants like myself that CAN and DO make it work.

    6. Re:Drupal Sux by Anonymous Coward · · Score: 0

      Drupal does not suck balls. It doesn't even have a mouth.

    7. Re:Drupal Sux by revlayle · · Score: 1

      " Meanwhile, Drupal is carving out a deep niche of consultants like myself that CAN and DO make it work."

      Right there. Basically, Drupal is like the Sharepoint of the open source world... too complicated for most people to figure it out, so you have "consultants" to make it work for you. I rarely troll... in this case, I'm not losing sleep over it ;)

    8. Re:Drupal Sux by Anonymous Coward · · Score: 0

      I can make my geo metro pull my rv, but is it worth the work?

    9. Re:Drupal Sux by drinkypoo · · Score: 1

      Drupal sucks balls.

      And yet...

      Can somebody please develop a CMS for people without Asperger's ?!

      You seem to realize that there is no CMS which doesn't suck these proverbial balls, that seem to be slurped so often in the world of technology. No, those balls will always be sucked because content management is not a one-size-fits-all situation. Drupal has been advancing, though, and what have you done for the world of free/Free content management systems? Oh, nothing? Well, why don't you go attempt aviary copulation with a ventrally rotating toroidal pastry? At least I've submitted some patches for drupal modules, and helped improve the situaiton, you fucking whiner.

      The notion of using the site as you build it is shit, and using an "admin theme" just causes trouble because of the inconsistent behaviors across themes.

      You're dumb. Using an admin theme means that you can get in as a last-ditch effort. But the only things you should ever do as Administrator (or whatever you name your first user) are related to system maintenance, and it's good if the theme used for that always works. Any actual content management can be done by another user to whom you have delegated the appropriate rights.

      Even its own advocates recommend just writing your own PHP and CSS.

      You're talking nonsense again. Themes are written in PHP and CSS, and yes, it is advocated that you develop your own theme... so that your site doesn't look just like everyone else's. Providing a theme with color changes out of the box is just a convenience factor for those who simply want to use Drupal to put up a blog.

      Drupal is being used by hundreds if not thousands of commercial sites and performing its duties brilliantly in many cases. There is probably no other CMS available which suits as many use cases as Drupal. You don't seem to have any alternatives to suggest, so perhaps you should stop whining and contribute some code.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    10. Re:Drupal Sux by Pootie+Tang · · Score: 1

      That's a fair point, but I don't see mention of "use Wordpress" on Drupal's about page. Quite the opposite, they make it sound like the ordinary Joe could make whitehouse.gov. It's not a complete lie either, depending on the level of customization desired it's quite possible for someone without a lot of experience to use. But it's also quite possible you'll wind up needing a consultant. Drupal isn't immune to fanboism either. It's not so surprising that many people find it's not what they want and then tell others it wasn't what they wanted or thought they were getting.

    11. Re:Drupal Sux by hansamurai · · Score: 1

      It's really not that complicated, I know next to nothing when it comes to PHP and I've been doing fine.

    12. Re:Drupal Sux by gobbo · · Score: 1

      Can somebody please develop a CMS for people without Asperger's ?!

      For small projects: FrogCMS.

      For blogs: wordpress.

      For other, more complex sites, try ExpressionEngine.

      For galleries, zenphoto.

    13. Re:Drupal Sux by psililisp · · Score: 1

      Drupal sucks balls. It's very counterintuitive for something that claims to be simple and modular. Behaviors are inconsistent across themes, half of the available themes are broken, TFS is right about Drupal not supporting jack shit right off the bat. Enabling the modules requires manual downloads and dependency hells. The notion of using the site as you build it is shit, and using an "admin theme" just causes trouble because of the inconsistent behaviors across themes. Even its own advocates recommend just writing your own PHP and CSS.

      Can somebody please develop a CMS for people without Asperger's ?!

      Can you offer another CMS that doesn't have the same issues, and does everything you're pretty little world wants?

      I spent a bit of time playing with Joomla, WP, and Drupal. For some reason, I dug Drupal for many reasons:
        - customization
        - online support
        - "FREE" modules
        - did I say customization without needing to code anything, ala CCK / VIews

      And yes, I'll admit it's a learning curve working with Drupal, but so are all the other CMS products out there. If you're going to bash something, at least throw some specifics out; and I'm not talking about grabbing some pre-built theme and having issues - go for WP if you want cookie-cutter stuff.

    14. Re:Drupal Sux by Curunir_wolf · · Score: 1

      ExpressionEngine? Is that supposed to be a joke?

      --
      "Somebody has to do something. It's just incredibly pathetic it has to be us."
      --- Jerry Garcia
    15. Re:Drupal Sux by phyrz · · Score: 2, Insightful

      Because once you understand it as a developer, its insanely flexible. But I agree the learning curve is hardcore. Out of the box Drupal isn't good for much except simple community-type sites. Some work is being done to fix this. Google for Development Seed, Features and Small Core to see the direction Drupal is heading. Also investigate the CCK and Views module. None of the other packages mentioned come anywhere near this functionality.

      But of course, use whatever software works for you :)

      --
      Don't point that gun at him, he's an unpaid intern!
    16. Re:Drupal Sux by jamonterrell · · Score: 1

      Agreed a thousand times over. I really don't see how a community as geeky as slashdot can take drupal seriously. I get it when other sites dominated by the non-techies see drupal and think, hey that seems to work pretty well... but seriously open up the fucking source code and look at it.

      --
      I can count to 1023 on my hands. Ask me about #132.
    17. Re:Drupal Sux by peater · · Score: 3, Informative

      As a Drupal developer myself, I'm not really sure why Greg had to mess with 1000+ lines of Garland-adapted code specifically because he goes on to say that he could do the same thing using Zen in under an hour which means his customization needs weren't too detailed to even require messing with 1000+ lines of code. I'm sure he knows what he is doing, but in my own experience I've managed to use the php-template engine with CSS to create some fairly customized sites in very little time without requiring Zen or any other 'specialized' base theme or requiring messing around with copious amounts of php code.

      As for multimedia and no "native" support for images, while I am not familiar with Joomla or other CMS systems to make a fair comparison, Drupal does have many third party, well recognized and documented modules for this very specific purpose that integrate very well with the base system. The "installation" process is standardized and the extended help system delivers useful information to aid the developer. I'm assuming the reason that multimedia modules aren't integrated with the base system is because it allows users to consider options to implement galleries, videos, etc within the Drupal system and allows innovation (more options for end-users) and regular module updates without requiring multiple Drupal releases.

      In that sense I would compare Drupal to C. A core system with a very small footprint with the bulk of the functionality being relegated to library code (modules in Drupal speak). I guess, as and when a module becomes the standard way of doing things in Drupal, it will get integrated into the core (like the standard library in C). The CCK module is a very good example of this which is being integrated partially into the core in Drupal 7. Personally I found CCK, Image, Views and Panels (all Drupal modules) invaluable to all my projects and they have become part of my "standard library" of sorts. For needs not satisfied with these modules, I just Google Drupal + need and choose between the numerous modules that come up.

      Having said that, I do agree, Drupal could do well with "pre-installed" modules for basic functionality like image uploads and video integration with the option of overriding these with third party modules to perhaps make things a bit simpler for the uninitiated. But for me, the current state of things isn't a deal breaker given that I have my standard modules stashed away and I just have to copy to my new Drupal installation to have a very usable base system.

      Like all else, Drupal (like C) has a very specific philosophy and if that gels with your preferred development methodology, then great! If not, the alternatives are good too.

    18. Re:Drupal Sux by vegiVamp · · Score: 1

      Can you then also come to us and make it work WELL ? Sure, it works, but what I especially loathe about it is the way it (ab)uses the database. Dries and his minions' attitude is "we want it to work on as many databases as possible", and the end result is an abomination that works on all but scales on none. Whoever had the bright idea to do explicit full table locks on every table, for every insert ? We've spent more time hacking at the drupal core than we probably would've just writing a custom framework from scratch, and we still get unexpected and ridiculous database connection peaks from time to time. Even squid and memcached don't fix things all the way, because it's apparently nigh impossible to cache pages for logged-in users.

      Bah, rid me of this crud.

      --
      What a depressingly stupid machine.
    19. Re:Drupal Sux by Anonymous Coward · · Score: 0

      > Drupal is carving out a deep niche of consultants

      What language is that supposed to be?

    20. Re:Drupal Sux by Anonymous Coward · · Score: 0

      It does sux. The antidote to shit CMS's is only a click away though: http://symphony-cms.com/ - a thing of beauty.

    21. Re:Drupal Sux by nidarus · · Score: 1

      What are you trying to say with this quote? If you use the right Drupal template framework, you can make a site in under an hour?

      What does it have to do with "coding your own HTML/PHP/CSS around a crude template"? Zen is still Drupal. In fact, Drupal 7 is going to be bundled with a Zen-like theme.

    22. Re:Drupal Sux by nidarus · · Score: 1

      While I wouldn't get so upset about it, I agree - Drupal is not for you. If you just want something to work out of the box, you'll probably want something like ExpressionEngine, or even Wordpress.

      But as an alternative to building the site from scratch with Rails/Django/pure PHP, it's great. It may not be OOP, and the database layer is shit, but it's so customizable, and there are so many useful modules, that you rarely have to reinvent the wheel.

      I only wish they'd stop pretending that it's a "just a CMS". It just leads to frustration, anger, and bad press.

    23. Re:Drupal Sux by moosesocks · · Score: 1

      I've heard this criticism (or something fairly similar) levied against virtually every CMS out there.

      As an honest question: Are there any CMSes that buck this trend, or at the very least stand out from the crowd?

      There's no doubt that things have greatly improved from 5 years ago, although it seems as though no clear leader has emerged as "the state of the art." Wordpress and Drupal seem to have the largest developer communities, although even their own users seem to view the systems as being somehow flawed.

      --
      -- If you try to fail and succeed, which have you done? - Uli's moose
    24. Re:Drupal Sux by Anonymous Coward · · Score: 0

      Yes. It is called symfony.

    25. Re:Drupal Sux by dleifm · · Score: 1

      I totally agree that Drupal falls short when it comes to "out of the box" support for image/video integration. I find it kind of baffling, actually. Drupal is so wonderfully flexible for developers, but fails so completely at this issue. And for anyone who builds websites for clients who want to use their new CMS to maintain their content, the terrible image/video integration issue is bound to come up. I just don't understand the line of thinking that led to the conclusion that good i/v integration shouldn't be built in.

      My (web design) company has switched over to Drupal for all of our clients' websites because of its flexibility, but we're still struggling to get the i/v integration up to a solid, consistent level. Like you, CCK, views, image, and panels have also be come part of our "standard library." The flexibility of Drupal makes it an easy sell to potential clients (assuming that their project is appropriate for Drupal, of course)... but the i/v issue can be something of a deal-breaker if the developers don't know how to bring it up to an acceptable level.

      If the burden of providing adequate i/v support is going to remain on the developer, I'd like to see a third-party i/v support module that mimics the way the base WordPress system handles the issue. WordPress, for all its failings, handles i/v support better than any other open-source CMS that I've seen.

    26. Re:Drupal Sux by Anonymous Coward · · Score: 0

      Drupal is not for the Sarah Palins of this world. Sorry to say that, bud, but Drupal's more a toolkit that lets you build your site, not a prebuilt clicky clicky wankfest.

      Those of us who actually use it love it.

    27. Re:Drupal Sux by ricwesley · · Score: 1

      Hmn.. still it was something informative when topics shift to such professional website developer.

    28. Re:Drupal Sux by nilbog · · Score: 1

      So by your argument, if I can find one person who had an issue creating an HTML/PHP/CSS CMS from scratch then it must be a really crappy way of doing things right?

      Not everyone can or wants to build everything from scratch.

      --
      or else!
  2. How does it compare to online help by halcyonandon1 · · Score: 3, Interesting

    I've been working with Drupal for a couple years now. Even experienced PHP developers will find themselves in a learning curve in using Drupal's administrative "backend" and third party modules.

    An experienced PHP developer also realizes the value and importance of online documentation... php.net is a resource I still constantly refer to when certain decisions need to get made...

    Whenever I see a Drupal-related book, I immediately compare it to drupal.org, the advanced help module and the information a simple google search can produce.

    A developer's time learning fundamental Drupal concepts would be better served through diving into the Drupal community... not reading a book... That way they're prepared to find resources for all the various issues that come up with Drupal Development... not just adding multimedia.

    A would like to see a book written from the perspective of a Web programmer evaluating Drupal as a development (MVC) framework weighed against the likes of cakePHP, Zend, codeigniter, et al.

    Its been a topic of debate lately and a book would be a good medium to thoroughly evaluate such an idea.

    A book like that would help the Drupal Community... I feel like the book you described hurts it.

    1. Re:How does it compare to online help by vegiVamp · · Score: 2, Interesting

      The wonderful Drupal community's answer to quite a lot of the things we try do to with drupal, is "not supported, and we won't tell you why". No, thanks.

      --
      What a depressingly stupid machine.
    2. Re:How does it compare to online help by Anonymous Coward · · Score: 0

      That makes no sense. The drupal community is just people like you making sites, who happened to pick drupal as their CMS.

      The problem most often with community discourse is the people asking questions don't include key information to help them. They just say dumb crap like "it dont work".

      So it takes some reading to get going. There's good, not great, but good docs online; and everything you download comes with a README of essentials for use. Its really no big deal. A half dozen added modules to any install and you have a powerful platform for practically any site, online application, or web service. No other CMS can touch this.

      And when you get comfortable enough to start looking at the API, you see a genius implementation of polymorphism. Writing your first module takes some research, and that where publishers like packt are stepping in with books like the above. I have other books from them, and they cover everything you need to quickly get comfortable. If you don't want to buy a book, then the community and online docs give you the essentials, but its up to you to understand it. Its all a matter of how quickly you want to get going. The bottom line is that drupal is crazy powerful and worth learning. Like any FOSS project, its a little rough around the edges; that's the nature of community driven projects. The time and possible cost of books investment is worth it.

  3. Drupal and WordPress by Anonymous Coward · · Score: 0

    What do they have in common?

    Changing the theme changes basic functionality of the site. It's logic-in-template. Despite the lip service paid to this most essential separation of concerns, it's still considered a legitimate way to add features. Welcome back to the 90's.

    1. Re:Drupal and WordPress by zeroduck · · Score: 1

      Drupal templates are free to modify data using the preprocess hooks, but you'd be wise to not do anything but change how things are displayed (inserting div id's and the like).

      Im not seeing exactly what your complaint is. Should the back end just be smart enough to have universal templates that can make any website ever designed?

    2. Re:Drupal and WordPress by Hognoxious · · Score: 1

      Do you understand the concept of separating the process from the interface? Many would call it the MVC pattern, though it's actually much older than that.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    3. Re:Drupal and WordPress by zeroduck · · Score: 1

      I do understand that, and I think that Drupal does a pretty good job of separating the two. Drupal will have output without a theme (see the Stark theme, which is just a .info file, no php or html). With a proper theme, you should be able to change the actual markup to be just about anything. Drupal themes don't require PHP, but understanding of PHP will only help. Business decisions are not made within templates (although can be, and a poor decision on the design side). Garland is a poor example to base your own theme off of, but I believe that the PHP within that theme only decides on the structure of the markup, not anything else. Sorry if this makes no sense, I blame the tequila.

  4. PHP sucks by BitHive · · Score: 2, Funny

    Drupal is for scrubs

  5. Re:a FOSS project that requires extensive hacking by armanox · · Score: 1

    Because its commercial competitor (Sharepoint) doesn't require any do it yourself code/hacks...

    --
    I'm starting to think GNU is the problem with "GNU/Linux" these days.
  6. Don't use Drupal. It's a piece of shit. by Anonymous Coward · · Score: 2, Interesting

    Do yourself a favor and don't bother with Drupal. It's a huge piece of shit.

    We just tried to use it for an intranet site, and it fell flat on its face. We threw better hardware at it, and that didn't help. We tried Lighttpd instead of Apache, and it was still fucked. We tried Linux, FreeBSD, and Solaris. We tried several PHP bytecode caches. We tries PostgreSQL instead of MySQL, although it's not really "officially" supported, and that did help somewhat. Other than that, nothing helped.

    Our developers did notice that it makes a fucking stupid number of SQL queries per page load, though. That was just for the basic CMS, too. One plugin we tried using was particularly bad. It made over 730 SQL queries per page load. Needless to say, we stopped using that plugin.

    Our CIO ended up getting fed up with PHP and open source software failing us, so he went behind our backs and bought a proprietary ASP.NET-based CMS. We were all against it at first, but unlike Drupal, it actually works. Now we have egg all over our faces for trying to get our company to adopt open source software.

    1. Re:Don't use Drupal. It's a piece of shit. by armanox · · Score: 1

      So what actually didn't work? You never stated the problem.

      --
      I'm starting to think GNU is the problem with "GNU/Linux" these days.
    2. Re:Don't use Drupal. It's a piece of shit. by criznach · · Score: 1

      I'm a Drupal consultant, and I wish you would have called me or one of my colleagues. I would agree that if you attempted to scale Drupal to a moderate to large size with no prior experience, you will probably fall on your face. Drupal has evolved into something that works quite well for small sites on shared hosting. It does work for large sites, but it's not easy. There are dozens of optimizations that you didn't mention trying. It's not a piece of shit. You just failed to make it work. :)

    3. Re:Don't use Drupal. It's a piece of shit. by MightyMartian · · Score: 1

      Reread the parent's post and then ask yourself "What kind of shitty company is this." Sounds to me like it's populated by semi-literate morons and the management is too stupid to see that rather than turfing Drupal, he should have turfed the idiots.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    4. Re:Don't use Drupal. It's a piece of shit. by Anonymous Coward · · Score: 0

      Translation:

      We tried to do something hard with Drupal. It didn't work very well. We guessed and guessed and guessed how to make it work and didn't find anything that worked.

      We learned that Drupal is fairly complex!

      We found one open source component that wasn't well written, so we stopped using that.

      Our boss finally got fed up with our inability to admit that we didn't know what we were doing, and PAID SOMEONE ELSE to do it for us.

    5. Re:Don't use Drupal. It's a piece of shit. by ducomputergeek · · Score: 1

      I know you got modded as a troll, but I had a similar problem with Drupal a couple years ago. There was a time when Drupal was worth considering, but its backend never made much sense. It was confusing enough to a developer, try explaining it to someone who is just in charge of updating, adding, changing content. We used Drupal because at the time it appeared to be the online opensource CMS that had all the features we were looking for in their modules repository.

      And it was slow, 20sec + load times with even the most basic themes. And like the parent, we tried different platforms, different caches, and eventually the entire project got shelved and I've never touched Drupal since.

      --
      "The problem with socialism is eventually you run out of other people's money" - Thatcher.
    6. Re:Don't use Drupal. It's a piece of shit. by Anonymous Coward · · Score: 0

      So we should have had to pay thousands of dollars in "Drupal consultant" fees just to get a working installation? Fuck that.

      Our CIO bought the ASP.NET CMS for a mere $150. He had one of his peons install it on an existing server and configure it in under 2 hours ($100 of salary, at most). It has worked fine since then.

      I don't think you could have done the same for less than $250.

      The main "selling" point of Drupal is that it's free, and has a lot of plugins available for it. Yet if we need to get a consultant in, that pretty much negates the first benefit it offers. And if most of the plugins are pure shit, that negates the second reason to use it.

    7. Re:Don't use Drupal. It's a piece of shit. by drinkypoo · · Score: 2, Informative

      I know you got modded as a troll, but I had a similar problem with Drupal a couple years ago. There was a time when Drupal was worth considering, but its backend never made much sense.

      This here is the most rational argument against Drupal. It's inconsistent and the database code is scary, and using it is scary. Almost everything is a node, that is stupid. Everything should be a node, which makes code dramatically more rational and forward-portable because you can access everything from a node object. The database code is getting refactored which is what is making Drupal 7 take so long (AFAICT) so perhaps the next Drupal will be more advisable. (I used to suggest Drupal, now I just scratch my head and say I use Drupal.)

      It was confusing enough to a developer, try explaining it to someone who is just in charge of updating, adding, changing content.

      I don't consider the default tools to be sufficient for managing content. However, I do consider views+templates to be sufficient to create administrative views which will do the job, and be adequate for even fairly amateur content editors, and with little effort. I've done it before, and will probably do it all over again on D7 :)

      And it was slow, 20sec + load times with even the most basic themes. And like the parent, we tried different platforms, different caches, and eventually the entire project got shelved and I've never touched Drupal since.

      D6 has quite good caching, but most of the more interesting modules will grind up your database. Also, Drupal seems to use pretty excessive amounts of memory, and with a few interesting modules that can quickly reach into the "obscene" range, so anything not cached is going to cause some serious spin.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    8. Re:Don't use Drupal. It's a piece of shit. by vegiVamp · · Score: 1

      No, it's not easy, and most of the 'dozens of optimizations' are not supported, badly documented, and not compatible with later smooth upgrading to newer drupal versions.

      The only reason it "works quite well for small sites on shared hosting", but needs loads of fixes to scale, is that it's incredibly badly written from a database point of view. The more accurate formulation of all that is "it's so crap that it won't scale without extensive hacking with a large axe".

      --
      What a depressingly stupid machine.
  7. Drupal Image Gallery by letsgetsilly · · Score: 0

    I have prefer to use Drupal when developing sites for clients who's requirements align with what a CMS can provide. I recently received a contract to build a website with an intuitive slick image gallery, and I decided to explore Drupals image capabilities more than I had before. I have used the Gallery module before and found it suitable for for home photos, but I have not found an image gallery that would be useful for displaying images/slideshows (such as lightbox2) for a business-oriented website, and that the average user would find it intuitive to manage themselves. I have been attempting to modify the image_gallery module in order to make it as straight forward as possible, but it is still confusing to me. I'm curious as to what other drupal developers use, or if there is just a lack of drupal modules and features that make images easy to use.

    1. Re:Drupal Image Gallery by Curunir_wolf · · Score: 1

      Not a drupal module, but you may want to check out Zenphoto. I don't know why it's not much more popular than it is. It's easy to set up, very customizable, and very simple for end-users to work with.

      --
      "Somebody has to do something. It's just incredibly pathetic it has to be us."
      --- Jerry Garcia
    2. Re:Drupal Image Gallery by zeroduck · · Score: 1

      It depends on what kind of image gallery you're looking for. There are a few image gallery modules available at drupal.org, and those might be what you're looking for.

      Another way to do it is the views and cck way. There's a screencast over at lullabot. If you go this route, you probably want to look at the image_fupload module, too.

    3. Re:Drupal Image Gallery by letsgetsilly · · Score: 0

      Thanks for the link to the screencast. This looks like it might be the answer. Much obliged sir.

  8. Drupal: The Off-the-Shelf CMS... by TheModelEskimo · · Score: 4, Insightful

    ...for people who secretly want to do everything from scratch anyway.

    1. Re:Drupal: The Off-the-Shelf CMS... by Wraithlyn · · Score: 4, Insightful

      Whatever.

      I've done 2 large, complex Drupal projects over the last year, and 90% of our functionality for both was easily provided by existing modules, and virtually all of the rest was accomplished by tweaking other modules. Then you just need to learn some theming (which the Theme Developer module makes falling-over-easy) to have full control of your theme layer.

      I also built a small portfolio site for a friend (after giving up on both Wordpress and ModX), and had it up in a single day. It's amazing how quickly you can snap together whatever data structures (via CCK) & functionality you can think up once you learn the ropes.

      Yes, it has a helluva learning curve (especially when you are trying to wade through the thousands of available modules, we spent a couple weeks just looking at modules on the first project I was on). Yes, you need to be a PHP ninja to get the most from it. All true.

      But "from scratch"? That's a joke. The breadth of functionality available from contributed modules is staggering, and the override/hook system is incredibly powerful and flexible if you need to change default behaviour without modifying core.

      --
      "Mind, as manifested by the capacity to make choices, is to some extent present in every electron." -Freeman Dyson
    2. Re:Drupal: The Off-the-Shelf CMS... by TheModelEskimo · · Score: 2, Interesting

      You're right, Drupal is amazingly powerful. However I think it's deceptive to compare Drupal with other CMS's like Joomla. There's a reason Drupal's learning curve is so steep - it's so different from your standard CMS.

      My point is: I don't think you have to be a PHP ninja to "get the most" from it. I think you have to be a Drupal ninja to do that, and the bare-minimum requirement to start down that path is deep experience with PHP.

      So yeah, that's why I say it appeals to people who like to work from scratch: It's like learning a PHP framework from scratch - more like that than learning to use a standard CMS is, anyway.

    3. Re:Drupal: The Off-the-Shelf CMS... by Anonymous Coward · · Score: 0

      It's true that when you're creating a big Drupal site, you will spend about as much time as you will be if you did it from scratch.

      The difference is that after you're done, you will have a web application instead of a pile of in-house, poorly maintainable crap.

    4. Re:Drupal: The Off-the-Shelf CMS... by Anonymous Coward · · Score: 0

      Looking at the Drupal source code, it's far worse than anything we've ever produced in-house. And we've got a lot of shitty in-house code to deal with.

      Even the Indians who fucked up our last project produced code better than that of Drupal.

    5. Re:Drupal: The Off-the-Shelf CMS... by itzfritz · · Score: 1

      You're right, Drupal is amazingly powerful. However I think it's deceptive to compare Drupal with other CMS's like Joomla. There's a reason Drupal's learning curve is so steep - it's so different from your standard CMS. My point is: I don't think you have to be a PHP ninja to "get the most" from it. I think you have to be a Drupal ninja to do that, and the bare-minimum requirement to start down that path is deep experience with PHP. So yeah, that's why I say it appeals to people who like to work from scratch: It's like learning a PHP framework from scratch - more like that than learning to use a standard CMS is, anyway.

      You just need to be an experienced developer to understand Drupal; it uses idioms that beginners just do not understand. I am not a 'deeply experienced' php dev, not by any stretch of the imagination, yet I thoroughly grok Drupal (after a period of learning,m of course).

  9. Seriously, 264 Pages?!?!? by Anonymous Coward · · Score: 5, Insightful

    I'm sorry, but if it takes a 264 page book to teach someone how to implement media in a CMS, then something is wrong with the system.

    Either that or this is one wordy author.......

    1. Re:Seriously, 264 Pages?!?!? by Azureflare · · Score: 1

      Not to mention that the actual review cited numerous errors in the actual book. PASS!

      Drupal is a nice idea, but executed poorly.

    2. Re:Seriously, 264 Pages?!?!? by Degro · · Score: 1

      It doesn't. This, like most IT books, is just going to be a lot of copy/pasting from the online documentation and a list of what modules to install. There's handfuls of Drupal modules that are pretty much must-have for most sites that cover this kind of 'missing' functionality. Each major release of Drupal incorporates more and more of them into the core download, but it's really not that hard to untar a couple extra modules each time.

    3. Re:Seriously, 264 Pages?!?!? by TheModelEskimo · · Score: 1

      Here's my take: You've got to have a healthy dose of geek in ya to implement a decent site in Drupal. So a bunch of non-designer geeks are out there implementing these sites. Then Jenny from marketing totally goes all extrovert on the programming team in a development meeting, and tells them they need multimedia. OH CRAP, they think. We can do DBs, PHP, Apache, whatever. But multimedia?

      Anyway, that's my take...better try this niche than "10 Days to a Drooplier Drupal!!!" etc.

    4. Re:Seriously, 264 Pages?!?!? by phyrz · · Score: 1

      The book was released in 2008 and Drupal has gone through major changes in the last year. Its still a constantly evolving platform and a year later the book isn't so relevant. Back then it was though.

      --
      Don't point that gun at him, he's an unpaid intern!
    5. Re:Seriously, 264 Pages?!?!? by nidarus · · Score: 1

      I've seen Packt publishing books. They can make a 500-page book about notepad.

  10. Re:a FOSS project that requires extensive hacking by criznach · · Score: 1

    I would argue that it only requires hacks if you wish to make it unique, or do something not provided by available modules. I've worked with Drupal for over 3 years and it rarely requires "hacks" once you know your way around. Sharepoint on the other hand is a proprietary and commercial rabbit hole that will cost you some serious bucks once you need to customize it.

  11. Drupal is impossible unless you're a consultant by SuperBanana · · Score: 4, Informative

    ...who works with it every day. Then, it's brilliant.

    I spent 4 hours banging my head against a wall trying to do two things: 1)get a calendar of events up (in any way, shape, or form) and 2)put some boxes on the front page of a site, one for each major category of the blog. So, to transpose the example to slashdot: a box containing just "idle" story headlines.

    The calendar bit, I gave up on because it involved creating all sorts of custom data types and forms and views and...jesus christ, why couldn't they just make an "events" module...

    The box-with-a-category, I also gave up on. Apparently, the "solution" is to dig into PHP in your theme (why themes are chock full of code is beyond me) and edit the files. Well, except that then when a new version of the theme comes out, you have to port your changes forward. So instead, you make a copy of the file, install it into a duplicate of the theme's folder structure, tell Drupal your theme is a subtheme of another existing theme, and Drupal makes Magic Happen.

    Sort of. The subtheme doesn't inherit critical stuff in the original theme, like the stuff that defines where content boxes can go on the page (ie, the most basic part of the theme: the layout!) so when you load the new theme, all your content completely disappears. Unfuckingbelievable.

    In the end I threw up my hands in disgust. I could see the possibilities for a community site (which is what I needed and wanted in the long run), but getting there would have been an endless amount of time learning Drupal internals. Why the fuck should I have to learn internals to put an event calendar on my blog's sidebar?

    Oh, and everyone makes out that modules are the second coming of Christ, especially this book, apparently. Well, as we discovered at work trying to implement a drupal site that sometimes when you enable a module, it runs all over your database, permanently screwing the pooch and requiring a complete restore from backup...a problem exacerbated by the lack of (apparently) refined APIs. What does that mean? Well, it means the modules and Drupal very often end up having very specific version requirements...

    1. Re:Drupal is impossible unless you're a consultant by veranikon · · Score: 4, Informative

      There is a excellent calendar module right here, which leverages heavily off of functionality provided by other modules (as is Drupal convention). From a standpoint of functionality, available features, and extendability, it's better than anything I found with Joomla.
      http://drupal.org/project/calendar

      Here's a screencast tutorial:
      http://www.drupaltherapy.com/node/76

      I've used this module extensively, out-of-the-box most of the time, and yes, I do so as a paid consultant from time to time.

      Besides that, since Drupal tries to provide a framework for anyone and everyone to contribute pieces via 3rd-party modules, it will be as chaotic, diverse, and even inscrutable as one would expect a bazaar to be. Still, it enables that bazaar to exist in the first place.

    2. Re:Drupal is impossible unless you're a consultant by indiechild · · Score: 1

      The scary thing is that gov agencies and cultural institutions are encouraging each other to adopt Drupal. Apparently it's the "in" thing, and this really scares me. We're severely understaffed (with no web apps developers) and the last thing we need is another unmaintainable mess to grapple with. I'm a web designer and front end developer and while I can modify simple PHP code, I'm definitely not a programmer.

      If I had to use a PHP + MySQL solution, I'd just use ExpressionEngine (commercial product). It's not perfect, but it's by far the most understandable and workable small-scale CMS I've ever used.

      I hope a truly maintainable and usable open source CMS becomes available soon. Some folks are working on a complete UX overhaul of Drupal, so maybe that will give some glimmer of hope.

    3. Re:Drupal is impossible unless you're a consultant by drinkypoo · · Score: 1

      The box-with-a-category, I also gave up on. Apparently, the "solution" is to dig into PHP in your theme (why themes are chock full of code is beyond me) and edit the files.

      Themes are made up of code including functions because those functions are used to do things like draw menus, which are thus themeable. See how that works? Unfortunately, you're also very wrong. You can do it with the views and panels modules, which are two of the best-known and -supported drupal modules that there are.

      Well, except that then when a new version of the theme comes out, you have to port your changes forward.

      Uh, what? The theme is a starting point. Once you've changed it, it's your theme. You might choose to share it, but you probably won't, which is why few themes are worth messing with. Or did you mean, when a new major version of Drupal comes out?

      The subtheme doesn't inherit critical stuff in the original theme, like the stuff that defines where content boxes can go on the page (ie, the most basic part of the theme: the layout!)

      yes, it does. subthemes wouldn't have ANY layout if they didn't inherit this stuff. Page templates are looked for first in the subtheme, then in the theme, and it's pretty much done by filename.

      sometimes when you enable a module, it runs all over your database, permanently screwing the pooch and requiring a complete restore from backup

      When you enable a module, it does stuff to your, and this is a surprise? Sometimes a module fails, and this is a surprise?

      You're expecting everything to work perfectly. If you want that, hire someone to make it so. Drupal is Free and free and its quality is not guaranteed. Parts work very well, other parts don't. I know someone who maintains (among others) a site for a major label band with a flash interface. It's backended by drupal because it provides reliability and performance. If he needs a module that doesn't exist he writes it. You can do the same thing. Complaining that the only reliable parts of drupal are the core parts is like complaining when your work truck that has survived a million miles had a top speed of seventy miles an hour, and you couldn'[t use it to win at Indy. Meanwhile, it is completely possible to put together a pretty decent community site with just modules you can get out of the can. The penalty for learning drupal is much less than coding your own CMS that does what it does.

      Why the fuck should I have to learn internals to put an event calendar on my blog's sidebar?

      You shouldn't, and you don't. I did it with modules alone, and zero PHP. In fact, I'm really shitty with PHP, so from where I'm sitting you look like a serious idiot. But then, my drupal site is down because a) I'm lazy and b) VotingAPI has zero documentation and c) I'm shitty with PHP. So it's not like I would say that all is sunshine and roses. It's just that from what I can tell, and I tried (or tried to install) every Free/free CMS that had a halfway decent feature set, Drupal is head and shoulders above the "competition".

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    4. Re:Drupal is impossible unless you're a consultant by zeroduck · · Score: 1

      For your second point, your best option is to use the views module. Views is essentially a query builder that integrates with drupal and can provide different types of output (full pages or blocks). You'd create a view, add the fields you want to display, filter on the category and/or content type, sort descending by post date and tell it to produce a block. Go to your block configuration, tell it to put the block in the right region and to only display on the front page. Drupal has a somewhat steep learning curve, but you can do a lot with it. If all you're looking for is a simple blog, wordpress is probably better for the job.

    5. Re:Drupal is impossible unless you're a consultant by Degro · · Score: 1

      So, you think any jackass manager should be able to whip together the companies site and not require a consultant that with the accumulated knowledge of working with it everyday?

    6. Re:Drupal is impossible unless you're a consultant by Anonymous Coward · · Score: 0

      I assure you, it's not unmaintainable. I'm not a consultant; I'm a college student with about 4 hours a week to keep several Drupal-powered community sites running. From that, I have time left over to contribute to the core development.

      The people who can't cope with Drupal are usually the "designers" who use Windows and Dreamweaver, and expect everything to be done for them. It's the same problem Windows users have with Linux. It is unimaginably powerful, but you need to learn it.

    7. Re:Drupal is impossible unless you're a consultant by vegiVamp · · Score: 1

      > Views is essentially a query builder that builds the most horrendous, inefficient queries you ever layed eyes on.

      There, fixed that for you.

      --
      What a depressingly stupid machine.
    8. Re:Drupal is impossible unless you're a consultant by Hognoxious · · Score: 1

      Themes are made up of code including functions because those functions are used to do things like draw menus, which are thus themeable. See how that works?

      To me the word "theme" would refer only to the appearance of the app.

      Are you saying that in the wonderful world of Drupal it also includes aspects of behaviour and functionality? That doesn't strike me as a good thing.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    9. Re:Drupal is impossible unless you're a consultant by drinkypoo · · Score: 1

      To me the word "theme" would refer only to the appearance of the app.

      The web doesn't work that way. In theory, you can get all your styling from CSS. In reality, it requires substantial layout markup. Consequently, themes are more than just bundles of CSS, although it's a rare theme that doesn't use style sheets and drupal is CSS-heavy; every module of significance has its own style rules. The theme defines things like the way lists are constructed. You can patch this behavior with a module, e.g. what happens when you load one of the several modules providing dynamic menus. But you can also control it in your theme directly, so that you can add necessary markup that doesn't exist in the current layout.

      You NEVER have to create your own theme. But the functionality is in the theme so that you can change it without tampering with or overriding core.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    10. Re:Drupal is impossible unless you're a consultant by itzfritz · · Score: 1

      The box-with-a-category, I also gave up on. Apparently, the "solution" is to dig into PHP in your theme (why themes are chock full of code is beyond me) and edit the files. Well, except that then when a new version of the theme comes out, you have to port your changes forward. blah blah blah

      Or, you could keep your business logic where it belongs, in a module. This is modern programming here, not Joe's PHP cms.

    11. Re:Drupal is impossible unless you're a consultant by Hognoxious · · Score: 1

      I only asked.

      On other systems (Windows, S60 phones) themes do work like I said.

      Arrogant, patronising cunt.

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    12. Re:Drupal is impossible unless you're a consultant by drinkypoo · · Score: 1

      On other systems (Windows, S60 phones) themes do work like I said.

      Windows and Symbian 60 are operating systems, we're talking about web browsers.

      Arrogant, patronising cunt.

      Stupid, ignorant prick.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  12. No Steph the Geek by Gothmolly · · Score: 1

    Just say no - if Steph the Geek is into it, its almost by definition faddish and lame.

    --
    I want to delete my account but Slashdot doesn't allow it.
  13. not aspergers...consultants by SuperBanana · · Score: 3, Funny

    Can somebody please develop a CMS for people without Asperger's ?!

    It's for consultants, not people with Asperger's. Everything requires coding and customization and is awkward. It's a consultant's wet dream.

  14. On a related note.. by RichardJenkins · · Score: 1

    Has anyone used/liked/hated DjangoCMS?

    1. Re:On a related note.. by piquadratCH · · Score: 1

      If you mean this DjangoCMS: yes, I use it for a couple of smalish sites (bigger ones to follow). While it has great potential, it's very noticeable that it is a new product that has not seen a stable release yet (although its version number is 2.0.0 RC2). It's a fast moving target right now, but I really like the direction it is going. With a bit of polish and some community building, this could become one of Django's killer applications.

    2. Re:On a related note.. by megrims · · Score: 1

      I recently spent some time working with Drupal/Ubercart.

      As far as shopping-cart software goes, I'd say that the Drupal system has been the most friendly to me as a developer. Magento is (debatably) better structured, but has literally no documentation (and tries to create a ridiculous namespacing system in a language which does not support this). Joomla/Virtuemart and especially Zen-Cart and osCommerce are just a little bit ridiculous in organisation, with similarly limited documentation.

      Almost everything else I've worked with in the last few months (10 or so of them) is not so friendly. I'm surprised at how many people are making money off this kind of software, especially when their products are often poorly planned/documented and limited in functionality at best.

    3. Re:On a related note.. by megrims · · Score: 1

      And I did misread the GP.

      Django is wonderful. Never used Django-cms.

    4. Re:On a related note.. by NoBozo99 · · Score: 1

      It looked pretty interesting. I haven't used it yet, but plan to sometime in the future (version 3 or 4ish).

      --
      I may not be a smart man, but I know what an inode is.
  15. Wow! What's With the Hate? by mpapet · · Score: 1

    Is it any worse than similar CMS's?

    There are tons of modules for it, so more than just a couple people 'get it.'

    --
    http://www.maxineudall.com/2010/02/should-economists-be-sued-for-malpractice.html
  16. Re:a FOSS project that requires extensive hacking by Curunir_wolf · · Score: 1

    I would argue that it only requires hacks if you wish to make it unique, or do something not provided by available modules. I've worked with Drupal for over 3 years and it rarely requires "hacks" once you know your way around. Sharepoint on the other hand is a proprietary and commercial rabbit hole that will cost you some serious bucks once you need to customize it.

    Actually, it will cost you some serious bucks right out of the box, if you implement everything a mid-sized org will want. Customizing will cost you plenty of time and a budget that needs 3 levels of approval.

    --
    "Somebody has to do something. It's just incredibly pathetic it has to be us."
    --- Jerry Garcia
  17. Re:Wow! What's With the Hate? by z33k3r · · Score: 1

    I have to agree with the fact that Drupal is very complex and takes a bit to wrap your head around. I would have to disagree that it's a piece of crap... The #1&2 reasons people's installs/projects fail is due to them installing an un-audited module and "easy-to-get-to-and-read" tutorials. If you are going to use open source, you have to come to grips with authors' lack of coding skills and/or experience with open projects. Always test modules first in a dev environment, then implement. If you are scared of other peoples code, then write your own to hook into the core. It's fairly straight forward to get started and the flexibility from there onwards is only limited by your time invested into learning... Drupal is a very solid architecture. Peoples lack of discretion is that installation's downfall... Oh, and no body has even mentioned the powerful SEO capabilities out of the box... While every CMS has it's target audience, Drupal may not be for you... but it just might be!

  18. Drupal Rules by Anonymous Coward · · Score: 0

    drupal is not hard to use. the reason it has an 'initially light footprint' is because only essential functionality is packaged with the install. there are a handful of add-on modules which should be installed for just about any site: CCK, Views, and ImageField/ImageCache/ImageAPI. once you get the hang of installing these modules (e.g., unzipping the files into the modules directory, loading up the modules admin screen and clicking a checkbox) then you are set to go.

    there doesn't need to be a book about this. a wiki page, maybe. in my experience, the only rough thing about drupal is figuring out which modules you want - there are thousands of user-contributed modules, a hundred or so which are good, and a handful which are excellent. but this could be solved with a better module directory on drupal.org - it doesn't speak against the software.

  19. Drupal is not that hard... by future+assassin · · Score: 1

    and this comes from someone who knows next to nothing about php or any other programming language. Setting up a small site/community site is pretty easy and you don;t need a book, you read the forums. NOW I will say this that multi user multimedia control or say a photo gallery is a fucking chore to set up and eventually you just give up .There are a few promising modules like Node Gallery and one of the better ones Acid Free Albums which isn't even maintained anymore.

    --
    by TheSpoom (715771) Uncaring Linux user here. I have nothing to add to this but please continue. *munches popcorn*
    1. Re:Drupal is not that hard... by z33k3r · · Score: 1

      Views and Panels makes galleries a breeze!

  20. What's with all the Drupal hate? by hansamurai · · Score: 1

    I've had great luck with it the last 18 months or so and the site has scaled pretty well with my needs. I had some complaints from my host when I was on shared hosting that I was hitting their database pretty hard, but I turned on caching for anonymous users and it's been smooth sailing since.

    1. Re:What's with all the Drupal hate? by BitHive · · Score: 1

      People hate on Windows and that works pretty well too. What do you think?

    2. Re:What's with all the Drupal hate? by Phantom+of+the+Opera · · Score: 1

      I used to hate on windows. This was the 90s and it just wasn't there yet.

      Now it can be pleasant. When I have to use it, I just get a reasonable music player, use outlook for meeting reminders, have firefox open and putty to a development box.
      I get an equivalent experience from linux though, so I use that, especially since linux can be the development box itself.

      When I hear 'Drupal', it reminds me of the words drop, droop, and Ru Paul.

  21. Re:a FOSS project that requires extensive hacking by Larryish · · Score: 1

    I run free software almost exclusively, and even I LOL'd at that.

    It applies to so many web apps that I can think of, it is almost not funny. Almost.

  22. The truth about Drupal by Anonymous Coward · · Score: 0

    Drupal only sucks if you don't know how to use it. It's pretty great if you do.

  23. Some major anti-Drupal FUD going on here by Optic7 · · Score: 4, Insightful

    I just don't get it. Most of the negative posts here so far just seem completely inaccurate. They must be written either by fanboys for other CMS systems or by people that have no clue to start with.

    I'm not a web developer and I don't know even a bit of PHP and I am able to understand how Drupal works and get it to work fine for me. Granted, Drupal is not a panacea, but as far as open source CMSs go, I think it's one of the best available.

    1. Re:Some major anti-Drupal FUD going on here by BitHive · · Score: 1

      I am a web developer and I know lots of PHP and I am able to understand intimately how Drupal operates with my infrastructure and get it to work fine for me. It is not a panacea, and as far as open source CMSes go, I think it's mediocre.

    2. Re:Some major anti-Drupal FUD going on here by worldthinker · · Score: 1

      They're just jealous that the WhiteHouse chose Drupal for their website. Seems to work very fast too.

      But, I also happen to think that utilizing PHP for such a large scale site is risky both in coding efficiency and in security risks. Drupal and PHP are constantly being patched for vulnerabilities.

    3. Re:Some major anti-Drupal FUD going on here by Optic7 · · Score: 1

      Ah, no fair saying something like that and then not telling us what you think are some good open source CMSes. Please tell us, because I'm always interested in finding better things.

    4. Re:Some major anti-Drupal FUD going on here by TheModelEskimo · · Score: 1

      Is there a FOSS CMS you prefer?

    5. Re:Some major anti-Drupal FUD going on here by BitHive · · Score: 1

      I would use Radiant or Movable Type over the likes of Drupal and Wordpress any day. In particular, the ability to define and combine custom Radius tags makes Radiant an extremely powerful tool.

    6. Re:Some major anti-Drupal FUD going on here by Optic7 · · Score: 1

      Belated thanks!

  24. Custom CMS by Danzigism · · Score: 2, Interesting

    This has always been a debated topic. Depending on the needs of your client, or yourself, sometimes it is best just to make a custom CMS. Some non-developer types out there might scoff at this, but think of it this way. You could literally make your own CMS after learning some basic functions of PHP and MySQL. As a matter of fact, as a "designer" I think it is necessary that you understand these concepts. Once you see what is involved with making a simple CMS, then figure out whether or not you should use a big solution like Drupal or Joomla. But in all honestly, once you learn how to CREATE, INSERT, ALTER and UPDATE data from forms, and use the mysqli_connect function, you'll soon start to realize that you can be much more artistic with your sites. I'm not saying everyone should make a custom CMS, but the majority of small clients just want to edit the text on their homepage, put up new pics in their photo galleries, have a user submitted testimonials page that they can moderate, and keep in touch with their website visitors with the help of a mailing list. All of which can be accomplished with a couple days of reading up on some basic PHP and MySQL tutorials.

    I've tried so hard to use Joomla and Drupal, and it just isn't for me. I could spend DAYS trying to figure out how to make a custom theme, or simply spend a couple hours making my own site layout from scratch, throw in a couple divs and some PHP scripts, and be done with it.

    --
    *plays the Apogee theme song music*
    1. Re:Custom CMS by chx1975 · · Score: 1

      And, of course, your site thrown together in a couple hours will scale (just in case it needs to), will be stable and secure.

    2. Re:Custom CMS by Danzigism · · Score: 1

      if you're not a god damn idiot and follow best practices, then yes it will be plenty secure. there's no reason to make security seem like this really difficult thing to implement and only reallllly smart people like those who make Drupal and Joomla can do.

      --
      *plays the Apogee theme song music*
    3. Re:Custom CMS by itzfritz · · Score: 1

      This has always been a debated topic. Depending on the needs of your client, or yourself, sometimes it is best just to make a custom CMS. Some non-developer types out there might scoff at this, but think of it this way. You could literally make your own CMS after learning some basic functions of PHP and MySQL.

      Seriously? You think it's better to rely on *your* own experience to handle every aspect of what should be a large and complex piece of software? Don't you know what we talk about here on Slashdot?

    4. Re:Custom CMS by Danzigism · · Score: 1

      please re-read "I'm not saying everyone should make a custom CMS" a few more times.

      --
      *plays the Apogee theme song music*
  25. From a developing Drupal user by davecrusoe · · Score: 3, Insightful

    Hey there, I've put together a couple sites in Drupal and DotNetNuke recently, and Joomla beforehand, and must state that Drupal is far more useable and powerful than either of the other two CMSs. Here are the general differences: Drupal is a little more challenging to learn, but far more flexible. I can easily create data types and taxonomies, and relate information across modules and locations in the site. Its theming is relatively simple, and it's not a pain to incorporate social / profile elements in a standard way, across the site. Theming login modules and other user elements is simple enough. Its code is pretty good - very good, in many cases. On the other hand, DotNetNuke is like legacy software stacked upon legacy software upon legacy software. It has been nothing but trouble. Its modules don't communicate easily with one another and, unless you want to recompile the entire clunky thing, its code is a pain to change around. I definitely don't recommend it for a big-time site, no matter what they state on their homepage. Otherwise, it's somewhat easy to change *content* on pages - but again, not as powerful as Drupal. Finally Joomla is somewhere in the middle. Very easy to use, but on the other hand, not as powerful. It's fine for a beginning site, but probably not the tool/base I'd choose for a very advanced site with multiple social features and custom needs. Cheers! --Dave

  26. Drupal: Powerful core engine by thule · · Score: 1

    I just started playing with Drupal. I have not ruled out trying Joomla, but Drupal seems to have pretty good support out there, so I tried it.

    What I like about Drupal is what most graphic design people would hate about it. Out of the box it is not easy to drop a graphic here some text there and make a site. Drupal seems to be focused on storing and presenting lots of information in a consistent way. The admin might make a new type of node in Drupal and give the user some fields to fill out. To the user it seems very simple to post a news release, a blog, or a podcast. To the admin the nodes provides a powerful way to keep things consistent and easy to find.

    I will probably check out Joomla and see what it's philosophy is. All I know is that anything is better than Sharepoint -- what a mess!

  27. Weird timing by blakhol · · Score: 5, Informative

    This book was great when it came out. Over a year ago. Strange to get such a late review of a book. Fortunately a lot of things are still accurate, and Drupal 6 has been the main release during this entire time, but sheesh. The contributed modules have improved a lot since then.

    As far as Drupal itself goes, it's great. Yesterday my boss asked me to put together a secure site where a select group of people could discuss the upcoming budget cuts. The site needed to be attractive, secure, support single signon (integrating with our existing directory), restricted to one group of users, allow optional anonymity of posters (after authentication), and allow users to subscribe to threads.

    Starting from scratch, I had it all done in an hour an twenty minutes with Drupal (plus the hidden author, subscriptions, pubcookie, pubcookie site access, secure pages, and views modules).

    There seems to be a great deal of frustration and outright ignorance about how Drupal works in the postings above. If you want to be able to wield a complex weapon like Drupal, try the following resources.

    For examples on how to create common types of sites using popular, well-supported modules: Using Drupal, O'Reilly

    If you're a designer working with Drupal and want to understand how to work with it: Front End Drupal, Prentice Hall

    If you're a coder and want to know how Drupal works internally: Pro Drupal Development, Apress

    If you're not a book reader but like watching videos, pretty much anything put out by Lullabot

    If you're not a coder or designer but a power user who has to deal with Drupal's admittedly byzantine administrative interface: Drupal 6 Content Administration

    1. Re:Weird timing by vegiVamp · · Score: 1

      If you're a DBA looking to set up for Drupal: http://www.amazon.com/Book-Bunny-Suicides-Andy-Riley/dp/0452285186

      --
      What a depressingly stupid machine.
  28. Like Democracy... by sochdot · · Score: 1

    Drupal is the worst form of CMS except for all the others that have been tried.

    --
    If at first you don't succeed, destroy all evidence that you tried.
  29. Drupal's Great and all. by /dev/trash · · Score: 1

    If you have a site that either 1) has no users, all anonymous. 2) if you have users, lots of power.

  30. Build one to throw away by Hognoxious · · Score: 1

    As a Drupal developer myself, I'm not really sure why Greg had to mess with 1000+ lines of Garland-adapted code specifically because he goes on to say that he could do the same thing using Zen in under an hour

    Can you predict the future? No, neither could he.

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    1. Re:Build one to throw away by peater · · Score: 1

      I didn't say he should have predicted the future. I said that considering he could achieve something using Zen in less than an hour, it could probably be done in Garland as well within a reasonable amount of time without having to mess with 1000+ lines of customization code. And before you assume I have a God complex, no I don't. I have made the same mistakes and yes I agree they are a necessary part of the learning curve. But that doesn't prove that Drupal "sux". It just proves that Drupal is flexible enough to accomodate varying degrees of customization needs and time and experience allow the developer to customize it in insane ways. Sometimes you find existing templates that are close to your desired outcome and you can get away with tweaking them a wee bit to fit your needs and sometimes you can't find any existing template that's even remotely close to what you want in which case its probably a better idea to either use something like Zen or just start with the bare php-template engine output and customize it from scratch.

  31. Drupal ? Spare me. by vegiVamp · · Score: 2, Interesting

    As a DBA and Linux admin, I've had nothing but trouble with Drupal. We have several large-ish Drupal deployments, and we've had to hack away at the code for over a year now, and it's getting stable now, because we started building our own Drupal version with a shitload of patches to the core.

    Drupal works indeed fine for small-scale deployments, but as soon as you want to use Drupal's famed flexibility and customizability, and scale your site out, you're going to run into trouble, mostly with your database - especially if you want a lot of logged-in-only content.

    If Drupal is really serious about going on to be used for large, professional deployments, the best recommendation I have for Dries and the gang, is to abandond the entire "but we want to be compatible with all databases" whine, and decide on ONE database, which they use CORRECTLY and EFFICIENTLY. I'm sorry, but nearly a hundred queries for a single pageview is not acceptable. Please decide on an optimum technology stack and use it efficiently; and publish both the optimum stack and a fully patched, efficient version of the code specifically for large-scale deployments.

    We've in the mean time rewrote the caching engine to correctly support Memcached - some parts of Drupal still fuck up, though, so ftm we've got 12 separate Memcache bins for every site deployment, to avoid one module flushing the cache of an entirely different site. We looked at read-write splitting for the database, and found that it won't work (on mysql, at least) because of the way Drupal interacts with the database. We're doing ugly tricks wih Squid and cookies, because not-logged-in users sometimes get content from logged-in pages. We've done oodles of patches on Drupal core, to optimize database use and remove needless full table locking. We're writing custom modules to avoid using Drupal Views, which create queries that are so inefficient that one of them on the front page can kill your monster of a database host.

    No, Drupal may be very good for quick, small deployments, but if you're looking for something to build a high-traffic site with plenty of customization and member-only data, you're better off building your own framework from scratch, with scalability in mind.

    --
    What a depressingly stupid machine.
    1. Re:Drupal ? Spare me. by itzfritz · · Score: 1

      to abandond the entire "but we want to be compatible with all databases" whine, and decide on ONE database, which they use CORRECTLY and EFFICIENTLY. I'm sorry, but nearly a hundred queries for a single pageview is not acceptable. Please decide on an optimum technology stack and use it efficiently; and publish both the optimum stack and a fully patched, efficient version of the code specifically for large-scale deployments.

      Check out Pressflow, a mysql-optimized "fork" (more like a "distro", really) of Drupal, created and supported by a reputable and widely-known Drupal consulting firm..

  32. Some sunlight by Bozovision · · Score: 1

    I do see a lack of civility in your posts, but not much information.

    Drupal does claim to be modular. It doesn't often claim to be simple, unless you are only using a few core modules, perhaps in the default install, for instance, to make a blog. In the base install it _is_ less polished than, say, Wordpress. But it does more. I'm not sure how you measure intuitivity - what's intuitive for one person isn't necessarily, for another.

    I don't know what you mean by 'Behavours are inconsistent across themes'. Isn't the point of themes to bring individualism to your Drupal installation? Doesn't that by definition mean that different themes will do different things?

    Regarding 'Half the available themes are broken'. I have no idea where you get this statistic. I do know that if you install a Drupal 5 theme on a Drupal 6 installation, it will most likely not work. Perhaps that's what you did?

    Regarding 'Not supporting things off the bat'. Again, I'm not sure what you want? By default Drupal 6 supports posting stories, pages, blogging, aggregating content from feeds, hierarchically structured collections of pages, comments on any content, contact forms, multilingual sites, forums, login with OpenID, polls, clean URLs, content categorisation, registered user profiles, searching, basic statistics tracking, and user uploads. Amongst other things. I'm not sure what else you would like a CMS to do as in the basic installation.

    Regarding 'Enabling the modules requires manual downloads and dependency hells.'. Yes, in most installations you have to manually download and enable modules. This makes it more secure. Modules list their requirements and will not allow you to enable them unless their dependencies are also available. I'm not sure how this is 'hell'? Surely it's sensible not to allow a module to be enabled if it's guaranteed to break?

    Regarding 'The notion of using the site as you build it is shit,' On the other hand, eating your own dogfood is a very good way of being sure that your users will enjoy the site you are building.Usually one would put the site into maintenance mode, but this isn't required. But again, if you don't like to use what your users use, you ARE able to use an admin theme. If you are building a larger site, it's not recommended practice to work on the live site. I have no idea what you mean about 'just writing your own CSS'.

    'The only people who are willing to waste the time to understand Drupal enough...are those...chasing buzzwords...' Drupal is not for everyone. It's definitely not perfect; it's a large, rapidly growing system, which is being improved as it grows. Quality outside of the core is variable, as you would expect. It doesn't solve every problem, despite having around 5,000 modules available, spread across Drupal 5 and 6; clearly it didn't suit you, although it is fine for hundreds of thousands of other users. I don't know what problem you were trying to solve, but there are many CMS out there, and I'd recommend you start by investigating Sharepoint.

  33. Only half the story by Bozovision · · Score: 1

    What is large-ish in your context? I'm not sure that readers will realise that you are coming from a particular point of view. I maintain a Drupal installation with 1.5m nodes, which I wouldn't call large, because it has a limited purpose and does not use hundreds of extra modules. We have not had to patch or customise. And it runs on a VM on commodity hardware.

    I assume that you have a site with a great deal of functionality. Not every reader will realise that a CMS that is modular is naturally going to result in an explosion of queries; every module controls its own queries, each with its own tables. There are several ways of combating this: you can cache content and results, you can lazy-load daa, or you can reduce modularity, combining tables.

    Drupal already uses the first two strategies, and occasionally prticular modules are designed to work together and implement the third. For anonymous users, pages are delivered from cache. For logged in users pages can be put together from cached blocks, if your site is set up to do this. (There are some restrictions on this; it's not available in every circumstance.) It sounds like you may have shared content which is an unusual installation. Under normal installations, one site of a multisite install does not ineract with another site. The caching is not designed with shared content multisites in mind; I've also had problems with this, but I think that this is an edge case. It would be great if your organisation would contribute your experience, by posting your rewritten cache engine.

    I don't however agree with your suggestion of a focus on a single database. Yes, specialising to a single database will allow the use of features available on that database only, but at the cost of a portion of the audience. Similarly, we could say only a particular version of a particular database was supported, to allow us to use the optimisations available for that engine, but again this would cut the audience dramatically. Instead what is needed is a structured way to optimise. To a small extent this is already available through the SQL rewite hook, but this isn't especially safe. Drupal 7 deals with this by abstracting the SQL further, but the SQL rewrite is much safer, and more suited to rewrites for optimising.

    I'd be really interested in where you've had full table locking problems. Do you have an issue reference on drupal.org?

    Regarding "... if you're looking for something to build a high-traffic site with plenty of customization and member-only data, you're better off building your own framework from scratch..." With any CMS there's a trade-off: you can build your own, bearing the full cost yourself, or you can use one that's built already, whether closed or open source, amortizing the cost of the build over many organisations and individuals. By my estimation, Drupal core represents many millions of dollars of work. It's possible that your organisation can afford to invest that sort of amount in your own custom CMS, but the experience of companies that have built their own is that the cost of maintenance is too high, and many of them are migrating to open source software, which does more than they could hope to do, at a cheaper price, but which comes with its own problems. Organisations can use the money saved on the build to either make larger sites, more sites, or specialise the system, which is what your organisation appears to be doing.

    It would be fantastic if others could learn from your DBA experience. Would you consider posting a case study to drupal.org?

    1. Re:Only half the story by vegiVamp · · Score: 1

      When I say 'large', I don't mean data volume - that's something that databases are built to handle pretty well. I'm talking about the amount of pageviews, which runs into the millions per month for all our sites combined.

      I'm fully aware that Drupal already caches content - that very feature was the cause of quite some trouble: if you're gonna use caching tables, it's rather unwise to lock them for selects whenever you update them; which is at most every page request (that gets through the squid, of course), also true for the session table. This is why we've moved to memcache for caching, although that brought it's own challenges, especially for cache invalidations.

      We've looked at the block cache, but I'm not entirely sure wether we're using it, or why not. The block cache, like all of Drupal's cache layer, still requires PHP execution, though - I wish we could more easily relegate logged in pages to Squid. Nature of the beast, I suppose.

      We don't have shared content, every site has it's own codebase atm. We *are* considering moving to multisite,though, so our optimisations get implemented in all sites at once.

      You may not agree with focus upon a single DB, and you're right that you cut your potential public, but you'd also be much improving your out-of-the-box performance, which would gain you more, imo. This is of course a matter of personal preference - personally I would prefer a better product to a larger userbase. I'm not familiar with the SQL rewriting facility, but it feels wrong to have to bother re-writing something that's already in the application, however convenient you make the process.

      My DBA experience is the same any DBA would have seen: I found that the tables are mostly well-layed out and well-indexed, but the entire design of the application is so that you can't even gain any benefit from moving to row-locking InnoDB without modifications to the code.

      --
      What a depressingly stupid machine.
  34. heres my take by EgNagRah · · Score: 1

    People who have no experience with anything other than hotmail or google need some kind of base, the ability to NOT spend thousands of dollars every time they need their site altered. I like working with drupal because it is easy, unless you are completely in the dark. Learning is good, sometimes it can be a "waist of time" but at least your brain isn't rotting.

    1. Re:heres my take by Anonymous Coward · · Score: 0

      In IT, that kind of learning IS rotting your brain if you ask me. The less of that you can do the healthier you will be.

      You are better off learning something else. Skills off your computer such as hacky sack.

  35. The source code is good by Bozovision · · Score: 1

    I absolutely agree - look at the source code - one of the reasons that we standardised on Drupal was that the code is well structured and well thought out. It's based on a call-back system with hooks triggered by naming convention. It is well documented, and has a wide series of tests that are automatically run against it, for regression tests of changes. The API is documented at api.drupal.org, and includes examples of how you can extend the system.

    All the above applies to the core code, and the widely used modules just outside core - like Views, which is a module to help non-programmers build structured queries and present the results.

    I agree that amongst the third-tier modules, the quality varies hugely, as you see in much open-source software. Some of them are very well written, but others are not.

    Each module has an issue queue, which is publicly visible, and usage statistics tell you how widely it's used, which allows you to make some decisions even if you aren't a coder.

    The only criticism I have with the core code is a technical one that doesn't matter to end-users; most of it is not object-orientated. This is not to say that it's unstructured: it is very modular. And there's a good reason it's not object oriented: it's because PHP4 made it very difficult to build a name triggered callback system with objects. However, I expect the core will become more and more object oriented over time since PHP5 objects are much more robust with reasonable performance characteristics.

    1. Re:The source code is good by jamonterrell · · Score: 1

      It's not at all well structured. It could have been laid out better without being OO, but going OO would definitely help. There is a complete lack of isolation, interfaces are pretty much defined by giving modules access to the entire core, which is a cop out for interface design that puts the entire burden of making modules work together on the module writers and moreso on the site owners. If the module API isolated internals and only made available methods that would allow customization without incompatibility (an interface that by definition defined compatibility between modules), I'd have more respect for it... but this is just the one thing that jumped out at me right away. The code is garbage all the way through. It makes heavy use of globals, and other magic that you just have to know about... the code is definitely not self-documenting. There's no separation of view, logic, and database access... queries are spread across everywhere. Files are thousands of lines long, with no clear separation of ownership of tasks. Methods are sometimes very long, doing 15 completely different things themselves instead of being responsible for only one thing. The same chunks of code are repeated throughout many methods due to poor abstraction.

      --
      I can count to 1023 on my hands. Ask me about #132.
    2. Re:The source code is good by Bozovision · · Score: 1

      Contrariwise: it's very well structured. Each module has a defined structure. The core is modular too, with functionality being in predictable places. Functions are given predictable names, thanks to the hook mechanism.

      If you are going to contend that it could have been laid out better, give firm examples.

      Isolation. PHP4 does not have namespacing. PHP4 does not support interfaces. Until recently PHP4 was supported by Drupal. The point of isolation is to enhance security and attempt to limit the effect of bugs. Given that the language makes few attempts to support programming-in-the-large, it's a bit much to expect software developed using it to do so.

      I suspect that by 'interfaces are pretty much defined by giving modules access to the entire core', you meant that you would like to sprinkle getters and setters liberally, then you are right. Drupal eschews a layer of make-work that prettifies without adding any value. PHP is not an especially speedy language, and adding them would have little benefit in return for a unhealthy slowdown. If you mean that the there is an agreed structure to key variables, and they are passed between procedures without limiting access to subparts, then yes, you are right. You might expect this to cause problems, but in my experience, it doesn't. Partly this is because of the test layer. Partly because the system depends upon modules obeying implicit rules.

      I see no cop-out at all. Modules that respect the rules of interaction work fine together. Where modules are known not to work together, this is documented.

      'If the module API isolated internals...' This isn't possible in PHP without using objects. PHP4 objects did not support the hook mechanism. A smart a object-based hook mechanism for PHP5, that didn't require registration of each hook, only became possible with magic methods. Only supported since PHP5. And last time I looked the performance of magic methods was abysmal.

      'The code is garbage all the way through.' Another sweeping statement. Clearly all the tens of thousands of lines of code are rubbish.

      Globals. The point of reducing the use of globals is to minimise the impact of a change in one place impacting unexpectedly in another. Drupal6 has 45 globals. Most of these are sensible as globals: for instance $language - an object containing information for the active language. Of these 45 only 1 is in wide use: $user which represents the current user, storing their preferences.

      View, logic & database access. Database - Drupal contains a database independent data layer and has since Drupal5. All access is through the database layer. Views layer: Drupal has a strong theming layer, with more than 1 theming engine to choose from. All presentation is through themes. The data passed to themes is a limited structured subset of the data held by the core. Hooking into output requires you to work through the theme layer. Logic is separate from the theme layer and is usually event driven. Ownership of these tasks is implicit in the names of the functions - for instance - mymodule_block_theme is the callback for theming the block output by mymodule.

      Methods are long. Yes, sometimes. Sometimes not. It depends on what is sensible. The same chunks of code: I'm sure there are repeats. I've not seen whatever it is that you mean - perhaps some examples.

      I don't contend that Drupal is perfect. It's not. But what I see in your list is a bunch of accusations, with no proof.

  36. Thanks by Bozovision · · Score: 1

    Thanks for the detailed reply. Sorry, I wasn't meaning to teach you to suck eggs. That part of my reply was for readers who don't know much about Drupal beyond it having a strange name.

    Interesting: I didn't know about the table lock on cache! Are you using Drupal 6? I've just done a search, but didn't find anything. I did find a status report I didn't know about! At admin/reports/status/sql which shows lock hits amongst other things. Maybe you are on Drupal 5? The cache updates I found where all straight inserts/updates or deletes. But whatever - I'd say that you were right in moving caching to memcached if you have to support millions of pageviews.

    Yes - I agree the cache layer needs PHP execution, and that's not so great. Actually, IMO it's not the PHP, but that it's a hit against the database, even though it is a single query. A hit against the file system would avoid the whole DB connection and query. Drupal Boost caching module wouldn't bring huge benefits for you because you have lots of logged in users, but it uses static files and doesn't hit the database.

    Block cache can be efficient at cutting down database hits and code execution. And if you are using Views2, it will also use block caching for HTML and queries. It has options for lots of different caching strategies - from one for everyone through to per user per block. Block caching not well documented though.

    One thing that I'm not sure of is why one website would interfere with the cache of another if you are not sharing content. [Readers: you can configure Drupal to use a single database for all websites, or multiple databases. If you have a single database, then you can configure each installation to use a different set of tables, through setting a prefix to the table name. It's very unusual to share any of the cache tables across sites except in the shared-content scenario, where the same content is being presented on more than one website.] Maybe I've misunderstood. It might be that the sites are running on a cluster against a db shared across the cluster. In this scenario, I can imagine one machine locking others out, though I'm not sure where in the code a table lock is.

    Multisite: Good points and bad points. The management of update is the bad point, when you put in a new module with database upgrades. You have global downtime unless you do progressive updates by putting the module first in the specific directory for each of the particular sites and running update for that site. But it does lower the admin cost.

    SQL rewriting works in some circumstances. See hook_db_rewrite_sql. [Readers: The base problem is that it's difficult with modularity to avoid explosion of queries. This is true of all modular systems with database interactivity. You can avoid it if one module is intimately aware of another, and then the two can co-operate, though this is context dependent. For instance - if the first module loads the user details (name, user account, email, etc), and a second, optional, module loads a user profile, then you could cut down on the queries by including the user profile columns as part of the user table, and loading the two at the same time. Modularity, however, is not your friend here - to make the management of a profile module easy, it's much better to have it in its own table. But now you are doing table joins or loading one and then the other. If you have a heavily customised system, then you can make the joined table by hand, and modify the queries. You can do this either by changing the core code, or by rewriting the SQL on-the-fly, by writing a new module. With the second option you can leave the core alone, and your changes are overlayed, at the cost of a small drop in performance of the PHP (since there's an extra function to run). The PHP drop is almost certainly negligible compared to the database speed-up, except where the database is already in memory.]

    1. Re:Thanks by vegiVamp · · Score: 1

      We're still on 5, indeed. Work is currently ongoing to integrate our patches (in as far as necessary) into Drupal 6, and then upgrade site by site.

      We've looked at the Boost module, too, about a year ago, and found then that it wasn't what we needed. Again, the dev guys know better than I why :-)

      The cache interference issue was, as far as I can tell, to do with clear_cache calls or something of that ilk emptying the entire bin instead of just the keys it should. Don't know much details, but it got worked around by splitting the bins.

      And, yes, our sites are running on a cluster of by now 8 webservers, against two separate MySQL databases. One DB could handle the load, but we left the most troublesome site behind when we installed a new one :-)

      I agree that you can't do much cross-module optimizing of your queries, but I've got logs that show literally dozens of nearly-identical queries on a single cache table for a single pageview (not all of our sites already have all of our optimizations).

      Something I suspect may be an issue when moving to InnoDB is that the entire database layout and usage scheme might not be very optimal for InnoDB's clustered indexes. I haven't looked at that yet, though, so I don't know how big the impact would be.

      --
      What a depressingly stupid machine.
    2. Re:Thanks by Bozovision · · Score: 1

      Yes, each version is an evolutionary jump on the previous version. Not surprisingly, D6 has got better caching than D5.

      Boost: It replaces pages with static html. This static cache is updated on a schedule. But if you have someone who is logged in, because it completely bypasses PHP, you have to replace all the page elements that are different for logged in people with Javascript driven widgets which load the block data dynamically. For a site with lots of elements this is a lot of work. Plus you are depending on Javascript being switched on. So if you have lots of logged in users, and lots of blocks just for logged in users, and you don't have much control over their environment the site is viewed in, then this isn't really a starter.

      Global cache clear whacks everything, obviously, but it's quite surprising to me that item/page cache clear does this. I've never had a close look at caching on D5, but knowing that there's a potential problem here is useful. Thanks.

      I'm guessing that you already track the groups.drupal.org that deal with high volume sites and the distributions intended for your situation like PressFlow, Mercury, OpenPublish, and http://groups.drupal.org/high-performance. Pressflow in particular has spent lots of effort on optimisation, and there's a D5 version. Pressflow also only supports MySQL, which answers one of your concerns. Maybe you've already trawled through it, looking at SQL optimisations they've done.

      InnoDB: I can't comment, but I'm pretty sure that someone in the high-performance group has experience to offer. I think most high-performance sites are using InnoDB, and I'm pretty sure it's the Pressflow default. I know there's an issue with node counts on InnoDB, and I think that Pressflow changes the way that this is handled.

      BTW - check out http://groups.drupal.org/node/25617 not so much for the comparison of performance stats on D6, because it's concerned with non-logged in users, but because the discussion below the article will probably interest you.

      Once more, thanks for your very good posts; it's always useful to learn other people's experiences.