Quicktabs module: some updates and an attempt at a roadmap

Quicktabs, the Drupal module that allows you to create blocks of tabbed content such as views, blocks and nodes, and which I co-maintain with Csuthy Balint (Pasqualle on drupal.org), received a couple of significant changes recently. One of the changes, allowing Quicktabs blocks to be exported just like you export Views and other CTools exportables, had been submitted as a patch by Young Hahn of Development Seed a shamefully long time ago and I had procrastinated about certain aspects of it.

Four fallacies in some current Drupal community thought processes

Of course I couldn't help but be aware of the raging debate that went on today over certain remarks Dries made in his keynote at DrupalCon Copenhagen. My own opinions on the matter aside, sometimes people are just plain wrong. Here are some examples of the incoherent arguments being put forward today.

Fallacy #1

How the D7 AJAX framework could fall short of being spectacularly useful

With a title like that I should start by stating unequivocally that the D7 AJAX framework is a wonderful thing. Based on Earl Miles' CTools AJAX framework, it takes the agony out of dynamic form elements that characterised D6 AHAH forms, and I co-presented a session with Rob Loach and Randy Fay extolling its virtues at DrupalCon SF.

Obligatory time-marking blog post

It's almost a year since I last wrote anything on my own blog. I have written on other blogs, just not this one: for example, see the piece I just wrote on high-c.com, And would you like a Bach Chaconne with that, Sir? I'm hoping this will get me back into the habit of writing. I'm way overdue a post on Drupal-related things (I didn't even do a DrupalCon SF wrap-up post - in short, it was AWESOME). As seems typical for me, I've been working on some Ajax-related stuff, including a couple of core patches that I really hope will get into D7, more on that in a separate post.

IMG_3714

AHAH in Drupal: may it one day live up to its acronym

With a name like AHAH, one might expect positive experiences in one's dealings with it. But often a name like "AGAH!" would seem more appropriate (Asynchronous Groaning and Headbashing?). There's no doubt about it - AHAH in Drupal is hard. I'm referring here to the trick of dynamically changing elements on a form or adding new ones, as is done on the poll creation form in core. It was next to impossible in Drupal 5, promises to be fairly straight-forward in Drupal 7, but has many people tearing their hair out in Drupal 6.

Rotators Unite!!

The "featured content rotator" seems to have become a standard feature in our client sites - a front page device for promoting content, using nice "flashy" effects during auto-rotation between promoted items. For Drupal 5 sites I ended up always working off the same custom module I had built for the first one and having to tweak it according to different client requirements: Did they want tabs? Did they want pause and play buttons? Should navigation be triggered on tab click or on tab hover? And so on. I had been thinking to myself I should really get around to writing a one-module-fits-all solution, where these options would just be different configuration settings. Well, I am now certain I will never write such a module. Recently, we needed to implement a rotator feature for a D6 client site. I had heard vaguely that there were D6 modules available but until I came across this post in the Duplicated Modules Hall of Shame on groups.drupal.org I had no idea that so many developers had contributed their own version of this feature.

YADCWUP or Yet Another DrupalCon Wrap-Up Post

I already posted a conference wrap-up over on the Raincity Studios site but wanted to write a more personal summary of the week here. One of the best things about the trip was the opportunity to hang out with Ariane and Audrey in our cool little flat in the Dupont Circle neighborhood.

Hofstadterian Loops

I Am a Strange Loop

Reading a book by Douglas Hofstadter is the intellectual equivalent of eating the most satisfyingly delicious meal imaginable in the most enjoyable company ever. I've only read three so far and my favourite has definitely been "Le Ton Beau de Marot", because I don't think it'll ever be possible for a book's subject matter to be so broad in scope and yet so perfectly match my own areas of deepest interest.

Introducing Quick Tabs 2.0: ...and would you like some AJAX with those tabs?

When the Quick Tabs module was first conceived, it was meant as a space saving device that would replicate a feature becoming quite common on news websites: the little "Most emailed / Most popular" block, where you'd have two tabs, each showing about 5 items (node titles with links to the nodes), and that would be that. Of course I wasn't so short-sighted as to limit it to two tabs (I limited it to 10), but I didn't imagine there'd be much more people could want out of it. Well, my issue queue soon proved me very wrong.

The dual aspect of Drupal forms and what this means for your AHAH callback

Over the last week or two I've spent a lot of time on an aspect of my Quick Tabs module that I am certain none of its users will care a hoot about. It wasn't a case of adding a new feature or fixing a bug or even improving usability, but a question of, to put it succinctly, cutting down on its evilness. The admin form for creating and editing Quick Tabs blocks (where you choose either a block or a view for each tab) had a serious amount of ahah functionality: click a button to instantly add a new tab, click a button to instantly remove one of your tabs, select a view for your tab and have the view display drop-down be instantly populated with the correct options for that view. It was pretty user-friendly; there was just one problem: it flew in the face of Form API best practices.