Fine-Grained Input Filtering in Drupal
Drupal is the bestsocial web community management software in existence, period. I dare make a blunt statement like this, because I have seen/worked with many “CMS” (oh, how much I hate this bloated abbreviation) systems, including couple I architected and lead the implementation of and I insist - as imperfect as Drupal may be, it is the best. Now that we have this basic fact squared, let me introduce a new, wonderful Drupal module to you and explain what exact need it meets.
One of the most useful features of Drupal is undoubtedly a feature called Input Filters. Input Filters allow us to do all kinds of fancy transformations of the input text. For instance, input filter is your savor, your bread and butter if you need BBCode or Wiki markup support. You can combine input filters, apply them in a specific order, set a default filter - all of it from a web interface. Sounds cool? That’s because it is cool, cooler than your girl-friend.
Unfortunately, there used to be a glaring hole in the paradise - you could not specify node-type specific settings. Like, you could specify the default input filter (note: most users will use that and never switch, simply because they don’t know how), but you could not specify different ones for different node types.
Why is it a problem? Well, for one, it is a problem when you want to set up a Wiki and blogging together in Drupal. Drupal comes with blogging support and you can install Wiki, but… Your bloggers want the Full-HTML filter to use TinyMCE WYSIWYG editor on top of, whereas your wiki users need a MediaWiki or Creole filter, they neither need or can use the HTML filter. Both of the user groups want their filter to be the default one. What to do?
Once you are done crying, swearing and tearing your hair off, you can check out the recently released Filter by Node Type module. That is what I did and have been blessing Larry Garfield ever since (that is for the past couple days). This module does not exactly allow you to set different default input filters (feature suggestion?), but it does allow you to limit the available filters. What you do next is - you only allow the Wiki filter for the Wiki node types and guess what - it works!
The power of the combined talent of the Drupal community never stops to amaze me. Good job, guys!