diff --git a/core/includes/menu.inc b/core/includes/menu.inc index 6492b10..346a8b9 100644 --- a/core/includes/menu.inc +++ b/core/includes/menu.inc @@ -531,7 +531,22 @@ function _menu_load_objects(&$item, &$map) { $args[$i] = &$map; } if (is_int($arg)) { - $args[$i] = isset($path_map[$arg]) ? $path_map[$arg] : ''; + // If we loaded the specified $arg index in already, supply the + // loaded argument. This is the case when e.g. two dynamic + // placeholders appear within a single router path, and the + // 'load arguments' specify the integer index of the first + // argument, in order to pass the loaded argument to the second + // argument loader. + if (isset($map[$arg])) { + $args[$i] = $map[$arg]; + } + // Otherwise, supply the string argument, if any. + elseif (isset($path_map[$arg])) { + $args[$i] = $path_map[$arg]; + } + else { + $args[$i] = ''; + } } } array_unshift($args, $value); diff --git a/core/modules/image/image.module b/core/modules/image/image.module index 221e07c..f0d9095 100644 --- a/core/modules/image/image.module +++ b/core/modules/image/image.module @@ -66,7 +66,7 @@ function image_help($path, $arg) { $effect = image_effect_definition_load($arg[7]); return isset($effect['help']) ? ('
' . $effect['help'] . '
') : NULL; case 'admin/config/media/image-styles/edit/%/effects/%': - $effect = ($arg[5] == 'add') ? image_effect_definition_load($arg[6]) : image_effect_load($arg[6], $arg[4]); + $effect = ($arg[5] == 'add') ? image_effect_definition_load($arg[7]) : menu_get_object('image_effect', 7); return isset($effect['help']) ? ('' . $effect['help'] . '
') : NULL; } } @@ -1004,8 +1004,8 @@ function image_effects() { * * @param $ieid * The image effect ID. - * @param $style_name - * The image style name. + * @param \Drupal\image\Plugin\Core\Entity\ImageStyle $style + * The image style. * * @return * An image effect array, consisting of the following keys: @@ -1018,8 +1018,8 @@ function image_effects() { * found. * @see image_effect_definition_load() */ -function image_effect_load($ieid, $style_name) { - if (($style = entity_load('image_style', $style_name)) && isset($style->effects[$ieid])) { +function image_effect_load($ieid, $style) { + if (isset($style->effects[$ieid])) { $effect = $style->effects[$ieid]; $definition = image_effect_definition_load($effect['name']); $effect = array_merge($definition, $effect);