Aleksander Machniak
2016-03-28 46f7b7096450939fe03c95aa81ce06ae4bfca89d
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').':&nbsp;' . $license_link : ''))
@@ -456,7 +462,7 @@
                $select->add($RCMAIL->gettext('autosend'), 1);
                $select->add($RCMAIL->gettext('autosendknown'), 3);
                $select->add($RCMAIL->gettext('autosendknownignore'), 4);
                $select->add($RCMAIL->gettext('ignore'), 2);
                $select->add($RCMAIL->gettext('ignorerequest'), 2);
                $blocks['main']['options']['mdn_requests'] = array(
                    'title'   => html::label($field_id, rcube::Q($RCMAIL->gettext('mdnrequests'))),
@@ -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);