| | |
| | | if (!$attrib['id']) |
| | | $attrib['id'] = 'rcmprefsframe'; |
| | | |
| | | $attrib['name'] = $attrib['id']; |
| | | |
| | | $OUTPUT->set_env('contentframe', $attrib['name']); |
| | | $OUTPUT->set_env('blankpage', $attrib['src'] ? $OUTPUT->abs_url($attrib['src']) : 'program/blank.gif'); |
| | | |
| | | return html::iframe($attrib); |
| | | return $OUTPUT->frame($attrib, true); |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | $sections['general'] = array('id' => 'general', 'section' => rcube_label('uisettings')); |
| | | $sections['mailbox'] = array('id' => 'mailbox', 'section' => rcube_label('mailboxview')); |
| | | $sections['compose'] = array('id' => 'compose', 'section' => rcube_label('messagescomposition')); |
| | | $sections['mailview'] = array('id' => 'mailview','section' => rcube_label('messagesdisplaying')); |
| | | $sections['compose'] = array('id' => 'compose', 'section' => rcube_label('messagescomposition')); |
| | | $sections['addressbook'] = array('id' => 'addressbook','section' => rcube_label('addressbook')); |
| | | $sections['folders'] = array('id' => 'folders', 'section' => rcube_label('specialfolders')); |
| | | $sections['server'] = array('id' => 'server', 'section' => rcube_label('serversettings')); |
| | |
| | | |
| | | $blocks = array( |
| | | 'main' => array('name' => Q(rcube_label('mainoptions'))), |
| | | 'browser' => array('name' => Q(rcube_label('browseroptions'))), |
| | | ); |
| | | |
| | | // language selection |
| | |
| | | $select_timezone = new html_select(array('name' => '_timezone', 'id' => $field_id)); |
| | | $select_timezone->add(rcube_label('autodetect'), 'auto'); |
| | | |
| | | $now = new DateTime(); |
| | | $zones = array(); |
| | | foreach (DateTimeZone::listIdentifiers() as $i => $tzs) { |
| | | $tz = new DateTimeZone($tzs); |
| | | $date = new DateTime('2012-12-21', $tz); |
| | | $offset = $date->format('Z') + 45000; |
| | | $sortkey = sprintf('%06d.%s', $offset, $tzs); |
| | | $zones[$sortkey] = array($tzs, $date->format('P')); |
| | | try { |
| | | $tz = new DateTimeZone($tzs); |
| | | $date = new DateTime('2012-12-21', $tz); |
| | | $offset = $date->format('Z') + 45000; |
| | | $sortkey = sprintf('%06d.%s', $offset, $tzs); |
| | | $zones[$sortkey] = array($tzs, $date->format('P')); |
| | | } |
| | | catch (Exception $e) {} |
| | | } |
| | | |
| | | ksort($zones); |
| | |
| | | list($tzs, $offset) = $zone; |
| | | $select_timezone->add('(GMT ' . $offset . ') ' . strtr($tzs, '_', ' '), $tzs); |
| | | } |
| | | |
| | | if (is_numeric($config['timezone'])) |
| | | timezone_name_from_abbr("", $config['timezone'] * 3600, 0); |
| | | |
| | | $blocks['main']['options']['timezone'] = array( |
| | | 'title' => html::label($field_id, Q(rcube_label('timezone'))), |
| | |
| | | ); |
| | | } |
| | | |
| | | if (!isset($no_override['keep_alive'])) { |
| | | $field_id = 'rcmfd_keep_alive'; |
| | | $select_keep_alive = new html_select(array('name' => '_keep_alive', 'id' => $field_id)); |
| | | |
| | | $select_keep_alive->add(rcube_label('never'), 0); |
| | | foreach (array(1, 3, 5, 10, 15, 30, 60) as $min) { |
| | | if (!$config['min_keep_alive'] || $config['min_keep_alive'] <= $min * 60) { |
| | | $label = rcube_label(array('name' => 'everynminutes', 'vars' => array('n' => $min))); |
| | | $select_keep_alive->add($label, $min); |
| | | } |
| | | } |
| | | |
| | | $blocks['main']['options']['keep_alive'] = array( |
| | | 'title' => html::label($field_id, Q(rcube_label('refreshinterval'))), |
| | | 'content' => $select_keep_alive->show($config['keep_alive']/60), |
| | | ); |
| | | } |
| | | |
| | | // show drop-down for available skins |
| | | if (!isset($no_override['skin'])) { |
| | | $skins = rcmail_get_skins(); |
| | | |
| | | if (count($skins) > 1) { |
| | | $field_id = 'rcmfd_skin'; |
| | | $input_skin = new html_select(array('name'=>'_skin', 'id'=>$field_id)); |
| | | $input_skin = new html_radiobutton(array('name'=>'_skin')); |
| | | |
| | | foreach($skins as $skin) |
| | | $input_skin->add($skin, $skin); |
| | | $blocks['skin'] = array('name' => Q(rcube_label('skin')),); |
| | | |
| | | $blocks['main']['options']['skin'] = array( |
| | | 'title' => html::label($field_id, Q(rcube_label('skin'))), |
| | | 'content' => $input_skin->show($config['skin']), |
| | | ); |
| | | foreach($skins as $skin) { |
| | | $thumbnail = "./skins/$skin/thumbnail.png"; |
| | | if (!is_file($thumbnail)) |
| | | $thumbnail = './program/resources/blank.gif'; |
| | | |
| | | $skinname = ucfirst($skin); |
| | | $author_link = $license_link = ''; |
| | | $meta = @json_decode(@file_get_contents("./skins/$skin/meta.json"), true); |
| | | if (is_array($meta) && $meta['name']) { |
| | | $skinname = $meta['name']; |
| | | $author_link = $meta['url'] ? html::a(array('href' => $meta['url'], 'target' => '_blank'), Q($meta['author'])) : Q($meta['author']); |
| | | $license_link = $meta['license-url'] ? html::a(array('href' => $meta['license-url'], 'target' => '_blank'), Q($meta['license'])) : Q($meta['license']); |
| | | } |
| | | |
| | | $blocks['skin']['options'][$skin]['content'] = html::label(array('class' => 'skinselection'), |
| | | html::span('skinitem', $input_skin->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', html::span('skinname', Q($skinname)) . html::br() . |
| | | html::span('skinauthor', $author_link ? 'by ' . $author_link : '') . html::br() . |
| | | html::span('skinlicense', $license_link ? rcube_label('license').': ' . $license_link : '')) |
| | | ); |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | $RCMAIL->output->add_script(sprintf("%s.check_protocol_handler('%s', '#mailtoprotohandler');", |
| | | JS_OBJECT_NAME, JQ($product_name)), 'foot'); |
| | | |
| | | $blocks['browser']['options']['mailtoprotohandler'] = array( |
| | | 'content' => html::a(array( |
| | | 'href' => '#', |
| | | 'id' => 'mailtoprotohandler'), Q(rcube_label('mailtoprotohandler'))), |
| | | $blocks['browser'] = array( |
| | | 'name' => Q(rcube_label('browseroptions')), |
| | | 'options' => array('mailtoprotohandler' => array( |
| | | 'content' => html::a(array( |
| | | 'href' => '#', |
| | | 'id' => 'mailtoprotohandler'), Q(rcube_label('mailtoprotohandler'))), |
| | | )), |
| | | ); |
| | | |
| | | break; |
| | |
| | | 'content' => $input_pagesize->show($size ? $size : 50), |
| | | ); |
| | | } |
| | | |
| | | if (!isset($no_override['keep_alive'])) { |
| | | $field_id = 'rcmfd_keep_alive'; |
| | | $select_keep_alive = new html_select(array('name' => '_keep_alive', 'id' => $field_id)); |
| | | |
| | | foreach(array(1, 3, 5, 10, 15, 30, 60) as $min) |
| | | if((!$config['min_keep_alive'] || $config['min_keep_alive'] <= $min * 60) |
| | | && (!$config['session_lifetime'] || $config['session_lifetime'] > $min)) { |
| | | $select_keep_alive->add(rcube_label(array('name' => 'everynminutes', 'vars' => array('n' => $min))), $min); |
| | | } |
| | | |
| | | $blocks['new_message']['options']['keep_alive'] = array( |
| | | 'title' => html::label($field_id, Q(rcube_label('keepalive'))), |
| | | 'content' => $select_keep_alive->show($config['keep_alive']/60), |
| | | ); |
| | | } |
| | | |
| | | if (!isset($no_override['check_all_folders'])) { |
| | | $field_id = 'rcmfd_check_all_folders'; |
| | | $input_check_all = new html_checkbox(array('name' => '_check_all_folders', 'id' => $field_id, 'value' => 1)); |
| | |
| | | $blocks = array( |
| | | 'main' => array('name' => Q(rcube_label('mainoptions'))), |
| | | ); |
| | | |
| | | // show checkbox to open message view in new window |
| | | if (!isset($no_override['message_extwin'])) { |
| | | $field_id = 'rcmfd_message_extwin'; |
| | | $input_msgextwin = new html_checkbox(array('name' => '_message_extwin', 'id' => $field_id, 'value' => 1)); |
| | | |
| | | $blocks['main']['options']['message_extwin'] = array( |
| | | 'title' => html::label($field_id, Q(rcube_label('showinextwin'))), |
| | | 'content' => $input_msgextwin->show($config['message_extwin']?1:0), |
| | | ); |
| | | } |
| | | |
| | | // show checkbox for HTML/plaintext messages |
| | | if (!isset($no_override['prefer_html'])) { |
| | |
| | | 'sig' => array('name' => Q(rcube_label('signatureoptions'))), |
| | | ); |
| | | |
| | | // show checkbox to compose messages in a new window |
| | | if (!isset($no_override['compose_extwin'])) { |
| | | $field_id = 'rcmfdcompose_extwin'; |
| | | $input_compextwin = new html_checkbox(array('name' => '_compose_extwin', 'id' => $field_id, 'value' => 1)); |
| | | |
| | | $blocks['main']['options']['compose_extwin'] = array( |
| | | 'title' => html::label($field_id, Q(rcube_label('composeextwin'))), |
| | | 'content' => $input_compextwin->show($config['compose_extwin']?1:0), |
| | | ); |
| | | } |
| | | |
| | | if (!isset($no_override['htmleditor'])) { |
| | | $field_id = 'rcmfd_htmleditor'; |
| | | $select_htmleditor = new html_select(array('name' => '_htmleditor', 'id' => $field_id)); |
| | | $select_htmleditor->add(rcube_label('never'), 0); |
| | | $select_htmleditor->add(rcube_label('always'), 1); |
| | | $select_htmleditor->add(rcube_label('htmlonreply'), 2); |
| | | $select_htmleditor->add(rcube_label('htmlonreplyandforward'), 3); |
| | | |
| | | $blocks['main']['options']['htmleditor'] = array( |
| | | 'title' => html::label($field_id, Q(rcube_label('htmleditor'))), |
| | |
| | | ); |
| | | } |
| | | |
| | | if (!isset($no_override['top_posting'])) { |
| | | $field_id = 'rcmfd_top_posting'; |
| | | $select_replymode = new html_select(array('name' => '_top_posting', 'id' => $field_id, |
| | | 'onchange' => "\$('#rcmfd_sig_above').attr('disabled',this.selectedIndex==0)")); |
| | | if (!isset($no_override['reply_mode'])) { |
| | | $field_id = 'rcmfd_reply_mode'; |
| | | $select_replymode = new html_select(array('name' => '_reply_mode', 'id' => $field_id, |
| | | 'onchange' => "\$('#rcmfd_sig_above').attr('disabled',this.selectedIndex<2)")); |
| | | $select_replymode->add(rcube_label('replyempty'), -1); |
| | | $select_replymode->add(rcube_label('replybottomposting'), 0); |
| | | $select_replymode->add(rcube_label('replytopposting'), 1); |
| | | |
| | | $blocks['main']['options']['top_posting'] = array( |
| | | $blocks['main']['options']['reply_mode'] = array( |
| | | 'title' => html::label($field_id, Q(rcube_label('whenreplying'))), |
| | | 'content' => $select_replymode->show($config['top_posting']?1:0), |
| | | 'content' => $select_replymode->show(intval($config['reply_mode'])), |
| | | ); |
| | | } |
| | | |
| | |
| | | |
| | | if (!isset($no_override['sig_above'])) { |
| | | $field_id = 'rcmfd_sig_above'; |
| | | $select_sigabove = new html_select(array('name' => '_sig_above', 'id' => $field_id, 'disabled' => !$config['top_posting'])); |
| | | $select_sigabove = new html_select(array('name' => '_sig_above', 'id' => $field_id, 'disabled' => $config['reply_mode'] < 1)); |
| | | $select_sigabove->add(rcube_label('belowquote'), 0); |
| | | $select_sigabove->add(rcube_label('abovequote'), 1); |
| | | |
| | |
| | | $select_abook = new html_select(array('name' => '_default_addressbook', 'id' => $field_id)); |
| | | |
| | | foreach ($books as $book) { |
| | | $select_abook->add($book['name'], $book['id']); |
| | | $select_abook->add(html_entity_decode($book['name'], ENT_COMPAT, 'UTF-8'), $book['id']); |
| | | } |
| | | |
| | | $blocks['main']['options']['default_addressbook'] = array( |