From 3b427fae37f1c706a65f987c6472fe41039f996c Mon Sep 17 00:00:00 2001
From: Angie Byron <webchick@24967.no-reply.drupal.org>
Date: Mon, 2 Nov 2009 03:46:43 +0000
Subject: [PATCH] #341140 follow-up by JohnAlbin and chx: 
 drupal_get_filename() fails for PHPTemplate themes when database is down.

---
 includes/bootstrap.inc | 11 ++++++-----
 includes/common.inc    |  5 +----
 2 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/includes/bootstrap.inc b/includes/bootstrap.inc
index 7ab4f2b6531a..191977f5c339 100644
--- a/includes/bootstrap.inc
+++ b/includes/bootstrap.inc
@@ -677,11 +677,12 @@ function drupal_get_filename($type, $name, $filename = NULL) {
         $mask = "/$name\.$type$/";
       }
 
-      if (function_exists('drupal_system_listing')) {
-        $matches = drupal_system_listing($mask, $dir, 'name', 0);
-        if (!empty($matches[$name]->uri)) {
-          $files[$type][$name] = $matches[$name]->uri;
-        }
+      if (!function_exists('drupal_system_listing')) {
+        require_once DRUPAL_ROOT . '/includes/common.inc';
+      }
+      $matches = drupal_system_listing($mask, $dir, 'name', 0);
+      if (!empty($matches[$name]->uri)) {
+        $files[$type][$name] = $matches[$name]->uri;
       }
     }
   }
diff --git a/includes/common.inc b/includes/common.inc
index ff2c81776d5b..de76743802e5 100644
--- a/includes/common.inc
+++ b/includes/common.inc
@@ -4499,13 +4499,10 @@ function drupal_system_listing($mask, $directory, $key = 'name', $min_depth = 1)
     $searchdir[] = "$config/$directory";
   }
 
-  // If the database is not available, we can't use function_exists(), so
-  // we load the file_scan_directory function definition manually.
+  // Get current list of items
   if (!function_exists('file_scan_directory')) {
     require_once DRUPAL_ROOT . '/includes/file.inc';
   }
-
-  // Get current list of items
   foreach ($searchdir as $dir) {
     $files = array_merge($files, file_scan_directory($dir, $mask, array('key' => $key, 'min_depth' => $min_depth)));
   }
-- 
GitLab