From Jay Campbell’s blog, an article called
Grassroots Journalism, Creative Commons, and Open Source Software share visions of the free flow of ideas. There are countless Open Source content management systems, several of which could have served as an excellent starting point for Bayosphere, but we chose Drupal for its combination of flexibility, community and maturity.
Drupal has a stellar philosophy of extensibility. On an old school CMS, changing the system’s behavior required changing the software package’s source code. Eventually the package requires an upstream upgrade (for security fixes, if nothing else), and a programmer has to reapply every local custom change ever made, an often-tedious and sometimes-impossible task.
Then packages started proving module interfaces, allowing you to add functionality without stomping on the package’s original code.
Others, like Scoop, took a different tone and actively encouraged “hacking the core” by providing a web interface directly to the underlying engine’s code. Upgrading such installations can be frustrating.
Drupal’s module system is awfully nifty. Although completely self-contained, modules influence behavior at every layer of page-building using Drupal’s “hooks” mechanism. Webmonkeys can modify nearly every stage of a page’s construction without changing Drupal’s PHP code, leaving the site safe for quick upgrades when needed.
A module is a collection of PHP functions in a .php file in your modules folder. If it contains a few basic declarations about things like who can use the module, then Drupal sticks references to it all over the site. Menu items, configuration screens, access levels and more all automagically show up where they should.
Programmers worldwide have used this flexibility to create a zillion useful modules. If any of you module authors happen by, drop a line. We always have questions.