Last updated by vegantriathlete on Fri, 2012-06-29 18:56
Do you want to know what’s new in Drupal 7? Do you want your Questions on the features in Drupal 7 answered, go ahead and read on...
Installation and Environment
The Drupal’s Installation profile is very simple. At the very first step a user has an option to choose from 2 types of profiles - a “standard” or “minimal” install. These choices decide which modules will be activated upon installation.
To install Drupal 7, you will need:
- Web Server: Apache (recommended), Nginx, Lighttpd, or Microsoft IIS
- Database: MySQL 5.0.15 and higher, PostgreSQL 8.3 and higher, or SQLite 3.x
- PHP: 5.2.4 and higher
- Memory: 32MB (A site with a number of commonly used modules enabled may require 64 MB of memory or more.)
Drupal 7 uses PDO, PHP Data Objects Library. This Library is an abstraction layer that supports numerous database layers. Other enhancements include:
- Added query builders for INSERT, UPDATE, DELETE, MERGE, and SELECT queries.
- Support for master/slave replication, transactions, multi-insert queries,delayed inserts, and other features.
- Added support for the SQLite database engine.
- Default to InnoDB engine, rather than MyISAM, on MySQL when available for greater scalability and data integrity.
The usability of Drupal 7 is probably the single greatest improvement over Drupal 6. Drupal 7 has an extremely friendly and intuitive Admin interface! The presentation of workflow and administrative tasks are logically organised. The User interface comes with new navigation and presentation elements like overlay and tabs. The user is provided with multiple navigation points like: Tool Bar, Dashboard, Shortcuts and Contextual links!
Drupal 7 features are more usable by people with disabilities. Some of the accessibility improvements include:
- Introduction of ARIA for auto-complete fields and progress indicators
- Improved Keyboard navigation
- Accessible alternative to the drag-n-drop default
- Proper form labels for form fields
- Use of headings (h2) before navigation menus
- Improved markup for breadcrumbs, expand/collapse fieldsets, page navigation (pagers), local tasks and tabs.
Fields and Entities
The field system brings most of CCK’s functionalities into CORE. The Entities system makes it possible to define non node data types. Nodes, users, comments are now part of the entity system. This allows all entities to have similar API and workflows. Fields can be associated with any entity and not just nodes.
The Field and Entity system brings with it a new dimension of extendability!
Image Handling is now included out of the box in Drupal 7, it's part of the core. Previously this required downloading six to seven contrib modules. Bringing Image handling to the core has improved the file API. Private file handling can now be used alongside public files.
- Upgraded the jQuery forms library to 2.36.
- Added jQuery UI 1.8, which allows improvements to Drupal's user experience.
Writing Custom Modules
OPML import functionality for RSS feeds.
Added support for Gmail and Google Apps for Domain identifiers.
Support for Multisite Installations
Added RDF support
Availability of RDF (Resource Description Framework) information means that data in your Drupal websites could be more readily available to other systems.
Use installation profiles to distribute your custom Drupal product. A new API and exportable configurations let you capture more settings in code.
Testing the application
Drupal 7 ships with an automated testing framework with over 30,000 built-in tests that allow for continuous integration testing of all Drupal core patches and contributed modules. Simple tests are part of the Drupal 7 Core.
The understanding of Drupal’s APIs and appropriate use of Drupal’s functions would ensure that these Security enhancements are carried forward to the custom code written. Some of the key functions that handle Security include:
- I() function: pass several arguments to have the function return a formatted HTML, that includes protection against Cross Site Scripting.
- t() function: Provides protection against XSS scripting
- DBTNG – The Drupal 7 Database API is safe from SQL injection as long as the user passes input via parameters and not via string concatenation.
- The Form API includes a token validation process to prevent cross site request forgeries
- The Default contact module provides flood protection limiting users to 3 messages per hour by default.
- Besides the above Drupal 7 also has more secure implementation for scheduled tasks (cron.php), more secure password system and a more secure log-in system.
Performance and Scalability
There were many Architectural changes in Drupal 7 to address Performance issues faced in Drupal 6. Some of them were:
- Number of queries executed per page from path alias look-up is reduced in Drupal 7 by introducing a per page path cache system.
- Introducing as part of the Entity API the concept of ‘multiple load’. The Entity load function can take an array of entity Ids at a time and so the queries and hooks act on this array instead of just one. This was an improvement over the node_load() and user_load() functions that loaded nodes one at a time on page with multiple nodes.
- The New DB layer allows for operators that use the indexes better. We can use LIKE() in Drupal 7.
- In the new Entity System, there is no longer the per CCK storage of Drupal 6. The fields get stored in multiple tables. This could be a potential hazard in querying the information about a particular node. The simplicity of the SQL storage system allows developers to write their own field storage back-end. The most viable solution for high performance sites would be to use the MongoDB project.
- In Durpal 7 all the performance plugability features of Pressflow are in the core. It can be easily plugged in and move from SQL to alternate storage systems like MongoDB, Memcached, APC, etc. Correct header information to support reverse proxies is also part of the core, which makes integration with reverse proxies and CDNs much easier. (For Drupal 6 many of these are available as part of Pressflow)
- Provision to swap file systems, both saving and serving is easier. The Core file handling now uses PHP Streams wrapper, this extends file storage support.
The CSS and JS aggregation is also heavily re-factored in Drupal 7.
The Upgrade path for core modules is complete. The upgrade of many contirbuted modules are still in progress.
The availability of the Drupal 7 version of a contrib module could be tracked using: Upgrade Status module: http://drupal.org/project/upgrade_status
Custom modules that have been written taking care of Drupal convensions and coding standards could be to a large extent be migrated using the Coder Upgrade module, http://drupal.org/project/coder.
Drupal 7’s core themes include:
- "Bartik" theme is the default user interface theme.
- "Seven" theme is the default administration interface theme.
- "Stark" theme is makes analyzing Drupal's default HTML and CSS easier.
The Bluemarine, Chameleon and Pushbutton themes have been removed from the core and are available only as contributed themes.
Code documentation increased 400%
Showcase website built with Drupal 7
Links to Reviews of Drupal 7
- Click here to view Drupal.org Drupal 7 page.
- Joomla vs. Drupal: An open source CMS shootout
- Top Ten Changes That Make Drupal 7 the Best Version
Books and Videos on Drupal 7
- Get your copy of the Drupal Watchdog at http://drupalwatchdog.com/
- Drupal 7 ‘Create and operate any type of Drupal 7 website quickly and efficiently’, by David Mercer
- Drupal 7 ‘First Look learn the new features of Drupal 7, how they work and how they will impact you’, by Mark Noble
- Drupal 7 Module Development, ‘Create your own Drupal 7 modules from scratch’ - by Matt Butcher, Larry Garfield, John Wilkins, Matt Farina, Ken Rickard, Greg Dunlap
- Pro Drupal 7 for Windows Developers
- Pro Drupal 7 Development
- Drupal 7 Bible, by Ric Shreves, Brice Dunwoodie
- Going Global with Drupal 7, by Todd (Todd Kelsey) Kelsey
- Drupal 7 - Visual Quick Start Guide
- Foundation Drupal 7
- The Definitive Guide to Drupal 7
- Beginning Drupal 7, by Todd Tomlinson