Support for Drupal 7 is ending on 5 January 2025—it’s time to migrate to Drupal 10! Learn about the many benefits of Drupal 10 and find migration tools in our resource center.
Downloads
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 notes
Highlights
- Critical fixes to OpenID to spec violations that could allow for impersonation in certain scenarios. Existing OpenID users should see http://drupal.org/node/1323342 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 http://drupal.org/node/673020#comment-5106306 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 codespell.py.
- #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 system.admin.inc.
- #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: run-tests.sh 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 field.form.inc should use theme system.
- #565288 by bfroehle, anarcat, p.brouwers, aspilicious: cannot install Drupal when Drupal.org 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().