- Plugin API: added 'quota' hook

release-0.6
alecpl 15 years ago
parent 317a7d9f67
commit 5b3ed54e84

@ -1,6 +1,7 @@
CHANGELOG RoundCube Webmail
===========================
- Plugin API: added 'quota' hook
- Fix parsing conditional comments in HTML messages (#1486350)
- Use built-in json_encode() for proper JSON format in AJAX replies
- Allow setting only selected params in 'message_compose' hook (#1486312)

@ -46,7 +46,7 @@ foreach ($a_mailboxes as $mbox_name) {
$OUTPUT->command('new_message_focus');
if (!empty($_GET['_quota']))
$OUTPUT->command('set_quota', rcmail_quota_content($IMAP->get_quota()));
$OUTPUT->command('set_quota', rcmail_quota_content());
// trigger plugin hook
$RCMAIL->plugins->exec_hook('new_messages', array('mailbox' => $mbox_name, 'count' => $unread_count));

@ -515,7 +515,7 @@ function rcmail_quota_display($attrib)
$OUTPUT->add_gui_object('quotadisplay', $attrib['id']);
$quota = rcmail_quota_content(NULL, $attrib);
$quota = rcmail_quota_content($attrib);
if (is_array($quota)) {
$OUTPUT->add_script('$(document).ready(function(){
@ -527,30 +527,33 @@ function rcmail_quota_display($attrib)
}
function rcmail_quota_content($quota=NULL, $attrib=NULL)
function rcmail_quota_content($attrib=NULL)
{
global $IMAP, $COMM_PATH, $RCMAIL;
global $COMM_PATH, $RCMAIL;
$display = isset($_SESSION['quota_display']) ? $_SESSION['quota_display'] : '';
if (empty($quota)) {
if (!$IMAP->get_capability('QUOTA'))
return rcube_label('unknown');
else
$quota = $IMAP->get_quota();
}
$quota = $RCMAIL->imap->get_quota();
$quota = $RCMAIL->plugins->exec_hook('quota', $quota);
if (!isset($quota['used']) || !isset($quota['total']))
return rcube_label('unknown');
if ($quota && !($quota['total']==0 && $RCMAIL->config->get('quota_zero_as_unlimited')))
if (!($quota['total']==0 && $RCMAIL->config->get('quota_zero_as_unlimited')))
{
if (!isset($quota['percent']))
$quota['percent'] = min(100, round(($quota['used']/max(1,$quota['total']))*100));
$quota_result = sprintf('%s / %s (%.0f%%)',
show_bytes($quota['used'] * 1024), show_bytes($quota['total'] * 1024),
$quota['percent']);
if ($display == 'image') {
$quota_result = array(
$quota_result = array(
'percent' => $quota['percent'],
'title' => $quota_result,
);
if ($attrib['width'])
$quota_result['width'] = $attrib['width'];
if ($attrib['height'])
@ -733,7 +736,7 @@ function rcmail_wash_html($html, $p = array(), $cid_replaces)
$html = $washer->wash($html);
$REMOTE_OBJECTS = $washer->extlinks;
return $html;
}

@ -113,7 +113,7 @@ else
rcmail_send_unread_count($target, true);
}
$OUTPUT->command('set_quota', rcmail_quota_content($IMAP->get_quota()));
$OUTPUT->command('set_quota', rcmail_quota_content());
$OUTPUT->command('set_rowcount', rcmail_get_messagecount_text($msg_count));
// add new rows from next page (if any)

Loading…
Cancel
Save