The review and upgrade statuses for the conversion changes refer to their status in the Coder Review and Coder Upgrade modules.
| Review |
Upgrade |
Description |
 |
|
A Coder Review rule exists for this item |
 |
|
A Coder Review rule needs to be written to locate the change |
 |
|
A Coder Review rule is not needed for this item (e.g. optional change) |
|
 |
A Coder Upgrade routine exists for this item |
|
 |
A Coder Upgrade routine needs to be written to make the change |
|
 |
A Coder Upgrade routine is not needed (e.g. optional change) |
| Unclear |
|
It is unclear if a review or upgrade is possible |
| N/A |
|
The change was reverted and no longer applies |
| Review |
Upgrade |
Description |
| Module Info / Install |
| Unclear |
|
Code documentation added to module.api.php |
 |
 |
Module .info files must now specify all loadable code files explicitly |
 |
 |
Update functions in .install files must include a Doxygen style comment |
 |
 |
Add Doxygen @file tag to all install files |
 |
 |
Module .info files can now optionally specify the version number of the module it depends on |
 |
 |
.module file available during install |
 |
 |
Update hooks now return strings or throw exceptions, and update_sql() is no more |
 |
 |
Info file should specify core = 7.x (This is not listed on the chronological page.) |
| System |
 |
 |
Use absolute path (constructed from DRUPAL_ROOT) when including a file |
 |
 |
Module .info files must now specify all loadable code files explicitly |
| N/A |
N/A |
drupal_set_session() replaces $_SESSION [NEEDS UPDATE] |
 |
 |
Default parameter when getting variables |
 |
 |
Use defined constant REQUEST_TIME instead of time() |
 |
 |
Rebuild functions have changed names |
 |
 |
New hooks: hook_modules_installed, hook_modules_enabled, hook_modules_disabled, and hook_modules_uninstalled |
 |
 |
drupal_uninstall_module() is now drupal_uninstall_modules() |
 |
 |
Use module_implements not module_list when calling hook implementations |
 |
 |
Parameters for drupal_http_request() have changed |
 |
 |
Moved statistics settings from admin/reports/settings to admin/settings/statistics admin/config/system/statistics and added a new 'administer statistics' permission |
 |
 |
Renamed module_rebuild_cache() to system_rebuild_module_data(), renamed system_theme_data() to system_rebuild_theme_data(), and added system_get_info() |
 |
 |
Standardized API for static variables and resetting them |
 |
 |
The function drupal_set_html_head() has been renamed to drupal_add_html_head() |
 |
 |
drupal_eval() renamed to php_eval |
 |
 |
Changes to HTTP header functions |
 |
 |
Renamed drupal_set_content() and drupal_get_content() |
 |
 |
Alternative cache implementations changed |
 |
 |
Added drupal_set_time_limit() |
 |
 |
New tar archive library added |
 |
 |
API for modules providing search has changed |
 |
 |
User 1 is now called site maintenance account |
 |
 |
drupal_alter() now takes at most 3 parameters by reference |
| Permissions and Access |
 |
 |
hook_perm() renamed to hook_permission() |
 |
 |
Permissions have titles (required) and descriptions (optional) |
| Unclear |
 |
"administer nodes" permission split into "administer nodes", "access content overview", and "bypass node access" |
 |
 |
Moved statistics settings from admin/reports/settings to admin/settings/statistics admin/config/system/statistics and added a new 'administer statistics' permission |
 |
 |
Permissions are no longer sorted alphabetically |
 |
 |
New permission tables |
 |
 |
Node access hooks now have drupal_alter() functions |
 |
 |
"use PHP for settings" permission should be used for all PHP settings rights (replaces "use PHP for block visibility") |
| N/A |
N/A |
Hide empty menu categories with access callback (REVERTED) |
| Unclear |
 |
hook_node_access_records() now applies to unpublished nodes; 'view own unpublished content' permission added |
 |
 |
hook_access() removed in favor of hook_node_access() |
 |
 |
Added API functions for creating, loading, updating, and deleting user roles and permissions |
| Database |
 |
 |
A completely new database API has been added |
 |
 |
Schema descriptions are no longer translated |
 |
 |
db_rewrite_sql() replaced with hook_query_alter() |
 |
 |
Schema descriptions are now plain text instead of HTML |
 |
 |
Do not use SELECT COUNT(*) to check for existence of rows in a table |
 |
 |
Foreign keys added to core database table schema |
 |
 |
Schema API now supports date and time types natively |
 |
 |
Database schema (un)installed automatically |
 |
 |
