Release notes

Maintenance release of the Drupal 7 series. Includes bug fixes and small API/feature improvements only (no major new functionality); significant new features are only being added to the forthcoming Drupal 8.0 release.

No security fixes are included in this release.

No changes have been made to the .htaccess, web.config, robots.txt or default settings.php files in this release, so upgrading custom versions of those files is not necessary.

Known issues:

Changes made to the Update Manager module in this release may lead to performance slowdowns in certain cases (including on rare page loads for site visitors, if the site is using the automated cron feature). See #952394: "No available releases found" - fetching update information exceeds timeout and the notes below for further details.

Major changes since 7.27:

  • Fixed a regression introduced in Drupal 7.27 that caused JavaScript to break on older browsers (such as Internet Explorer 8 and earlier) when Ajax was used.
  • Increased the timeout used by the Update Manager module when it fetches data from drupal.org (from 5 seconds to 30 seconds), to work around a problem which causes incomplete information about security updates to be presented to site administrators. This fix may lead to a performance slowdown on the Update Manager administration pages, when installing Drupal distributions, and (for sites that use the automated cron feature) on occasional page loads by site visitors.
  • Fixed the behavior of the token system's "[node:summary]" token when the body field does not have a manual summary.
  • Changed the behavior of db_query_temporary() so that it works on SELECT queries even when they have leading comments/whitespace. A side effect of this fix is that db_query_temporary() will now fail with an error if it is ever used on non-SELECT queries.
  • Added a "node_admin_filter" tag to the database query used to build the list of nodes on the content administration page, to make it easier to alter.
  • Made the cron queue system log any exceptions that are thrown while an item in the queue is being processed, rather than stopping the entire PHP request.
  • Improved screen reader support by adding an aria-live HTML attribute to file upload fields when there is an error uploading the file (minor markup change).
  • Made the pager on the Tracker module listing pages show the same number of items as other pagers throughout Drupal core (minor UI change).
  • Fixed a bug which caused caches not to be properly cleared when a file entity was saved or deleted.
  • Added several missing countries to the default list returned by country_get_list() (string change).
  • Replaced the term "weight" with "influence" in the content ranking settings for search, and added help text for administrators (string change).
  • Fixed untranslatable text strings in the administrative interface for the "Crop" effect provided by the Image module (minor string change).
  • Fixed a bug in the Taxonomy module update function introduced in Drupal 7.26 that caused memory and CPU problems on sites with very large numbers of unpublished nodes.

