alecpl
2009-12-13 5b3ed54e84590bdb6efbfe3c79c5e0129486ef1a
- Plugin API: added 'quota' hook


4 files modified
28 ■■■■■ changed files
CHANGELOG 1 ●●●● patch | view | raw | blame | history
program/steps/mail/check_recent.inc 2 ●●● patch | view | raw | blame | history
program/steps/mail/func.inc 23 ●●●●● patch | view | raw | blame | history
program/steps/mail/move_del.inc 2 ●●● patch | view | raw | blame | history
CHANGELOG
@@ -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)
program/steps/mail/check_recent.inc
@@ -46,7 +46,7 @@
        $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));
program/steps/mail/func.inc
@@ -515,7 +515,7 @@
  $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,21 +527,23 @@
  }
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 ($quota && !($quota['total']==0 && $RCMAIL->config->get('quota_zero_as_unlimited')))
  if (!isset($quota['used']) || !isset($quota['total']))
    return rcube_label('unknown');
  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']);
@@ -551,6 +553,7 @@
        'percent'     => $quota['percent'],
        'title'        => $quota_result,
    );
      if ($attrib['width'])
        $quota_result['width'] = $attrib['width'];
      if ($attrib['height'])
program/steps/mail/move_del.inc
@@ -113,7 +113,7 @@
    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)