drupal

composite layout

Ok, for any of my four readers who use Drupal, this post is for you.

I have found the BEST MODULE EVER.

It's called Composite Layout and it's like Panel Nodes except a) it works and b)... it works. (I'm using D6 and I can't even get basic Panels functionality together, let alone cool stuff like argument-passing).

Don't get me wrong, the Panels module is great for a few things, most notably its idea of "contexts" - you can give a panel a "context," which means that any time a user goes to a node of that type, it gets passed through into the panel; the node shows up as the content, and the panel's blocks and whatnot are chosen according to the node type and ID. Very nice for creating, say, an "Events" page where related events and links are chosen based upon the event ID and displayed in a set way.

But can't we already do that with blocks and views? I hear you ask. Well, yes and no. We can define regions, and put blocks into them that chose their contents based upon node ID as long as we do a bit of custom PHP work; we can even get fancy and have either/or region selection, page-type templates, etc. This is probably the way a big website should do it - reduces database load, for one thing, and allows more specific performance tweaking.

And I heard it said once, and I agree, that Panels breaks Drupal. Seriously: it breaks page-by-page block placement, it breaks the idea of regions and conditional displays. But maybe that's not such a bad idea, because blocks can fast get unwieldy if you've got more than ten of them or so and have to manage them on a content-type or page-by-page basis.

So yes, it's easy to tell the block to display itself per content-type already. It just requires some PHP, which not everybody is up on. And panels allows you to create page layouts independent of theme, which could be really handy if we're talking about sites that want to support user-skinning. So Panels is probably good, as long as you're OK with the fact that it re-themes your page, mucks with regions, etc.

However, for simpler stuff, or for people like me who do do page-type theming, Panels is very heavy-handed, especially if you just want to partition just a single page (like a section page) here and there.

Enter Composite Layout. It's almost word-for-word Panel Nodes - it lets you partition a node into areas, fill those areas with blocks, etc; but it's extremely lightweight, has a nice UI, and it is D6 ready.

Five thumbs up!

Drupal!!!

Queen's Libraries just launched their DRUPAL website. Wheeee! Go Libraries!

6

ARGH.

One of the problems with, say, Drupal (guilty look) is that the release cycles are kind of fast. And right now they're in the middle of one - a major move from 5 to 6. The only problem is that the vast majority of user-contributed modules (major ones, like CCK and Views) have only recently been ported, so many users haven't migrated. But with fewer migrations it means that there are fewer smaller modules being developed for 6. It also means a less mature code base, and more bug hunting. Which, in open-source terms, is great -- users who are willing to bug hunt help the entire community.

But for production sites, it's not so great. And I want to use 6, because it is very nice, a huge step up from 5. It has the Usability Testing Suite, which ROCKS, and it has a few other fairly substantial improvements in the behind areas. So I'm sitting on my hands waiting - literally hitting refresh every hour on some of the CVS queues. I've tried to pitch in on a few modules but there's only so much you can do if the maintainer is working on it at the same time.

In short: GRAH. I'm about *this far* from going back to 5 (mature, stable, but with fewer cooool features and cludgier UI) and worrying about upgrading later, when all the modules I like are available. But that is a big pain in the butt, and I want my users to get used to doing things the way of 6. Sigh.

drupal, again

The wheel, it is being reinvented every day.

I've been doing a survey of the systems that Queen's uses for content and learning management, going around and meeting with people and chatting about web solutions. It's great, because I get to meet my contemporaries and forge connections. There are a lot of us out there, scrunched away in tiny offices, working away in the dark.

However, nice as it is to meet and greet, I'm simultaneously dismayed by the number of custom solutions we've all created, solutions that individual admins have spent years (and in some cases tens of thousands of dollars in salaries) working on... solutions which replicate functionality that out-of-the-box, open-source software already does.

And what for? In every case there is an admin - or, worse, a contract company - who leaves a custom, legacy system that nobody else knows how to update, maintain, or use.

This started when I was at Applied Science - they created a student portal, fully custom coded. Why were we reinventing the wheel? There were many reasons, but most of them came down to failures of research, rather than failures of options. But it wasn't just us: this survey I'm doing is turning up similar issues all across campus.

Part of it is excusable - sometimes, the technology wasn't quite ready yet, so three years ago admins went their separate ways, and created stopgap solutions that became institutionalized. But god, even if they'd worked together across Queen's we could have gone so much farther.

And then the failures: ITS chose an open-source solution that they abandoned a year later... because it didn't have the functionality they needed, and it wasn't being maintained anymore. Whoops. Again, I think, a failure of research and planning - decisions were made based upon thinking about negatives (we can't use it if it can't do this, this and this) - without considering the positives (can we roll our own modules? Is there a development community? Will the tech get better?) In geek-speak, then, Queen's has been talking closed shop when we should have been talking open source.

Why? Part of it is that everybody works in isolation and doesn't know the ins and outs of the available web technologies - let's be gentle and say simply that Queen's can't afford to pay industry standard salaries, so they tend to get hobbyists-turned-pro (like me) rather than people who were working for companies who already went through these issues using good project management plans. So the decisions about what systems to use, or not use - as ITS found out - still failed them, because they didn't actually have a CMS expert working with them to tell them what was what. They made decisions based upon slick demos rather than upon developer community consensus.

And here we are: three custom, unsustainable portals, two failed open-source ventures, two completely custom, unsustainable CMSes, and one monolithic and frightfully expensive LMS later. And we're SO FAR BEHIND other universities it's not even funny.

Enter Drupal.

I said to somebody I was chatting with recently that Open Source, and being a Drupaller, is like religion. But that was just me being flippant, beacause it's actually not: unlike religion, I have extremely good, earthly reasons for why I am so devout. And Sony, IBM, Warner Brothers, SPIN magazine, Yahoo, UPEI and Calgary, porn.org (no, really), The Onion, Adobe (just Flex for now), Universal Studios, Nike, FedEx, AOL, Sun OpenOffice, Popular Science, Amnesty International, Harvard, Belgium, and the frickin' UN all agree with me.

I started developing my newest project in Drupal 6.3 last week, up from 5.1 at my last position, and HOLY GOD IT IS AMAZING. I forgot a) just how easy, and how much fun it is, to use Drupal, and b) how fast Drupal evolves. Six looks much like Five, but it has simplified so much - hooks for module development, menuing, theming, and views - that it is, literally, a joy to use. Fast, simple*, easy. I can't tear myself away.

So GET ON BOARD, QUEEN'S.

That is all.

PS: Use Drupal.

* For developers. Drupal is not MT or Wordpress: it's for programmers. But that's alright - you wouldn't expect a civil engineer to use MS Paint, would you?

Syndicate content