Skip to content
Browse files

- Added option to select skin in user preferences (#1485031)

- template_exists() moved to rcube_template class
  • Loading branch information...
1 parent 46290af commit e58df3adc9b4182c232c94178d024bb4a89c2290 @alecpl alecpl committed Jun 15, 2008
View
5 CHANGELOG
@@ -1,6 +1,11 @@
CHANGELOG RoundCube Webmail
---------------------------
+2008/06/15 (alec)
+----------
+- Added option to select skin in user preferences
+ WARNING: option 'skin_path' replaced by 'default_skin'!
+
2008/06/14 (alec)
----------
- Added option to disable displaying of attached images below the message body
View
11 config/main.inc.php.dist
@@ -94,16 +94,16 @@ $rcmail_config['smtp_log'] = TRUE;
// available cols are: subject, from, to, cc, replyto, date, size, encoding
$rcmail_config['list_cols'] = array('subject', 'from', 'date', 'size');
-// relative path to the skin folder
-$rcmail_config['skin_path'] = 'skins/default/';
+// skin name: folder from skins/
+$rcmail_config['default_skin'] = 'default';
// includes should be interpreted as PHP files
$rcmail_config['skin_include_php'] = FALSE;
-// use this folder to store temp files (must be writebale for apache user)
+// use this folder to store temp files (must be writeable for apache user)
$rcmail_config['temp_dir'] = 'temp/';
-// use this folder to store log files (must be writebale for apache user)
+// use this folder to store log files (must be writeable for apache user)
$rcmail_config['log_dir'] = 'logs/';
// session lifetime in minutes
@@ -315,6 +315,9 @@ $rcmail_config['delete_always'] = false;
/***** these settings can be overwritten by user's preferences *****/
+// skin name (see 'default_skin' option)
+$rcmail_config['skin'] = $rcmail_config['default_skin'];
+
// show up to X items in list view
$rcmail_config['pagesize'] = 40;
View
8 installer/config.php
@@ -78,15 +78,15 @@
<div>The name of your service (used to compose page titles)</div>
</dd>
-<dt class="propname">skin_path</dt>
+<dt class="propname">default_skin</dt>
<dd>
<?php
-$input_skinpath = new html_inputfield(array('name' => '_skin_path', 'size' => 30, 'id' => "cfgskinpath"));
-echo $input_skinpath->show($RCI->getprop('skin_path'));
+$input_skin = new html_inputfield(array('name' => '_default_skin', 'size' => 30, 'id' => "cfgdefaultskin"));
+echo $input_skin->show($RCI->getprop('default_skin'));
?>
-<div>Relative path to the skin folder</div>
+<div>Name of the skin folder</div>
</dd>
<dt class="propname">temp_dir</dt>
View
16 program/include/main.inc
@@ -503,22 +503,6 @@ function strip_newlines($str)
/**
- * Check if a specific template exists
- *
- * @param string Template name
- * @return boolean True if template exists
- */
-function template_exists($name)
- {
- global $CONFIG;
- $skin_path = $CONFIG['skin_path'];
-
- // check template file
- return is_file("$skin_path/templates/$name.html");
- }
-
-
-/**
* Create a HTML table based on the given data
*
* @param array Named table attributes
View
2 program/include/rcube_config.php
@@ -61,7 +61,7 @@ private function load()
$this->load_host_config();
// fix paths
- $this->prop['skin_path'] = $this->prop['skin_path'] ? unslashify($this->prop['skin_path']) : 'skins/default';
+ $this->prop['default_skin'] = $this->prop['default_skin'] ? unslashify($this->prop['default_skin']) : 'default';
$this->prop['log_dir'] = $this->prop['log_dir'] ? unslashify($this->prop['log_dir']) : INSTALL_PATH . 'logs';
// handle aliases
View
27 program/include/rcube_template.php
@@ -57,6 +57,12 @@ public function __construct($task, $framed = false)
//$this->framed = $framed;
$this->set_env('task', $task);
+ // load the correct skin (in case user-defined)
+ if (empty($this->config['skin']) || !is_readable('skins/'.$this->config['skin']))
+ $this->config['skin'] = $this->config['default_skin'];
+
+ $this->config['skin_path'] = 'skins/'.$this->config['skin'];
+
// add common javascripts
$javascript = 'var '.JS_OBJECT_NAME.' = new rcube_webmail();';
@@ -102,6 +108,27 @@ public function set_pagetitle($title)
$this->pagetitle = $title;
}
+ /**
+ * Set skin
+ */
+ public function set_skin($skin)
+ {
+ if (!empty($skin) && is_dir('skins/'.$skin) && is_readable('skins/'.$skin))
+ $this->config['skin_path'] = 'skins/'.$skin;
+ }
+
+ /**
+ * Check if a specific template exists
+ *
+ * @param string Template name
+ * @return boolean True if template exists
+ */
+ public function template_exists($name)
+ {
+ $filename = $this->config['skin_path'] . '/templates/' . $name . '.html';
+
+ return (is_file($filename) && is_readable($filename));
+ }
/**
* Register a template object handler
View
2 program/steps/addressbook/edit.inc
@@ -113,7 +113,7 @@ function get_form_tags($attrib)
-if (!$CONTACTS->get_result() && template_exists('addcontact'))
+if (!$CONTACTS->get_result() && $OUTPUT->template_exists('addcontact'))
$OUTPUT->send('addcontact');
// this will be executed if no template for addcontact exists
View
2 program/steps/error.inc
@@ -97,7 +97,7 @@ EOF;
-if (template_exists('error'))
+if ($OUTPUT->template_exists('error'))
{
$OUTPUT->reset();
$OUTPUT->send('error');
View
6 program/steps/mail/show.inc
@@ -32,7 +32,7 @@ if ($_GET['_uid']) {
// go back to list if message not found (wrong UID)
if (empty($MESSAGE->headers)) {
$OUTPUT->show_message('messageopenerror', 'error');
- if ($RCMAIL->action=='preview' && template_exists('messagepreview'))
+ if ($RCMAIL->action=='preview' && $OUTPUT->template_exists('messagepreview'))
$OUTPUT->send('messagepreview');
else {
$RCMAIL->action = 'list';
@@ -194,9 +194,9 @@ $OUTPUT->add_handlers(array(
'blockedobjects' => 'rcmail_remote_objects_msg'));
-if ($RCMAIL->action=='print' && template_exists('printmessage'))
+if ($RCMAIL->action=='print' && $OUTPUT->template_exists('printmessage'))
$OUTPUT->send('printmessage');
-else if ($RCMAIL->action=='preview' && template_exists('messagepreview'))
+else if ($RCMAIL->action=='preview' && $OUTPUT->template_exists('messagepreview'))
$OUTPUT->send('messagepreview');
else
$OUTPUT->send('message');
View
2 program/steps/settings/edit_identity.inc
@@ -136,7 +136,7 @@ function rcube_identity_form($attrib)
$OUTPUT->add_handler('identityform', 'rcube_identity_form');
-if ($RCMAIL->action=='add-identity' && template_exists('addidentity'))
+if ($RCMAIL->action=='add-identity' && $OUTPUT->template_exists('addidentity'))
$OUTPUT->send('addidentity');
$OUTPUT->send('editidentity');

0 comments on commit e58df3a

Please sign in to comment.
Something went wrong with that request. Please try again.