diff --git a/.htaccess b/.htaccess index 8c522d7169..fdc8a20eb3 100644 --- a/.htaccess +++ b/.htaccess @@ -3,8 +3,13 @@ # # Protect files and directories from prying eyes. - - Order allow,deny + + + Require all denied + + + Order allow,deny + # Don't show directory listings for URLs which map to a directory. @@ -38,7 +43,7 @@ DirectoryIndex index.php index.html index.htm php_value mbstring.http_input pass php_value mbstring.http_output pass php_flag mbstring.encoding_translation off - php_value memory_limit 512M + php_value memory_limit 512M # Requires mod_expires to be enabled. @@ -87,7 +92,7 @@ DirectoryIndex index.php index.html index.htm # If you do not have mod_rewrite installed, you should remove these # directories from your webroot or otherwise protect them from being # downloaded. - RewriteRule "(^|/)\." - [F] + RewriteRule "/\.|^\.(?!well-known/)" - [F] # If your site can be accessed both with and without the 'www.' prefix, you # can use one of the following settings to redirect users to your preferred diff --git a/includes/bootstrap.inc b/includes/bootstrap.inc index 2d8b820fcb..8ac48eee58 100644 --- a/includes/bootstrap.inc +++ b/includes/bootstrap.inc @@ -8,7 +8,7 @@ /** * The current system version. */ -define('VERSION', '7.60'); +define('VERSION', '7.61'); /** * Core API compatibility. @@ -3785,8 +3785,12 @@ function _drupal_shutdown_function() { chdir(DRUPAL_ROOT); try { - while (list($key, $callback) = each($callbacks)) { + // Manually iterate over the array instead of using a foreach loop. + // A foreach operates on a copy of the array, so any shutdown functions that + // were added from other shutdown functions would never be called. + while ($callback = current($callbacks)) { call_user_func_array($callback['callback'], $callback['arguments']); + next($callbacks); } } catch (Exception $exception) { diff --git a/includes/common.inc b/includes/common.inc index a79a2f42ac..38aef76cdf 100644 --- a/includes/common.inc +++ b/includes/common.inc @@ -867,8 +867,10 @@ function drupal_http_request($url, array $options = array()) { // Make the socket connection to a proxy server. $socket = 'tcp://' . $proxy_server . ':' . variable_get('proxy_port', 8080); // The Host header still needs to match the real request. - $options['headers']['Host'] = $uri['host']; - $options['headers']['Host'] .= isset($uri['port']) && $uri['port'] != 80 ? ':' . $uri['port'] : ''; + if (!isset($options['headers']['Host'])) { + $options['headers']['Host'] = $uri['host']; + $options['headers']['Host'] .= isset($uri['port']) && $uri['port'] != 80 ? ':' . $uri['port'] : ''; + } break; case 'http': @@ -878,14 +880,18 @@ function drupal_http_request($url, array $options = array()) { // RFC 2616: "non-standard ports MUST, default ports MAY be included". // We don't add the standard port to prevent from breaking rewrite rules // checking the host that do not take into account the port number. - $options['headers']['Host'] = $uri['host'] . ($port != 80 ? ':' . $port : ''); + if (!isset($options['headers']['Host'])) { + $options['headers']['Host'] = $uri['host'] . ($port != 80 ? ':' . $port : ''); + } break; case 'https': // Note: Only works when PHP is compiled with OpenSSL support. $port = isset($uri['port']) ? $uri['port'] : 443; $socket = 'ssl://' . $uri['host'] . ':' . $port; - $options['headers']['Host'] = $uri['host'] . ($port != 443 ? ':' . $port : ''); + if (!isset($options['headers']['Host'])) { + $options['headers']['Host'] = $uri['host'] . ($port != 443 ? ':' . $port : ''); + } break; default: @@ -5533,6 +5539,11 @@ function drupal_cron_cleanup() { * - 'name': Name of file without the extension. */ function drupal_system_listing($mask, $directory, $key = 'name', $min_depth = 1) { + $cid = "drupal_system_listing|$mask|$directory|$key|$min_depth"; + $cache = cache_get($cid); + if(!empty($cache->data)){ + return $cache->data; + } $config = conf_path(); $searchdir = array($directory); @@ -5600,7 +5611,7 @@ function drupal_system_listing($mask, $directory, $key = 'name', $min_depth = 1) } $files = array_merge($files, $files_to_add); } - + cache_set($cid, $files, 'cache', time() + 604800); return $files; } @@ -7476,12 +7487,18 @@ function drupal_parse_info_file($filename) { $info = &drupal_static(__FUNCTION__, array()); if (!isset($info[$filename])) { - if (!file_exists($filename)) { - $info[$filename] = array(); - } - else { - $data = file_get_contents($filename); - $info[$filename] = drupal_parse_info_format($data); + $cache = cache_get(__FUNCTION__); + if(empty($cache->data) || empty($cache->data[$filename])){ + if (!file_exists($filename)) { + $info[$filename] = array(); + } + else { + $data = file_get_contents($filename); + $info[$filename] = drupal_parse_info_format($data); + } + cache_set(__FUNCTION__, $info, 'cache', time() + 604800); + } else { + $info = $cache->data; } } return $info[$filename]; @@ -7828,7 +7845,7 @@ function drupal_check_incompatibility($v, $current_version) { * @see hook_entity_info() * @see hook_entity_info_alter() */ -function entity_get_info($entity_type = NULL) { +function entity_get_info($entity_type = NULL, $reset = FALSE) { global $language; // Use the advanced drupal_static() pattern, since this is called very often. @@ -7836,6 +7853,9 @@ function entity_get_info($entity_type = NULL) { if (!isset($drupal_static_fast)) { $drupal_static_fast['entity_info'] = &drupal_static(__FUNCTION__); } + if($reset){ + $drupal_static_fast = NULL; + } $entity_info = &$drupal_static_fast['entity_info']; // hook_entity_info() includes translated strings, so each language is cached diff --git a/includes/database/mysql/schema.inc b/includes/database/mysql/schema.inc index 9ba1c73397..dd14e0cd31 100644 --- a/includes/database/mysql/schema.inc +++ b/includes/database/mysql/schema.inc @@ -101,6 +101,8 @@ class DatabaseSchema_mysql extends DatabaseSchema { // Remove the last comma and space. $sql = substr($sql, 0, -3) . "\n) "; + $sql .= 'ROW_FORMAT=DYNAMIC '; + $sql .= 'ENGINE = ' . $table['mysql_engine'] . ' DEFAULT CHARACTER SET ' . $table['mysql_character_set']; // By default, MySQL uses the default collation for new tables, which is // 'utf8_general_ci' for utf8. If an alternate collation has been set, it diff --git a/includes/file.inc b/includes/file.inc index fa7f5eb547..ece16498d7 100644 --- a/includes/file.inc +++ b/includes/file.inc @@ -611,7 +611,9 @@ function file_load($fid) { */ function file_save(stdClass $file) { $file->timestamp = REQUEST_TIME; - $file->filesize = filesize($file->uri); + if(empty($file->filesize) || (function_exists('file_entity_file_is_local') && file_entity_file_is_local($file))){ + $file->filesize = filesize($file->uri); + } // Load the stored entity, if any. if (!empty($file->fid) && !isset($file->original)) { @@ -1536,7 +1538,7 @@ function file_save_upload($form_field_name, $validators = array(), $destination // evaluates to TRUE. if (!variable_get('allow_insecure_uploads', 0) && preg_match('/\.(php|pl|py|cgi|asp|js)(\.|$)/i', $file->filename) && (substr($file->filename, -4) != '.txt')) { $file->filemime = 'text/plain'; - $file->uri .= '.txt'; + // The destination filename will also later be used to create the URI. $file->filename .= '.txt'; // The .txt extension may not be in the allowed list of extensions. We have // to add it here or else the file upload will fail. diff --git a/includes/form.inc b/includes/form.inc index e749239ef9..6c33de7f96 100644 --- a/includes/form.inc +++ b/includes/form.inc @@ -555,8 +555,10 @@ function form_get_cache($form_build_id, &$form_state) { * Stores a form in the cache. */ function form_set_cache($form_build_id, $form, $form_state) { - // 6 hours cache life time for forms should be plenty. - $expire = 21600; + // The default cache_form expiration is 6 hours. On busy sites, the cache_form + // table can become very large. A shorter cache lifetime can help to keep the + // table's size under control. + $expire = variable_get('form_cache_expiration', 21600); // Ensure that the form build_id embedded in the form structure is the same as // the one passed in as a parameter. This is an additional safety measure to @@ -1438,10 +1440,12 @@ function _form_validate(&$elements, &$form_state, $form_id = NULL) { // length if it's a string, and the item count if it's an array. // An unchecked checkbox has a #value of integer 0, different than string // '0', which could be a valid value. - $is_empty_multiple = (!count($elements['#value'])); + $is_countable = is_array($elements['#value']) || $elements['#value'] instanceof Countable; + $is_empty_multiple = $is_countable && count($elements['#value']) == 0; $is_empty_string = (is_string($elements['#value']) && drupal_strlen(trim($elements['#value'])) == 0); $is_empty_value = ($elements['#value'] === 0); - if ($is_empty_multiple || $is_empty_string || $is_empty_value) { + $is_empty_null = is_null($elements['#value']); + if ($is_empty_multiple || $is_empty_string || $is_empty_value || $is_empty_null) { // Although discouraged, a #title is not mandatory for form elements. In // case there is no #title, we cannot set a form error message. // Instead of setting no #title, form constructors are encouraged to set diff --git a/includes/install.inc b/includes/install.inc index 5e1d3c6326..b7db783586 100644 --- a/includes/install.inc +++ b/includes/install.inc @@ -779,7 +779,7 @@ function drupal_uninstall_modules($module_list = array(), $uninstall_dependents $module_list = array_flip(array_values($module_list)); $profile = drupal_get_profile(); - while (list($module) = each($module_list)) { + foreach (array_keys($module_list) as $module) { if (!isset($module_data[$module]) || drupal_get_installed_schema_version($module) == SCHEMA_UNINSTALLED) { // This module doesn't exist or is already uninstalled. Skip it. unset($module_list[$module]); diff --git a/includes/menu.inc b/includes/menu.inc index 4664d27e89..ca37ba509d 100644 --- a/includes/menu.inc +++ b/includes/menu.inc @@ -576,7 +576,8 @@ function _menu_load_objects(&$item, &$map) { // 'load arguments' in the hook_menu() entry, but they need // some processing. In this case the $function is the key to the // load_function array, and the value is the list of arguments. - list($function, $args) = each($function); + $args = current($function); + $function = key($function); $load_functions[$index] = $function; // Some arguments are placeholders for dynamic items to process. @@ -2402,7 +2403,8 @@ function menu_set_active_trail($new_trail = NULL) { // a stripped down menu tree containing the active trail only, in case // the given menu has not been built in this request yet. $tree = menu_tree_page_data($preferred_link['menu_name'], NULL, TRUE); - list($key, $curr) = each($tree); + $curr = current($tree); + next($tree); } // There is no link for the current path. else { @@ -2432,7 +2434,8 @@ function menu_set_active_trail($new_trail = NULL) { } $tree = $curr['below'] ? $curr['below'] : array(); } - list($key, $curr) = each($tree); + $curr = current($tree); + next($tree); } // Make sure the current page is in the trail to build the page title, by // appending either the preferred link or the menu router item for the diff --git a/includes/module.inc b/includes/module.inc index 2e251080b7..4c2b3fbeeb 100644 --- a/includes/module.inc +++ b/includes/module.inc @@ -404,7 +404,11 @@ function module_enable($module_list, $enable_dependencies = TRUE) { // Create an associative array with weights as values. $module_list = array_flip(array_values($module_list)); - while (list($module) = each($module_list)) { + // The array is iterated over manually (instead of using a foreach) because + // modules may be added to the list within the loop and we need to process + // them. + while ($module = key($module_list)) { + next($module_list); if (!isset($module_data[$module])) { // This module is not found in the filesystem, abort. return FALSE; @@ -540,7 +544,11 @@ function module_disable($module_list, $disable_dependents = TRUE) { $module_list = array_flip(array_values($module_list)); $profile = drupal_get_profile(); - while (list($module) = each($module_list)) { + // The array is iterated over manually (instead of using a foreach) because + // modules may be added to the list within the loop and we need to process + // them. + while ($module = key($module_list)) { + next($module_list); if (!isset($module_data[$module]) || !$module_data[$module]->status) { // This module doesn't exist or is already disabled, skip it. unset($module_list[$module]); diff --git a/includes/theme.inc b/includes/theme.inc index 9b606e9fb1..a926b764ed 100644 --- a/includes/theme.inc +++ b/includes/theme.inc @@ -1776,13 +1776,13 @@ function theme_link($variables) { * http://www.w3.org/TR/WCAG-TECHS/H42.html for more information. */ function theme_links($variables) { - $links = $variables['links']; - $attributes = $variables['attributes']; + $links = (array) $variables['links']; + $attributes = (array) $variables['attributes']; $heading = $variables['heading']; global $language_url; $output = ''; - if (count($links) > 0) { + if (!empty($links)) { // Treat the heading first if it is present to prepend it to the // list of links. if (!empty($heading)) { @@ -1995,7 +1995,7 @@ function theme_table($variables) { $empty = $variables['empty']; // Add sticky headers, if applicable. - if (count($header) && $sticky) { + if (!empty($header) && $sticky) { drupal_add_js('misc/tableheader.js'); // Add 'sticky-enabled' class to the table to identify it for JS. // This is needed to target tables constructed by this function. @@ -2009,7 +2009,7 @@ function theme_table($variables) { } // Format the table columns: - if (count($colgroups)) { + if (!empty($colgroups)) { foreach ($colgroups as $number => $colgroup) { $attributes = array(); @@ -2044,38 +2044,40 @@ function theme_table($variables) { } // Add the 'empty' row message if available. - if (!count($rows) && $empty) { + if (empty($rows) && $empty) { $header_count = 0; - foreach ($header as $header_cell) { - if (is_array($header_cell)) { - $header_count += isset($header_cell['colspan']) ? $header_cell['colspan'] : 1; - } - else { - $header_count++; + if (!empty($header)) { + foreach ($header as $header_cell) { + if (is_array($header_cell)) { + $header_count += isset($header_cell['colspan']) ? $header_cell['colspan'] : 1; + } + else { + $header_count++; + } } } $rows[] = array(array('data' => $empty, 'colspan' => $header_count, 'class' => array('empty', 'message'))); } // Format the table header: - if (count($header)) { + if (!empty($header)) { $ts = tablesort_init($header); // HTML requires that the thead tag has tr tags in it followed by tbody // tags. Using ternary operator to check and see if we have any rows. - $output .= (count($rows) ? ' ' : ' '); + $output .= (!empty($rows) ? ' ' : ' '); foreach ($header as $cell) { $cell = tablesort_header($cell, $header, $ts); $output .= _theme_table_cell($cell, TRUE); } // Using ternary operator to close the tags based on whether or not there are rows - $output .= (count($rows) ? " \n" : "\n"); + $output .= (!empty($rows) ? " \n" : "\n"); } else { $ts = array(); } // Format the table rows: - if (count($rows)) { + if (!empty($rows)) { $output .= "\n"; $flip = array('even' => 'odd', 'odd' => 'even'); $class = 'even'; @@ -2095,7 +2097,7 @@ function theme_table($variables) { $attributes = array(); $no_striping = FALSE; } - if (count($cells)) { + if (!empty($cells)) { // Add odd/even class if (!$no_striping) { $class = $flip[$class]; diff --git a/misc/tabledrag.js b/misc/tabledrag.js index 7ea88b607a..836568f529 100644 --- a/misc/tabledrag.js +++ b/misc/tabledrag.js @@ -580,21 +580,43 @@ Drupal.tableDrag.prototype.dropRow = function (event, self) { * Get the mouse coordinates from the event (allowing for browser differences). */ Drupal.tableDrag.prototype.mouseCoords = function (event) { + + // Match both null and undefined, but not zero, by using != null. + // See https://stackoverflow.com/questions/2647867/how-to-determine-if-variable-is-undefined-or-null + if (event.pageX != null && event.pageY != null) { + return {x: event.pageX, y: event.pageY}; + } + // Complete support for pointer events was only introduced to jQuery in // version 1.11.1; between versions 1.7 and 1.11.0 pointer events have the - // clientX and clientY properties undefined. In those cases, the properties - // must be retrieved from the event.originalEvent object instead. - var clientX = event.clientX || event.originalEvent.clientX; - var clientY = event.clientY || event.originalEvent.clientY; + // pageX and pageY properties undefined. In those cases, the properties must + // be retrieved from the event.originalEvent object instead. + if (event.originalEvent && event.originalEvent.pageX != null && event.originalEvent.pageY != null) { + return {x: event.originalEvent.pageX, y: event.originalEvent.pageY}; + } - if (event.pageX || event.pageY) { - return { x: event.pageX, y: event.pageY }; + // Some old browsers do not support MouseEvent.pageX and *.pageY at all. + // See https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/pageY + // For those, we look at event.clientX and event.clientY instead. + if (event.clientX == null || event.clientY == null) { + // In some jQuery versions, some events created by jQuery do not have + // clientX and clientY. But the original event might have. + if (!event.originalEvent) { + throw new Error("The event has no coordinates, and no event.originalEvent."); + } + event = event.originalEvent; + if (event.clientX == null || event.clientY == null) { + throw new Error("The original event has no coordinates."); + } } - return { - x: clientX + document.body.scrollLeft - document.body.clientLeft, - y: clientY + document.body.scrollTop - document.body.clientTop - }; + // Copied from jQuery.event.fix() in jQuery 1.4.1. + // In newer jQuery versions, this code is in jQuery.event.mouseHooks.filter(). + var doc = document.documentElement, body = document.body; + var pageX = event.clientX + ( doc && doc.scrollLeft || body && body.scrollLeft || 0 ) - ( doc && doc.clientLeft || body && body.clientLeft || 0 ); + var pageY = event.clientY + ( doc && doc.scrollTop || body && body.scrollTop || 0 ) - ( doc && doc.clientTop || body && body.clientTop || 0 ); + + return {x: pageX, y: pageY}; }; /** diff --git a/misc/tableheader.js b/misc/tableheader.js index 47201b2691..2615273b7f 100644 --- a/misc/tableheader.js +++ b/misc/tableheader.js @@ -38,9 +38,16 @@ Drupal.tableHeader = function (table) { // Clone the table header so it inherits original jQuery properties. Hide // the table to avoid a flash of the header clone upon page load. - this.stickyTable = $('') + this.stickyTable = $(document.createElement('table')) .insertBefore(this.originalTable) .css({ position: 'fixed', top: '0px' }); + + // Copy classes from originalTable, remove undesired classes, and add sticky-header. + // Any other classes added to originalTable by modules will exists in stickyTable to ensure consistent styling. + this.stickyTable.attr('class', this.originalTable.attr('class')); + this.stickyTable.removeClass('sticky-enabled tableheader-processed sticky-table'); + this.stickyTable.addClass('sticky-header'); + this.stickyHeader = this.originalHeader.clone(true) .hide() .appendTo(this.stickyTable); diff --git a/modules/aggregator/aggregator.info b/modules/aggregator/aggregator.info index 2d84f9d134..e7002d1734 100644 --- a/modules/aggregator/aggregator.info +++ b/modules/aggregator/aggregator.info @@ -7,7 +7,7 @@ files[] = aggregator.test configure = admin/config/services/aggregator/settings stylesheets[all][] = aggregator.css -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/aggregator/tests/aggregator_test.info b/modules/aggregator/tests/aggregator_test.info index 91811fcd8b..dc7737bbfb 100644 --- a/modules/aggregator/tests/aggregator_test.info +++ b/modules/aggregator/tests/aggregator_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/block/block.info b/modules/block/block.info index f3f2c7cfbb..1ed7ead117 100644 --- a/modules/block/block.info +++ b/modules/block/block.info @@ -6,7 +6,7 @@ core = 7.x files[] = block.test configure = admin/structure/block -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/block/tests/block_test.info b/modules/block/tests/block_test.info index f62fdd7eaf..22b9c6b3eb 100644 --- a/modules/block/tests/block_test.info +++ b/modules/block/tests/block_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/block/tests/themes/block_test_theme/block_test_theme.info b/modules/block/tests/themes/block_test_theme/block_test_theme.info index 4ce61da1eb..7dbba8c52e 100644 --- a/modules/block/tests/themes/block_test_theme/block_test_theme.info +++ b/modules/block/tests/themes/block_test_theme/block_test_theme.info @@ -13,7 +13,7 @@ regions[footer] = Footer regions[highlighted] = Highlighted regions[help] = Help -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/blog/blog.info b/modules/blog/blog.info index ea0263803c..416956d425 100644 --- a/modules/blog/blog.info +++ b/modules/blog/blog.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x files[] = blog.test -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/book/book.info b/modules/book/book.info index 98aca934b9..755e226f7f 100644 --- a/modules/book/book.info +++ b/modules/book/book.info @@ -7,7 +7,7 @@ files[] = book.test configure = admin/content/book/settings stylesheets[all][] = book.css -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/book/book.module b/modules/book/book.module index 7afed9ae42..32047f93f5 100644 --- a/modules/book/book.module +++ b/modules/book/book.module @@ -768,11 +768,13 @@ function book_prev($book_link) { return NULL; } $flat = book_get_flat_menu($book_link); - // Assigning the array to $flat resets the array pointer for use with each(). + reset($flat); $curr = NULL; do { $prev = $curr; - list($key, $curr) = each($flat); + $curr = current($flat); + $key = key($flat); + next($flat); } while ($key && $key != $book_link['mlid']); if ($key == $book_link['mlid']) { @@ -806,9 +808,10 @@ function book_prev($book_link) { */ function book_next($book_link) { $flat = book_get_flat_menu($book_link); - // Assigning the array to $flat resets the array pointer for use with each(). + reset($flat); do { - list($key, $curr) = each($flat); + $key = key($flat); + next($flat); } while ($key && $key != $book_link['mlid']); diff --git a/modules/color/color.info b/modules/color/color.info index 9ca6bccea6..8725d520f9 100644 --- a/modules/color/color.info +++ b/modules/color/color.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x files[] = color.test -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/comment/comment.info b/modules/comment/comment.info index 5ea180dc0a..3653f06472 100644 --- a/modules/comment/comment.info +++ b/modules/comment/comment.info @@ -9,7 +9,7 @@ files[] = comment.test configure = admin/content/comment stylesheets[all][] = comment.css -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/contact/contact.info b/modules/contact/contact.info index 63cf78c56c..18d66c39a1 100644 --- a/modules/contact/contact.info +++ b/modules/contact/contact.info @@ -6,7 +6,7 @@ core = 7.x files[] = contact.test configure = admin/structure/contact -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/contextual/contextual.info b/modules/contextual/contextual.info index c2f68e3b68..5fb362a440 100644 --- a/modules/contextual/contextual.info +++ b/modules/contextual/contextual.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x files[] = contextual.test -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/dashboard/dashboard.info b/modules/dashboard/dashboard.info index d4778c6715..1638f125b9 100644 --- a/modules/dashboard/dashboard.info +++ b/modules/dashboard/dashboard.info @@ -7,7 +7,7 @@ files[] = dashboard.test dependencies[] = block configure = admin/dashboard/customize -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/dblog/dblog.info b/modules/dblog/dblog.info index 9c78e1b4aa..a478f5eb33 100644 --- a/modules/dblog/dblog.info +++ b/modules/dblog/dblog.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x files[] = dblog.test -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/field/field.info b/modules/field/field.info index 4cfb0b6cee..a3f36143ca 100644 --- a/modules/field/field.info +++ b/modules/field/field.info @@ -11,7 +11,7 @@ dependencies[] = field_sql_storage required = TRUE stylesheets[all][] = theme/field.css -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/field/modules/field_sql_storage/field_sql_storage.info b/modules/field/modules/field_sql_storage/field_sql_storage.info index 29c7421a64..66b721b55f 100644 --- a/modules/field/modules/field_sql_storage/field_sql_storage.info +++ b/modules/field/modules/field_sql_storage/field_sql_storage.info @@ -7,7 +7,7 @@ dependencies[] = field files[] = field_sql_storage.test required = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/field/modules/list/list.info b/modules/field/modules/list/list.info index 55c539c0f5..6dcd8a0a33 100644 --- a/modules/field/modules/list/list.info +++ b/modules/field/modules/list/list.info @@ -7,7 +7,7 @@ dependencies[] = field dependencies[] = options files[] = tests/list.test -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/field/modules/list/list.install b/modules/field/modules/list/list.install index 2386f0483a..c10fbc8469 100644 --- a/modules/field/modules/list/list.install +++ b/modules/field/modules/list/list.install @@ -61,7 +61,7 @@ function list_update_7001() { // Additionally, float keys need to be disambiguated ('.5' is '0.5'). if ($field['type'] == 'list_number' && !empty($allowed_values)) { - $keys = array_map(create_function('$a', 'return (string) (float) $a;'), array_keys($allowed_values)); + $keys = array_map('_list_update_7001_float_string_cast', array_keys($allowed_values)); $allowed_values = array_combine($keys, array_values($allowed_values)); } @@ -88,6 +88,13 @@ function list_update_7001() { } } +/** + * Helper callback function to cast the array element. + */ +function _list_update_7001_float_string_cast($element) { + return (string) (float) $element; +} + /** * Helper function for list_update_7001: extract allowed values from a string. * diff --git a/modules/field/modules/list/tests/list_test.info b/modules/field/modules/list/tests/list_test.info index ca74fe3c56..f9f431900c 100644 --- a/modules/field/modules/list/tests/list_test.info +++ b/modules/field/modules/list/tests/list_test.info @@ -5,7 +5,7 @@ package = Testing version = VERSION hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/field/modules/number/number.info b/modules/field/modules/number/number.info index c2c57a2042..2227c3a4f1 100644 --- a/modules/field/modules/number/number.info +++ b/modules/field/modules/number/number.info @@ -6,7 +6,7 @@ core = 7.x dependencies[] = field files[] = number.test -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/field/modules/options/options.info b/modules/field/modules/options/options.info index 71abf417ee..cfb4c53087 100644 --- a/modules/field/modules/options/options.info +++ b/modules/field/modules/options/options.info @@ -6,7 +6,7 @@ core = 7.x dependencies[] = field files[] = options.test -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/field/modules/text/text.info b/modules/field/modules/text/text.info index 1de6143396..5658c62c41 100644 --- a/modules/field/modules/text/text.info +++ b/modules/field/modules/text/text.info @@ -7,7 +7,7 @@ dependencies[] = field files[] = text.test required = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/field/tests/field_test.info b/modules/field/tests/field_test.info index fb1653fbe5..afa9845e48 100644 --- a/modules/field/tests/field_test.info +++ b/modules/field/tests/field_test.info @@ -6,7 +6,7 @@ files[] = field_test.entity.inc version = VERSION hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/field_ui/field_ui.info b/modules/field_ui/field_ui.info index b977882df8..e60173938a 100644 --- a/modules/field_ui/field_ui.info +++ b/modules/field_ui/field_ui.info @@ -6,7 +6,7 @@ core = 7.x dependencies[] = field files[] = field_ui.test -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/file/file.info b/modules/file/file.info index 27fbd621df..4152df5ebd 100644 --- a/modules/file/file.info +++ b/modules/file/file.info @@ -6,7 +6,7 @@ core = 7.x dependencies[] = field files[] = tests/file.test -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/file/tests/file_module_test.info b/modules/file/tests/file_module_test.info index b63d506783..106eb3b9dd 100644 --- a/modules/file/tests/file_module_test.info +++ b/modules/file/tests/file_module_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/filter/filter.info b/modules/filter/filter.info index 25b58004f9..325add80bf 100644 --- a/modules/filter/filter.info +++ b/modules/filter/filter.info @@ -7,7 +7,7 @@ files[] = filter.test required = TRUE configure = admin/config/content/formats -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/forum/forum.info b/modules/forum/forum.info index 6907509f12..8bb210e137 100644 --- a/modules/forum/forum.info +++ b/modules/forum/forum.info @@ -9,7 +9,7 @@ files[] = forum.test configure = admin/structure/forum stylesheets[all][] = forum.css -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/help/help.info b/modules/help/help.info index 33e6c8111d..52cfdbae38 100644 --- a/modules/help/help.info +++ b/modules/help/help.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x files[] = help.test -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/image/image.admin.inc b/modules/image/image.admin.inc index cebe8940d3..0fbdc0b747 100644 --- a/modules/image/image.admin.inc +++ b/modules/image/image.admin.inc @@ -736,7 +736,8 @@ function theme_image_style_effects($variables) { if (!isset($form[$key]['#access']) || $form[$key]['#access']) { $rows[] = array( 'data' => $row, - 'class' => !empty($form[$key]['weight']['#access']) || $key == 'new' ? array('draggable') : array(), + // Use a strict (===) comparison since $key can be 0. + 'class' => !empty($form[$key]['weight']['#access']) || $key === 'new' ? array('draggable') : array(), ); } } diff --git a/modules/image/image.info b/modules/image/image.info index d6b6942d3c..eef8639785 100644 --- a/modules/image/image.info +++ b/modules/image/image.info @@ -7,7 +7,7 @@ dependencies[] = file files[] = image.test configure = admin/config/media/image-styles -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/image/tests/image_module_test.info b/modules/image/tests/image_module_test.info index 588044e8f0..69e795b198 100644 --- a/modules/image/tests/image_module_test.info +++ b/modules/image/tests/image_module_test.info @@ -6,7 +6,7 @@ core = 7.x files[] = image_module_test.module hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/locale/locale.info b/modules/locale/locale.info index 45d1d677f7..1360adcb0c 100644 --- a/modules/locale/locale.info +++ b/modules/locale/locale.info @@ -6,7 +6,7 @@ core = 7.x files[] = locale.test configure = admin/config/regional/language -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/locale/locale.test b/modules/locale/locale.test index db87e05548..b890b06147 100644 --- a/modules/locale/locale.test +++ b/modules/locale/locale.test @@ -3188,11 +3188,7 @@ class LocaleLanguageNegotiationInfoFunctionalTest extends DrupalWebTestCase { foreach (language_types_info() as $type => $info) { if (isset($info['fixed'])) { $negotiation = variable_get("language_negotiation_$type", array()); - $equal = count($info['fixed']) == count($negotiation); - while ($equal && list($id) = each($negotiation)) { - list(, $info_id) = each($info['fixed']); - $equal = $info_id == $id; - } + $equal = array_keys($negotiation) === array_values($info['fixed']); $this->assertTrue($equal, format_string('language negotiation for %type is properly set up', array('%type' => $type))); } } diff --git a/modules/locale/tests/locale_test.info b/modules/locale/tests/locale_test.info index 20ae2b47c0..cdf609effd 100644 --- a/modules/locale/tests/locale_test.info +++ b/modules/locale/tests/locale_test.info @@ -5,7 +5,7 @@ package = Testing version = VERSION hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/menu/menu.info b/modules/menu/menu.info index b44e130148..eed9c2102b 100644 --- a/modules/menu/menu.info +++ b/modules/menu/menu.info @@ -6,7 +6,7 @@ core = 7.x files[] = menu.test configure = admin/structure/menu -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/node/node.info b/modules/node/node.info index 0094ad6acd..8de441892b 100644 --- a/modules/node/node.info +++ b/modules/node/node.info @@ -9,7 +9,7 @@ required = TRUE configure = admin/structure/types stylesheets[all][] = node.css -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/node/node.module b/modules/node/node.module index 1d88834cd7..7ed505241c 100644 --- a/modules/node/node.module +++ b/modules/node/node.module @@ -3454,7 +3454,15 @@ function _node_query_node_access_alter($query, $type) { } // Otherwise attach it to the node query itself. else { - $query->exists($subquery); + if (empty($tableinfo['join type'])) { + // If we are looking at the main table of the query, apply the + // subquery directly. + $query->exists($subquery); + } else { + // If we are looking at a joined table, add the node access check + // to the join condition. + $tables[$nalias]['condition'] .= ' AND ' . (string)$subquery; + } } } } diff --git a/modules/node/tests/node_access_test.info b/modules/node/tests/node_access_test.info index a7aad51e9a..2739dabc85 100644 --- a/modules/node/tests/node_access_test.info +++ b/modules/node/tests/node_access_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/node/tests/node_test.info b/modules/node/tests/node_test.info index 863376645f..b907aabd46 100644 --- a/modules/node/tests/node_test.info +++ b/modules/node/tests/node_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/node/tests/node_test_exception.info b/modules/node/tests/node_test_exception.info index 7c495bfe54..17993ddda1 100644 --- a/modules/node/tests/node_test_exception.info +++ b/modules/node/tests/node_test_exception.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/openid/openid.info b/modules/openid/openid.info index 09a49f7912..744d603814 100644 --- a/modules/openid/openid.info +++ b/modules/openid/openid.info @@ -5,7 +5,7 @@ package = Core core = 7.x files[] = openid.test -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/openid/tests/openid_test.info b/modules/openid/tests/openid_test.info index 712801adca..a04553619f 100644 --- a/modules/openid/tests/openid_test.info +++ b/modules/openid/tests/openid_test.info @@ -6,7 +6,7 @@ core = 7.x dependencies[] = openid hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/overlay/overlay.info b/modules/overlay/overlay.info index 656c657783..c2586577bf 100644 --- a/modules/overlay/overlay.info +++ b/modules/overlay/overlay.info @@ -4,7 +4,7 @@ package = Core version = VERSION core = 7.x -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/path/path.info b/modules/path/path.info index 0edafb7dce..a639ff538b 100644 --- a/modules/path/path.info +++ b/modules/path/path.info @@ -6,7 +6,7 @@ core = 7.x files[] = path.test configure = admin/config/search/path -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/php/php.info b/modules/php/php.info index 9ea7278c8d..d94f60636d 100644 --- a/modules/php/php.info +++ b/modules/php/php.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x files[] = php.test -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/poll/poll.info b/modules/poll/poll.info index 3f0d235b12..3b0af74d01 100644 --- a/modules/poll/poll.info +++ b/modules/poll/poll.info @@ -6,7 +6,7 @@ core = 7.x files[] = poll.test stylesheets[all][] = poll.css -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/profile/profile.info b/modules/profile/profile.info index ce6d95498b..46b48e3043 100644 --- a/modules/profile/profile.info +++ b/modules/profile/profile.info @@ -11,7 +11,7 @@ configure = admin/config/people/profile ; See user_system_info_alter(). hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/rdf/rdf.info b/modules/rdf/rdf.info index ea28b0e308..b23415ca14 100644 --- a/modules/rdf/rdf.info +++ b/modules/rdf/rdf.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x files[] = rdf.test -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/rdf/tests/rdf_test.info b/modules/rdf/tests/rdf_test.info index 7e0e2b21c7..89c0407ace 100644 --- a/modules/rdf/tests/rdf_test.info +++ b/modules/rdf/tests/rdf_test.info @@ -6,7 +6,7 @@ core = 7.x hidden = TRUE dependencies[] = blog -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/search/search.info b/modules/search/search.info index 313287868b..9e11361896 100644 --- a/modules/search/search.info +++ b/modules/search/search.info @@ -8,7 +8,7 @@ files[] = search.test configure = admin/config/search/settings stylesheets[all][] = search.css -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/search/tests/search_embedded_form.info b/modules/search/tests/search_embedded_form.info index 0874c63a86..4b41cf3d88 100644 --- a/modules/search/tests/search_embedded_form.info +++ b/modules/search/tests/search_embedded_form.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/search/tests/search_extra_type.info b/modules/search/tests/search_extra_type.info index 67b8566d04..0793a27d99 100644 --- a/modules/search/tests/search_extra_type.info +++ b/modules/search/tests/search_extra_type.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/search/tests/search_node_tags.info b/modules/search/tests/search_node_tags.info index f260f0b493..28967b9dcc 100644 --- a/modules/search/tests/search_node_tags.info +++ b/modules/search/tests/search_node_tags.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/shortcut/shortcut.info b/modules/shortcut/shortcut.info index 1c1b2a5b6e..05082be3e8 100644 --- a/modules/shortcut/shortcut.info +++ b/modules/shortcut/shortcut.info @@ -6,7 +6,7 @@ core = 7.x files[] = shortcut.test configure = admin/config/user-interface/shortcut -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/simpletest.info b/modules/simpletest/simpletest.info index 316eb84a48..a020c418d3 100644 --- a/modules/simpletest/simpletest.info +++ b/modules/simpletest/simpletest.info @@ -57,7 +57,7 @@ files[] = tests/upgrade/update.trigger.test files[] = tests/upgrade/update.field.test files[] = tests/upgrade/update.user.test -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/actions_loop_test.info b/modules/simpletest/tests/actions_loop_test.info index dd6a1b2063..75d86ba933 100644 --- a/modules/simpletest/tests/actions_loop_test.info +++ b/modules/simpletest/tests/actions_loop_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/ajax_forms_test.info b/modules/simpletest/tests/ajax_forms_test.info index 5b1038d00a..abe0d1d952 100644 --- a/modules/simpletest/tests/ajax_forms_test.info +++ b/modules/simpletest/tests/ajax_forms_test.info @@ -5,7 +5,7 @@ package = Testing version = VERSION hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/ajax_test.info b/modules/simpletest/tests/ajax_test.info index c85f9aaa97..b1bdcfdde6 100644 --- a/modules/simpletest/tests/ajax_test.info +++ b/modules/simpletest/tests/ajax_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/batch_test.info b/modules/simpletest/tests/batch_test.info index f04ed7c925..62d5751e26 100644 --- a/modules/simpletest/tests/batch_test.info +++ b/modules/simpletest/tests/batch_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/boot_test_1.info b/modules/simpletest/tests/boot_test_1.info index 405171c802..3f9dabea6f 100644 --- a/modules/simpletest/tests/boot_test_1.info +++ b/modules/simpletest/tests/boot_test_1.info @@ -5,7 +5,7 @@ package = Testing version = VERSION hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/boot_test_2.info b/modules/simpletest/tests/boot_test_2.info index e4ff1ef5c1..de56d0c3f9 100644 --- a/modules/simpletest/tests/boot_test_2.info +++ b/modules/simpletest/tests/boot_test_2.info @@ -5,7 +5,7 @@ package = Testing version = VERSION hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/common_test.info b/modules/simpletest/tests/common_test.info index 744d932c32..f916d24e66 100644 --- a/modules/simpletest/tests/common_test.info +++ b/modules/simpletest/tests/common_test.info @@ -7,7 +7,7 @@ stylesheets[all][] = common_test.css stylesheets[print][] = common_test.print.css hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/common_test_cron_helper.info b/modules/simpletest/tests/common_test_cron_helper.info index 1f1f8554b4..73aae26832 100644 --- a/modules/simpletest/tests/common_test_cron_helper.info +++ b/modules/simpletest/tests/common_test_cron_helper.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/database_test.info b/modules/simpletest/tests/database_test.info index 381e3d2169..b8af5e8210 100644 --- a/modules/simpletest/tests/database_test.info +++ b/modules/simpletest/tests/database_test.info @@ -5,7 +5,7 @@ package = Testing version = VERSION hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/drupal_autoload_test/drupal_autoload_test.info b/modules/simpletest/tests/drupal_autoload_test/drupal_autoload_test.info index 82237d8451..c002f736da 100644 --- a/modules/simpletest/tests/drupal_autoload_test/drupal_autoload_test.info +++ b/modules/simpletest/tests/drupal_autoload_test/drupal_autoload_test.info @@ -7,7 +7,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info b/modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info index 1445e6ff41..af24b14abf 100644 --- a/modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info +++ b/modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info b/modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info index 3fc68b436c..d724968982 100644 --- a/modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info +++ b/modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/entity_cache_test.info b/modules/simpletest/tests/entity_cache_test.info index 75f6d94768..4ccdacc7dd 100644 --- a/modules/simpletest/tests/entity_cache_test.info +++ b/modules/simpletest/tests/entity_cache_test.info @@ -6,7 +6,7 @@ core = 7.x dependencies[] = entity_cache_test_dependency hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/entity_cache_test_dependency.info b/modules/simpletest/tests/entity_cache_test_dependency.info index 95d36a767f..80c6317240 100644 --- a/modules/simpletest/tests/entity_cache_test_dependency.info +++ b/modules/simpletest/tests/entity_cache_test_dependency.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/entity_crud_hook_test.info b/modules/simpletest/tests/entity_crud_hook_test.info index 5e9fb7378a..99ac860133 100644 --- a/modules/simpletest/tests/entity_crud_hook_test.info +++ b/modules/simpletest/tests/entity_crud_hook_test.info @@ -5,7 +5,7 @@ package = Testing version = VERSION hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/entity_query_access_test.info b/modules/simpletest/tests/entity_query_access_test.info index c56f292c8e..17e707c2cb 100644 --- a/modules/simpletest/tests/entity_query_access_test.info +++ b/modules/simpletest/tests/entity_query_access_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/error_test.info b/modules/simpletest/tests/error_test.info index 140eb73ecf..d55089ab51 100644 --- a/modules/simpletest/tests/error_test.info +++ b/modules/simpletest/tests/error_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/file_test.info b/modules/simpletest/tests/file_test.info index 04c59e598c..c808814ff3 100644 --- a/modules/simpletest/tests/file_test.info +++ b/modules/simpletest/tests/file_test.info @@ -6,7 +6,7 @@ core = 7.x files[] = file_test.module hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/filter_test.info b/modules/simpletest/tests/filter_test.info index 1135ef8669..efaacef1e9 100644 --- a/modules/simpletest/tests/filter_test.info +++ b/modules/simpletest/tests/filter_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/form.test b/modules/simpletest/tests/form.test index a441ceeba4..e52c8c42e1 100644 --- a/modules/simpletest/tests/form.test +++ b/modules/simpletest/tests/form.test @@ -1420,6 +1420,59 @@ class FormsFormStoragePageCacheTestCase extends DrupalWebTestCase { } } +/** + * Test cache_form. + */ +class FormsFormCacheTestCase extends DrupalWebTestCase { + public static function getInfo() { + return array( + 'name' => 'Form caching', + 'description' => 'Tests storage and retrieval of forms from cache.', + 'group' => 'Form API', + ); + } + + function setUp() { + parent::setUp('form_test'); + } + + /** + * Tests storing and retrieving the form from cache. + */ + function testCacheForm() { + $form = drupal_get_form('form_test_cache_form'); + $form_state = array('foo' => 'bar', 'build_info' => array('baz')); + form_set_cache($form['#build_id'], $form, $form_state); + + $cached_form_state = array(); + $cached_form = form_get_cache($form['#build_id'], $cached_form_state); + + $this->assertEqual($cached_form['#build_id'], $form['#build_id'], 'Form retrieved from cache_form successfully.'); + $this->assertEqual($cached_form_state['foo'], 'bar', 'Data retrieved from cache_form successfully.'); + } + + /** + * Tests changing form_cache_expiration. + */ + function testCacheFormCustomExpiration() { + variable_set('form_cache_expiration', -1 * (24 * 60 * 60)); + + $form = drupal_get_form('form_test_cache_form'); + $form_state = array('foo' => 'bar', 'build_info' => array('baz')); + form_set_cache($form['#build_id'], $form, $form_state); + + // Clear expired entries from cache_form, which should include the entry we + // just stored. Without this, the form will still be retrieved from cache. + cache_clear_all(NULL, 'cache_form'); + + $cached_form_state = array(); + $cached_form = form_get_cache($form['#build_id'], $cached_form_state); + + $this->assertNull($cached_form, 'Expired form was not returned from cache.'); + $this->assertTrue(empty($cached_form_state), 'No data retrieved from cache for expired form.'); + } +} + /** * Test wrapper form callbacks. */ diff --git a/modules/simpletest/tests/form_test.info b/modules/simpletest/tests/form_test.info index 40254ae5e3..b062a8a41b 100644 --- a/modules/simpletest/tests/form_test.info +++ b/modules/simpletest/tests/form_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/form_test.module b/modules/simpletest/tests/form_test.module index 097e58841d..9f071826e5 100644 --- a/modules/simpletest/tests/form_test.module +++ b/modules/simpletest/tests/form_test.module @@ -918,6 +918,24 @@ function form_test_storage_page_cache_rebuild($form, &$form_state) { $form_state['rebuild'] = TRUE; } +/** + * A simple form for testing form caching. + */ +function form_test_cache_form($form, &$form_state) { + $form['title'] = array( + '#type' => 'textfield', + '#title' => 'Title', + '#required' => TRUE, + ); + + $form['submit'] = array( + '#type' => 'submit', + '#value' => 'Save', + ); + + return $form; +} + /** * A form for testing form labels and required marks. */ diff --git a/modules/simpletest/tests/image.test b/modules/simpletest/tests/image.test index 7ca1d3a02a..41569640d6 100644 --- a/modules/simpletest/tests/image.test +++ b/modules/simpletest/tests/image.test @@ -335,7 +335,9 @@ class ImageToolkitGdTestCase extends DrupalWebTestCase { ); // Systems using non-bundled GD2 don't have imagerotate. Test if available. - if (function_exists('imagerotate')) { + // @todo Remove the version check once https://www.drupal.org/node/2918570 + // is resolved. + if (function_exists('imagerotate') && (version_compare(PHP_VERSION, '7.0.26', '<') || (version_compare(PHP_VERSION, '7.1', '>=') && version_compare(PHP_VERSION, '7.1.12', '<')))) { $operations += array( 'rotate_90' => array( 'function' => 'rotate', @@ -357,8 +359,8 @@ class ImageToolkitGdTestCase extends DrupalWebTestCase { // See https://bugs.php.net/bug.php?id=65148. // For the 40x20 test images, the dimensions resulting from rotation will // be 1 pixel smaller in both width and height in PHP 5.5 and above. - // @todo: If and when the PHP bug gets solved, add an upper limit - // version check. + // @todo: The PHP bug was fixed in PHP 7.0.26 and 7.1.12. Change the code + // below to reflect that in https://www.drupal.org/node/2918570. if (version_compare(PHP_VERSION, '5.5', '>=')) { $operations += array( 'rotate_5' => array( diff --git a/modules/simpletest/tests/image_test.info b/modules/simpletest/tests/image_test.info index 99446c57d1..fcafe9661b 100644 --- a/modules/simpletest/tests/image_test.info +++ b/modules/simpletest/tests/image_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/menu_test.info b/modules/simpletest/tests/menu_test.info index 0599f903bf..b1fdca788b 100644 --- a/modules/simpletest/tests/menu_test.info +++ b/modules/simpletest/tests/menu_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/module_test.info b/modules/simpletest/tests/module_test.info index 9906398699..2001584e3e 100644 --- a/modules/simpletest/tests/module_test.info +++ b/modules/simpletest/tests/module_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/path_test.info b/modules/simpletest/tests/path_test.info index e41364b03d..0bdb1f6b19 100644 --- a/modules/simpletest/tests/path_test.info +++ b/modules/simpletest/tests/path_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/psr_0_test/psr_0_test.info b/modules/simpletest/tests/psr_0_test/psr_0_test.info index 6a2fc397ea..9de5fe3263 100644 --- a/modules/simpletest/tests/psr_0_test/psr_0_test.info +++ b/modules/simpletest/tests/psr_0_test/psr_0_test.info @@ -5,7 +5,7 @@ core = 7.x hidden = TRUE package = Testing -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/psr_4_test/psr_4_test.info b/modules/simpletest/tests/psr_4_test/psr_4_test.info index b1f6a54368..7f05a9a746 100644 --- a/modules/simpletest/tests/psr_4_test/psr_4_test.info +++ b/modules/simpletest/tests/psr_4_test/psr_4_test.info @@ -5,7 +5,7 @@ core = 7.x hidden = TRUE package = Testing -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/requirements1_test.info b/modules/simpletest/tests/requirements1_test.info index 4bb427ef70..8e7d5d4b29 100644 --- a/modules/simpletest/tests/requirements1_test.info +++ b/modules/simpletest/tests/requirements1_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/requirements2_test.info b/modules/simpletest/tests/requirements2_test.info index d39455351e..76ca934384 100644 --- a/modules/simpletest/tests/requirements2_test.info +++ b/modules/simpletest/tests/requirements2_test.info @@ -7,7 +7,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/session_test.info b/modules/simpletest/tests/session_test.info index 7046b35179..1a607dc8f7 100644 --- a/modules/simpletest/tests/session_test.info +++ b/modules/simpletest/tests/session_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/system_dependencies_test.info b/modules/simpletest/tests/system_dependencies_test.info index 127fabe73b..3777a123b8 100644 --- a/modules/simpletest/tests/system_dependencies_test.info +++ b/modules/simpletest/tests/system_dependencies_test.info @@ -6,7 +6,7 @@ core = 7.x hidden = TRUE dependencies[] = _missing_dependency -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.info b/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.info index ec0e82cb6a..045ef25355 100644 --- a/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.info +++ b/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.info @@ -6,7 +6,7 @@ core = 7.x hidden = TRUE dependencies[] = system_incompatible_core_version_test -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/system_incompatible_core_version_test.info b/modules/simpletest/tests/system_incompatible_core_version_test.info index 2cef5834a1..7ffa074c12 100644 --- a/modules/simpletest/tests/system_incompatible_core_version_test.info +++ b/modules/simpletest/tests/system_incompatible_core_version_test.info @@ -5,7 +5,7 @@ version = VERSION core = 5.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.info b/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.info index 95b7768aa0..0c32d700ba 100644 --- a/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.info +++ b/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.info @@ -7,7 +7,7 @@ hidden = TRUE ; system_incompatible_module_version_test declares version 1.0 dependencies[] = system_incompatible_module_version_test (>2.0) -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/system_incompatible_module_version_test.info b/modules/simpletest/tests/system_incompatible_module_version_test.info index 837ea2e3f7..62f527f29d 100644 --- a/modules/simpletest/tests/system_incompatible_module_version_test.info +++ b/modules/simpletest/tests/system_incompatible_module_version_test.info @@ -5,7 +5,7 @@ version = 1.0 core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/system_project_namespace_test.info b/modules/simpletest/tests/system_project_namespace_test.info index 1f30959e3e..1c513de718 100644 --- a/modules/simpletest/tests/system_project_namespace_test.info +++ b/modules/simpletest/tests/system_project_namespace_test.info @@ -6,7 +6,7 @@ core = 7.x hidden = TRUE dependencies[] = drupal:filter -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/system_test.info b/modules/simpletest/tests/system_test.info index f15240191b..b289acf5e4 100644 --- a/modules/simpletest/tests/system_test.info +++ b/modules/simpletest/tests/system_test.info @@ -6,7 +6,7 @@ core = 7.x files[] = system_test.module hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/taxonomy_test.info b/modules/simpletest/tests/taxonomy_test.info index 94aef660a8..64fecd9c00 100644 --- a/modules/simpletest/tests/taxonomy_test.info +++ b/modules/simpletest/tests/taxonomy_test.info @@ -6,7 +6,7 @@ core = 7.x hidden = TRUE dependencies[] = taxonomy -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/theme_test.info b/modules/simpletest/tests/theme_test.info index c36351734a..ff3c021d83 100644 --- a/modules/simpletest/tests/theme_test.info +++ b/modules/simpletest/tests/theme_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/themes/test_basetheme/test_basetheme.info b/modules/simpletest/tests/themes/test_basetheme/test_basetheme.info index 8788b00b3f..5c38e8444c 100644 --- a/modules/simpletest/tests/themes/test_basetheme/test_basetheme.info +++ b/modules/simpletest/tests/themes/test_basetheme/test_basetheme.info @@ -6,7 +6,7 @@ hidden = TRUE settings[basetheme_only] = base theme value settings[subtheme_override] = base theme value -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/themes/test_subtheme/test_subtheme.info b/modules/simpletest/tests/themes/test_subtheme/test_subtheme.info index 04c5975afb..3d6e9cd5de 100644 --- a/modules/simpletest/tests/themes/test_subtheme/test_subtheme.info +++ b/modules/simpletest/tests/themes/test_subtheme/test_subtheme.info @@ -6,7 +6,7 @@ hidden = TRUE settings[subtheme_override] = subtheme value -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/themes/test_theme/test_theme.info b/modules/simpletest/tests/themes/test_theme/test_theme.info index e88a344dec..8012766f79 100644 --- a/modules/simpletest/tests/themes/test_theme/test_theme.info +++ b/modules/simpletest/tests/themes/test_theme/test_theme.info @@ -17,7 +17,7 @@ stylesheets[all][] = system.base.css settings[theme_test_setting] = default value -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/themes/test_theme/theme-settings.php b/modules/simpletest/tests/themes/test_theme/theme-settings.php new file mode 100644 index 0000000000..cb51d942e7 --- /dev/null +++ b/modules/simpletest/tests/themes/test_theme/theme-settings.php @@ -0,0 +1,32 @@ + 'checkbox', + '#title' => 'Test theme checkbox', + '#default_value' => theme_get_setting('test_theme_checkbox'), + ); + + // Force the form to be cached so we can test that this file is properly + // loaded and the custom submit handler is properly called even on a cached + // form build. + $form_state['cache'] = TRUE; + $form['#submit'][] = 'test_theme_form_system_theme_settings_submit'; +} + +/** + * Form submission handler for the test theme settings form. + * + * @see test_theme_form_system_theme_settings_alter() + */ +function test_theme_form_system_theme_settings_submit($form, &$form_state) { + drupal_set_message('The test theme setting was saved.'); +} diff --git a/modules/simpletest/tests/themes/test_theme_nyan_cat/test_theme_nyan_cat.info b/modules/simpletest/tests/themes/test_theme_nyan_cat/test_theme_nyan_cat.info index 12f46b5c66..79c5e55deb 100644 --- a/modules/simpletest/tests/themes/test_theme_nyan_cat/test_theme_nyan_cat.info +++ b/modules/simpletest/tests/themes/test_theme_nyan_cat/test_theme_nyan_cat.info @@ -4,7 +4,7 @@ core = 7.x hidden = TRUE engine = nyan_cat -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/update_script_test.info b/modules/simpletest/tests/update_script_test.info index 2c7c5125a2..cd67c01d7e 100644 --- a/modules/simpletest/tests/update_script_test.info +++ b/modules/simpletest/tests/update_script_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/update_test_1.info b/modules/simpletest/tests/update_test_1.info index 36d36422f5..e0caa80e46 100644 --- a/modules/simpletest/tests/update_test_1.info +++ b/modules/simpletest/tests/update_test_1.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/update_test_2.info b/modules/simpletest/tests/update_test_2.info index 36d36422f5..e0caa80e46 100644 --- a/modules/simpletest/tests/update_test_2.info +++ b/modules/simpletest/tests/update_test_2.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/update_test_3.info b/modules/simpletest/tests/update_test_3.info index 36d36422f5..e0caa80e46 100644 --- a/modules/simpletest/tests/update_test_3.info +++ b/modules/simpletest/tests/update_test_3.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/url_alter_test.info b/modules/simpletest/tests/url_alter_test.info index e4d1812f52..d9ddc70c1a 100644 --- a/modules/simpletest/tests/url_alter_test.info +++ b/modules/simpletest/tests/url_alter_test.info @@ -5,7 +5,7 @@ package = Testing version = VERSION hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/simpletest/tests/xmlrpc_test.info b/modules/simpletest/tests/xmlrpc_test.info index 70c09ca8ef..c71c58c9df 100644 --- a/modules/simpletest/tests/xmlrpc_test.info +++ b/modules/simpletest/tests/xmlrpc_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/statistics/statistics.info b/modules/statistics/statistics.info index 8d711697b6..341e288fd3 100644 --- a/modules/statistics/statistics.info +++ b/modules/statistics/statistics.info @@ -6,7 +6,7 @@ core = 7.x files[] = statistics.test configure = admin/config/system/statistics -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/syslog/syslog.info b/modules/syslog/syslog.info index 5d3304eca0..d771ee65e5 100644 --- a/modules/syslog/syslog.info +++ b/modules/syslog/syslog.info @@ -6,7 +6,7 @@ core = 7.x files[] = syslog.test configure = admin/config/development/logging -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/system/system.admin.inc b/modules/system/system.admin.inc index cdcc78fb64..b7e6fc9e70 100644 --- a/modules/system/system.admin.inc +++ b/modules/system/system.admin.inc @@ -572,9 +572,10 @@ function system_theme_settings($form, &$form_state, $key = '') { // Process the theme and all its base themes. foreach ($theme_keys as $theme) { // Include the theme-settings.php file. - $filename = DRUPAL_ROOT . '/' . str_replace("/$theme.info", '', $themes[$theme]->filename) . '/theme-settings.php'; - if (file_exists($filename)) { - require_once $filename; + $theme_settings_path = drupal_get_path('theme', $theme) . '/theme-settings.php'; + if (file_exists(DRUPAL_ROOT . '/' . $theme_settings_path)) { + require_once DRUPAL_ROOT . '/' . $theme_settings_path; + $form_state['build_info']['files'][] = $theme_settings_path; } // Call theme-specific settings. @@ -1812,7 +1813,7 @@ function system_file_system_settings() { '#title' => t('Private file system path'), '#default_value' => variable_get('file_private_path', ''), '#maxlength' => 255, - '#description' => t('An existing local file system path for storing private files. It should be writable by Drupal and not accessible over the web. See the online handbook for more information about securing private files.', array('@handbook' => 'http://drupal.org/documentation/modules/file')), + '#description' => t('An existing local file system path for storing private files. It should be writable by Drupal and not accessible over the web. See the online handbook for more information about securing private files.', array('@handbook' => 'https://www.drupal.org/docs/7/core/modules/file/overview')), '#after_build' => array('system_check_directory'), ); @@ -2565,9 +2566,21 @@ function theme_system_admin_index($variables) { /** * Returns HTML for the status report. * + * This theme function is dependent on install.inc being loaded, because + * that's where the constants are defined. + * * @param $variables * An associative array containing: - * - requirements: An array of requirements. + * - requirements: An array of requirements/status items. Each requirement + * is an associative array containing the following elements: + * - title: The name of the requirement. + * - value: (optional) The current value (version, time, level, etc). + * - description: (optional) The description of the requirement. + * - severity: (optional) The requirement's result/severity level, one of: + * - REQUIREMENT_INFO: Status information. + * - REQUIREMENT_OK: The requirement is satisfied. + * - REQUIREMENT_WARNING: The requirement failed with a warning. + * - REQUIREMENT_ERROR: The requirement failed with an error. * * @ingroup themeable */ diff --git a/modules/system/system.api.php b/modules/system/system.api.php index f1855b96aa..d5de102405 100644 --- a/modules/system/system.api.php +++ b/modules/system/system.api.php @@ -1888,8 +1888,8 @@ function hook_boot() { * * This hook is not run on cached pages. * - * To add CSS or JS that should be present on all pages, modules should not - * implement this hook, but declare these files in their .info file. + * To add CSS or JS files that should be present on all pages, modules should + * not implement this hook, but declare these files in their .info file. * * @see hook_boot() */ diff --git a/modules/system/system.info b/modules/system/system.info index 730dff6f90..405bb0a272 100644 --- a/modules/system/system.info +++ b/modules/system/system.info @@ -12,7 +12,7 @@ files[] = system.test required = TRUE configure = admin/config/system -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/system/system.tar.inc b/modules/system/system.tar.inc index 86e4e3de4a..640f7b2646 100644 --- a/modules/system/system.tar.inc +++ b/modules/system/system.tar.inc @@ -41,8 +41,8 @@ /** * Note on Drupal 8 porting. - * This file origin is Tar.php, release 1.4.0 (stable) with some code - * from PEAR.php, release 1.9.5 (stable) both at http://pear.php.net. + * This file origin is Tar.php, release 1.4.3 (stable) with some code + * from PEAR.php, release 1.10.5 (stable) both at http://pear.php.net. * To simplify future porting from pear of this file, you should not * do cosmetic or other non significant changes to this file. * The following changes have been done: @@ -259,6 +259,19 @@ class Archive_Tar return false; } } + + + if (version_compare(PHP_VERSION, "5.5.0-dev") < 0) { + $this->_fmt = "a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/" . + "a8checksum/a1typeflag/a100link/a6magic/a2version/" . + "a32uname/a32gname/a8devmajor/a8devminor/a131prefix"; + } else { + $this->_fmt = "Z100filename/Z8mode/Z8uid/Z8gid/Z12size/Z12mtime/" . + "Z8checksum/Z1typeflag/Z100link/Z6magic/Z2version/" . + "Z32uname/Z32gname/Z8devmajor/Z8devminor/Z131prefix"; + } + + } public function __destruct() @@ -278,7 +291,7 @@ class Archive_Tar * @param string $ext The extension name * @return bool Success or not on the dl() call */ - function loadExtension($ext) + public static function loadExtension($ext) { if (extension_loaded($ext)) { return true; @@ -287,8 +300,7 @@ class Archive_Tar // if either returns true dl() will produce a FATAL error, stop that if ( function_exists('dl') === false || - ini_get('enable_dl') != 1 || - ini_get('safe_mode') == 1 + ini_get('enable_dl') != 1 ) { return false; } @@ -714,7 +726,7 @@ class Archive_Tar } // ----- Get the arguments - $v_att_list = & func_get_args(); + $v_att_list = func_get_args(); // ----- Read the attributes $i = 0; @@ -1720,28 +1732,13 @@ class Archive_Tar // ----- Calculate the checksum $v_checksum = 0; // ..... First part of the header - for ($i = 0; $i < 148; $i++) { - $v_checksum += ord(substr($v_binary_data, $i, 1)); - } - // ..... Ignore the checksum value and replace it by ' ' (space) - for ($i = 148; $i < 156; $i++) { - $v_checksum += ord(' '); - } - // ..... Last part of the header - for ($i = 156; $i < 512; $i++) { - $v_checksum += ord(substr($v_binary_data, $i, 1)); - } + $v_binary_split = str_split($v_binary_data); + $v_checksum += array_sum(array_map('ord', array_slice($v_binary_split, 0, 148))); + $v_checksum += array_sum(array_map('ord', array(' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ',))); + $v_checksum += array_sum(array_map('ord', array_slice($v_binary_split, 156, 512))); - if (version_compare(PHP_VERSION, "5.5.0-dev") < 0) { - $fmt = "a100filename/a8mode/a8uid/a8gid/a12size/a12mtime/" . - "a8checksum/a1typeflag/a100link/a6magic/a2version/" . - "a32uname/a32gname/a8devmajor/a8devminor/a131prefix"; - } else { - $fmt = "Z100filename/Z8mode/Z8uid/Z8gid/Z12size/Z12mtime/" . - "Z8checksum/Z1typeflag/Z100link/Z6magic/Z2version/" . - "Z32uname/Z32gname/Z8devmajor/Z8devminor/Z131prefix"; - } - $v_data = unpack($fmt, $v_binary_data); + + $v_data = unpack($this->_fmt, $v_binary_data); if (strlen($v_data["prefix"]) > 0) { $v_data["filename"] = "$v_data[prefix]/$v_data[filename]"; @@ -1777,7 +1774,7 @@ class Archive_Tar $v_header['mode'] = OctDec(trim($v_data['mode'])); $v_header['uid'] = OctDec(trim($v_data['uid'])); $v_header['gid'] = OctDec(trim($v_data['gid'])); - $v_header['size'] = OctDec(trim($v_data['size'])); + $v_header['size'] = $this->_tarRecToSize($v_data['size']); $v_header['mtime'] = OctDec(trim($v_data['mtime'])); if (($v_header['typeflag'] = $v_data['typeflag']) == "5") { $v_header['size'] = 0; @@ -1796,6 +1793,40 @@ class Archive_Tar return true; } + /** + * Convert Tar record size to actual size + * + * @param string $tar_size + * @return size of tar record in bytes + */ + private function _tarRecToSize($tar_size) + { + /* + * First byte of size has a special meaning if bit 7 is set. + * + * Bit 7 indicates base-256 encoding if set. + * Bit 6 is the sign bit. + * Bits 5:0 are most significant value bits. + */ + $ch = ord($tar_size[0]); + if ($ch & 0x80) { + // Full 12-bytes record is required. + $rec_str = $tar_size . "\x00"; + + $size = ($ch & 0x40) ? -1 : 0; + $size = ($size << 6) | ($ch & 0x3f); + + for ($num_ch = 1; $num_ch < 12; ++$num_ch) { + $size = ($size * 256) + ord($rec_str[$num_ch]); + } + + return $size; + + } else { + return OctDec(trim($tar_size)); + } + } + /** * Detect and report a malicious file name * diff --git a/modules/system/system.test b/modules/system/system.test index 9eaf562b28..5ae3341612 100644 --- a/modules/system/system.test +++ b/modules/system/system.test @@ -1944,6 +1944,30 @@ class SystemThemeFunctionalTest extends DrupalWebTestCase { $this->assertEqual($elements[0]['src'], file_create_url($uploaded_filename)); } + + /** + * Test the individual per-theme settings form. + */ + function testPerThemeSettings() { + // Enable the test theme and the module that controls it. Clear caches in + // between so that the module's hook_system_theme_info() implementation is + // correctly registered. + module_enable(array('theme_test')); + drupal_flush_all_caches(); + theme_enable(array('test_theme')); + + // Test that the theme-specific settings form can be saved and that the + // theme-specific checkbox is checked and unchecked as appropriate. + $this->drupalGet('admin/appearance/settings/test_theme'); + $this->assertNoFieldChecked('edit-test-theme-checkbox', 'The test_theme_checkbox setting is unchecked.'); + $this->drupalPost(NULL, array('test_theme_checkbox' => TRUE), t('Save configuration')); + $this->assertText('The test theme setting was saved.'); + $this->assertFieldChecked('edit-test-theme-checkbox', 'The test_theme_checkbox setting is checked.'); + $this->drupalPost(NULL, array('test_theme_checkbox' => FALSE), t('Save configuration')); + $this->assertText('The test theme setting was saved.'); + $this->assertNoFieldChecked('edit-test-theme-checkbox', 'The test_theme_checkbox setting is unchecked.'); + } + /** * Test the administration theme functionality. */ diff --git a/modules/system/tests/cron_queue_test.info b/modules/system/tests/cron_queue_test.info index ef94eeda66..5440b13d53 100644 --- a/modules/system/tests/cron_queue_test.info +++ b/modules/system/tests/cron_queue_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/system/tests/system_cron_test.info b/modules/system/tests/system_cron_test.info index d9d4edd363..4c69eb9e02 100644 --- a/modules/system/tests/system_cron_test.info +++ b/modules/system/tests/system_cron_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/taxonomy/taxonomy.info b/modules/taxonomy/taxonomy.info index 2d033cb8c4..dda5df765b 100644 --- a/modules/taxonomy/taxonomy.info +++ b/modules/taxonomy/taxonomy.info @@ -8,7 +8,7 @@ files[] = taxonomy.module files[] = taxonomy.test configure = admin/structure/taxonomy -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/taxonomy/taxonomy.module b/modules/taxonomy/taxonomy.module index 981649d2ac..e3ee48e0cf 100644 --- a/modules/taxonomy/taxonomy.module +++ b/modules/taxonomy/taxonomy.module @@ -283,6 +283,8 @@ function taxonomy_menu() { 'title' => 'Taxonomy term', 'title callback' => 'taxonomy_term_title', 'title arguments' => array(2), + // The page callback also invokes drupal_set_title() in case + // the menu router's title is overridden by a menu link. 'page callback' => 'taxonomy_term_page', 'page arguments' => array(2), 'access arguments' => array('access content'), @@ -1714,13 +1716,15 @@ function taxonomy_field_formatter_prepare_view($entity_type, $entities, $field, } /** - * Title callback for term pages. + * Title callback: Returns the title of the taxonomy term. * * @param $term * A term object. * * @return - * The term name to be used as the page title. + * An unsanitized string that is the title of the taxonomy term. + * + * @see taxonomy_menu() */ function taxonomy_term_title($term) { return $term->name; diff --git a/modules/toolbar/toolbar.info b/modules/toolbar/toolbar.info index ffa40ee704..997cf0d423 100644 --- a/modules/toolbar/toolbar.info +++ b/modules/toolbar/toolbar.info @@ -4,7 +4,7 @@ core = 7.x package = Core version = VERSION -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/tracker/tracker.info b/modules/tracker/tracker.info index dbd7384cc0..962e1a310b 100644 --- a/modules/tracker/tracker.info +++ b/modules/tracker/tracker.info @@ -6,7 +6,7 @@ version = VERSION core = 7.x files[] = tracker.test -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/translation/tests/translation_test.info b/modules/translation/tests/translation_test.info index 9d5b4a5bfc..02872c860c 100644 --- a/modules/translation/tests/translation_test.info +++ b/modules/translation/tests/translation_test.info @@ -5,7 +5,7 @@ package = Testing version = VERSION hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/translation/translation.info b/modules/translation/translation.info index 6ed39ca6fb..19a0a88a23 100644 --- a/modules/translation/translation.info +++ b/modules/translation/translation.info @@ -6,7 +6,7 @@ version = VERSION core = 7.x files[] = translation.test -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/trigger/tests/trigger_test.info b/modules/trigger/tests/trigger_test.info index 196cfcf152..00f5055fa0 100644 --- a/modules/trigger/tests/trigger_test.info +++ b/modules/trigger/tests/trigger_test.info @@ -4,7 +4,7 @@ package = Testing core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/trigger/trigger.info b/modules/trigger/trigger.info index b78c34d716..0e0e7be5ad 100644 --- a/modules/trigger/trigger.info +++ b/modules/trigger/trigger.info @@ -6,7 +6,7 @@ core = 7.x files[] = trigger.test configure = admin/structure/trigger -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/update/tests/aaa_update_test.info b/modules/update/tests/aaa_update_test.info index 620e82ee41..bbb4c2decb 100644 --- a/modules/update/tests/aaa_update_test.info +++ b/modules/update/tests/aaa_update_test.info @@ -4,7 +4,7 @@ package = Testing core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/update/tests/bbb_update_test.info b/modules/update/tests/bbb_update_test.info index b9953c1650..ef2bd7d4a8 100644 --- a/modules/update/tests/bbb_update_test.info +++ b/modules/update/tests/bbb_update_test.info @@ -4,7 +4,7 @@ package = Testing core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/update/tests/ccc_update_test.info b/modules/update/tests/ccc_update_test.info index e855562aff..de367c30a6 100644 --- a/modules/update/tests/ccc_update_test.info +++ b/modules/update/tests/ccc_update_test.info @@ -4,7 +4,7 @@ package = Testing core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/update/tests/themes/update_test_admintheme/update_test_admintheme.info b/modules/update/tests/themes/update_test_admintheme/update_test_admintheme.info index cf1d3c368d..8b5f8f6789 100644 --- a/modules/update/tests/themes/update_test_admintheme/update_test_admintheme.info +++ b/modules/update/tests/themes/update_test_admintheme/update_test_admintheme.info @@ -3,7 +3,7 @@ description = Test theme which is used as admin theme. core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/update/tests/themes/update_test_basetheme/update_test_basetheme.info b/modules/update/tests/themes/update_test_basetheme/update_test_basetheme.info index 11c81321d0..05de0a7f4f 100644 --- a/modules/update/tests/themes/update_test_basetheme/update_test_basetheme.info +++ b/modules/update/tests/themes/update_test_basetheme/update_test_basetheme.info @@ -3,7 +3,7 @@ description = Test theme which acts as a base theme for other test subthemes. core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/update/tests/themes/update_test_subtheme/update_test_subtheme.info b/modules/update/tests/themes/update_test_subtheme/update_test_subtheme.info index aa5bc12c16..998a21cb45 100644 --- a/modules/update/tests/themes/update_test_subtheme/update_test_subtheme.info +++ b/modules/update/tests/themes/update_test_subtheme/update_test_subtheme.info @@ -4,7 +4,7 @@ core = 7.x base theme = update_test_basetheme hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/update/tests/update_test.info b/modules/update/tests/update_test.info index 6b4802f6d6..0d279617b1 100644 --- a/modules/update/tests/update_test.info +++ b/modules/update/tests/update_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/update/update.info b/modules/update/update.info index 4b4dde91dd..6388351a69 100644 --- a/modules/update/update.info +++ b/modules/update/update.info @@ -6,7 +6,7 @@ core = 7.x files[] = update.test configure = admin/reports/updates/settings -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/user/tests/user_form_test.info b/modules/user/tests/user_form_test.info index d5a554be6d..97b30942c7 100644 --- a/modules/user/tests/user_form_test.info +++ b/modules/user/tests/user_form_test.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/user/user.info b/modules/user/user.info index 3e10c7eeac..12df6c2276 100644 --- a/modules/user/user.info +++ b/modules/user/user.info @@ -9,7 +9,7 @@ required = TRUE configure = admin/config/people stylesheets[all][] = user.css -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/modules/user/user.module b/modules/user/user.module index 12ca280099..2309aa9296 100644 --- a/modules/user/user.module +++ b/modules/user/user.module @@ -637,7 +637,7 @@ function user_validate_name($name) { if (strpos($name, ' ') !== FALSE) { return t('The username cannot contain multiple spaces in a row.'); } - if (preg_match('/[^\x{80}-\x{F7} a-z0-9@_.\'-]/i', $name)) { + if (preg_match('/[^\x{80}-\x{F7} a-z0-9@+_.\'-]/i', $name)) { return t('The username contains an illegal character.'); } if (preg_match('/[\x{80}-\x{A0}' . // Non-printable ISO-8859-1 + NBSP @@ -689,7 +689,7 @@ function user_validate_picture(&$form, &$form_state) { $validators = array( 'file_validate_is_image' => array(), 'file_validate_image_resolution' => array(variable_get('user_picture_dimensions', '85x85')), - 'file_validate_size' => array(variable_get('user_picture_file_size', '30') * 1024), + 'file_validate_size' => array((int) variable_get('user_picture_file_size', '30') * 1024), ); // Save the file as a temporary file. diff --git a/modules/user/user.test b/modules/user/user.test index 0875e0ac79..fb82c93c22 100644 --- a/modules/user/user.test +++ b/modules/user/user.test @@ -276,6 +276,7 @@ class UserValidationTestCase extends DrupalWebTestCase { 'foo@example.com' => array('Valid username', 'assertNull'), 'foo@-example.com' => array('Valid username', 'assertNull'), // invalid domains are allowed in usernames 'þòøÇߪř€' => array('Valid username', 'assertNull'), + 'foo+bar' => array('Valid username', 'assertNull'), // '+' symbol is allowed 'ᚠᛇᚻ᛫ᛒᛦᚦ' => array('Valid UTF8 username', 'assertNull'), // runes ' foo' => array('Invalid username that starts with a space', 'assertNotNull'), 'foo ' => array('Invalid username that ends with a space', 'assertNotNull'), @@ -2386,7 +2387,13 @@ class UserUserSearchTestCase extends DrupalWebTestCase { } function testUserSearch() { + // Verify that a user without 'administer users' permission cannot search + // for users by email address. Additionally, ensure that the username has a + // plus sign to ensure searching works with that. $user1 = $this->drupalCreateUser(array('access user profiles', 'search content', 'use advanced search')); + $edit['name'] = 'foo+bar'; + $edit['mail'] = $edit['name'] . '@example.com'; + user_save($user1, $edit); $this->drupalLogin($user1); $keys = $user1->mail; $edit = array('keys' => $keys); diff --git a/patches/failed/README.txt b/patches/failed/README.txt index 732486c8a5..20ed39bf44 100644 --- a/patches/failed/README.txt +++ b/patches/failed/README.txt @@ -1,2 +1,2 @@ - -Patches in this directory can not longer be applied to Drupal core (as of 23rd August 2018) \ No newline at end of file +Patches in this directory can not longer be applied to Drupal core but once were. +See commits for each failed patch for info. diff --git a/patches/mysql_utf8mb4_support-1314214-34.patch b/patches/failed/mysql_utf8mb4_support-1314214-34.patch similarity index 100% rename from patches/mysql_utf8mb4_support-1314214-34.patch rename to patches/failed/mysql_utf8mb4_support-1314214-34.patch diff --git a/patches/mysql_5.6_support.patch b/patches/mysql_5.6_support.patch index ac0afd6666..30739d81d7 100644 --- a/patches/mysql_5.6_support.patch +++ b/patches/mysql_5.6_support.patch @@ -6,7 +6,7 @@ index bf3ab86..62946aa 100644 // Remove the last comma and space. $sql = substr($sql, 0, -3) . "\n) "; -+ ++ + $sql .= 'ROW_FORMAT=DYNAMIC '; $sql .= 'ENGINE = ' . $table['mysql_engine'] . ' DEFAULT CHARACTER SET ' . $table['mysql_character_set']; diff --git a/patches/tableheader-class_0.patch b/patches/tableheader-class_0.patch index 2e2a53e582..226ba6af51 100644 --- a/patches/tableheader-class_0.patch +++ b/patches/tableheader-class_0.patch @@ -1,7 +1,7 @@ -diff --git a/core/misc/tableheader.js b/core/misc/tableheader.js +diff --git a/misc/tableheader.js b/misc/tableheader.js index 949ef52..5f11c70 100644 ---- a/core/misc/tableheader.js -+++ b/core/misc/tableheader.js +--- a/misc/tableheader.js ++++ b/misc/tableheader.js @@ -30,9 +30,16 @@ Drupal.tableHeader = function (table) { // Clone the table header so it inherits original jQuery properties. Hide diff --git a/profiles/minimal/minimal.info b/profiles/minimal/minimal.info index 69cc27910f..e67797a3b3 100644 --- a/profiles/minimal/minimal.info +++ b/profiles/minimal/minimal.info @@ -5,7 +5,7 @@ core = 7.x dependencies[] = block dependencies[] = dblog -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/profiles/standard/standard.info b/profiles/standard/standard.info index 7511423e86..097996e2fa 100644 --- a/profiles/standard/standard.info +++ b/profiles/standard/standard.info @@ -24,7 +24,7 @@ dependencies[] = field_ui dependencies[] = file dependencies[] = rdf -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info b/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info index 8173e074a8..c9a5679a7d 100644 --- a/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info +++ b/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info @@ -6,7 +6,7 @@ core = 7.x hidden = TRUE files[] = drupal_system_listing_compatible_test.test -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info b/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info index b64e540959..176d1119d6 100644 --- a/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info +++ b/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info @@ -8,7 +8,7 @@ version = VERSION core = 6.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/profiles/testing/testing.info b/profiles/testing/testing.info index 8b08eaeeb1..d60692ed98 100644 --- a/profiles/testing/testing.info +++ b/profiles/testing/testing.info @@ -4,7 +4,7 @@ version = VERSION core = 7.x hidden = TRUE -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/scratchpads2.make.yml b/scratchpads2.make.yml index c3a436dcc2..03bddd52ff 100644 --- a/scratchpads2.make.yml +++ b/scratchpads2.make.yml @@ -4,4 +4,4 @@ defaults: projects: subdir: "contrib" projects: - drupal: "7.60" + drupal: "7.61" diff --git a/sites/all/modules/custom/leftandright/taxonomy.module.inc b/sites/all/modules/custom/leftandright/taxonomy.module.inc index a1004af2ab..e8a8667f62 100644 --- a/sites/all/modules/custom/leftandright/taxonomy.module.inc +++ b/sites/all/modules/custom/leftandright/taxonomy.module.inc @@ -283,6 +283,8 @@ function taxonomy_menu() { 'title' => 'Taxonomy term', 'title callback' => 'taxonomy_term_title', 'title arguments' => array(2), + // The page callback also invokes drupal_set_title() in case + // the menu router's title is overridden by a menu link. 'page callback' => 'taxonomy_term_page', 'page arguments' => array(2), 'access arguments' => array('access content'), @@ -1714,13 +1716,15 @@ function taxonomy_field_formatter_prepare_view($entity_type, $entities, $field, } /** - * Title callback for term pages. + * Title callback: Returns the title of the taxonomy term. * * @param $term * A term object. * * @return - * The term name to be used as the page title. + * An unsanitized string that is the title of the taxonomy term. + * + * @see taxonomy_menu() */ function taxonomy_term_title($term) { return $term->name; diff --git a/patches/field_collection-orphans-2759157-6.patch b/sites/all/modules/patches/field_collection-orphans-2759157-6.patch similarity index 74% rename from patches/field_collection-orphans-2759157-6.patch rename to sites/all/modules/patches/field_collection-orphans-2759157-6.patch index 087a884d22..8c14e1dc05 100644 --- a/patches/field_collection-orphans-2759157-6.patch +++ b/sites/all/modules/patches/field_collection-orphans-2759157-6.patch @@ -1,7 +1,7 @@ -diff --git a/field_collection.install b/field_collection.install +diff --git a/sites/all/modules/contrib/field_collection/field_collection.install b/sites/all/modules/contrib/field_collection/field_collection.install index 7296346..27d0731 100644 ---- a/field_collection.install -+++ b/field_collection.install +--- a/sites/all/modules/contrib/field_collection/field_collection.install ++++ b/sites/all/modules/contrib/field_collection/field_collection.install @@ -373,11 +373,23 @@ function field_collection_update_7008() { } } diff --git a/sites/default/default.settings.php b/sites/default/default.settings.php index 7e36a4ab54..a152b287e9 100644 --- a/sites/default/default.settings.php +++ b/sites/default/default.settings.php @@ -126,6 +126,38 @@ * ); * @endcode * + * For handling full UTF-8 in MySQL, including multi-byte characters such as + * emojis, Asian symbols, and mathematical symbols, you may set the collation + * and charset to "utf8mb4" prior to running install.php: + * @code + * $databases['default']['default'] = array( + * 'driver' => 'mysql', + * 'database' => 'databasename', + * 'username' => 'username', + * 'password' => 'password', + * 'host' => 'localhost', + * 'charset' => 'utf8mb4', + * 'collation' => 'utf8mb4_general_ci', + * ); + * @endcode + * When using this setting on an existing installation, ensure that all existing + * tables have been converted to the utf8mb4 charset, for example by using the + * utf8mb4_convert contributed project available at + * https://www.drupal.org/project/utf8mb4_convert, so as to prevent mixing data + * with different charsets. + * Note this should only be used when all of the following conditions are met: + * - In order to allow for large indexes, MySQL must be set up with the + * following my.cnf settings: + * [mysqld] + * innodb_large_prefix=true + * innodb_file_format=barracuda + * innodb_file_per_table=true + * These settings are available as of MySQL 5.5.14, and are defaults in + * MySQL 5.7.7 and up. + * - The PHP MySQL driver must support the utf8mb4 charset (libmysqlclient + * 5.5.3 and up, as well as mysqlnd 5.0.9 and up). + * - The MySQL server must support the utf8mb4 charset (5.5.3 and up). + * * You can optionally set prefixes for some or all database table names * by using the 'prefix' setting. If a prefix is specified, the table * name will be prepended with its value. Be sure to use valid database @@ -446,6 +478,23 @@ */ # $conf['block_cache_bypass_node_grants'] = TRUE; +/** + * Expiration of cache_form entries: + * + * Drupal's Form API stores details of forms in cache_form and these entries are + * kept for at least 6 hours by default. Expired entries are cleared by cron. + * Busy sites can encounter problems with the cache_form table becoming very + * large. It's possible to mitigate this by setting a shorter expiration for + * cached forms. In some cases it may be desirable to set a longer cache + * expiration, for example to prolong cache_form entries for Ajax forms in + * cached HTML. + * + * @see form_set_cache() + * @see system_cron() + * @see ajax_get_form() + */ +# $conf['form_cache_expiration'] = 21600; + /** * String overrides: * @@ -584,3 +633,15 @@ * Remove the leading hash sign to enable. */ # $conf['theme_debug'] = TRUE; + +/** + * CSS identifier double underscores allowance: + * + * To allow CSS identifiers to contain double underscores (.example__selector) + * for Drupal's BEM-style naming standards, uncomment the line below. + * Note that if you change this value in existing sites, existing page styles + * may be broken. + * + * @see drupal_clean_css_identifier() + */ +# $conf['allow_css_double_underscores'] = TRUE; diff --git a/themes/bartik/bartik.info b/themes/bartik/bartik.info index 47a42257aa..15bf0cbae4 100644 --- a/themes/bartik/bartik.info +++ b/themes/bartik/bartik.info @@ -34,7 +34,7 @@ regions[footer] = Footer settings[shortcut_module_link] = 0 -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/themes/garland/garland.info b/themes/garland/garland.info index 10e50b7389..f719ba9540 100644 --- a/themes/garland/garland.info +++ b/themes/garland/garland.info @@ -7,7 +7,7 @@ stylesheets[all][] = style.css stylesheets[print][] = print.css settings[garland_width] = fluid -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/themes/seven/seven.info b/themes/seven/seven.info index c9dc57fa2f..aeb2acfdde 100644 --- a/themes/seven/seven.info +++ b/themes/seven/seven.info @@ -13,7 +13,7 @@ regions[page_bottom] = Page bottom regions[sidebar_first] = First sidebar regions_hidden[] = sidebar_first -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322" diff --git a/themes/stark/stark.info b/themes/stark/stark.info index 2ff551bcb2..90c06712e9 100644 --- a/themes/stark/stark.info +++ b/themes/stark/stark.info @@ -5,7 +5,7 @@ version = VERSION core = 7.x stylesheets[all][] = layout.css -; Information added by Drupal.org packaging script on 2018-10-17 -version = "7.60" +; Information added by Drupal.org packaging script on 2018-11-08 +version = "7.61" project = "drupal" -datestamp = "1539816636" +datestamp = "1541684322"