My Obsession with Content Trees and Subcontent

Feb 15

My Obsession with Content Trees and Subcontent

I’m stuck in a CMS rut. It’s a good rut, but a rut nonetheless.

I’ve written here in the past about a couple of content management patterns which I believe in very strongly: Content trees and subcontent. I often celebrate these two patterns as the “correct” way to model content. Problem is, I’m almost to the point where I’m non-functional without them.

Take Joomla for example. My church uses that system, and I tried to sit down and learn it so I could contribute. Despite lots of very helpful advice from Amy Stephen, I just couldn’t wrap my head around it. I just didn’t…get it, and I quit the platform just as confused as when I started.

Drupal was no better. I have a personal project percolating right now, developed with Drupal, helped along by Adam Kalsey. But I still don’t like it much. I know, I know — you can use taxonomy to impersonate a content tree. But I still can’t have subcontent. And without that, I’m sort of…lost.

This is a personal failing, to be sure, but it’s still a huge roadblock to me. After all these years, the content management part brain just works that way now. I need to break out of this pattern, I think. Not for functionality’s sake so much — I still believe the tree/subcontent model is the correct model — but because I probably let a bunch of really nice systems slip by because I can’t see past it.

eZ publish implements it. WordPress implements it (for its pages functionality). CMS Made Simple implements it (I voted for them in the Packt awards last year). So does Etomite (a nice system, worth checking out), and my newest obsession, EPiServer (with which, Blend is planning to take over the world). Ektron implements about half of it, which has always annoyed me (they fell into “the folder trap” which I discuss in the subcontent post).

Now, before you flame me about how awesome Joomla or Drupal is, save it. I know they’re good systems, and that’s what I find so frustrating. A lot of other people are doing really nice things with them — why can I just not wrap my mind around them? Why can’t I see past this one thing? As Gunney Hartman so eloquently put it (audio, beware), what is my major malfunction?

I don’t know. It’s frustrating.


Comments

by Brade,   February 16, 2009 8:48 AM  

I won't flame you for your opinions of Drupal and Joomla, but I will call you a retard for posting an uber-loud audio link there at the end. Unwritten rules, man, unwritten rules....

The only thing I can say is that the ideal CMS has yet to be created. I'm using Drupal right now at work---in many ways it's great, but it is quite limiting when you want to base your display logic on parent-child relationships. Specifically within the Views module, it would be handy to create such rules with your defined taxonomies.

However, I once tried to use eZpublish, as I had seen you pimping it quite heavily, and pretty much disliked it from the get-go, much as I disliked Joomla. Like you, I'm willing to admit that I simply didn't give it a fair shake or I got hung up on some idiosyncrasy, but the end result is that I had no fun. And therein lies the problem---no CMS has yet been "fun to use," in my opinion. But I believe it can be done. At my previous employer, we made nice strides with an AJAX-centric CMS called BlueInk, but we simply ran into a time barrier before we could implement good content-type-creation features. Still, I latched onto the idea that my ideal CMS would allow me to edit/add/delete content IN PLACE with various AJAX-enabled overlaid forms. I still feel that way.

But CMSes are just one type of software that has yet to be perfected. Project management (that includes billing management and time tracking) and personal finance management are two more that still aren't quite right. Mint comes close on the latter, but without the critical ability to enter your own transactions right away, it becomes far more of a passive app than it should be.

Anyway, good thoughts, Deane. Hopefully all this brainstorming will lead to someone creating the miracle app we're all looking for---I think it's within the realm of possibility.


by Adam Kalsey,   February 16, 2009 10:12 AM  

You can do subcontent in Drupal through the Node Reference module. Node Reference allows you to attach other nodes to the current node.


by Petr Palas,   February 16, 2009 12:28 PM  

Kentico CMS for ASP.NET supports both content tree and subcontent. It allows you to organize content as you wish in a content tree. For example, you can place a car specification in the content tree and list of add-ons under the car document.


by Graham Tillotson,   February 16, 2009 2:11 PM  

I agree with Deane in that I'm a purist when it comes to the content tree -- in terms of the modeling -- but I often have issues later on at the database layer. eZ Publish uses the classic pair of tables for storage, ezcontentclass/ezcontentclassattribute and ezcontentobject/ezcontentobjectattribute, and this schema structure a) can require a whole lot of performance tuning and b) is tough to unravel if you want to do any analytics work. My old company did something similar with v2 of their product when the put XML DTDs in one table, instances in another, then attempted to publish either through a cache mechanism or dynamic generation.

eZ Publish uses something of an expanded adjacency model, which means you can figure out where objects live in the tree with the help of metadata stored with the objects, but it still takes a whole lot of work and custom functions in an ETL tool. Maybe these sorts of things more important when high traffic is involved. At any rate, a lot of good CMSs to go look at. Thanks Deane.


by Doug - Velocity, B2B Marketing Agency,   February 18, 2009 12:09 PM  

You're right: EPiServer rocks.


by Kevin Shoesmith,   February 20, 2009 12:04 AM  

Both ExpressionEngine and Drupal allow for what you're calling subcontent.

In ExpressionEngine, a custom relational content model can very easily be created with custom content fields that allow you to relate content items with any number of other content items in the database. You can display parent > child relationships, or reverse that and display child > parent relationships. Neat stuff, especially when you throw metadata/taxonomy into the mix.

And while I'm still just learning Drupal, as Adam Kalsey points out, the Node Reference module allows you to achieve the same sort of relational model that, in effect, lets you to create really complex relational models right through the control panel UI. Fun stuff.

Either one makes for flexible content modeling that would give you the subcontent patterns you're used to using in your sites.


by coskunlar vinc,   April 28, 2009 6:35 AM  

You can do subcontent in Drupal through the Node Reference module. Node Reference allows you to attach other nodes to the current node.



Add Comment


Want to advertise on this site? Contact FM.
Laser Toner Cartridges UK laser toner, toner cartridges, hp toner, lexmark toner, samsung toner, canon, toner, epson toner, oki toner, kyocera toner, xerox toner, remanufactured toner, compatible toner
Direct TV Deals Free 4 room direct tv deals. no equipment to buy. free fast professional direct tv installation. this is the best direct tv deal available anywhere.
SEO Article Learn from the experts with our SEO article.
rope light Shopping with birddog distributing, inc., gives you access to the lowest prices, the best customer service and the quickest delivery times possible.
Laptop AC Adapter We offer genuine factory direct replacement AC adapters.
Direct TV Best satellite TV deals.
Direct TV Deals Direct TV programming deals are varied and include packages containing from 50 channels up to over 250 channels.
8mm film to DVD Retain family memories with the only frame by frame digital restoration service in the United States for your 8mm film to DVD today
Rubber Stamp Shop for custom self-inking stamps, hand stamps, address stamps, label stamps, check endorsement stamps, check deposit stamps, date stamps, pre inks, pocket stamps, ink and much more!