alecpl
2008-06-15 e58df3adc9b4182c232c94178d024bb4a89c2290
- Added option to select skin in user preferences (#1485031)
- template_exists() moved to rcube_template class


10 files modified
81 ■■■■■ changed files
CHANGELOG 5 ●●●●● patch | view | raw | blame | history
config/main.inc.php.dist 11 ●●●●● patch | view | raw | blame | history
installer/config.php 8 ●●●● patch | view | raw | blame | history
program/include/main.inc 16 ●●●●● patch | view | raw | blame | history
program/include/rcube_config.php 2 ●●● patch | view | raw | blame | history
program/include/rcube_template.php 27 ●●●●● patch | view | raw | blame | history
program/steps/addressbook/edit.inc 2 ●●● patch | view | raw | blame | history
program/steps/error.inc 2 ●●● patch | view | raw | blame | history
program/steps/mail/show.inc 6 ●●●● patch | view | raw | blame | history
program/steps/settings/edit_identity.inc 2 ●●● patch | view | raw | blame | history
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
config/main.inc.php.dist
@@ -94,16 +94,16 @@
// 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 @@
/***** 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;
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>
program/include/main.inc
@@ -503,22 +503,6 @@
/**
 * 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
program/include/rcube_config.php
@@ -61,7 +61,7 @@
    $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
program/include/rcube_template.php
@@ -57,6 +57,12 @@
        //$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 @@
        $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
program/steps/addressbook/edit.inc
@@ -113,7 +113,7 @@
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
program/steps/error.inc
@@ -97,7 +97,7 @@
if (template_exists('error'))
if ($OUTPUT->template_exists('error'))
  {
  $OUTPUT->reset();
  $OUTPUT->send('error');
program/steps/mail/show.inc
@@ -32,7 +32,7 @@
  // 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 @@
  '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');
program/steps/settings/edit_identity.inc
@@ -136,7 +136,7 @@
$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');