Drupal Release: 2.0
Tag Name: 2.0
Release Date: 3/15/2001
DrupalHighly flexible, open-source content management system known for complex, scalable web applications. Preferred by government, educational, and large enterprise websites requiring advanced customization and security features. Robust module ecosystem.
TL;DR
Drupal 2.0: Major Overhaul with Enhanced Flexibility and Performance
Drupal 2.0 represents a significant evolution from version 1.0, introducing a completely redesigned comment/discussion engine, a new section management system, fine-grained user permissions, improved internationalization support, and numerous performance optimizations. This release transforms Drupal from a basic CMS into a more flexible, powerful platform suitable for a wider range of web applications. The extensive code refactoring and new modular architecture provide a solid foundation for future development while maintaining backward compatibility through provided database upgrade scripts.
Highlight of the Release
- Complete redesign of the comment/discussion engine for greater flexibility
- New section management system replacing the old category system
- Fine-grained user permission system for delegating specific admin tasks
- Initial locale support for internationalization
- New user rating/karma system with Top 100 users page
- Improved search framework for easier implementation of search capabilities
- Enhanced theme API with merged story() function replacing abstract() and article()
- Improved security with revised SQL queries and additional validation
Migration Guide
Required Database Updates
alter table users modify mode tinyint(1) DEFAULT '' NOT NULL;
alter table comments change sid lid int(6) DEFAULT '0' NOT NULL;
alter table comments add link varchar(16) DEFAULT '' NOT NULL;
update comments set link = 'story';
Theme Updates Required
-
Update the comment() function: The function now only takes 2 parameters instead of 3. Remove any references to the $thread parameter.
-
Replace abstract() and article() with story():
function story($story_object, $reply) { if (!$reply) { // full story display code (formerly in article()) } else { // abstract display code (formerly in abstract()) } } -
Implement controls() function: All themes need to implement this function, even if it's just a dummy implementation.
-
Fix internal links: Ensure all internal links use relative paths (e.g.,
index.phpinstead of just/) to support Drupal installations in subdirectories. -
Ensure translation readiness: Wrap all user-visible strings in t() functions to support the new locale system.
Module Updates
- The submission queue has been moved to an optional module (submission.module)
- User rating functionality has been moved to a separate module (rating.module)
- Check for compatibility with the new permission system
Upgrade Recommendations
Who Should Upgrade
- All Drupal 1.0 users should upgrade to benefit from the significant improvements in functionality, security, and performance.
- Sites requiring multilingual capabilities will particularly benefit from the new locale support.
- Sites with complex editorial workflows will benefit from the fine-grained permission system.
Upgrade Process
- Backup your database and files before attempting the upgrade.
- Run the required database updates as specified in the migration guide.
- Update your themes to be compatible with the new theme API.
- Test thoroughly after upgrading, particularly custom modules and themes.
Upgrade Difficulty
This is a major version upgrade with significant architectural changes. While upgrade scripts are provided, expect to spend time:
- Updating custom themes to work with the new API
- Testing and adjusting any custom modules
- Configuring the new permission system
- Setting up the new section management
The upgrade is recommended for all sites despite the effort involved, as version 1.0 will no longer receive updates and the improvements in 2.0 are substantial.
Bug Fixes
Comment System
- Fixed bug with story-moderation-comments starting at 0 score instead of 1
- Fixed the offset-by-one-day bug that affected date displays
- Resolved issues with comment subjects not displaying correctly
Theme-related Fixes
- Fixed bug in block placement when using a theme with 2 side bars while being logged out
- Fixed visual glitches in various themes
- Resolved issues with the "Editor's note" display
Database and Performance
- Fixed MySQL bug in account.php
- Added comment index for performance improvements
- Fixed table bugs in various modules
User Interface
- Fixed English terminology: renamed "administrate xxx" to "administer xxx"
- Fixed search.php problems reported by users
- Fixed visual quote glitch (missing stripslashes())
Configuration and Installation
- Fixed port + directory patch for loading configuration files
- Fixed issues when hosting Drupal in a subdirectory
- Fixed problems with hostname.conf options
New Features
Redesigned Section Management
- Categories have been renamed to "sections" and are now managed through admin pages
- Sections can have customizable post, dump, and timeout thresholds
- Users can enable/disable sections to customize their content experience
Fine-grained User Permissions
- Administrators can now delegate specific admin tasks to trusted users
- Example use cases include:
- FAQ maintainers who can only edit the FAQ
- Editorial board members who can only edit comments, diaries, and stories
User Rating System
- New karma/mojo system for evaluating user contributions
- Generates a "Top 100 users" page accessible at
/module.php?mod=rating - Implemented as a separate module to allow experimentation with different algorithms
Internationalization Support
- Initial locale support for translating the interface
- Framework for adding more languages and translations
- Theme improvements to ensure all text is translatable
Search Framework
- New search architecture making it easier to implement search capabilities
- Improved search functionality throughout the system
FAQ Module
- New FAQ module with administration interface
- Easier management of frequently asked questions
Timer Module
- Added timer.inc for benchmarking purposes
- Helps identify performance bottlenecks
Security Updates
- Comprehensive review and revision of SQL queries to prevent injection attacks
- Added additional validation and sanitization throughout the codebase
- Improved error handling to prevent information disclosure
- Enhanced user permission checking for administrative functions
- Implemented more secure handling of user data and permissions
Performance Improvements
Database Optimizations
- Added comment index to improve query performance
- Optimized SQL queries throughout the system
- Reduced redundant database checks
Code Efficiency
- Shortened and improved code in multiple modules
- Removed redundant checks and functions
- Streamlined theme rendering process
Resource Management
- Reduced watchdog retention period from two weeks to one week by default to improve admin page performance
- Optimized theme files to reduce server load and improve page rendering
- Improved HTML output with fewer nested tables in themes
Caching and Processing
- Enhanced RDF backend class to support more formats efficiently
- Improved handling of blocks and regions
- More efficient processing of user permissions
Impact Summary
Drupal 2.0 represents a fundamental shift in the platform's architecture and capabilities. The release transforms Drupal from a basic content management system into a more flexible, modular platform capable of supporting a wider range of web applications.
The most significant impact comes from the redesigned comment/discussion engine and the new section management system, which provide much greater flexibility in content organization and community interaction. The fine-grained permission system enables more complex editorial workflows and team management, making Drupal suitable for larger organizations with diverse roles.
Performance improvements and security enhancements make the platform more robust and capable of handling higher traffic loads. The introduction of internationalization support opens Drupal to non-English speaking communities, significantly expanding its potential user base.
For developers, the more modular architecture and improved APIs make the platform more extensible, encouraging a richer ecosystem of modules and themes. The consolidation of theme functions (merging abstract() and article() into story()) demonstrates a move toward more consistent and maintainable APIs.
While the upgrade requires significant effort, particularly for sites with custom themes and modules, the architectural improvements provide a solid foundation for future development and ensure Drupal remains competitive in the rapidly evolving CMS landscape.
Statistics:
User Affected:
- Can now manage sections (formerly categories) through admin pages with customizable post, dump, and timeout thresholds
- Benefit from fine-grained user permission system allowing delegation of specific admin tasks
- Have access to improved watchdog module with configurable retention period (reduced to one week by default)
- Can delete user accounts completely from the system
- Need to perform required database updates for upgrading from 1.0
