In his keynote today Dries announced that the so called code freeze – the point in time where no more major features are allowed to go into a specific version – will be extended until monday, which allows developers at the conference to put in one large effort at the code sprint. This was actually scheduled to happen a couple of days ago, on August 31.
There will also be a five week "code slush", since there are a couple of specific issues that need to be solved before the API can be completely frozen. This is good news since there have been a lot of large architectural changes that still hasn't been taken advantage of as new features.
Architectural changes and new functionality
The most outstanding change to Drupal since version 6 is that it now has a built-in field API. In Drupal 6 terms, that means CCK is now part of Drupal core, which is just huge. In consequence of that, things like the body and teaser of a node can use this API and become fields of their own. The Field API can also be used for other things than nodes, and core developers are now sprinting to convert profiles, taxonomies etc. to the new API.
Users of CCK will be pleased to hear that the FileField module has been included in core, and there is also an ongoing effort to add ImageField too. What's missing in that mix? ImageCache of course! And yes, that's included too.
Another huge change (which you almost forget since it's actually been in the development version for a year now) is the new database API. It provides a new way of working with database queries in an object oriented way, while keeping an API which is not so different from the current one, which aids the transition. One big benefit of this API is that it allows for new database types to be used (specifically SQLite), and it makes it a lot easier to add new ones.
User experience
A big thing with Drupal 7 is the work that is happening to improve the user experience in Drupal. Marc Boulton and Leisa Reichelt were hired by Acquia early on in the development process to help with this process. This has generated a lot of changes already, while some are still waiting to be included.
There is a new structure for the whole administration menu tree, an admin toolbar at the top of the screen, and a new default admin theme called Seven. All of this will probably take some getting used to for experienced Drupal admins who have developed their own ways to navigate the old interface, but it will appeal to new users a lot more.
A bunch of new radical changes in this area have not made it in yet, but seem to definitely be on the roadmap. These are an edit-in-place feature for content and blocks, an overlay mode which lets admins change settings etc without leaving the page they're currently working on, and a dashboard unique for the logged in user.
There are a couple of other administration related news. One is that the "administer nodes" permission has been split into "administer nodes" and "bypass node access". Another is the plugin manager (work in progress), which will allow admins to install and update modules without using FTP or SSH. Finally, you can now have Drupal use both the public and the private method of serving files simultaneously.
Theming and javascript
There are a lot of changes in how Drupal 7 does theming and render its content. This probably deserves an article of it's own. How convenient then that there is already a comprehensive article at pingv.com about this.
A lot of stuff has happened on the javascript side too, and the biggest thing is probably that jQuery UI now is included in Drupal. A less extraordinary change but important nonetheless is that there's now a standard way for developers to include external javascripts.
Developing for Drupal 7
There is an ongoing effort to sanitize and unify the developer API as a whole. The changes are far too many to list them all here, but we'll mention just a few.
There are now a couple of x_load_multiple() functions (node_load_multiple() and user_load_multiple()) that make it more efficient to load multiple objects at once. Also the $op parameter in various functions has been removed in favor of defining multiple versions of those functions depending on which operation is required, which results in more straightforward code.
Also of interest to developers is that Drupal 7 now requires PHP 5.2 or higher. This means that it can take advantage of new language features and drop some legacy support. One example is the new database API which uses the PDO extension in PHP 5.
This in turn is what made the new hook hook_query_alter() possible. Unlike its predecessor db_rewrite_sql(), it allows modules to modify other modules' queries in a safe, structured way.
The interface translation mechanism now has support for string context. This means that it's now possible to translate e.g. the word "show" differently depending on if it's meant as a noun or a verb, which solves what has been an irritating problem for translators for a long time.
Where can I get it?
Of course, Drupal 7 isn't finished yet, and it shouldn't be used for anything other than development or playing around. After the five week "code slush" mentioned above there will be a long period of bug fixing and polishing to make it ready for prime time. However, if you want to get an early preview of what it will look like, you can download the latest development snapshot on the project page. If you find a bug, take the opportunity to report it!









Comments
slight correction
Mark Boulton was hired by the Drupal Association, not Acquia.
REF: http://drupal.org/node/295037
btw, your theme makes it insanely hard to see the comment box.
The article is correct as it
The article is correct as it stands. Mark Boulton was hired by the Drupal Association to redesign drupal.org. He was hired separately by Acquia to bring a UX revamp to the administration of Drupal itself.
good write up
keep them coming!
Very good post, thanks a lot.
Very good post, thanks a lot.
Post new comment