The $ret parameter has been removed from all Schema operations |
| Menu |
| N/A |
N/A |
The hook_menu() and hook_theme() "file" and "file path" keys have been removed |
| Unclear |
 |
Menu page callbacks and blocks should return an array and hook_page_alter() |
 |
 |
_comment_load() is now comment_load() |
 |
 |
Changed hook_menu_link_alter() (removed the $menu parameter) |
 |
 |
Added a new top-level 'international' admin menu item |
| N/A |
N/A |
Hide empty menu categories with access callback (REVERTED) |
| Unclear |
Unclear |
Many paths to admin screens have changed |
 |
 |
CRUD hooks for menu links: hook_menu_link_insert(), hook_menu_link_update(), hook_menu_link_delete() |
 |
 |
Custom menu API |
| Blocks |
 |
 |
Block module now optional |
 |
 |
hook_nodeapi, hook_node_type, hook_user, and hook_block removed and replaced with families of related functions |
 |
 |
Added hook_block_info_alter() |
| Comments |
 |
 |
_comment_load() is now comment_load() |
 |
 |
Comment status values in the database have flipped so they match node status |
 |
 |
comment_save() now supports programmatic saving |
 |
 |
comment_validate() has been removed |
 |
 |
comment_node_url() has been removed |
 |
 |
Added comment_load_multiple() and hook_comment_load() |
 |
 |
New hook_comment_presave() for comments |
 |
 |
Comment.timestamp split into 'created' and 'changed' |
 |
 |
hook_comment removed and replaced with family of related functions (This is not listed on the chronological page.) |
| Input Sanitization and Input Formats |
 |
 |
Parameters to check_markup() have changed |
 |
 |
drupal_set_title() uses check_plain() by default |
 |
 |
hook_filter() and hook_filter_tips() replaced by hook_filter_info() |
 |
 |
New #text_format property to assign text format selection to fields. Changes 'body' field location in node, comment, block, etc |
 |
 |
