From ae39c47c3a07f9a9334c9676829fd948d682ffbd Mon Sep 17 00:00:00 2001
From: thomascube <thomas@roundcube.net>
Date: Tue, 01 Mar 2011 16:58:54 -0500
Subject: [PATCH] New config option for custom logo; allow skins to define/override texts

---
 CHANGELOG                          |    2 ++
 program/include/rcmail.php         |    4 ++++
 skins/default/templates/login.html |    2 +-
 skins/default/includes/header.html |    2 +-
 config/main.inc.php.dist           |    4 ++++
 program/include/rcube_template.php |    9 ++++++++-
 6 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index 0d7d394..5687ca1 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,6 +1,8 @@
 CHANGELOG Roundcube Webmail
 ===========================
 
+- New config option for custom logo
+- Allow skins to define/override texts with <roundcube:label />
 - Add simple ACL rights/namespace handling in folder manager
 - Fix parsing links with non-printable characters inside (#1487805)
 - Force IE to send referers (#1487806)
diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist
index db029f1..cdec127 100644
--- a/config/main.inc.php.dist
+++ b/config/main.inc.php.dist
@@ -199,6 +199,10 @@
 // set to false if only registered users can use this service
 $rcmail_config['auto_create_user'] = true;
 
+// replace Roundcube logo with this image
+// specify an URL relative to the document root of this Roundcube installation
+$rcmail_config['skin_logo'] = null;
+
 // Includes should be interpreted as PHP files
 $rcmail_config['skin_include_php'] = false;
 
diff --git a/program/include/rcmail.php b/program/include/rcmail.php
index 319e53c..980efe4 100644
--- a/program/include/rcmail.php
+++ b/program/include/rcmail.php
@@ -874,6 +874,10 @@
 
     $nr = is_numeric($attrib['nr']) ? $attrib['nr'] : 1;
     $name = $attrib['name'] ? $attrib['name'] : '';
+    
+    // attrib contain text values: use them from now
+    if (($setval = $attrib[strtolower($_SESSION['language'])]) || ($setval = $attrib['en_us']))
+        $this->texts[$name] = $setval;
 
     // check for text with domain
     if ($domain && ($text_item = $this->texts[$domain.'.'.$name]))
diff --git a/program/include/rcube_template.php b/program/include/rcube_template.php
index 11c290a..c4b7a44 100755
--- a/program/include/rcube_template.php
+++ b/program/include/rcube_template.php
@@ -658,7 +658,8 @@
             // show a label
             case 'label':
                 if ($attrib['name'] || $attrib['command']) {
-                    return Q(rcube_label($attrib + array('vars' => array('product' => $this->config['product_name']))));
+                    $label = rcube_label($attrib + array('vars' => array('product' => $this->config['product_name'])));
+                    return !$attrbi['noshow'] ? Q($label) : '';
                 }
                 break;
 
@@ -709,6 +710,12 @@
                 else if (function_exists($handler)) {
                     $content = call_user_func($handler, $attrib);
                 }
+                else if ($object == 'logo') {
+                    $attrib += array('alt' => $this->xml_command(array('', 'object', 'name="productname"')));
+                    if ($this->config['skin_logo'])
+                        $attrib['src'] = $this->config['skin_logo'];
+                    $content = html::img($attrib);
+                }
                 else if ($object == 'productname') {
                     $name = !empty($this->config['product_name']) ? $this->config['product_name'] : 'Roundcube Webmail';
                     $content = Q($name);
diff --git a/skins/default/includes/header.html b/skins/default/includes/header.html
index 393ee92..37db1e8 100644
--- a/skins/default/includes/header.html
+++ b/skins/default/includes/header.html
@@ -1,3 +1,3 @@
-<div id="header"><a href="./"><img id="logo" src="/images/roundcube_logo.png" alt="logo" title="<roundcube:object name='productname' />" /></a></div>
+<div id="header"><a href="./"><roundcube:object name="logo" src="/images/roundcube_logo.png" id="logo" border="0" alt="Logo" /></a></div>
 
 <roundcube:object name="message" id="message" />
diff --git a/skins/default/templates/login.html b/skins/default/templates/login.html
index a315557..7fb4370 100644
--- a/skins/default/templates/login.html
+++ b/skins/default/templates/login.html
@@ -7,7 +7,7 @@
 </head>
 <body>
 
-<img id="logo" src="/images/roundcube_logo.png" border="0" alt="<roundcube:object name='productname' />" style="margin:0 11px" />
+<roundcube:object name="logo" src="/images/roundcube_logo.png" id="logo" border="0" style="margin:0 11px" />
 
 <roundcube:object name="message" id="message" />
 

--
Gitblit v1.9.1