From 7fcb56b5b62877f074a8f6760f69a11f9ff40566 Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Sun, 07 Nov 2010 07:44:54 -0500
Subject: [PATCH] Support skins with old template names

---
 program/include/rcube_template.php |   21 +++++++++++++++++++--
 1 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/program/include/rcube_template.php b/program/include/rcube_template.php
index a30c4f3..c8e8138 100755
--- a/program/include/rcube_template.php
+++ b/program/include/rcube_template.php
@@ -44,6 +44,15 @@
     public $type = 'html';
     public $ajax_call = false;
 
+    // deprecated names of templates used before 0.5
+    private $deprecated_templates = array(
+        'contact' => 'showcontact',
+        'contactadd' => 'addcontact',
+        'contactedit' => 'editcontact',
+        'identityedit' => 'editidentity',
+        'messageprint' => 'printmessage',
+    );
+
     /**
      * Constructor
      *
@@ -165,8 +174,7 @@
     public function template_exists($name)
     {
         $filename = $this->config['skin_path'] . '/templates/' . $name . '.html';
-
-        return (is_file($filename) && is_readable($filename));
+        return (is_file($filename) && is_readable($filename)) || ($this->deprecated_templates[$name] && $this->template_exists($this->deprecated_templates[$name]));
     }
 
     /**
@@ -380,6 +388,15 @@
 
         $path = "$skin_path/templates/$name.html";
 
+        if (!is_readable($path) && $this->deprecated_templates[$name]) {
+            $path = "$skin_path/templates/".$this->deprecated_templates[$name].".html";
+            if (is_readable($path))
+                raise_error(array('code' => 502, 'type' => 'php',
+                    'file' => __FILE__, 'line' => __LINE__,
+                    'message' => "Using deprecated template '".$this->deprecated_templates[$name]."' in ".$this->config['skin_path']."/templates. Please rename to '".$name."'"),
+                true, false);
+        }
+
         // read template file
         if (($templ = @file_get_contents($path)) === false) {
             raise_error(array(

--
Gitblit v1.9.1