Drupal

Drupal Power Workshop cover I'm happy to announce that Drupal Power Workshop, my latest video training course for Drupal, is now available. It's just under five hours long, and is the first of these courses to be recorded at the video2brain offices in Graz, Austria.

Categories: 

I traveled to the video2brain home office in Graz in late September to record some more training videos (more on that in a day or so), and prior to that, I had a very intense couple of months preparing the courses and working on other projects for clients. I didn't get out much.

Categories: 

I'm currently working on a new Drupal site with a lot of media: slideshows, movies, and audio. I'm taking the opportunity to use the much-in-development Media module. Because this site needs to go up soon, I'm using the more stable 7.x-1.2. It's a much more robust way of working with rich media than anything Drupal has had previously, but there are some things that need some extra work, like display of uploaded MP3s and movie files (as opposed to embedded media from other sites).

Categories: 
Tags: 

Getting Started with Drupal cover My second training course from video2brain is now available. It's a wicked humdinger, clocking in at nearly five and a half hours, and it's called Getting Started with Drupal.

Categories: 

If you use Drupal on any kind of regular basis, Drush is your friend. It's a command-line utility available for all platforms (including Windows as of version 5!) that can do sometimes-seemingly innumerable tasks for you. I've been using it for installing, enabling, and disabling modules and themes; clearing the Drupal cache; and running code and database updates for years now, but that's just scratching the surface.

Categories: 
Tags: 

I've been a member of the Drupal community for over six years. It was the first general CMS I felt struck a good balance of usability for me and my clients, and extensibility in a way that made sense to me. I could build a website to almost any set of requirements with it, and that was nifty. I've diversified since then, using WordPress on some projects and Drupal on others, but Drupal was the first one that stuck.

Categories: 

I had a really great time at DrupalCamp LA this weekend. It had been a couple months since I'd been able to make any of the community meetups, and it was nice to feel like a part of the community again.

It's been years since I did much (if I'm being honest, I think the right word is probably "any") presenting for more than one or two people at a time. Since I joined up with LA Drupal, though, I've been feeling the itch to get up and speak, so for DCLA I gave three talks. Here are links to the session pages, the slides, and the screencasts:

  1. The Power of Display Suite - Video / Slides
    This is an overview of Display Suite, a tremendously powerful and useful module for Drupal 6 and 7. This was one of the first presentations of the camp, and seemed to be very well-received by the folks in the room, and even remotely by the maintainer of the module! Thanks for Steve Rifkin for organizing it, and for the second half of the presentation. Unfortunately, I couldn't attend because of…
  2. A Bajillion Modules - Video / Slides
    Drupal has a ton of modules and themes available in the contributed repository. This presentation was part of the beginner's track, and gives a quick (especially at the end when I was running out of time) overview of a bunch of the good ones.
  3. My First Module - Video / Slides
    I think there are a lot of builders of Drupal themes who don't touch module development because it seems difficult. It certainly can be if you're talking about the big ones out there, but there are cases where writing a small, simple module is the way to go, and it's not difficult. This presentation goes over the basics.

I'm still catching up and recovering from the weekend's excitement, enrichment, and foolishness (the fun kind). Once I do, I'll probably post again with some reflections on and favorites of the session I attended. There was a lot of great stuff. Can't wait for next year!

(By the way, are you wondering if I'll ever update this website, maybe even turn it into a Drupal site? Me too!)

Categories: 

I'm using the jQuery plugin Smooth Div Scroll on a site right now, and it's filling my needs nicely. The site is built on Drupal 6, and SDS requires jQuery 1.5, so some jiggery-pokery is needed to get all the right libraries in the right places. Drupal 6 includes jQuery 1.2, and the Drupal 6 version of jQuery Update only takes that up to jQuery 1.3. I had to mess with my theme's phptemplate_preprocess_page() function to make it all work. I don't think this is a common enough problem to bother posting about my specific solution, but here's the code I started with.

Once I was able to get it working on the pages of interest, Smooth Div Scroll has done a fine job.

The goal is a gallery with a smooth, horizontally scrolling image carousel, with thumbnails below for jumping directly to certain images. Smooth Div Scroll does this very well using its "moveToElement" method. The only problem is a distinct lack of smoothness — it just jumps straight to the image instead of animating.

I was pretty sure this wouldn't be difficult to fix. On line 384 of the non-minimized jquery.smoothDivScroll file, there's this line:

el.data("scrollWrapper").scrollLeft(el.data("scrollXPos"));

Just like it says, it sets the scrollable area's left position to whatever it's supposed to be directly, with no animation. To make it animate, replace that line with this:

el.data("scrollWrapper").animate({'scrollLeft', el.data("scrollXPos")}, 'slow');

Same thing, but with a "slow" animation. Nice!

Categories: 

I attended Drupal Camp Chicago at the beginning of December and had a great time. It was the first conference I've been to since CHI back when I was a graduate student at Carnegie Mellon's HCII. I don't go to many conferences because they tend to be so expensive, but at $25 for two days, Drupal Camp was the sweetest deal around. As they say on eBay, A+++++ WOULD BUY AGAIN.

My goal was to learn some new things, meet some of the people in the community, shake a few hands without catching the flu, and maybe try to answer some questions for people who are newer at this than I am. If there was a code sprint or some opportunity to help out with the upcoming Drupal 7, I thought I'd have a go at that as well. I was able to do all of these things!

Categories: 

I'm starting to build new websites with Drupal 6 now that the juiciest modules (CCK and Views especially) are nearing stable releases, but Drupal 5 is still very widespread, so I expect a lot of people will be using it for at least a matter of months, maybe years.

Drupal 6 offers a nifty and useful javascript effect on administrative tables: the table headers stick to the top of the browser window as you scroll down. This is especially handy on pages like the user permissions page with its bajillion checkboxes. Drupal 5 doesn't have this, but with a little bit of code, you can get it. I've made a little module that, when installed, will add sticky headers to the user access page in Drupal 5. It requires jQuery Update 5.x-2.0 or later.

Download Sticky Headers module »

Once you've installed and activated both jQuery Update and Sticky Headers (they're both in the User Interface package on the modules page), you should be able to look at your user permissions page (called Access Control in Drupal 5) and get a scrolling table header to help you keep your place.

Some notes:

  1. This module works by injecting an HTML class (sticky-enabled) into the table tag used for the user permissions page. The included javascript file looks for that class and does its magic.

  2. I made it work by overriding theme_user_admin_perm() from the core user.module. The function is named phptemplate_user_admin_perm(), so if you want to override that table in your theme, you'll need to make sure your function is named mythemename_user_admin_perm() or you will run into naming conflicts.

  3. With this module enabled, you can add the functionality to other forms throughout Drupal. With themeable forms, you just look for code that looks like this:

    $output = theme('table', $header, $rows, array('id' => 'whatever'));
    

    And in your theme where you override that function, add the sticky-header class like this:

    $output = theme('table', $header, $rows, array('id' => 'whatever', 'class' => 'sticky-enabled'));
    

    From there, it should just work.

  4. The colors in used for the sticky headers are hard-coded right now. If I didn't hard-code it, the background on the sticky header was transparent, which made it hard to see. So for now, it's always black on white. In the core themes, you probably won't notice.

  5. I don't think I'm going to try to add this to the Drupal repository. It's useful, but I don't know if cluttering things up with a small backport module like this is a good idea.

Categories: 

Pages

Subscribe to RSS - Drupal