From 0321a2e9757bc7c349643e8be1ebc51d0094600c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=A1bor=20Hojtsy?= Date: Thu, 16 Aug 2007 13:59:41 +0000 Subject: #164122 by merlinofchaos: properly convert underscored to dashes, when constructing template file names matching hook names --- includes/theme.inc | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/includes/theme.inc b/includes/theme.inc index b4ef05708..10a582e97 100644 --- a/includes/theme.inc +++ b/includes/theme.inc @@ -673,8 +673,11 @@ function drupal_find_theme_templates($cache, $extension, $path) { // have one extension chopped off, but there might be more than one, // such as with .tpl.php $template = substr($template, 0, strpos($template, '.')); - if (isset($cache[$template])) { - $templates[$template] = array( + // Transform - in filenames to _ to match function naming scheme + // for the purposes of searching. + $hook = strtr($template, '-', '_'); + if (isset($cache[$hook])) { + $templates[$hook] = array( 'file' => $template, 'path' => dirname($file->filename), ); @@ -685,11 +688,16 @@ function drupal_find_theme_templates($cache, $extension, $path) { foreach ($cache as $hook => $info) { if (!empty($info['pattern'])) { - $matches = preg_grep('/^'. $info['pattern'] .'/', $patterns); + // Transform _ in pattern to - to match file naming scheme + // for the purposes of searching. + $pattern = strtr($info['pattern'], '_', '-'); + + $matches = preg_grep('/^'. $pattern .'/', $patterns); if ($matches) { foreach ($matches as $match) { $file = substr($match, 0, strpos($match, '.')); - $templates[$file] = array( + // Put the underscores back in for the hook name and register this pattern. + $templates[strtr($file, '-', '_')] = array( 'file' => $file, 'path' => dirname($files[$match]->filename), 'arguments' => $info['arguments'], -- cgit v1.2.3