diff options
Diffstat (limited to 'program/include')
-rw-r--r-- | program/include/main.inc | 9 | ||||
-rw-r--r-- | program/include/rcube_imap.inc | 30 |
2 files changed, 13 insertions, 26 deletions
diff --git a/program/include/main.inc b/program/include/main.inc index ef2ecbfe8..e77df19e3 100644 --- a/program/include/main.inc +++ b/program/include/main.inc @@ -1274,6 +1274,9 @@ function rcube_button($attrib) static $sa_buttons = array(); static $s_button_count = 100; + // these commands can be called directly via url + $a_static_commands = array('compose', 'list'); + $skin_path = $CONFIG['skin_path']; if (!($attrib['command'] || $attrib['name'])) @@ -1352,9 +1355,11 @@ function rcube_button($attrib) $attrib['imagesel'] ? $skin_path.$attrib['imagesel'] : $attrib['classsel'], $attrib['imageover'] ? $skin_path.$attrib['imageover'] : '')); - // make valid href to task buttons + // make valid href to specific buttons if (in_array($attrib['command'], $MAIN_TASKS)) - $attrib['href'] = ereg_replace('_task=[a-z]+', '_task='.$attrib['command'], $COMM_PATH); + $attrib['href'] = htmlentities(ereg_replace('_task=[a-z]+', '_task='.$attrib['command'], $COMM_PATH)); + else if (in_array($attrib['command'], $a_static_commands)) + $attrib['href'] = htmlentities($COMM_PATH.'&_action='.$attrib['command']); } // overwrite attributes diff --git a/program/include/rcube_imap.inc b/program/include/rcube_imap.inc index bc12eac06..177d05a62 100644 --- a/program/include/rcube_imap.inc +++ b/program/include/rcube_imap.inc @@ -501,29 +501,11 @@ class rcube_imap $start_msg = ($this->list_page-1) * $this->page_size; list($begin, $end) = $this->_get_message_range($max, $page); - - /* - if ($page=='all') - { - $begin = 0; - $end = $max; - } - else if (!$this->get_capability('sort') && $this->sort_order=='DESC') - { - $begin = $max - $this->page_size - $start_msg; - $end = $max - $start_msg; - } - else - { - $begin = $start_msg; - $end = $start_msg + $this->page_size; - } - - if ($begin < 0) $begin = 0; - if ($end < 0) $end = $max; - if ($end > $max) $end = $max; - */ - + + // mailbox is empty + if ($begin >= $end) + return array(); + //console("fetch headers $start_msg to ".($start_msg+$this->page_size)." (msg $begin to $end)"); $headers_sorted = FALSE; @@ -553,7 +535,7 @@ class rcube_imap } else { - $msgs = sprintf("%d:%d", $begin+1, $end); + $msgs = sprintf("%d:%d", $begin+1, $end); $sorted = FALSE; } |