Commit e426775f authored by Dries's avatar Dries

- 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 ... ?
parent 04e491f8
......@@ -40,7 +40,7 @@ function node($node, $main) {
$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;
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment