From a77504aeacd4516156267fe10eeca1bfffcacf87 Mon Sep 17 00:00:00 2001
From: PhilW <roundcube@tehinterweb.co.uk>
Date: Mon, 26 Aug 2013 07:22:34 -0400
Subject: [PATCH] allow different logos for different functions (eg. normal and print)

---
 program/include/rcmail_output_html.php    |   13 ++++++++++++-
 skins/larry/templates/messageprint.html   |    2 +-
 skins/classic/templates/login.html        |    2 +-
 skins/classic/includes/header.html        |    2 +-
 skins/classic/templates/messageprint.html |    2 +-
 skins/larry/includes/header.html          |    2 +-
 skins/larry/templates/login.html          |    2 +-
 config/defaults.inc.php                   |    3 +++
 8 files changed, 21 insertions(+), 7 deletions(-)

diff --git a/config/defaults.inc.php b/config/defaults.inc.php
index 54d0b1d..feed82f 100644
--- a/config/defaults.inc.php
+++ b/config/defaults.inc.php
@@ -240,6 +240,9 @@
 
 // replace Roundcube logo with this image
 // specify an URL relative to the document root of this Roundcube installation
+// an array can be used to specify different logos for different screens
+// for example array("default" => "/images/roundcube_logo.png", "print" => "/images/roundcube_logo_print.png")
+// available options: default, login, print
 $config['skin_logo'] = null;
 
 // automatically create a new Roundcube user when log-in the first time.
diff --git a/program/include/rcmail_output_html.php b/program/include/rcmail_output_html.php
index a2ec29c..39f79d1 100644
--- a/program/include/rcmail_output_html.php
+++ b/program/include/rcmail_output_html.php
@@ -924,8 +924,19 @@
                 }
                 else if ($object == 'logo') {
                     $attrib += array('alt' => $this->xml_command(array('', 'object', 'name="productname"')));
-                    if ($logo = $this->config->get('skin_logo'))
+
+                    if (is_array($this->config->get('skin_logo'))) {
+                       if (isset($attrib['type']) && array_key_exists($attrib['type'], $this->config->get('skin_logo'))) {
+                           $attrib['src'] = $this->config->get('skin_logo')[$attrib['type']];
+                       }
+                       elseif (array_key_exists('default', $this->config->get('skin_logo'))) {
+                           $attrib['src'] = $this->config->get('skin_logo')['default'];
+                       }
+                    }
+                    elseif ($logo = $this->config->get('skin_logo')) {
                         $attrib['src'] = $logo;
+                    }
+
                     $content = html::img($attrib);
                 }
                 else if ($object == 'productname') {
diff --git a/skins/classic/includes/header.html b/skins/classic/includes/header.html
index 08d777a..962e4dd 100644
--- a/skins/classic/includes/header.html
+++ b/skins/classic/includes/header.html
@@ -1,2 +1,2 @@
-<roundcube:object name="logo" src="/images/roundcube_logo.png" id="logo" border="0" onclick="location.href='./?_page=1'" />
+<roundcube:object name="logo" src="/images/roundcube_logo.png" id="logo" border="0" onclick="location.href='./?_page=1'" type="default" />
 <roundcube:object name="message" id="message" />
diff --git a/skins/classic/templates/login.html b/skins/classic/templates/login.html
index 2dacd48..ece8f04 100644
--- a/skins/classic/templates/login.html
+++ b/skins/classic/templates/login.html
@@ -7,7 +7,7 @@
 </head>
 <body>
 
-<roundcube:object name="logo" src="/images/roundcube_logo.png" id="logo" border="0" style="margin:0 11px" />
+<roundcube:object name="logo" src="/images/roundcube_logo.png" id="logo" border="0" style="margin:0 11px" type="login" />
 
 <roundcube:object name="message" id="message" />
 
diff --git a/skins/classic/templates/messageprint.html b/skins/classic/templates/messageprint.html
index fa7822a..97049d2 100644
--- a/skins/classic/templates/messageprint.html
+++ b/skins/classic/templates/messageprint.html
@@ -7,7 +7,7 @@
 </head>
 <body>
 
-<roundcube:object name="logo" src="/images/roundcube_logo.png" id="logo" border="0" />
+<roundcube:object name="logo" src="/images/roundcube_logo.png" id="logo" border="0" type="print" />
 
 <div id="printmessageframe">
 <roundcube:object name="messageHeaders" class="headers-table" cellspacing="0" cellpadding="2" />
diff --git a/skins/larry/includes/header.html b/skins/larry/includes/header.html
index 5a934d8..35ce837 100644
--- a/skins/larry/includes/header.html
+++ b/skins/larry/includes/header.html
@@ -29,7 +29,7 @@
 	<roundcube:button command="logout" label="logout" class="button-logout" classSel="button-logout" innerClass="button-inner" />
 	<span class="minmodetoggle"></span>
 	</div>
-	<roundcube:object name="logo" src="/images/roundcube_logo.png" id="toplogo" alt="Logo" onclick="rcmail.command('switch-task','mail');return false;" />
+	<roundcube:object name="logo" src="/images/roundcube_logo.png" id="toplogo" alt="Logo" onclick="rcmail.command('switch-task','mail');return false;" type="default" />
 </div>
 <roundcube:endif />
 
diff --git a/skins/larry/templates/login.html b/skins/larry/templates/login.html
index 13e919a..45769e3 100644
--- a/skins/larry/templates/login.html
+++ b/skins/larry/templates/login.html
@@ -9,7 +9,7 @@
 
 <div id="login-form">
 <div class="box-inner">
-<roundcube:object name="logo" src="/images/roundcube_logo.png" id="logo" />
+<roundcube:object name="logo" src="/images/roundcube_logo.png" id="logo" type="login" />
 
 <roundcube:form name="form" method="post">
 <roundcube:object name="loginform" form="form" size="40" />
diff --git a/skins/larry/templates/messageprint.html b/skins/larry/templates/messageprint.html
index d01c70b..297ffd6 100644
--- a/skins/larry/templates/messageprint.html
+++ b/skins/larry/templates/messageprint.html
@@ -7,7 +7,7 @@
 </head>
 <body>
 
-<div id="header"><roundcube:object name="logo" src="/images/roundcube_logo.png" id="toplogo" border="0" alt="Logo" /></div>
+<div id="header"><roundcube:object name="logo" src="/images/roundcube_logo.png" id="toplogo" border="0" alt="Logo" type="print" /></div>
 
 <div id="printmessageframe">
 <roundcube:object name="messageHeaders" class="headers-table" />

--
Gitblit v1.9.1