What I can do with Drupal, and why I use it.
Not that I'm a total Drupal "fan boy", the top Open Source content mangement systems I endorse are Drupal, Joomla and Wordpress, and they all have their pros and cons. I thought it fair just mention them first, and also as an honorable mention, I have to throw the Zend Framework into the mix, it is a developer's dream.
Wordpress is very easy to use and understand from an end-user perspective (Like site admins), but as a developer it still lacks some standardization that is sorely needed, and some core functionality that is not native, or as they say "out of the box". For a blogging site though, I would use wordpress everytime.
Joomla is an free content management system that has some great out of the box features, follows great coding standards, and in general is a great way to make an informational site, or a site that does not require a lot of back end administration. As a site administrator however, I found some of the concepts a little hard to grasp at first, and in general did not like their workflow. I use Joomla as a fallback, if for some reason I cannot use Drupal. Also, as a side note - you have to pay for many modules to extend Joomla to have the same capabilities as Drupal, and I find that their developer and support community is honestly unusable.
Drupal 6 is what I use for this site, and many others. I find that Drupal's framework is the easiest to develop on, and more importantly they have the best developer community. I get support from their site daily, and I am always trying to answer where, when and however I can. I'll be honest, I fought against the framework for some time, but when I did really "drink the kool-aid" I found that my productivity and execution went through the roof. I can be successful using Drupal, and like I stated before, it has changed everything. With Drupal, I can keep development costs to a minimum, and minify start up time, so we can get your site up faster, and get you making money faster!
The last three years have brought about many Drupal projects that I have worked on. Here are some examples of modules I have been asked to build.
Data Transfer Service, is a bridging application that silently polls external databases for new or updated information, and transfers/updates and logs the data into Drupal's database. You can map data from one Database (Like SQL Server) to MySQL and regularly update data via its own cron settings or through a manual bulk update. It is very useful when one needs to update database information on a remote site or sites, from a completely separate databases, like intranets to public servers, or legacy database applications to online web services. You can set up instances to run, and which queries to execute. The mapping schema is incredibly robust, and is build to be "stateless", which means you can define data sets any way you wish, as long it is is valid code! You can literally build your own transfer code to import!
Fido... Fetch!, is a blog fetching service, for blog aggregators like Technorati, Google Blogs, Twitter, etc. Fido... Fetch! will take certain keyword you ask, for any number of services, and aggregate it into drupal's native aggregator, and allow you to select blocks or pages in which to view the information. What makes FF! different is that it leverages the power of searching through blogs through a simple interface. Want to search twitter for tweets on tweets and display it in a block, or a page? You can do that! It also has a blacklist feature, authority settings and anti-spam integration with Mollom. This is a great module for integrating any XML, it accepts all the standard feeds, and can be used to create the most amazing lists of aggregated data that cannot be accomplished with the standard Drupal aggregator, since FF! actually searches for you, and keeps your lists full of data you want!
Export to Quickbooks is a Drupal 5 only module for exporting mapped data from Ubercart to Quickbooks 2004 in formats that are readable and importable to older versions of Quickbooks that use .iff files. What this module does, is to convert Ubercart data into various formatted files that use the native Intuit importers into your Quickbooks Company file. It is easy to use, tracks what you have exported already, and is very handy for when you need to update Quickbooks with little effort.
Lastly, The Core Enhancements module, which is a collection of scripts, functions, and features that modify or extend the core of Drupal and make modifications without having to add many unnecessary modules, or to hack the core, so updating Drupal's Core remains manageable for developers and site admins.
Core Enhancements has many features, such as allowing status, warning and error messages to fade out, rather than have them stay displayed on the page. This is great for hiding confirmation messages especially. You can fine grain fading out to exclude any valid site path, like keeping messages displayed on all admin pages. There are options for overriding the text that shows up on comment and subscribe links, and integration with the WYSIWYG editor X-standard.
Also, there are specific Javascript functions, like Drupal.trace() which outputs data to a developers console (like firebug) but corrects a critical IE/Safari error in using console.log in your javascript files. I am slowly porting over relevent Drupal functions, like drupal_get_destination into an accessible Drupal.setting amongst others, so that printing output with javascript is easy to implement. I'll keep adding in "service-packs" of a sort into CE as they become relevent. Taming breadcrumbs is high on my list.
My current goals for Core Enhancements is to add in a helper module I created called XML Menues, which allows me to create Drupal menues via xml files, and to create a new set of workflows for Drupal's Admin Menu system, and Admin Menu via a new feature Called Admin Menu Override. This will put common tasks into Drupal's admin system that sorely need to be there (see next paragraph), and to also override the structure of the Admin menu (Which I use on all my sites), based on a new menu structure I am using personally.
Also, in regards to Drupal Admin, I am adding a way to display content in the Admin menu, I am creating menu paths for Content -> List, so they list all content in the site by date, and type. It's gonna be very cool!
Lastly, I am changing the way that node submission works when creating and editing content. Node Form Override will be a feature added, that redirects the user to an AJAX submission page, with a more sophisticated layout, that allows for many node submissions at once, or to redirect you to any node and hopefully form that can be submitted via Drupal! It should save a lot of time creating new content!
I'll be blogging on all of this in the future, so you can see the entire process unfold! I'll be posting updates as fast as I can!