All changes since 7.27:

  • #2048395 by filijonka: Fix up group/topic membership for field hooks
  • #2259361 by jweowu, David_Rothstein: Document that db_query_temporary() only works on SELECT queries
  • #2245331 by bendikrb: Use of reserved word in ajax.js breaks IE8.
  • #952394 by xjm, webchick, sun, catch | yettyn: "No available releases found" - fetching update information exceeds timeout.
  • #2143461 by Sneakyvv: drupal_get_query_array() does not work correctly if a query parameter contains an equals sign.
  • #1522348 by seanB, jenlampton | Adam S: Notice: getimagesize read error in image_gd_get_info().
  • #1525176 by klausi, amateescu, David_Rothstein, dlu, goldenboy, lucascaro, naveko, Georgique, webchick: Using array_diff_assoc() for multilevel arrays in DrupalDefaultEntityController->cacheGet().
  • #1788060 by BarisW, swentel, dcam | hass: Translatable string cannot imported if translated.
  • #1200478 by mitron, pounard, David_Rothstein | nicholasThompson: Incorrect setting of the 'class' attribute to a string in the Comment module (could cause fatal errors under rare conditions).
  • #1300920 by salvis, DamienMcKenna, mkadin, idflood, pjcdawkins, lyricnz, greggles, Niklas Fiekas, gumanist | Dave Reid: The [node:summary] token does not output anything for body fields without a manual summary.
  • #1868972 by jweowu, DanChadwick: Db_query_temporary() fails to create a table when the SQL has leading whitespace.
  • #1191660 by ParisLiakos, Jon_B: Add Tag to Filter Query in admin/content/node.
  • #1790298 by nagba, pwolanin: Unindexed query in aggregator module.
  • #2161955 by wiifm, mikeytown2, dawehner: Remove get_extension_funcs() call to improve HHVM compatibility .
  • #1468686 by ordermind, paranojik, andrewbelcher, xps, Georgique, rlmumford, gapple, dsdeiz, tim.plunkett: File_field_widget_submit(), file.field.inc was using the wrong parent key.
  • #2182315 by joachim: Simpletest verbose output doesn't show end result of a drupalPostAjaxForm().
  • #1969108 by danblack, cs_shadow | Robert S: INSTALL.mysql.txt does not mention CREATE TEMPORARY TABLES and it should.
  • #2021933 by Crell, David_Rothstein, joachim, lz1irq: Catch exceptions from queue workers.
  • #1333292 by dcam, mgifford | Everett Zufelt: Screen-reader users receive no info about file upload errors.
  • #2130461 by Alan D.: Tracker pager is inconsistent with every other pager in core.
  • #2159549 by Dave Reid: File_save() and file_delete() do not clear entity controller cache.
  • #2227687 by cs_shadow | Cottser: Slightly ugly error message if a module is incompatible with the version of core and the PHP version.
  • #2065917 by SpadXIII, andrewbelcher, kboopathi: SelectQueryExtender::hasAnyTag uses hasAnyTags which doesn't exist.
  • #2106129 by brad.bulger, mmilano: Fix PHP notice in drupal_valid_path(): Undefined variable: form_item.
  • #61456 by Albert Volkman, jeffschuler, David_Rothstein, jdefay, edmund.kwok, pillarsdotnet, xjm, alex_b, csevb10, Steve Dondley: Write tests for issues with aggregator titles displaying quotes and other characters with HTML entity equivalents badly.
  • #2165143 by MF82, mgifford: Fix tigger misspell in node.test
  • #2169065 by MF82, dcam, nadja.jury, danmuzyka: Fix up some docs in search tests
  • #2244087 by cs_shadow, andrei.dincu, joachim: Add explanation comment in NodeCreationTestCase
  • #2245057 by cs_shadow, joachim: Fix docs for entity_get_controller
  • #1068840 by sun, TR, Liam Morland, Pancho, Alan D., tim.plunkett, Damien Tournoud, droplet: Country codes missing from includes/iso.inc.
  • #2234611 by visabhishek, cs_shadow, joachim: Fix up docs for drupalCreateRole test method
  • #1885420 by cs_shadow, kim.pepper, xjm: Fix docs for metadata on node access queries
  • #2195357 by Rajendar Reddy, GoddamnNoise, Pol: Fix docs in hook_block_info()
  • #1041486 by cs_shadow, lokapujya, eporama, Pancho: Fix docs for check_markup
  • #535616 by jhodgdon, rootwork, ianthomas_uk, pwolanin, oriol_e9g | tgeller: Make Content Ranking settings for Search not say "weights" to avoid confusion.
  • #2037847 by droplet: Join position strings together to fix translatability in the administrative interface for the Image module "Crop" effect.
  • #2157017 by sun, rfay: DrupalHTTPRequestTestCase breaks on php-fpm [testbot PHP 5.4 blocker].
  • #2051519 by GoddamnNoise: Fix errors in registry.inc docs
  • #2222497 by mojzis: Replace obsolete function reference in hook_prepare docs
  • #2216945 by asrob: Remove duplicate ingroup in filter_xss
  • #2215877 by asrob: Fix function signature for hook_ajax_render_alter()
  • #2182187 by izus: Clarify documentation for taxonomy_vocabulary_delete()
  • #2204873 by sandipmkhairnar: Fix documentation of menu_tree_output.
  • #2194027 by KelvinWong, sphism: Fix up database topic docs example queries
  • #1796500 by sandykadam: Fix docs for hook_field_attach_validate()
  • #2188289 by Jaypan, sun, Berdir: Fix docs for drupal_get_token()
  • #2181809 by davidneedham, Les Lim: Fix bullet list in README file
  • #1694026 by sandykadam, joachim: Fis docs in hook_field_attach_delete_bundle()
  • #2199191 by nevergone, mr.york: Fix typo in form.api.php
  • #1948566 by joachim: Document batch API callbacks using new standard
  • #2183461 by siliconmeadow: Fix reference to nonexistent function in taxonomy docs
  • #2174353 by anemes, bryanlburkholder: Fix up docs for system_retrieve_file
  • #1984378 by Jaypan, JacobSanford, aroq | Dave Hirschman: $source argument is name of form field used to upload file, not "filepath or URI of the uploaded file."
  • #2174551 by David_Rothstein, mikeytown2, hswong3i: Taxonomy_update_7011 runs out of memory.
  • #1999074 by adaminnes, sarahdavies: Fix formatting at end of Form Builder topic docs
  • #2031755 by mpv: Fix documentation of theme_checkbox()
  • #2107231 by valderama: Fix documentation for hook_delete()
  • #2164597 by longwave, StephaneQ, emok: Fix up docs for drupal_render_children()
  • #2158383 by laurii, joachim: Fix documentation of return value in user_role_permissions
  • #2164179 by StephaneQ: Fix links to extenders in Database API topic page
Download Size md5 hash
drupal-7.28.tar.gz 3.06 MB 6255884d7e15c654fc8856805b271551
drupal-7.28.zip 3.5 MB 17ab7ebdefbb616055a799bc402970c6
Last updated: May 8, 2014 - 04:18
View change notices for this release
Official release from tag: 
7.28