Current Articles | RSS Feed
Drupal is a hugely popular content management system, but for all of its flexibility and power it's missing a key component: an easy way to manage image galleries. If you need to create and manage image galleries in Drupal, here's an easy approach that won't cost too much of your sanity.
I'll presume you already have Drupal installed; if you need some help with that, From Zero to Drupal in 30 Minutes should get you up and running.
Verify that you can install new modules in your Drupal 7 installation by going to your Module administration page and ensuring there's a tick in the box next to the Update Manager module. After you click the Save Configuration button at the bottom, you should see a new "Install new module" link near the top of the Module page.
Drupal has several sets of add-on modules for managing image galleries. Most are complex and vexing, and many require some additional coding. If I wanted to write code I wouldn't be looking for Drupal modules! I've found a better approach in the Media Gallery module, which sets up a nice point-and-click interface.
Media Gallery's Readme.txt file warns that Media Gallery is still in beta, and that it depends on other modules that are also in beta, so you should not use it on a production system "unless you're able to tolerate bugs, maintain frequent database backups of your site, and keep up-to-date on the module's development so that you can quickly apply any patches if security issues are discovered." I haven't run into any serious issues on my sites, but your mileage, as they say, may vary.
To give Media Gallery a try, first find and install all the required modules:
Visit each site and copy the download link from its right-click menu. Go back to your Module page, click "install new module," paste the link into the "Install from a URL" box, then click the Install button. Drupal will ask whether you want to enable the new module; don't bother with this until you have installed all of them. Installing all these modules is rather tedious, but it's less tedious than managing image galleries manually. The Drupal module installer downloads and unpacks each module into the correct directory, which saves some steps.
The ColorBox jQuery plugin is not a module but a code library. You must have access to the Drupal installation on your web server so you can copy it to the correct directory, sites/all/libraries, and unpack it. If the libraries directory does not exist then you must create it. If your site is on a hosting service, you can use either cPanel or plain old FTP to install ColorBox.
Now you can enable the Media Gallery module, which will also activate all of its dependent modules.
When you activate your new modules you may get a message like this: "Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 76 bytes) in /home/madread/public_html/drupal/includes/menu.inc on line 3604." This means that Drupal wants more memory. Even though Drupal claims it's a fatal error, your modules should be enabled anyway.
You can see how much memory is allocated for your installation on your Reports -> Status Report page. If you're on a shared hosting service you may not have direct control of this, so you'll have to work with your service provider. If you do have control of your server resources, you have a number of ways to increase Drupal's memory allocation. The easiest way is to edit or create a file name php.ini in your Drupal root directory, and make sure it contains a line like this:
memory_limit = 64M
How much memory does it need? Drupal 7 needs 32MB just for its core module set. Image galleries and additional modules use more memory, but you don't want to give them a giant whack of memory because that can hurt performance when you have a lot of connections at the same time. Read the Drupal System Requirements page to learn how to calculate memory requirements, and how best to configure memory.
At last we can get to the fun part, which is creating an image gallery. First create a gallery on the Add Content administration page, then add your images to the new gallery. Your Add Content page should look the figure below, with a Gallery item.
After you create a new gallery it will appear on your Content administration page, just like any other content on your site:
When you want to add or remove images from your gallery, click on the gallery name on the Content page. If you click "edit," Drupal takes you to the gallery metadata page, where you can edit the title and other settings.
Let's quit faffing around and upload some images. Go to your new gallery and click "Add media":
You can upload images from your local computer and from the Web. Every uploaded image becomes part of your Drupal Library, so you can reuse images in multiple galleries without having to reupload them. The uploader supports a wide variety of file formats for still image, video, and audio. Sadly, the image uploader does not support batch uploads; you must enter only one at a time. However, you can install a batch uploader, as we shall in a moment.
Drupal creates a master Galleries page with thumbnails of all of your galleries. The figure below shows two galleries on my test site: one has images, and one doesn't.
Removing images from a gallery is tricky: while there is a nice obvious Add Media link, there's no obvious delete button. The delete buttons are concealed on each image thumbnail; click on the top right corners of the thumbnails to see them.
If you expect to install lots of files at one time, check out Plupload, which supports batch uploads. Unfortunately I find it to be unreliable; sometimes it works for me, sometimes it doesn't. It's easy enough to try. Just download and unpack the Plupload GPL2library into your sites/all/libraries directory, then download and enable the Plupload widget. It gives you a nice batch uploader:
One final bonus: Your new Drupal image galleries have a simple slideshow feature. Click on any thumbnail to bring up the full-sized image, and use the slideshow controls at the bottom of the image to move from image to image.
Allowed tags: <a> link, <b> bold, <i> italics