Allow vars and PHP code in templates; improved page title; fixed #1484395
| | |
| | | php_flag log_errors On |
| | | php_value error_log logs/errors |
| | | php_value upload_max_filesize 5M |
| | | php_value post_max_size 6M |
| | | </IfModule> |
| | | |
| | | <IfModule mod_php5.c> |
| | |
| | | php_flag log_errors On |
| | | php_value error_log logs/errors |
| | | php_value upload_max_filesize 5M |
| | | php_value post_max_size 6M |
| | | </IfModule> |
| | | |
| | | <FilesMatch "(\.inc|\~)$"> |
| | |
| | | CHANGELOG RoundCube Webmail |
| | | --------------------------- |
| | | |
| | | 2007/09/18 (thomasb) |
| | | ---------- |
| | | - Eval PHP code in template includes (if configured) |
| | | - Show message when folder is empty. Mo more static text in table (#1484395) |
| | | - Only display unread count in page title when new messages arrived |
| | | - Show mailbox name in page title |
| | | |
| | | |
| | | 2007/09/09 (thomasb) |
| | | ---------- |
| | | - Fixed wrong delete button tooltip (#1483965) |
| | |
| | | // relative path to the skin folder |
| | | $rcmail_config['skin_path'] = 'skins/default/'; |
| | | |
| | | // inludes shloud be interpreted as PHP files |
| | | $rcmail_config['skin_include_php'] = true; |
| | | |
| | | // use this folder to store temp files (must be writebale for apache user) |
| | | $rcmail_config['temp_dir'] = 'temp/'; |
| | | |
| | |
| | | join(',', $args)); |
| | | } |
| | | |
| | | // add command to set page title |
| | | if ($this->ajax_call && !empty($this->pagetitle)) |
| | | $out .= sprintf( |
| | | "this.set_pagetitle('%s');\n", |
| | | JQ((!empty($this->config['product_name']) ? $this->config['product_name'].' :: ' : '') . $this->pagetitle) |
| | | ); |
| | | |
| | | return $out; |
| | | } |
| | | |
| | |
| | | // include a file |
| | | case 'include': |
| | | $path = realpath($this->config['skin_path'].$attrib['file']); |
| | | if (filesize($path) && ($fp = @fopen($path, 'r'))) |
| | | if (filesize($path)) |
| | | { |
| | | if ($this->config['skin_include_php']) |
| | | $incl = $this->include_php($path); |
| | | else if ($fp = @fopen($path, 'r')) |
| | | { |
| | | $incl = fread($fp, filesize($path)); |
| | | fclose($fp); |
| | | } |
| | | return $this->parse_xml($incl); |
| | | } |
| | | break; |
| | |
| | | } |
| | | |
| | | break; |
| | | |
| | | // return variable |
| | | case 'var': |
| | | $var = explode(':', $attrib['name']); |
| | | $name = $var[1]; |
| | | $value = ''; |
| | | |
| | | switch ($var[0]) |
| | | { |
| | | case 'env': |
| | | $value = $this->env[$name]; |
| | | break; |
| | | case 'config': |
| | | $value = $this->config[$name]; |
| | | if (is_array($value) && $value[$_SESSION['imap_host']]) |
| | | $value = $value[$_SESSION['imap_host']]; |
| | | break; |
| | | case 'request': |
| | | $value = get_input_value($name, RCUBE_INPUT_GPC); |
| | | break; |
| | | case 'session': |
| | | $value = $_SESSION[$name]; |
| | | break; |
| | | } |
| | | |
| | | if (is_array($value)) |
| | | $value = join(", ", $value); |
| | | |
| | | return Q($value); |
| | | } |
| | | |
| | | return ''; |
| | |
| | | |
| | | |
| | | /** |
| | | * Include a specific file and return it's contents |
| | | * |
| | | * @param string File path |
| | | * @return string Contents of the processed file |
| | | */ |
| | | function include_php($file) |
| | | { |
| | | ob_start(); |
| | | @include($file); |
| | | $out = ob_get_contents(); |
| | | ob_end_clean(); |
| | | |
| | | return $out; |
| | | } |
| | | |
| | | |
| | | /** |
| | | * Create and register a button |
| | | * |
| | | * @param array Button attributes |
| | |
| | | }; |
| | | |
| | | |
| | | // write to the document/window title |
| | | this.set_pagetitle = function(title) |
| | | { |
| | | if (title && document.title) |
| | | document.title = title; |
| | | } |
| | | |
| | | |
| | | // display a system message |
| | | this.display_message = function(msg, type, hold) |
| | | { |
| | |
| | | if (!this.gui_objects.mailboxlist) |
| | | return false; |
| | | |
| | | if (mbox==this.env.mailbox) |
| | | set_title = true; |
| | | |
| | | var reg, text_obj; |
| | | var item = this.get_folder_li(mbox); |
| | | mbox = String(mbox).toLowerCase().replace(this.identifier_expr, ''); |
| | |
| | | if (set_title && document.title) |
| | | { |
| | | var doc_title = String(document.title); |
| | | var new_title = ""; |
| | | |
| | | if (count && doc_title.match(reg)) |
| | | document.title = doc_title.replace(reg, '('+count+') '); |
| | | new_title = doc_title.replace(reg, '('+count+') '); |
| | | else if (count) |
| | | document.title = '('+count+') '+doc_title; |
| | | new_title = '('+count+') '+doc_title; |
| | | else |
| | | document.title = doc_title.replace(reg, ''); |
| | | new_title = doc_title.replace(reg, ''); |
| | | |
| | | this.set_pagetitle(new_title); |
| | | } |
| | | }; |
| | | |
| | |
| | | ctype = ctype_array[0]; |
| | | } |
| | | |
| | | if (request_obj.__lock) |
| | | this.set_busy(false); |
| | | |
| | | console.log(request_obj.get_text()); |
| | |
| | | } |
| | | |
| | | this.set_busy(true, 'checkingmail'); |
| | | var d = new Date(); |
| | | this.http_request('check-recent', '_t='+d.getTime()); |
| | | this.http_request('check-recent', '_t='+(new Date().getTime()), true); |
| | | }; |
| | | |
| | | |
| | |
| | | $unread_count = $IMAP->messagecount(NULL, 'UNSEEN', TRUE); |
| | | |
| | | $OUTPUT->set_env('messagecount', $count); |
| | | $OUTPUT->command('set_unread_count', $mbox_name, $unread_count); |
| | | $OUTPUT->command('set_unread_count', $mbox_name, $unread_count, true); |
| | | $OUTPUT->command('set_rowcount', rcmail_get_messagecount_text()); |
| | | $OUTPUT->command('set_quota', $IMAP->get_quota()); |
| | | |
| | |
| | | if (!$OUTPUT->ajax_call) |
| | | rcube_add_label('checkingmail', 'deletemessage', 'movemessagetotrash'); |
| | | |
| | | // set page title |
| | | if (empty($_action) || $_action == 'list') |
| | | $OUTPUT->set_pagetitle(rcube_charset_convert($IMAP->get_mailbox_name(), 'UTF-7')); |
| | | |
| | | |
| | | |
| | | // return the message list as HTML table |
| | |
| | | |
| | | // no messages in this mailbox |
| | | if (!sizeof($a_headers)) |
| | | { |
| | | $out .= sprintf('<tr><td colspan="%d">%s</td></tr>', |
| | | sizeof($a_show_cols)+2, |
| | | Q(rcube_label('nomessagesfound'))); |
| | | } |
| | | $OUTPUT->show_message('nomessagesfound', 'notice'); |
| | | |
| | | |
| | | $a_js_message_arr = array(); |
| | |
| | | // add message rows |
| | | if (isset($a_headers) && count($a_headers)) |
| | | rcmail_js_message_list($a_headers); |
| | | |
| | | else |
| | | $OUTPUT->show_message('nomessagesfound', 'notice'); |
| | | |
| | | // send response |
| | | $OUTPUT->send(); |
| | |
| | | $_SESSION['user_id']); |
| | | |
| | | if ($USER_DATA = $DB->fetch_assoc($sql_result)) |
| | | $OUTPUT->set_pagetitle(sprintf('%s %s@%s', rcube_label('settingsfor'), $USER_DATA['username'], $USER_DATA['mail_host'])); |
| | | { |
| | | $username = $USER_DATA['username'] . (!strpos($USER_DATA['username'], '@') ? '@'.$USER_DATA['mail_host'] : ''); |
| | | $OUTPUT->set_pagetitle(sprintf('%s %s', rcube_label('settingsfor'), $username)); |
| | | } |
| | | |
| | | |
| | | |