Make message caching configurable

release-0.6
thomascube 19 years ago
parent adf95dde7b
commit 6dc0269fcc

@ -18,6 +18,10 @@ $rcmail_config = array();
// system error reporting: 1 = log; 2 = report (not implemented yet), 4 = show, 8 = trace // system error reporting: 1 = log; 2 = report (not implemented yet), 4 = show, 8 = trace
$rcmail_config['debug_level'] = 5; $rcmail_config['debug_level'] = 5;
// enable caching of messages and mailbox data in the local database.
// this is recommended if the IMAP server does not run on the same machine
$rcmail_config['enable_caching'] = TRUE;
// automatically create a new user when log-in the first time // automatically create a new user when log-in the first time
// set to false if only registered users can use this service // set to false if only registered users can use this service
$rcmail_config['auto_create_user'] = TRUE; $rcmail_config['auto_create_user'] = TRUE;

@ -135,6 +135,10 @@ function rcmail_imap_init($connect=FALSE)
$IMAP = new rcube_imap(); $IMAP = new rcube_imap();
// enable caching of imap data
if ($CONFIG['enable_caching']===TRUE)
$IMAP->set_caching(TRUE);
// set root dir from config // set root dir from config
if (strlen($CONFIG['imap_root'])) if (strlen($CONFIG['imap_root']))
$IMAP->set_rootdir($CONFIG['imap_root']); $IMAP->set_rootdir($CONFIG['imap_root']);

@ -35,7 +35,7 @@ class rcube_imap
var $mailbox = 'INBOX'; var $mailbox = 'INBOX';
var $list_page = 1; var $list_page = 1;
var $page_size = 10; var $page_size = 10;
var $cacheing_enabled = FALSE; var $caching_enabled = FALSE;
var $default_folders = array('inbox', 'drafts', 'sent', 'junk', 'trash'); var $default_folders = array('inbox', 'drafts', 'sent', 'junk', 'trash');
var $cache = array(); var $cache = array();
var $cache_changes = array(); var $cache_changes = array();
@ -46,8 +46,7 @@ class rcube_imap
// PHP 5 constructor // PHP 5 constructor
function __construct() function __construct()
{ {
if (function_exists('rcube_read_cache'))
$this->cacheing_enabled = TRUE;
} }
// PHP 4 compatibility // PHP 4 compatibility
@ -681,14 +680,22 @@ class rcube_imap
/* -------------------------------- /* --------------------------------
* internal cacheing functions * internal caching functions
* --------------------------------*/ * --------------------------------*/
function set_caching($set)
{
if ($set && function_exists('rcube_read_cache'))
$this->caching_enabled = TRUE;
else
$this->caching_enabled = FALSE;
}
function get_cache($key) function get_cache($key)
{ {
// read cache // read cache
if (!isset($this->cache[$key]) && $this->cacheing_enabled) if (!isset($this->cache[$key]) && $this->caching_enabled)
{ {
$cache_data = rcube_read_cache('IMAP.'.$key); $cache_data = rcube_read_cache('IMAP.'.$key);
$this->cache[$key] = strlen($cache_data) ? unserialize($cache_data) : FALSE; $this->cache[$key] = strlen($cache_data) ? unserialize($cache_data) : FALSE;
@ -708,7 +715,7 @@ class rcube_imap
function write_cache() function write_cache()
{ {
if ($this->cacheing_enabled && $this->cache_changed) if ($this->caching_enabled && $this->cache_changed)
{ {
foreach ($this->cache as $key => $data) foreach ($this->cache as $key => $data)
{ {

Loading…
Cancel
Save