Download drupal-7.9.tar.gztar.gz 2.66 MB
MD5: 7f45f109c413ca69ebb6e3140ed47225
SHA-1: 3aa90fa9baae2c723ab5f4fe0cc523a6c96683ba
SHA-256: 9708db25f860d1250166fe0936af366155f6a59c5dc6d2de356bb7d22036c93a
Download drupal-7.9.zipzip 3.07 MB
MD5: 670c0cbc07433f553f03d0fd2ea23979
SHA-1: 67d06faee9046621a296c222d309cb72ef19ad41
SHA-256: 934200cc7ef52982b7b849b0e5bbd4c7c8f273078dacae8c2c3624fcbf9869fd

Release info

Created by: webchick
Created on: 26 Oct 2011 at 20:20 UTC
Last updated: 27 Oct 2011 at 15:22 UTC
Core compatibility: 7.x
Release type: New features, Bug fixes

Release notes


  • Critical fixes to OpenID to spec violations that could allow for impersonation in certain scenarios. Existing OpenID users should see for more information on transitioning.
  • Fixed files getting lost when adding multiple files to multiple file fields at the same time.
  • Improved usability of the clean URL test screens.
  • Restored height/width attributes on images run through the theme system.
  • Fixed usability bug with first password field being pre-filled by certain browser plugins.
  • Fixed file_usage_list() so that it can return more than one result.
  • Fixed bug preventing preview of private images on node form.
  • Fixed PDO error when inserting an aggregator title longer than 255 characters.
  • Spelled out what TRADITIONAL means in MySQL sql_mode.
  • Deprecated "!=" operator for DBTNG; should be "<>".
  • Added two new API functions (menu_tree_set_path()/menu_tree_get_path()) were added in order to enable setting the active menu trail for dynamically generated menu paths.
  • Added new "fast 404" capability in settings.php to bypass Drupal bootstrap when serving 404 pages for certain file types.
  • Added format_string() function which can perform string munging ala the t() function without the overhead of the translation system.
  • Numerous #states system fixes.
  • Numerous EntityFieldQuery, DBTNG, and SQLite fixes.
  • Numerous Shortcut module fixes.
  • Numerous language system fixes.
  • Numerous token fixes.
  • Numerous CSS fixes.
  • Numerous upgrade path fixes.
  • Numerous minor string fixes.
  • Numerous notice fixes.

Update notes

- Upon first upgrading to 7.9, there are reports of Panels Pages going missing at #1323162: Panels disappear after updating core to 7.9. Solution is to clear the cache.

Known issues

- Using drush si in Drush 5.x causes error #1314392: drush site-install on Drupal 7.9 fails with a fatal error "Call to undefined function cache_get()". The fix is to apply the patch at or update to the latest -dev release of D7.

