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

- template_exists() moved to rcube_template class
release-0.6
alecpl 16 years ago
parent 46290afee2
commit e58df3adc9

@ -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

@ -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;

@ -78,15 +78,15 @@ echo $input_prodname->show($RCI->getprop('product_name'));
<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>

@ -502,22 +502,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
*

@ -61,7 +61,7 @@ class rcube_config
$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

@ -57,6 +57,12 @@ class rcube_template extends rcube_html_page
//$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 @@ class rcube_template extends rcube_html_page
$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

@ -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

@ -97,7 +97,7 @@ EOF;
if (template_exists('error'))
if ($OUTPUT->template_exists('error'))
{
$OUTPUT->reset();
$OUTPUT->send('error');

@ -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');

@ -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');

Loading…
Cancel
Save