rcmail_inst = rcmail::get_instance(); $this->load_config(); $this->add_texts('localization/', true); $this->soap = new SoapClient(null, array('location' => $this->rcmail_inst->config->get('soap_url').'index.php', 'uri' => $this->rcmail_inst->config->get('soap_url'))); $this->sections = array('general' => array('id' => 'general', 'section' => $this->gettext('acc_general')), 'pass' => array('id' => 'pass', 'section' => $this->gettext('acc_pass')), 'fetchmail' => array('id' => 'fetchmail','section' => $this->gettext('acc_fetchmail')), 'forward' => array('id' => 'forward', 'section' => $this->gettext('acc_forward')), 'autoreply' => array('id' => 'autoreply', 'section' => $this->gettext('acc_autoreply')), 'filter' => array('id' => 'filter','section' => $this->gettext('acc_filter')), 'wblist' => array('id' => 'wblist','section' => $this->gettext('acc_wblist')), 'spam' => array('id' => 'spam','section' => $this->gettext('junk'))); $this->register_action('plugin.ispconfig3_account', array($this, 'init_html')); $this->register_action('plugin.ispconfig3_account.show', array($this, 'init_html')); $this->include_script('account.js'); } function init_html() { $this->api->output->set_pagetitle($this->gettext('acc_acc')); if (rcmail::get_instance()->action == 'plugin.ispconfig3_account.show') { $this->api->output->add_handler('info', array($this, 'gen_form')); $this->api->output->add_handler('sectionname_acc', array($this, 'prefs_section_name')); $this->api->output->send('ispconfig3_account.general'); } else { $this->api->output->add_handler('accountlist', array($this, 'section_list')); $this->api->output->add_handler('accountframe', array($this, 'preference_frame')); $this->api->output->send('ispconfig3_account.account'); } } function load_config() { $config = $this->home.'/config/config.inc.php'; if(file_exists($config)) { if(!$this->rcmail_inst->config->load_from_file($config)) raise_error(array('code' => 527, 'type' => 'php', 'message' => "Failed to load config from $config"), true, false); } else if(file_exists($config . ".dist")) { if(!$this->rcmail_inst->config->load_from_file($config . '.dist')) raise_error(array('code' => 527, 'type' => 'php', 'message' => "Failed to load config from $config"), true, false); } } function preference_frame($attrib) { if (!$attrib['id']) $attrib['id'] = 'rcmaccountframe'; $attrib['name'] = $attrib['id']; $this->api->output->set_env('contentframe', $attrib['name']); $this->api->output->set_env('blankpage', $attrib['src'] ? $this->api->output->abs_url($attrib['src']) : 'program/blank.gif'); return html::iframe($attrib); } function section_list($attrib) { if (!strlen($attrib['id'])) $attrib['id'] = 'rcmaccountlist'; $sections = array(); $array = array('general'); $plugins = $this->rcmail_inst->config->get('plugins'); $plugins = array_flip($plugins); if (isset($plugins['ispconfig3_pass'])) array_push($array,'pass'); if (isset($plugins['ispconfig3_fetchmail'])) array_push($array,'fetchmail'); if (isset($plugins['ispconfig3_forward'])) array_push($array,'forward'); if (isset($plugins['ispconfig3_autoreply'])) array_push($array,'autoreply'); if (isset($plugins['ispconfig3_filter'])) array_push($array,'filter'); if (isset($plugins['ispconfig3_wblist'])) array_push($array,'wblist'); if (isset($plugins['ispconfig3_spam'])) array_push($array,'spam'); $blocks = $attrib['sections'] ? preg_split('/[\s,;]+/', strip_quotes($attrib['sections'])) : $array; foreach ($blocks as $block) $sections[$block] = $this->sections[$block]; $out = rcube_table_output($attrib, $sections, array('section'), 'id'); $this->rcmail_inst->output->add_gui_object('accountlist', $attrib['id']); $this->rcmail_inst->output->include_script('list.js'); return $out; } function prefs_section_name() { return $this->gettext('acc_general'); } function gen_form() { $this->rcmail_inst->output->set_env('framed', true); $out = '
\n"; $out .= '\n"; return $out; } } ?>