From 46f7b7096450939fe03c95aa81ce06ae4bfca89d Mon Sep 17 00:00:00 2001 From: Aleksander Machniak <alec@alec.pl> Date: Mon, 28 Mar 2016 06:51:43 -0400 Subject: [PATCH] Enable reply/reply-all/forward buttons also in preview frame of message/rfc822 --- program/steps/settings/func.inc | 78 ++++++++++++++++++++++++++++---------- 1 files changed, 57 insertions(+), 21 deletions(-) diff --git a/program/steps/settings/func.inc b/program/steps/settings/func.inc index f700e4f..087b70b 100644 --- a/program/steps/settings/func.inc +++ b/program/steps/settings/func.inc @@ -1,6 +1,6 @@ <?php -/* +/** +-----------------------------------------------------------------------+ | program/steps/settings/func.inc | | | @@ -220,7 +220,7 @@ foreach (DateTimeZone::listIdentifiers() as $i => $tzs) { try { $tz = new DateTimeZone($tzs); - $date = new DateTime('2012-12-21', $tz); + $date = new DateTime(date('Y') . '-12-21', $tz); $offset = $date->format('Z') + 45000; $sortkey = sprintf('%06d.%s', $offset, $tzs); $zones[$sortkey] = array($tzs, $date->format('P')); @@ -334,13 +334,10 @@ $input = new html_radiobutton(array('name'=>'_skin')); foreach ($skins as $skin) { - $thumbnail = "./skins/$skin/thumbnail.png"; - if (!is_file($thumbnail)) - $thumbnail = './program/resources/blank.gif'; - + $thumbnail = "skins/$skin/thumbnail.png"; $skinname = ucfirst($skin); $author_link = $license_link = ''; - $meta = @json_decode(@file_get_contents("./skins/$skin/meta.json"), true); + $meta = @json_decode(@file_get_contents(INSTALL_PATH . "skins/$skin/meta.json"), true); if (is_array($meta) && $meta['name']) { $skinname = $meta['name']; @@ -348,10 +345,19 @@ $license_link = $meta['license-url'] ? html::a(array('href' => $meta['license-url'], 'target' => '_blank', 'tabindex' => '-1'), rcube::Q($meta['license'])) : rcube::Q($meta['license']); } + $img = html::img(array( + 'src' => $thumbnail, + 'class' => 'skinthumbnail', + 'alt' => $skin, + 'width' => 64, + 'height' => 64, + 'onerror' => "this.src = rcmail.assets_path('program/resources/blank.gif')", + )); + $skinnames[] = mb_strtolower($skinname); $blocks['skin']['options'][$skin]['content'] = html::label(array('class' => 'skinselection'), html::span('skinitem', $input->show($config['skin'], array('value' => $skin, 'id' => $field_id.$skin))) . - html::span('skinitem', html::img(array('src' => $thumbnail, 'class' => 'skinthumbnail', 'alt' => $skin, 'width' => 64, 'height' => 64))) . + html::span('skinitem', $img) . html::span('skinitem', html::span('skinname', rcube::Q($skinname)) . html::br() . html::span('skinauthor', $author_link ? 'by ' . $author_link : '') . html::br() . html::span('skinlicense', $license_link ? $RCMAIL->gettext('license').': ' . $license_link : '')) @@ -494,11 +500,11 @@ $field_id = 'rcmfd_mail_pagesize'; $input = new html_inputfield(array('name' => '_mail_pagesize', 'id' => $field_id, 'size' => 5)); - $size = intval($config['mail_pagesize'] ? $config['mail_pagesize'] : $config['pagesize']); + $size = intval($config['mail_pagesize'] ?: $config['pagesize']); $blocks['main']['options']['pagesize'] = array( 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('pagesize'))), - 'content' => $input->show($size ? $size : 50), + 'content' => $input->show($size ?: 50), ); } @@ -666,9 +672,10 @@ $select = new html_select(array('name' => '_htmleditor', 'id' => $field_id)); $select->add($RCMAIL->gettext('never'), 0); - $select->add($RCMAIL->gettext('always'), 1); $select->add($RCMAIL->gettext('htmlonreply'), 2); $select->add($RCMAIL->gettext('htmlonreplyandforward'), 3); + $select->add($RCMAIL->gettext('always'), 1); + $select->add($RCMAIL->gettext('alwaysbutplain'), 4); $blocks['main']['options']['htmleditor'] = array( 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('htmleditor'))), @@ -742,7 +749,7 @@ ); } - if (!isset($no_override['dsn_default'])) { + if (!isset($no_override['dsn_default']) && $RCMAIL->config->get('smtp_server')) { if (!$current) { continue 2; } @@ -839,6 +846,20 @@ ); } + if (!isset($no_override['sig_below'])) { + if (!$current) { + continue 2; + } + + $field_id = 'rcmfd_sig_below'; + $input = new html_checkbox(array('name' => '_sig_below', 'id' => $field_id, 'value' => 1)); + + $blocks['sig']['options']['sig_below'] = array( + 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('sigbelow'))), + 'content' => $input->show($RCMAIL->config->get('sig_below') ? 1 : 0), + ); + } + if (!isset($no_override['strip_existing_sig'])) { if (!$current) { continue 2; @@ -850,6 +871,20 @@ $blocks['sig']['options']['strip_existing_sig'] = array( 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('replyremovesignature'))), 'content' => $input->show($config['strip_existing_sig']?1:0), + ); + } + + if (!isset($no_override['sig_separator'])) { + if (!$current) { + continue 2; + } + + $field_id = 'rcmfd_sig_separator'; + $input = new html_checkbox(array('name' => '_sig_separator', 'id' => $field_id, 'value' => 1)); + + $blocks['sig']['options']['sig_separator'] = array( + 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('sigseparator'))), + 'content' => $input->show($RCMAIL->config->get('sig_separator') ? 1 : 0), ); } @@ -1008,11 +1043,11 @@ $field_id = 'rcmfd_addressbook_pagesize'; $input = new html_inputfield(array('name' => '_addressbook_pagesize', 'id' => $field_id, 'size' => 5)); - $size = intval($config['addressbook_pagesize'] ? $config['addressbook_pagesize'] : $config['pagesize']); + $size = intval($config['addressbook_pagesize'] ?: $config['pagesize']); $blocks['main']['options']['pagesize'] = array( 'title' => html::label($field_id, rcube::Q($RCMAIL->gettext('pagesize'))), - 'content' => $input->show($size ? $size : 50), + 'content' => $input->show($size ?: 50), ); } @@ -1255,13 +1290,14 @@ unset($sections[$idx]); else $sections[$idx]['blocks'] = $data['blocks']; - } - $data = $RCMAIL->plugins->exec_hook('preferences_section_header', - array('section' => $sect['id'], 'header' => '', 'current' => $current)); + // allow plugins to add a header to each section + $data = $RCMAIL->plugins->exec_hook('preferences_section_header', + array('section' => $sect['id'], 'header' => '', 'current' => $current)); - if(!empty($data['header'])) { - $sections[$idx]['header'] = $data['header']; + if (!empty($data['header'])) { + $sections[$idx]['header'] = $data['header']; + } } return array($sections, $plugin['cols']); @@ -1368,8 +1404,8 @@ $button = $OUTPUT->button($action); $attr = $attrib; - $cmd = $action['action'] ? $action['action'] : $action['command']; - $id = $action['id'] ? $action['id'] : $cmd; + $cmd = $action['action'] ?: $action['command']; + $id = $action['id'] ?: $cmd; if (!empty($id)) { $attr['id'] = preg_replace('/[^a-z0-9]/i', '', $attrib['idprefix'] . $id); -- Gitblit v1.9.1