Showing posts with label Drupal. Show all posts
Showing posts with label Drupal. Show all posts

4/16/2008

After spending two months with Drupal, my opinion of the CMS is rising.

Though I prefer simpler content management systems, I chose Drupal for a large project because it had a huge number of available add-ons, a couple that fit my needs perfectly. It looked better than the other top-runner in late 2007, Joomla, because my reading suggested it offers more flexibility in both design and programming. Frankly, I don't know if that is actually true, but I chose Drupal.

Getting used to Drupal is not easy. Actual installation was a snap, and took just minutes. But setup was another matter. I was setting up a publication website, and out-of-the-box, Drupal is configured as a blog. That proved to be easy to change, but learning how to configure Drupal for my own purposes was challenging. Drupal is a complex set of scripts, not something you pick up in one day.

I had other projects going full speed, so I could spend just a couple of hours a day on the Drupal website. The first few weeks were not pleasant. Every time I tried to change something, it turned out to be more complicated than it seemed. I blundered about quite a bit. I cursed Drupal many times.

But eventually, the learning curve flattened out. Now, the site is mostly operational, and is on schedule to go live in a couple of weeks. Now that I have some experience with Drupal, I respect its versatility. It is a very good CMS, and it can handle a huge amount of content.

In retrospect, there are several things I've learned that might help those of you who are new to Drupal.

First, be prepared to spend some time learning the ins and outs of the Drupal core and any of the modules you choose to add. It takes time to learn Drupal, much more time than the simpler content management systems or blogging engines.

Second, test any module before you commit to using it on your site. There are plenty of great, trouble-free modules available for Drupal. Look for a track record of other sites already using the module. Don't depend on new, untested modules. They might not work yet.

Third, setting up a new feature, module or block in Drupal is never a one-step thing. It is always a process involving several steps. Sometimes, the steps may not be instantly apparent. What I mean is, sometimes I mumbled to myself and tore out hair follicles while trying to figure out how to turn on or turn off a particular feature. In several cases, the documentation was severely lacking and I spent hours searching through the help forums to find the answer I sought.

Fourth, you have two choices when it comes to the final appearance of your Drupal site. You either find a template you like and use it as-is, or you spend a bunch of time learning how to modify a template to your liking. There are hundreds of Drupal templates available, some very nice. But if you are intent on customizing your website's appearance, you are going to spend many hours doing it.

It takes a lot of time and effort to learn Drupal. Along the way, I considered chucking it and starting over with a simpler system. But now that I've put in my time, I see why others are so enthusiastic about Drupal. It is a solid, infinitely expandable content management system. With hundreds of add-on modules and hundreds of templates, it can become almost anything you want. Now that I've climbed the mountain of learning Drupal, I can see the rest of the mountain range, and none of the peaks look too tall. I see that my hard-earned knowledge of Drupal will allow me to build any kind of site of any size relatively quickly and confidently.

But if you're just interested in building a website for yourself or your small business, you will get it done much more quickly using a script like LightNEasy, Jaws, or MuCMS.

4/14/2008

I'm nearing end of construction of a fairly massive site based on Drupal.

To rotate and track banner ads, I originally installed the standalone script OpenAds, and used the Drupal module written to incorporate it into a Drupal site. OpenAds has a long track record under its old name PHPadsNEW, and a few weeks ago was renamed yet again to OpenX. I was sure it was the way to go. The installation of OpenAds wasn't too bad, but would be challenging to someone who has never installed a PHP/MySQL script. The administrative interface of OpenAds, at first, looks great. But in the end, getting ads installed in the system is quite complex. There are a few steps along the way that are not apparent until you study the documentation, and that comes up short in a few areas. Once the script is fully installed and running, the process of adding a single new banner ad involves more than a dozen steps: you create a new ad campaign, you assign several variables there, then you ad the banner ad itself as part of that campaign, and quite a few more questions must be answered there. In short, not terribly user-friendly. If I was away from the system for a couple of weeks, then went back to it to add a new client, I always found myself stumbling around in OpenAds trying to remember what step to do next, which tab to click on to do it, and wishing I had created a cheatsheet.

The other part of the installation was the Drupal module intended to embed the OpenAds banners inside a Drupal site. Installation of this likewise wasn't too bad, but did require me to go fairly deep in the OpenAds process and scan through some code to pick up an encoded line and copy-and-paste it into the module. And repeat that process for each banner or button size I had defined. Once that was accomplished, it was easy to use Drupal's Blocks module to display the various ad sizes where I wanted them. Except in my template, I had to resort to hard coding one banner in the site template code.

Installation issues aside, this setup seemed to work for a few weeks, except for two troubling things. First, every few days, one or another ad position refused to display for several hours. For example, my 468x60 banner ad suddenly would be blank for three hours, or half a day, at times. All the scripts were set up correctly, and I never could find the problem. It would spontaneously start displaying after failing for hours. Second, when I added a new button or banner, it would be several hours before that ad would begin showing up in the rotation. I check cron, even ran cron manually, and that wasn't it. The last straw was last week, when I installed my full stable of banner ads. Of the eight new ads I tossed in, only two showed up in the rotation, even after three days. I double-checked everything, even removed the new ads completely from OpenAds and reinstalled them. No go - they simply would not show up. And the blank ad space seemed to happen more often.

I'm not sure where the problem lies, with OpenAds, with the module, or with my server. But something wasn't working. (No, I haven't enable Drupal throttling for this module, so that can't be an issue.)

So I looked around and found a separate Drupal module called simply "Ads."

I installed it on a local test installation and it worked. So I installed it on my live site, punched in all my banners and buttons, and it worked instantly. The installation is much simpler than the OpenAds/integration module system. It seems to serve the ads more quickly, so site pages load faster. I will need to wait and see if it has eliminated the failure-to-display issue, but I suspect it has.

Installing the Drupal Ads module was simple. Unpack it, FTP it to the modules directory, then enable it in the Drupal control panel. Set up, aided by an excellent and concise readme file, was straightforward. Creating an ad group for each ad size or placement you want involves a few clicks in the control panel. Each ad group you create automatically shows up in the Drupal Blocks area as a new block that you can assign to the location you prefer. Then, to upload the actual banner or button ad artwork, you go to Drupal's Create Content control panel. You will see that activating the Ads module has automatically created a new Content Type, Advertisement. Just click on that, and proceed to upload each banner or button and use the logical interface to assign click-through url, group, etc. Click Activate, and your ad will instantly begin appearing on your site.

Ads includes a statistics module that tracks views and click-throughs for each ad, and even offers a graph for each ad and for each group. Perfect for showing your clients the stats for their banner.

The Ads module for Drupal is simpler to install, faster and more reliable than the OpenAds integration system. In a few weeks, I will update this post with a reliability report on the Ads module as it is working on the site.

UPDATE: 24 hours later, the new ad delivery system is still functioning flawlessly. There's an ad everywhere there should be one, all the ads appear in the rotation, and stats are accumulating nicely.