register_action('plugin.ispconfig3_spam', array($this, 'init_html')); $this->register_action('plugin.ispconfig3_spam.save', array($this, 'save')); $this->api->output->add_handler('spam_form', array($this, 'gen_form')); $this->api->output->add_handler('sectionname_spam', array($this, 'prefs_section_name')); $this->include_script('spam.js'); } function init_html() { $rcmail = rcmail::get_instance(); $rcmail->output->set_pagetitle($this->gettext('junk')); $rcmail->output->send('ispconfig3_spam.spam'); } function prefs_section_name() { return $this->gettext('junk'); } function save() { $rcmail = rcmail::get_instance(); $id = get_input_value('_id', RCUBE_INPUT_POST); $priority = strtolower(get_input_value('_priority', RCUBE_INPUT_POST)); if(!$id) { $client = new SoapClient(null, array('location' => $rcmail->config->get('soap_url').'index.php', 'uri' => $rcmail->config->get('soap_url'))); try { $session_id = $client->login($rcmail->config->get('remote_soap_user'),$rcmail->config->get('remote_soap_pass')); $mail_user = $client->mail_user_get($session_id, array('email' => $rcmail->user->data['username'])); $params = array( 'server_id' => $mail_user[0]['server_id'], 'priority' => $priority, 'policy_id' => '5', 'email' => $rcmail->user->data['username'], 'fullname' => $rcmail->user->data['username'], 'local' => 'Y'); $add = $client->mail_spamfilter_user_add($session_id, $mail_user[0]['sys_userid'], $params); $spam = $client->mail_spamfilter_user_get($session_id,$params); $rcmail->user->save_prefs(array('spamuser' => $spam[0]['id'])); $client->logout($session_id); $rcmail->output->command('display_message', $this->gettext('successfullysaved'), 'confirmation'); } catch (SoapFault $e) { $rcmail->output->command('display_message', 'Soap Error: '.$e->getMessage(), 'error'); } } else { $client = new SoapClient(null, array('location' => $rcmail->config->get('soap_url').'index.php', 'uri' => $rcmail->config->get('soap_url'))); try { $session_id = $client->login($rcmail->config->get('remote_soap_user'),$rcmail->config->get('remote_soap_pass')); $mail_user = $client->mail_user_get($session_id, array('email' => $rcmail->user->data['username'])); $params = array( 'server_id' => $mail_user[0]['server_id'], 'priority' => $priority, 'policy_id' => '5', 'email' => $rcmail->user->data['username'], 'fullname' => $rcmail->user->data['username'], 'local' => 'Y'); $update = $client->mail_spamfilter_user_update($session_id, $id, $mail_user[0]['sys_userid'], $params); $client->logout($session_id); $rcmail->output->command('display_message', $this->gettext('successfullysaved'), 'confirmation'); } catch (SoapFault $e) { $rcmail->output->command('display_message', 'Soap Error: '.$e->getMessage(), 'error'); } } $this->init_html(); } function gen_form() { $rcmail = rcmail::get_instance(); $user = $rcmail->user->get_prefs(); //get settings start $client = new SoapClient(null, array('location' => $rcmail->config->get('soap_url').'index.php', 'uri' => $rcmail->config->get('soap_url'))); try { $session_id = $client->login($rcmail->config->get('remote_soap_user'),$rcmail->config->get('remote_soap_pass')); $spam = $client->mail_spamfilter_user_get($session_id, array('id' => $user['spamuser'])); $client->logout($session_id); $priority = $spam[0]['priority']; if (empty($priority)) { $priority = 5; } } catch (SoapFault $e) { $rcmail->output->command('display_message', 'Soap Error: '.$e->getMessage(), 'error'); } /*get settings end*/ $rcmail->output->set_env('framed', true); // allow the following attributes to be added to the