Full list of changes since 7.8:

  • #1320576 by amateescu: Fixed hook_field_purge_field_instance() doesn't exist.
  • #570314 follow-up by jhodgdon, Mac_Weber: Fixed form_set_value() documentation needs more detail.
  • #1312844 by sven.lauer: Fixed hook_schema() doc should state that database tables are auto-created.
  • #1314396 by rocket_nova: Fixed Documentation for theme_links() should say that Attributes class must be an array .
  • #1312178 by rocket_nova, jhodgdon, unabacus: Fixed Documentation problem with 'hook_theme_registry_alter()' example code.
  • #1129642 follow-up by BTMash: Fixed D7 upgrade path for images.
  • #789484 by Lars Toomre, pillarsdotnet, michaellenahan, sven.lauer, Mac_Weber: Fixed Confusing documentation for argument in hook_access()/hook_node_access().
  • #766382 by neoglez, pebosi, andypost, sarah_p: Fixed Column 'nid' is ambiguous when using node access modules.
  • #1066274 by pcambra, Damien Tournoud, xjm: Added hook_options_list() should allow to pass the instance of a field .
  • #1310250 by joelcollinsdc: Fixed Improve reverse proxy ip address handing commenting and documentation.
  • #759244 by Mac_Weber, sivaji: Fixed Seven theme pager links needs more spacing.
  • #1184830 by linclark, Dipper: Fixed User account group has no #type.
  • #1307062 by sven.lauer, jhodgdon: Fixed install file hooks should state whether module code is available.
  • #1129642 by jbrown: Fixed Populate HTML image tags with dimension attributes (like D6 imagefield) without re-introducing I/O (followup).
  • Reverting accidental commit with last patch.
  • Oops. Forgot a file.
  • #1310164 by sven.lauer: Documentation missing for #object in Field API.
  • #1234848 by mr.baileys, xjm: Fixed language_list() doc is missing return value.
  • #1021568 by skottler, sven.lauer, jhodgdon: Fixed hook_theme() variables vs render elements.
  • #221712 by Damien Tournoud, G√°bor Hojtsy, iliphil, Bodo Maass, idflood, loganfsmyth: Fixed locale_language_from_browser() doesn't parse language tags correctly, has a broken logic.
  • Oops. Correcting spacing error with previous patch.
  • #943924 by Merco, lotyrin, eojthebrave: Fixed Allow preview of private image on node add form.
  • #1041906 by Monochrome, bobodrone, ELC, ctibor, DamienMcKenna: Fixed Taxonomy term menu link title overrides term page title.
  • #1002734 by pillarsdotnet, yched: Fixed Multiple 'Undefined index' notices in modules/field/modules/number/number.module.
  • #1281932 by loganfsmyth, bfroehle, G√°bor Hojtsy: Convert Drupal.t and Drupal.formatPlural regular expressions to extended form.
  • #1268234 by derjochenmeyer: Move out rendering image from aggregator parser.
  • #262498 by EugenMayer, DjebbZ: Fixed Error in content administration using taxonomy filter.
  • #1183430 by TR, oriol_e9g: Fixed t function strings should not have whitespaces at beginning or end.
  • #1299046 by beltofte: Fixed Secondary tabs order reversed in LTR.
  • #1191614 by G√°bor Hojtsy: Added Make t() formatter available as its own function.
  • #1311490 by skottler: remove dl.multiselect remnants.
  • #1309298 by sven.lauer: document that hook_(en|dis)able implementations should live in .install files.
  • #1309750 by kiamlaluno: wrong spelling in the hook_search_execute() documentation.
  • #1307332 by pillarsdotnet: improve the docs for DrupalLocalStreamWrapper::getLocalPath() function.
  • #1081266 by mfb: avoid re-scanning module directory when multiple modules are missing.
  • #1258176 by sven.lauer: API doc for element_children() is only useful for people who already know what 'children' are.
  • #1220602 by catch: Fixed Call to undefined function _update_7000_field_read_fields() during Forum update 7003.
  • #1308994 by Devin Carlson: certain Field UI messages have the wrong type.
  • #341038 by jhodgdon, kathyh, sdboyer: Docblock for DatabaseStatementInterface is a bit off.
  • #1115106 by Damien Tournoud: Fixed Failures to update a field are not properly handed in SQL Storage and Field UI.
  • #673020 by mgifford, attiks: Added the Content-Language HTTP header to the generated page.
  • #1253828 by sven.lauer: Fixed drupal_render() doc should explain what 'child' means.
  • #743234 by mr.baileys, twistor, Berdir, mgifford: Fixed /aggregator does not use pagination.
  • #1300482 by pillarsdotnet: Fixed Remove cruft function_exists() from _field_filter_items() leftover from the (removed) function registry.
  • #1292922 by loganfsmyth, plach: Fixed EntityFieldQuery count query broken for translatable fields.
  • #1248940 by yched: Fixed 'Manage fields' screens : broken table layout.
  • #1300496 by Dave Reid: Fixed VERSION constant was not updated to '7.9-dev' after 7.8 release.
  • #1295502 by pillarsdotnet: Fixed Add missing '$' character to docblock for timer_start(), timer_read(), and timer_stop() functions.
  • #1295502 by pillarsdotnet: Fixed Add missing '$' character to docblock for timer_start(), timer_read(), and timer_stop() functions.
  • #1079966 by dereine, catch: Fixed Notice when renaming bundles.
  • #1167218 by droplet, kathyh: Fixed DatabaseStatementInterface::fetch* - document what empty return value is.
  • #1244116 by catch: Fixed Feed items with title longer than 255 characters fail to insert into aggregator_item().
  • #1054848 by barraponto: Fixing common typos through
  • #1274674 by karschsp, pgrond, mdupont, aroq | Lars Toomre: Added static caching to taxonomy_vocabulary_get_names().
  • #859970 by jn2, sun, rfay: Cleanup form_api() () docs - keys in 2 places, missing some.
  • #1273206 by droplet: Access global when it essentially needed.
  • #1178580 by Dave Reid: Fixed PHP notices with [node:summary], [node:body], or [comment:body] if there is no body field or language mismatch.
  • #1252768 by vegantriathlete: Fixed Misnomer in the text supplied for configuring cron.
  • #1250800 by attiks, dereine: language domain should work regardless of ports or protocols.
  • Oops. Rollback of #951644 which was accidentally committed.
  • #1120290 by wojtha: Provide transition for accounts with incompletely stored OpenIDs.
  • #1205138 by pwolanin, Dave Reid: Do not blow away non-MD5 password hashes in user_update_7000().
  • #1057242 by drunken monkey: Change notice for entity_uri() should not use ->uri (was ->uri doesn't match the contract for uri callbacks).
  • #1122584 by 10oclock, Rob Loach: Fixed Use #attached for block_admin_display_form() instead of drupal_add_css().
  • #1289364 by swentel: Fixed SchemaCache generates empty cid.
  • #76824 by geerlingguy, xjm, droplet, kbahey: Change notice for Drupal should not handle 404 for certain files.
  • #1005570 by reglogge: Fixed Document leading dot requirement for () in settings.php.
  • #1123092 by michaellenahan: Fixed user-profile.tpl.php doc has confusing/misleading first paragraph.
  • #1290512 by droplet: Fixed Seven: remove duplicated css .
  • #1290562 by bleen18, droplet: Fixed Contextual: remove duplicated css.
  • #1000282 by dixon_, sun: Fixed argument missing for comment_load()[_multiple]().
  • #363354 by xjm, aspilicious, casey, Boobaa: Fixed Tableselect should only select enabled checkboxes.
  • #1295456 by pillarsdotnet: Fixed Add missing '$' character in docblock for DrupalWebTestCase::drupalGetNodeByTitle() function.
  • #1295460 by TR, pillarsdotnet: Fixed Add missing '$' character to docblock for taxonomy_get_term_by_name() function.
  • #1295462 by pillarsdotnet: Fixed Add missing '$' character to docblock for _theme_load_registry() function.
  • #825972 by daniels220, Reidsy, jhodgdon: Fixed sess_write()/sess_read() documentation should recommend instead.
  • #1110650 by oriol_e9g, JohnAlbin, linclark, dixon_: Fixed comment-by-anonymous class never appears.
  • #1247626 by sven.lauer: Fixed hook_install()/hook_uninstall() doc does not specify that the implementations must live in the .install file.
  • #1177738 by catch: Speed up theme registry rebuilds when multiple themes are enabled.
  • #1282956 by rickmanelius, pgrond: Fixed Node revision log of '0' is ignored.
  • #1060772 by agentrickard, DeweyOxberger: Fixed Create a view of taxonomy terms (Views UI) and get an error from hook_form_alter().
  • #1118404 by Damien Tournoud, keichee, bfroehle: Fixed 'Manual updates required' table broken.
  • #1018050 by sun: Provide node type/bundle in comment_entity_info().
  • #1278160 by tim.plunkett: Lower the logging severity level of 'orphaned actions'.
  • #879580 by arithmetric: Fixed States fail when using integer values for select/radio dependencies.
  • #1050606 by jhodgdon, bxtaylor: Fixed menu_tree_data() doc needs more detail.
  • #790770 by swentel, jhodgdon, David_Rothstein, naxoc: Fixed 'Add to shortcuts' link should not appear on 403/404 pages.
  • #1290486 by arthurf: File.mimetypes needs entry for m4v.
  • #1264894 by Devin Carlson, James_Stallings: Fixed The 'Parameters' section shows HTML tags are rendered as plain text.
  • #1113702 by franz: Fixed Comment in url_is_external() wrong.
  • #1294284 by Chi: Code style fix for field_ui().test.
  • #881376 by marcvangend: Fixed 'Run the clean URL test' UX is broken.
  • #520106 by JohnAlbin, pillarsdotnet, chx, sun, Nick Lewis, drifter, Mark Trapp: Fixed No way to dynamically set active trail.
  • #1040810 by Tor Arne Thune, jhodgdon: Fixed UPGRADE.txt describes erroneous step and should mention release notes.
  • #1226796 by sun, catch, Damien Tournoud: Fixed Not equal operator '!=' is not supported by all databases, must be '<>'.
  • #848546 by mlncn: Fixed Throbber versus Progress bar help text incorrect?.
  • #1242460 by Chi: Code style fix for database_test().test.
  • #1201024 by pillarsdotnet: drupal_realpath() should describe when it should be used.
  • #955848 by anrikun, Kars-T, catch, chx: when editing an existing node with a link, the link itself is listed in 'Parent item'
  • #1282986 by valthebald: password of '0' ignored in drupal_http_request().
  • #1286650 by megensel: incorrect API usage in
  • #1253204 by fietserwin: user_field_extra_fields() does not translate labels.
  • #1271026 by swentel: name of shortcut should be required.
  • #1263882 by TR, cweagans: removed trailing whitespace
  • #706894 by amateescu, sun: poll form uses #description for a button.
  • Reverting #1266348. We can't change APIs in a stable release.
  • #1008250 by jhodgdon, bxtaylor: clean up hook_init() and hook_boot() doc.
  • #1116416 by Kars-T, Coornail: use 'Header set' instead of 'Header append' in .htaccess to avoid double encoding.
  • #1283244 by pillarsdotnet, TR: request_uri() documentation did not conform to standards.
  • #1266348 by kathyh, webchick: improved consistency of internal APIs
  • #1059268 by Berdir: Fixed Files are lost when adding multiple files to multiple file fields at the same time.
  • #1116416 by Kars-T, Coornail: use 'Header set' instead of 'Header append' in .htaccess to avoid double encoding.
  • #1153122 by Mac_Weber, tim.plunkett: Fixed padding to make Save button in admin page more visible.
  • #952772 by oriol_e9g, mdupont, bleen18, idflood: theme_html_tag() optional value not really optional.
  • #1078646 by Nneka, droplet, Vincent Giersch, larowlan: incorrect link to the author's profile in topic column if topic has replies.
  • #1262064 by michaellenahan: default.settings.php has formatting issue with numbered list.
  • #1280718 by theborg: white space in forum code.
  • #1281436 by dixon_: double spaces in comment.module.
  • #1279888 by 10oclock: missing table prefix on query in node_feed().
  • #1263912 by TR: fails to print out list of tests to be run.
  • #1273032 by michaellenahan: conf_path() has formatting issue with numbered list.
  • #1275214 by CashWilliams: block_load() should not refer to .
  • #1278182 by CashWilliams: user-profile.tpl.php should use not in example.
  • #1276746 by jessebeach: the title of the ui.mouse library in system.module is incorrectly set to 'jQuery UI: Droppable' instead of 'jQuery UI: Mouse'.
  • #999040 by Niklas Fiekas: corrected alternative control structure syntax in theme templates.
  • #1185842 by Dave Reid: the [node:author] token does not use format_username().
  • #1024328 by pillarsdotnet, droplet: re-use message-16-error.png icon for dblog severity levels higher than LOG_ERR.
  • #1260162 by michaellenahan, B√®s: hook_file_insert() doc has no function body.
  • #1257638 by michaellenahan, B√®s: hook_menu() example should be changed to not suggest admin/config/foo as path.
  • #897650 by Garrett Albright, Damien Tournoud: DatabaseSchema_sqlite()::findTables() shouldn't find indexes.
  • #1164808 by mrfelton: block title field was overlooked.
  • #1237290 by e-anima, dereine, xjm: menu path length fix.
  • #240828 by sun, xjm, David_Rothstein, yoroy: 'This form is outdated. Reload the page and try again' is incorrect and confuses users.
  • #160163 by c960657, Pancho, danillonunes: login with OpenID link has mis-encoding of #.
  • #1266694 by Damien Tournoud: Fixed DatabaseStatementPrefetch doesn't implement fetchColumn().
  • #1269178 by catch: add catch as cache system co-maintainer.
  • #1263882 by cweagans, TR: Code style: authorize.php.
  • #1273444 by Xano: Missing operator docs for EntityFieldQuery's propertyCondition() and addFieldCondition().
  • #1212018 by Liam Morland: form required marker in should use theme system.
  • #565288 by bfroehle, anarcat, p.brouwers, aspilicious: cannot install Drupal when is 503 (at Drupalcon!).
  • #1265294 by sven.lauer: Minor improvement of the documentation page for t().
  • #1267092 by xjm: some comment cleanup in block.test.
  • #1265586 by James_Stallings, edmund.kwok: remove bitter tasting 'bile' in core documentation ;).
  • #799932 by David_Rothstein, Stefan Freudenberg: Fixed Simpletest HTTP authentication credentials should use the 'password' form element.
  • #1118016 by dereine, pwolanin: Fixed conditional visibility of a managed_file() using #states attribute does not work.
  • #575810 by wojtha, Heine, vzima: Fixed OpenID discovery spec violation - follow redirects.
  • #1069778 by msonnabaum: Fixed Conflicting messages from user_pass_submit().
  • #1136854 by chx: Fixed MySQL 5.5 breaks speedy testing.
  • #1222576 by jox: Fixed file_usage_list() is defective (might return incomplete results).
  • #1231856 follow-up by marcingy: Fixed menu_update_7001() breaks if block module disabled.
  • #937380 by David_Rothstein, swentel: Fixed errors when submitting the shortcut set configuration page after deleting all shortcuts.
  • #787876 by zero2one, avior: Fixed Edit 'My Account' fills the first password field.
  • #1069080 by Marie Wendel, droplet: Fixed node_comment_statistics().last_comment_timestamp() description.
  • #1216758 by tim.plunkett: Add module and hook as formal parameters in module_invoke().


The selected release is the release that will be used for automated testing. Optional projects are only used for testing.


No required projects


No optional projects