Moved filter module administrative URLs from admin/settings/filters/* to admin/settings/filter/* |
 |
 |
Default text formats have been revamped |
 |
 |
Text formats access is now controlled by permissions, and filter_access() parameters have changed |
 |
 |
The parameters to filter_formats() have changed |
| Taxonomy |
 |
 |
taxonomy_get_tree() |
 |
 |
Taxonomy db table names have changed to begin with 'taxonomy_' |
 |
 |
taxonomy_term_load() and taxonomy_term_load_multiple() |
 |
 |
Taxonomy CRUD functions renamed and refactored |
 |
 |
New taxonomy hooks for term and vocabulary |
 |
 |
Added taxonomy_vocabulary_load_multiple() |
 |
 |
Removed taxonomy module support for multiple tids and depth in term paths |
 |
 |
Related terms functionality was removed from taxonomy.module |
 |
 |
All taxonomy functions relating to nodes have been removed or refactored |
| Javascript |
 |
 |
Changed Drupal.behaviors to objects having the methods 'attach' and 'detach' |
 |
 |
Ability to reset JavaScript and CSS |
 |
 |
Changed parameters for drupal_add_js() and drupal_add_css() |
 |
 |
Replace 'core', 'module' and 'theme' with 'file' in drupal_add_js() |
 |
 |
New hook_js_alter to alter JavaScript |
 |
 |
JavaScript should be compatible with other libraries than jQuery |
 |
 |
External JavaScript can now be referenced through drupal_add_js() |
 |
 |
Settings passed locally to JavaScript Behaviors |
 |
 |
jQuery 1.3.x |
 |
 |
Attached JavaScript and CSS for forms |
 |
 |
Ability to add multiple JavaScript/CSS files at once |
 |
 |
jQuery UI (1.7) was added into core |
 |
 |
JavaScript variable Drupal.jsEnabled has been removed |
 |
 |
jQuery Once method for applying JavaScript behaviors once |
 |
 |
Rename drupal_to_js() and drupal_json() to drupal_json_encode() and drupal_json_output() |
| CSS |
 |
 |
Changed parameters for drupal_add_js() and drupal_add_css() |
 |
 |
Attached JavaScript and CSS for forms |
 |
 |
Inline cascading stylesheets from drupal_add_css() |
 |
 |
Ability to add multiple JavaScript/CSS files at once |
 |
 |
drupal_add_css() now supports external CSS files |
 |
 |
Weighting of stylesheets |
 |
 |
Convert class attributes to array in favor of a string |
| Theming |
 |
 |
Rebuild functions have changed names |
 |
 |
Instead of theme('page', ...), think of drupal_set_page_content() |
 |
 |
hook_footer() was removed, $closure became $page_bottom, $page_top added |
| Unclear |
 |
Element #type property no longer treated as a theme function in drupal_render() |
| Unclear |
 |
Use drupal_render_children() to render an element's children |
| Unclear |
 |
theme_links() has a new parameter $heading for accessibility |
 |
 |
theme() now takes only two arguments |
 |
 |
hook_theme() requires that each theme function registers how it integrates with drupal_render() |
| Form API |
 |
 |
#theme recommended for specifying theme function |
 |
 |
Easier check for node form during hook_form_alter() |
 |
 |
Some #process functions have been renamed |
 |
 |
Use '#markup' not '#value' for markup |
 |
 |
drupal_execute() renamed to drupal_form_submit() |
 |
 |
drupal_get_form() returns an unrendered array |
 |
 |
AHAH/AJAX Processing has changed; #ajax, new 'callback' member of the array, and the callback must be rewritten |
 |
 |
The signature of the callback from drupal_get_form() changed to add $form |
| File API |
| Unclear |
 |
File operations that don't affect the database have been renamed |
| Unclear |
 |
User pictures are now managed files |
 |
 |
file_load_multiple() |
 |
 |
file_scan_directory()'s optional parameters are now an array |
 |
 |
file_scan_directory() now uses a preg regular expression for the nomask parameter |
 |
 |
Removed file_set_status() |
| Unclear |
 |
file_validate_extensions() enforces check for uid=1 |
 |
 |
Removed FILE_STATUS_TEMPORARY |
 |
 |
file_scan_directory() and drupal_system_listing() use preg regular expressions |
| Unclear |
 |
file_scan_directory() now uses same property names as file_load() |
 |
 |
file_check_directory() will now recursively create directories |
 |
 |
New hook: hook_file_url_alter() |
| User API |
 |
 |
Renamed user_delete() to user_cancel(), likewise renamed hook_user_delete() to hook_user_cancel() |
 |
 |
Changed log out path from 'logout' to 'user/logout' for consistency |
 |
 |
hook_nodeapi, hook_node_type, hook_user, and hook_block removed and replaced with families of related functions |
 |
 |
Save new users and nodes with specified IDs |
 |
 |
user_load_multiple() and hook_user_load() |
 |
 |
Parameters to function user_authenticate() changed |
 |
 |
Removed several unnecessary arguments to various hook_user_$op hooks and removed hook_profile_alter |
| Node API |
 |
 |
Move node, taxonomy, and comment links into $node->content; Deprecate hook_link() |
 |
 |
node_load() and node_load_multiple() |
 |
 |
In hook_node_info() change 'module' back to 'base' and change 'node' to 'node_content' |
 |
 |
hook_nodeapi, hook_node_type, hook_user, and hook_block removed and replaced with families of related functions |
 |
 |
node_invoke_nodeapi() removed |
 |
 |
Add node_delete_multiple() |
 |
 |
Removed $op "rss item" from hook_nodeapi() in favor of NODE_BUILD_RSS |
 |
 |
node_get_types($op) replaced by node_type_get_$op() |
 |
 |
$teaser parameter changed to $build_mode in node building functions and hooks, $node->build_mode property removed |
 |
 |
Save new users and nodes with specified IDs |
 |
 |
Replace node_view() with node_build() |
 |
 |
hook_nodeapi_xxx() becomes hook_node_xxx() |
 |
 |
hook_load() signature and return value change |
| Multi-lingual |
 |
 |
Added string context support to t() and format_plural(), changed parameters |
| Miscellaneous |
| Unclear |
 |
Commenting style - use 'Implement hook_foo().' when documenting hooks |
 |
 |
Parameters swapped in book_toc() |
 |
 |
Make sticky tableheaders optional |
 |
 |
referer_uri() has been removed |
 |
 |
Replace drupal_clone() with clone |
 |
 |
Parameters for actions_synchronize() have changed |
| Unclear |
Unclear |
Trigger and Actions API overhaul |
 |
 |
Login validation change for distributed authentication modules |
 |
 |
Added hook_entity_load() |
 |
 |
Drupal 7 requires PHP 5.2 or higher |
| N/A |
N/A |
xmlrpc() wrapper function removed |
 |
 |
Replaced taxonomy_term_path(), hook_term_path(), language_url_rewrite(), and custom_url_alter_outbound() with hook_url_outbound_alter() |
 |
 |
Replaced custom_url_rewrite_inbound() with hook_url_inbound_alter() |
 |
 |
Renamed menu_path_is_external() to url_is_external() |
 |
 |
New entity_info_cache_clear() API function |
| Unclear |
Unclear |
New hooks: hook_admin_paths() and hook_admin_paths_alter() |