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
$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
// set to false if only registered users can use this service
$rcmail_config['auto_create_user'] = TRUE;

@ -132,9 +132,13 @@ function rcmail_auth_hash($sess_id, $ts)
function rcmail_imap_init($connect=FALSE)
{
global $CONFIG, $IMAP;
$IMAP = new rcube_imap();
// enable caching of imap data
if ($CONFIG['enable_caching']===TRUE)
$IMAP->set_caching(TRUE);
// set root dir from config
if (strlen($CONFIG['imap_root']))
$IMAP->set_rootdir($CONFIG['imap_root']);

@ -35,7 +35,7 @@ class rcube_imap
var $mailbox = 'INBOX';
var $list_page = 1;
var $page_size = 10;
var $cacheing_enabled = FALSE;
var $caching_enabled = FALSE;
var $default_folders = array('inbox', 'drafts', 'sent', 'junk', 'trash');
var $cache = array();
var $cache_changes = array();
@ -46,8 +46,7 @@ class rcube_imap
// PHP 5 constructor
function __construct()
{
if (function_exists('rcube_read_cache'))
$this->cacheing_enabled = TRUE;
}
// 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)
{
// 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);
$this->cache[$key] = strlen($cache_data) ? unserialize($cache_data) : FALSE;
@ -708,7 +715,7 @@ class rcube_imap
function write_cache()
{
if ($this->cacheing_enabled && $this->cache_changed)
if ($this->caching_enabled && $this->cache_changed)
{
foreach ($this->cache as $key => $data)
{

Loading…
Cancel
Save