#992376 by larowlan: Fixed Paths containing a hyphen aren't compatible with page theme_hook_suggestions
parent
c5da457f28
commit
8a6c97a1ce
|
@ -2364,8 +2364,19 @@ function theme_get_suggestions($args, $base, $delimiter = '__') {
|
||||||
$suggestions = array();
|
$suggestions = array();
|
||||||
$prefix = $base;
|
$prefix = $base;
|
||||||
foreach ($args as $arg) {
|
foreach ($args as $arg) {
|
||||||
// Remove slashes or null per SA-CORE-2009-003.
|
// Remove slashes or null per SA-CORE-2009-003 and change - (hyphen) to _
|
||||||
$arg = str_replace(array("/", "\\", "\0"), '', $arg);
|
// (underscore).
|
||||||
|
//
|
||||||
|
// When we discover templates in @see drupal_find_theme_templates,
|
||||||
|
// hyphens (-) are converted to underscores (_) before the theme hook
|
||||||
|
// is registered. We do this because the hyphens used for delimiters
|
||||||
|
// in hook suggestions cannot be used in the function names of the
|
||||||
|
// associated preprocess functions. Any page templates designed to be used
|
||||||
|
// on paths that contain a hyphen are also registered with these hyphens
|
||||||
|
// converted to underscores so here we must convert any hyphens in path
|
||||||
|
// arguments to underscores here before fetching theme hook suggestions
|
||||||
|
// to ensure the templates are appropriately recognized.
|
||||||
|
$arg = str_replace(array("/", "\\", "\0", '-'), array('', '', '', '_'), $arg);
|
||||||
// The percent acts as a wildcard for numeric arguments since
|
// The percent acts as a wildcard for numeric arguments since
|
||||||
// asterisks are not valid filename characters on many filesystems.
|
// asterisks are not valid filename characters on many filesystems.
|
||||||
if (is_numeric($arg)) {
|
if (is_numeric($arg)) {
|
||||||
|
|
Loading…
Reference in New Issue