function getMailBoxNodes($accounts_id, $folders_id) { $folders = toC_Email_Accounts_Admin::getSubscribedFolders($accounts_id, $folders_id); $nodes = array(); foreach ($folders as $folder) { $children = toC_Email_Accounts_Admin::getMailBoxNodes($accounts_id, $folder['folders_id']); $pos = strrpos($folder['folders_name'], $folder['delimiter']); if ($pos > 0 && $folder['delimiter'] != '') { $folders_name = substr($folder['folders_name'], $pos + 1); } else { $folders_name = $folder['folders_name']; } switch ($folder['folders_flag']) { case EMAIL_FOLDER_INBOX: $iconCls = 'icon-folder-inbox-record'; break; case EMAIL_FOLDER_SENTBOX: $iconCls = 'icon-folder-sent-record'; break; case EMAIL_FOLDER_DRAFT: $iconCls = 'icon-folder-drafts-record'; break; case EMAIL_FOLDER_TRASH: $iconCls = 'icon-folder-trash-record'; break; case EMAIL_FOLDER_SPAM: $iconCls = 'icon-folder-spam-record '; break; default: $iconCls = 'icon-folder-default-record '; } $unseen = toC_Email_Accounts_Admin::getNewMessagesAmount($accounts_id, $folder['folders_id']); if ($unseen > 0) { $text = '<b>' . $folders_name . ' (' . $unseen . ')' . '</b>'; } else { $text = $folders_name; } $node = array('id' => $accounts_id . '_' . $folder['folders_id'], 'text' => $text, 'name' => $folders_name, 'iconCls' => $iconCls, 'parent_id' => $folder['parent_id'], 'type' => 'folder'); if (sizeof($children) > 0) { $node['expanded'] = true; $node['children'] = $children; } else { $node['leaf'] = true; } $nodes[] = $node; } return $nodes; }
function saveAccount() { global $toC_Json, $osC_Language; $error = false; $feedback = ''; $accounts_id = isset($_REQUEST['accounts_id']) && !empty($_REQUEST['accounts_id']) ? $_REQUEST['accounts_id'] : null; $data['user_id'] = $_SESSION['admin']['id']; $data['accounts_name'] = isset($_REQUEST['accounts_name']) ? $_REQUEST['accounts_name'] : ''; $data['accounts_email'] = isset($_REQUEST['accounts_email']) ? $_REQUEST['accounts_email'] : ''; $data['signature'] = isset($_REQUEST['signature']) ? $_REQUEST['signature'] : ''; $data['type'] = $_REQUEST['type']; $data['host'] = $_REQUEST['host']; $data['port'] = $_REQUEST['port']; $data['username'] = $_REQUEST['username']; $data['password'] = $_REQUEST['password']; $data['sent'] = $_REQUEST['sent']; $data['drafts'] = $_REQUEST['drafts']; $data['trash'] = $_REQUEST['trash']; $data['save_copy_on_server'] = isset($_REQUEST['save_copy_on_server']) && $_REQUEST['save_copy_on_server'] == 'on' ? 1 : 0; $data['mbroot'] = isset($_REQUEST['mbroot']) ? imap::utf7_imap_encode($_REQUEST['mbroot']) : 'INBOX'; $data['use_ssl'] = isset($_REQUEST['use_ssl']) && $_REQUEST['use_ssl'] == 'on' ? 1 : 0; $data['novalidate_cert'] = isset($_REQUEST['novalidate_cert']) && $_REQUEST['novalidate_cert'] == 'on' ? 1 : 0; $data['examine_headers'] = isset($_REQUEST['examine_headers']) && $_REQUEST['examine_headers'] == 'on' ? 1 : 0; $data['use_system_mailer'] = isset($_REQUEST['use_system_mailer']) && $_REQUEST['use_system_mailer'] == 'on' ? 1 : 0; $data['smtp_host'] = isset($_REQUEST['smtp_host']) ? $_REQUEST['smtp_host'] : ''; $data['smtp_port'] = isset($_REQUEST['smtp_port']) ? $_REQUEST['smtp_port'] : 25; $data['smtp_encryption'] = isset($_REQUEST['smtp_encryption']) ? $_REQUEST['smtp_encryption'] : ''; $data['smtp_username'] = isset($_REQUEST['smtp_username']) ? $_REQUEST['smtp_username'] : ''; $data['smtp_password'] = isset($_REQUEST['smtp_password']) ? $_REQUEST['smtp_password'] : ''; if (toC_Email_Accounts_Admin::checkEmailAccount($data['username'], $accounts_id)) { $response = array('success' => false, 'feedback' => $osC_Language->get('ms_error_email_account_already_exist')); } else { if ($accounts_id == null) { $error_info = null; if (toC_Email_Accounts_Admin::checkEmailAccountOnSever($data, $error_info) === false) { $error = true; $response = array('success' => false, 'feedback' => sprintf($osC_Language->get('ms_error_connect_server_failed'), $error_info)); } } if ($error === false) { $accounts_id = toC_Email_Accounts_Admin::saveAccount($accounts_id, $data); $node = array('id' => $accounts_id, 'text' => $data['accounts_email'], 'iconCls' => 'icon-folder-account-record', 'expanded' => true, 'type' => 'account', 'children' => toC_Email_Accounts_Admin::getMailBoxNodes($accounts_id, 0), 'protocol' => $data['type']); $response = array('success' => true, 'feedback' => $osC_Language->get('ms_success_action_performed'), 'accounts_node' => $node); } } echo $toC_Json->encode($response); }