diff options
author | Dries Buytaert <dries@buytaert.net> | 2002-05-25 06:47:47 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2002-05-25 06:47:47 +0000 |
commit | e426775fd55ee7e5a6129d77da30e517b58eb27d (patch) | |
tree | 5b5a5db7fa48a8c8b6f2b49adb46bf79000b06ec /includes/theme.inc | |
parent | 04e491f8469382fe1935d89ed9b05978fce2ee00 (diff) | |
download | brdo-e426775fd55ee7e5a6129d77da30e517b58eb27d.tar.gz brdo-e426775fd55ee7e5a6129d77da30e517b58eb27d.tar.bz2 |
- Bugfix. When a theme does no longer exist on disk, it should not be
returned by theme_list() as it breaks the site ... The attached patch
prevents this from happening but does not remove the theme from the system
table in the SQL database - if the theme is removed from the database upon
viewing the themes administration page (or another trigger), I guess that
is fine.
Kjartan: my fix is the right thing to apply because theme_list() is used
elsewhere where it requires to return a list of existing themes.
Maybe it's a little sad but the current theme loading code might
be slower and more complex than the old Drupal 3 theme loading
code ... ?
Diffstat (limited to 'includes/theme.inc')
-rw-r--r-- | includes/theme.inc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/includes/theme.inc b/includes/theme.inc index 4aa89b6d6..11d2c82e9 100644 --- a/includes/theme.inc +++ b/includes/theme.inc @@ -40,7 +40,7 @@ class BaseTheme { $terms[] = l($term->name, array("or" => $term->tid), "index"); } } - + $output = "<b>". check_output($node->title) ."</b> by ". format_name($node) ."<br />"; if (count($terms)) { $output .= "<small>(". $this->links($terms) .")</small><br />"; @@ -97,7 +97,9 @@ function theme_list() { $list = array(); $result = db_query("SELECT * FROM system where type = 'theme' AND status = '1' ORDER BY name"); while ($theme = db_fetch_object($result)) { - $list[$theme->name] = $theme; + if (file_exists($theme->filename)) { + $list[$theme->name] = $theme; + } } } |