Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Image

Drupal Multimedia 130

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.

*

This discussion has been archived. No new comments can be posted.

Drupal Multimedia

Comments Filter:
  • Drupal Sux (Score:5, Interesting)

    by Ethanol-fueled ( 1125189 ) on Friday November 06, 2009 @06:07PM (#30010476) Homepage Journal
    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 ?!
  • by halcyonandon1 ( 1568125 ) on Friday November 06, 2009 @06:12PM (#30010514)

    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.

  • by Anonymous Coward on Friday November 06, 2009 @06:30PM (#30010678)

    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.

  • Re:Drupal Sux (Score:5, Interesting)

    by Ethanol-fueled ( 1125189 ) on Friday November 06, 2009 @06:51PM (#30010888) Homepage Journal
    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: [drupal.org]

    "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.

  • by TheModelEskimo ( 968202 ) on Friday November 06, 2009 @09:19PM (#30011764)
    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.
  • Custom CMS (Score:3, Interesting)

    by Danzigism ( 881294 ) on Friday November 06, 2009 @09:30PM (#30011816)
    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.
  • by vegiVamp ( 518171 ) on Saturday November 07, 2009 @08:40AM (#30013750) Homepage
    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.
  • Drupal ? Spare me. (Score:3, Interesting)

    by vegiVamp ( 518171 ) on Saturday November 07, 2009 @09:09AM (#30013836) Homepage
    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.

No man is an island if he's on at least one mailing list.

Working...