diff options
Diffstat (limited to 'Postman/Postman-Configuration/PostmanConfigurationController.php')
-rw-r--r-- | Postman/Postman-Configuration/PostmanConfigurationController.php | 694 |
1 files changed, 345 insertions, 349 deletions
diff --git a/Postman/Postman-Configuration/PostmanConfigurationController.php b/Postman/Postman-Configuration/PostmanConfigurationController.php index 58d26d7..db63f6b 100644 --- a/Postman/Postman-Configuration/PostmanConfigurationController.php +++ b/Postman/Postman-Configuration/PostmanConfigurationController.php @@ -1,48 +1,48 @@ <?php -require_once ('PostmanRegisterConfigurationSettings.php'); +require_once( 'PostmanRegisterConfigurationSettings.php' ); class PostmanConfigurationController { const CONFIGURATION_SLUG = 'postman/configuration'; const CONFIGURATION_WIZARD_SLUG = 'postman/configuration_wizard'; - + // logging private $logger; private $options; private $settingsRegistry; - + // Holds the values to be used in the fields callbacks private $rootPluginFilenameAndPath; - + /** * Constructor * - * @param unknown $rootPluginFilenameAndPath + * @param unknown $rootPluginFilenameAndPath */ - public function __construct($rootPluginFilenameAndPath) { - assert ( ! empty ( $rootPluginFilenameAndPath ) ); - assert ( PostmanUtils::isAdmin () ); - assert ( is_admin () ); - - $this->logger = new PostmanLogger ( get_class ( $this ) ); + public function __construct( $rootPluginFilenameAndPath ) { + assert( ! empty( $rootPluginFilenameAndPath ) ); + assert( PostmanUtils::isAdmin() ); + assert( is_admin() ); + + $this->logger = new PostmanLogger( get_class( $this ) ); $this->rootPluginFilenameAndPath = $rootPluginFilenameAndPath; - $this->options = PostmanOptions::getInstance (); - $this->settingsRegistry = new PostmanSettingsRegistry (); - - PostmanUtils::registerAdminMenu ( $this, 'addConfigurationSubmenu' ); - PostmanUtils::registerAdminMenu ( $this, 'addSetupWizardSubmenu' ); - + $this->options = PostmanOptions::getInstance(); + $this->settingsRegistry = new PostmanSettingsRegistry(); + + PostmanUtils::registerAdminMenu( $this, 'addConfigurationSubmenu' ); + PostmanUtils::registerAdminMenu( $this, 'addSetupWizardSubmenu' ); + // hook on the init event - add_action ( 'init', array ( + add_action( 'init', array( $this, - 'on_init' + 'on_init', ) ); - + // initialize the scripts, stylesheets and form fields - add_action ( 'admin_init', array ( + add_action( 'admin_init', array( $this, - 'on_admin_init' + 'on_admin_init', ) ); } - + /** * Functions to execute on the init event * @@ -51,189 +51,187 @@ class PostmanConfigurationController { */ public function on_init() { // register Ajax handlers - new PostmanGetHostnameByEmailAjaxController (); - new PostmanManageConfigurationAjaxHandler (); - new PostmanImportConfigurationAjaxController ( $this->options ); + new PostmanGetHostnameByEmailAjaxController(); + new PostmanManageConfigurationAjaxHandler(); + new PostmanImportConfigurationAjaxController( $this->options ); } - + /** * Fires on the admin_init method */ public function on_admin_init() { - // - $this->registerStylesAndScripts (); - $this->settingsRegistry->on_admin_init (); + $this->registerStylesAndScripts(); + $this->settingsRegistry->on_admin_init(); } - + /** * Register and add settings */ private function registerStylesAndScripts() { - if ($this->logger->isTrace ()) { - $this->logger->trace ( 'registerStylesAndScripts()' ); + if ( $this->logger->isTrace() ) { + $this->logger->trace( 'registerStylesAndScripts()' ); } // register the stylesheet and javascript external resources - $pluginData = apply_filters ( 'postman_get_plugin_metadata', null ); - wp_register_script ( 'postman_manual_config_script', plugins_url ( 'Postman/Postman-Configuration/postman_manual_config.js', $this->rootPluginFilenameAndPath ), array ( + $pluginData = apply_filters( 'postman_get_plugin_metadata', null ); + wp_register_script( 'postman_manual_config_script', plugins_url( 'Postman/Postman-Configuration/postman_manual_config.js', $this->rootPluginFilenameAndPath ), array( PostmanViewController::JQUERY_SCRIPT, 'jquery_validation', - PostmanViewController::POSTMAN_SCRIPT + PostmanViewController::POSTMAN_SCRIPT, ), $pluginData ['version'] ); - wp_register_script ( 'postman_wizard_script', plugins_url ( 'Postman/Postman-Configuration/postman_wizard.js', $this->rootPluginFilenameAndPath ), array ( + wp_register_script( 'postman_wizard_script', plugins_url( 'Postman/Postman-Configuration/postman_wizard.js', $this->rootPluginFilenameAndPath ), array( PostmanViewController::JQUERY_SCRIPT, 'jquery_validation', 'jquery_steps_script', PostmanViewController::POSTMAN_SCRIPT, - 'sprintf' + 'sprintf', ), $pluginData ['version'] ); } - + /** */ private function addLocalizeScriptsToPage() { - $warning = __ ( 'Warning', Postman::TEXT_DOMAIN ); + $warning = __( 'Warning', Postman::TEXT_DOMAIN ); /* translators: where %s is the name of the SMTP server */ - wp_localize_script ( 'postman_wizard_script', 'postman_smtp_mitm', sprintf ( '%s: %s', $warning, __ ( 'connected to %1$s instead of %2$s.', Postman::TEXT_DOMAIN ) ) ); + wp_localize_script( 'postman_wizard_script', 'postman_smtp_mitm', sprintf( '%s: %s', $warning, __( 'connected to %1$s instead of %2$s.', Postman::TEXT_DOMAIN ) ) ); /* translators: where %d is a port number */ - wp_localize_script ( 'postman_wizard_script', 'postman_wizard_bad_redirect_url', __ ( 'You are about to configure OAuth 2.0 with an IP address instead of a domain name. This is not permitted. Either assign a real domain name to your site or add a fake one in your local host file.', Postman::TEXT_DOMAIN ) ); - + wp_localize_script( 'postman_wizard_script', 'postman_wizard_bad_redirect_url', __( 'You are about to configure OAuth 2.0 with an IP address instead of a domain name. This is not permitted. Either assign a real domain name to your site or add a fake one in your local host file.', Postman::TEXT_DOMAIN ) ); + // user input - wp_localize_script ( PostmanViewController::POSTMAN_SCRIPT, 'postman_input_sender_email', '#input_' . PostmanOptions::MESSAGE_SENDER_EMAIL ); - wp_localize_script ( PostmanViewController::POSTMAN_SCRIPT, 'postman_input_sender_name', '#input_' . PostmanOptions::MESSAGE_SENDER_NAME ); - wp_localize_script ( PostmanViewController::POSTMAN_SCRIPT, 'postman_port_element_name', '#input_' . PostmanOptions::PORT ); - wp_localize_script ( PostmanViewController::POSTMAN_SCRIPT, 'postman_hostname_element_name', '#input_' . PostmanOptions::HOSTNAME ); - + wp_localize_script( PostmanViewController::POSTMAN_SCRIPT, 'postman_input_sender_email', '#input_' . PostmanOptions::MESSAGE_SENDER_EMAIL ); + wp_localize_script( PostmanViewController::POSTMAN_SCRIPT, 'postman_input_sender_name', '#input_' . PostmanOptions::MESSAGE_SENDER_NAME ); + wp_localize_script( PostmanViewController::POSTMAN_SCRIPT, 'postman_port_element_name', '#input_' . PostmanOptions::PORT ); + wp_localize_script( PostmanViewController::POSTMAN_SCRIPT, 'postman_hostname_element_name', '#input_' . PostmanOptions::HOSTNAME ); + // the enc input - wp_localize_script ( PostmanViewController::POSTMAN_SCRIPT, 'postman_enc_for_password_el', '#input_enc_type_password' ); + wp_localize_script( PostmanViewController::POSTMAN_SCRIPT, 'postman_enc_for_password_el', '#input_enc_type_password' ); // these are the ids for the <option>s in the encryption <select> - // the password inputs - wp_localize_script ( PostmanViewController::POSTMAN_SCRIPT, 'postman_input_basic_username', '#input_' . PostmanOptions::BASIC_AUTH_USERNAME ); - wp_localize_script ( PostmanViewController::POSTMAN_SCRIPT, 'postman_input_basic_password', '#input_' . PostmanOptions::BASIC_AUTH_PASSWORD ); - + wp_localize_script( PostmanViewController::POSTMAN_SCRIPT, 'postman_input_basic_username', '#input_' . PostmanOptions::BASIC_AUTH_USERNAME ); + wp_localize_script( PostmanViewController::POSTMAN_SCRIPT, 'postman_input_basic_password', '#input_' . PostmanOptions::BASIC_AUTH_PASSWORD ); + // the auth input - wp_localize_script ( PostmanViewController::POSTMAN_SCRIPT, 'postman_redirect_url_el', '#input_oauth_redirect_url' ); - wp_localize_script ( PostmanViewController::POSTMAN_SCRIPT, 'postman_input_auth_type', '#input_' . PostmanOptions::AUTHENTICATION_TYPE ); - + wp_localize_script( PostmanViewController::POSTMAN_SCRIPT, 'postman_redirect_url_el', '#input_oauth_redirect_url' ); + wp_localize_script( PostmanViewController::POSTMAN_SCRIPT, 'postman_input_auth_type', '#input_' . PostmanOptions::AUTHENTICATION_TYPE ); + // the transport modules scripts - foreach ( PostmanTransportRegistry::getInstance ()->getTransports () as $transport ) { - $transport->enqueueScript (); + foreach ( PostmanTransportRegistry::getInstance()->getTransports() as $transport ) { + $transport->enqueueScript(); } // we need data from port test - PostmanConnectivityTestController::addLocalizeScriptForPortTest (); - + PostmanConnectivityTestController::addLocalizeScriptForPortTest(); + } - + /** * Register the Configuration screen */ public function addConfigurationSubmenu() { - $page = add_submenu_page ( null, sprintf ( __ ( '%s Setup', Postman::TEXT_DOMAIN ), __ ( 'Postman SMTP', Postman::TEXT_DOMAIN ) ), __ ( 'Postman SMTP', Postman::TEXT_DOMAIN ), Postman::MANAGE_POSTMAN_CAPABILITY_NAME, PostmanConfigurationController::CONFIGURATION_SLUG, array ( + $page = add_submenu_page( null, sprintf( __( '%s Setup', Postman::TEXT_DOMAIN ), __( 'Postman SMTP', Postman::TEXT_DOMAIN ) ), __( 'Postman SMTP', Postman::TEXT_DOMAIN ), Postman::MANAGE_POSTMAN_CAPABILITY_NAME, PostmanConfigurationController::CONFIGURATION_SLUG, array( $this, - 'outputManualConfigurationContent' + 'outputManualConfigurationContent', ) ); // When the plugin options page is loaded, also load the stylesheet - add_action ( 'admin_print_styles-' . $page, array ( + add_action( 'admin_print_styles-' . $page, array( $this, - 'enqueueConfigurationResources' + 'enqueueConfigurationResources', ) ); } - + /** */ function enqueueConfigurationResources() { - $this->addLocalizeScriptsToPage (); - wp_enqueue_style ( PostmanViewController::POSTMAN_STYLE ); - wp_enqueue_style ( 'jquery_ui_style' ); - wp_enqueue_script ( 'postman_manual_config_script' ); - wp_enqueue_script ( 'jquery-ui-tabs' ); + $this->addLocalizeScriptsToPage(); + wp_enqueue_style( PostmanViewController::POSTMAN_STYLE ); + wp_enqueue_style( 'jquery_ui_style' ); + wp_enqueue_script( 'postman_manual_config_script' ); + wp_enqueue_script( 'jquery-ui-tabs' ); } - + /** * Register the Setup Wizard screen */ public function addSetupWizardSubmenu() { - $page = add_submenu_page ( null, sprintf ( __ ( '%s Setup', Postman::TEXT_DOMAIN ), __ ( 'Postman SMTP', Postman::TEXT_DOMAIN ) ), __ ( 'Postman SMTP', Postman::TEXT_DOMAIN ), Postman::MANAGE_POSTMAN_CAPABILITY_NAME, PostmanConfigurationController::CONFIGURATION_WIZARD_SLUG, array ( + $page = add_submenu_page( null, sprintf( __( '%s Setup', Postman::TEXT_DOMAIN ), __( 'Postman SMTP', Postman::TEXT_DOMAIN ) ), __( 'Postman SMTP', Postman::TEXT_DOMAIN ), Postman::MANAGE_POSTMAN_CAPABILITY_NAME, PostmanConfigurationController::CONFIGURATION_WIZARD_SLUG, array( $this, - 'outputWizardContent' + 'outputWizardContent', ) ); // When the plugin options page is loaded, also load the stylesheet - add_action ( 'admin_print_styles-' . $page, array ( + add_action( 'admin_print_styles-' . $page, array( $this, - 'enqueueWizardResources' + 'enqueueWizardResources', ) ); } - + /** */ function enqueueWizardResources() { - $this->addLocalizeScriptsToPage (); - $this->importableConfiguration = new PostmanImportableConfiguration (); + $this->addLocalizeScriptsToPage(); + $this->importableConfiguration = new PostmanImportableConfiguration(); $startPage = 1; - if ($this->importableConfiguration->isImportAvailable ()) { + if ( $this->importableConfiguration->isImportAvailable() ) { $startPage = 0; } - wp_localize_script ( PostmanViewController::POSTMAN_SCRIPT, 'postman_setup_wizard', array ( - 'start_page' => $startPage + wp_localize_script( PostmanViewController::POSTMAN_SCRIPT, 'postman_setup_wizard', array( + 'start_page' => $startPage, ) ); - wp_enqueue_style ( 'jquery_steps_style' ); - wp_enqueue_style ( PostmanViewController::POSTMAN_STYLE ); - wp_enqueue_script ( 'postman_wizard_script' ); - wp_localize_script ( PostmanViewController::POSTMAN_SCRIPT, '$jq', 'jQuery.noConflict(true)' ); - $shortLocale = substr ( get_locale (), 0, 2 ); - if ($shortLocale != 'en') { - $url = plugins_url ( sprintf ( 'script/jquery-validate/localization/messages_%s.js', $shortLocale ), $this->rootPluginFilenameAndPath ); - wp_enqueue_script ( sprintf ( 'jquery-validation-locale-%s', $shortLocale ), $url ); + wp_enqueue_style( 'jquery_steps_style' ); + wp_enqueue_style( PostmanViewController::POSTMAN_STYLE ); + wp_enqueue_script( 'postman_wizard_script' ); + wp_localize_script( PostmanViewController::POSTMAN_SCRIPT, '$jq', 'jQuery.noConflict(true)' ); + $shortLocale = substr( get_locale(), 0, 2 ); + if ( $shortLocale != 'en' ) { + $url = plugins_url( sprintf( 'script/jquery-validate/localization/messages_%s.js', $shortLocale ), $this->rootPluginFilenameAndPath ); + wp_enqueue_script( sprintf( 'jquery-validation-locale-%s', $shortLocale ), $url ); } } - + /** */ public function outputManualConfigurationContent() { print '<div class="wrap">'; - - PostmanViewController::outputChildPageHeader ( __ ( 'Settings', Postman::TEXT_DOMAIN ), 'advanced_config' ); + + PostmanViewController::outputChildPageHeader( __( 'Settings', Postman::TEXT_DOMAIN ), 'advanced_config' ); print '<div id="config_tabs"><ul>'; - print sprintf ( '<li><a href="#account_config">%s</a></li>', __ ( 'Account', Postman::TEXT_DOMAIN ) ); - print sprintf ( '<li><a href="#message_config">%s</a></li>', __ ( 'Message', Postman::TEXT_DOMAIN ) ); - print sprintf ( '<li><a href="#logging_config">%s</a></li>', __ ( 'Logging', Postman::TEXT_DOMAIN ) ); - print sprintf ( '<li><a href="#advanced_options_config">%s</a></li>', __ ( 'Advanced', Postman::TEXT_DOMAIN ) ); + print sprintf( '<li><a href="#account_config">%s</a></li>', __( 'Account', Postman::TEXT_DOMAIN ) ); + print sprintf( '<li><a href="#message_config">%s</a></li>', __( 'Message', Postman::TEXT_DOMAIN ) ); + print sprintf( '<li><a href="#logging_config">%s</a></li>', __( 'Logging', Postman::TEXT_DOMAIN ) ); + print sprintf( '<li><a href="#advanced_options_config">%s</a></li>', __( 'Advanced', Postman::TEXT_DOMAIN ) ); print '</ul>'; print '<form method="post" action="options.php">'; // This prints out all hidden setting fields - settings_fields ( PostmanAdminController::SETTINGS_GROUP_NAME ); + settings_fields( PostmanAdminController::SETTINGS_GROUP_NAME ); print '<section id="account_config">'; - if (sizeof ( PostmanTransportRegistry::getInstance ()->getTransports () ) > 1) { - do_settings_sections ( 'transport_options' ); + if ( sizeof( PostmanTransportRegistry::getInstance()->getTransports() ) > 1 ) { + do_settings_sections( 'transport_options' ); } else { - printf ( '<input id="input_%2$s" type="hidden" name="%1$s[%2$s]" value="%3$s"/>', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::TRANSPORT_TYPE, PostmanSmtpModuleTransport::SLUG ); + printf( '<input id="input_%2$s" type="hidden" name="%1$s[%2$s]" value="%3$s"/>', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::TRANSPORT_TYPE, PostmanSmtpModuleTransport::SLUG ); } print '<div id="smtp_config" class="transport_setting">'; - do_settings_sections ( PostmanAdminController::SMTP_OPTIONS ); + do_settings_sections( PostmanAdminController::SMTP_OPTIONS ); print '</div>'; print '<div id="password_settings" class="authentication_setting non-oauth2">'; - do_settings_sections ( PostmanAdminController::BASIC_AUTH_OPTIONS ); + do_settings_sections( PostmanAdminController::BASIC_AUTH_OPTIONS ); print '</div>'; print '<div id="oauth_settings" class="authentication_setting non-basic">'; - do_settings_sections ( PostmanAdminController::OAUTH_AUTH_OPTIONS ); + do_settings_sections( PostmanAdminController::OAUTH_AUTH_OPTIONS ); print '</div>'; print '<div id="mandrill_settings" class="authentication_setting non-basic non-oauth2">'; - do_settings_sections ( PostmanMandrillTransport::MANDRILL_AUTH_OPTIONS ); + do_settings_sections( PostmanMandrillTransport::MANDRILL_AUTH_OPTIONS ); print '</div>'; print '<div id="sendgrid_settings" class="authentication_setting non-basic non-oauth2">'; - do_settings_sections ( PostmanSendGridTransport::SENDGRID_AUTH_OPTIONS ); + do_settings_sections( PostmanSendGridTransport::SENDGRID_AUTH_OPTIONS ); print '</div>'; print '</section>'; print '<section id="message_config">'; - do_settings_sections ( PostmanAdminController::MESSAGE_SENDER_OPTIONS ); - do_settings_sections ( PostmanAdminController::MESSAGE_FROM_OPTIONS ); - do_settings_sections ( PostmanAdminController::EMAIL_VALIDATION_OPTIONS ); - do_settings_sections ( PostmanAdminController::MESSAGE_OPTIONS ); - do_settings_sections ( PostmanAdminController::MESSAGE_HEADERS_OPTIONS ); + do_settings_sections( PostmanAdminController::MESSAGE_SENDER_OPTIONS ); + do_settings_sections( PostmanAdminController::MESSAGE_FROM_OPTIONS ); + do_settings_sections( PostmanAdminController::EMAIL_VALIDATION_OPTIONS ); + do_settings_sections( PostmanAdminController::MESSAGE_OPTIONS ); + do_settings_sections( PostmanAdminController::MESSAGE_HEADERS_OPTIONS ); print '</section>'; print '<section id="logging_config">'; - do_settings_sections ( PostmanAdminController::LOGGING_OPTIONS ); + do_settings_sections( PostmanAdminController::LOGGING_OPTIONS ); print '</section>'; /* * print '<section id="logging_config">'; @@ -241,133 +239,132 @@ class PostmanConfigurationController { * print '</section>'; */ print '<section id="advanced_options_config">'; - do_settings_sections ( PostmanAdminController::NETWORK_OPTIONS ); - do_settings_sections ( PostmanAdminController::ADVANCED_OPTIONS ); + do_settings_sections( PostmanAdminController::NETWORK_OPTIONS ); + do_settings_sections( PostmanAdminController::ADVANCED_OPTIONS ); print '</section>'; - submit_button (); + submit_button(); print '</form>'; print '</div>'; print '</div>'; } - + /** */ public function outputWizardContent() { // Set default values for input fields - $this->options->setMessageSenderEmailIfEmpty ( wp_get_current_user ()->user_email ); - $this->options->setMessageSenderNameIfEmpty ( wp_get_current_user ()->display_name ); - + $this->options->setMessageSenderEmailIfEmpty( wp_get_current_user()->user_email ); + $this->options->setMessageSenderNameIfEmpty( wp_get_current_user()->display_name ); + // construct Wizard print '<div class="wrap">'; - - PostmanViewController::outputChildPageHeader ( __ ( 'Setup Wizard', Postman::TEXT_DOMAIN ) ); - + + PostmanViewController::outputChildPageHeader( __( 'Setup Wizard', Postman::TEXT_DOMAIN ) ); + print '<form id="postman_wizard" method="post" action="options.php">'; - + // account tab - // message tab - printf ( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::PREVENT_MESSAGE_SENDER_EMAIL_OVERRIDE, $this->options->isPluginSenderEmailEnforced () ); - printf ( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::PREVENT_MESSAGE_SENDER_NAME_OVERRIDE, $this->options->isPluginSenderNameEnforced () ); - printf ( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::REPLY_TO, $this->options->getReplyTo () ); - printf ( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::FORCED_TO_RECIPIENTS, $this->options->getForcedToRecipients () ); - printf ( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::FORCED_CC_RECIPIENTS, $this->options->getForcedCcRecipients () ); - printf ( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::FORCED_BCC_RECIPIENTS, $this->options->getForcedBccRecipients () ); - printf ( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::ADDITIONAL_HEADERS, $this->options->getAdditionalHeaders () ); - printf ( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::DISABLE_EMAIL_VALIDAITON, $this->options->isEmailValidationDisabled () ); - + printf( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::PREVENT_MESSAGE_SENDER_EMAIL_OVERRIDE, $this->options->isPluginSenderEmailEnforced() ); + printf( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::PREVENT_MESSAGE_SENDER_NAME_OVERRIDE, $this->options->isPluginSenderNameEnforced() ); + printf( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::REPLY_TO, $this->options->getReplyTo() ); + printf( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::FORCED_TO_RECIPIENTS, $this->options->getForcedToRecipients() ); + printf( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::FORCED_CC_RECIPIENTS, $this->options->getForcedCcRecipients() ); + printf( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::FORCED_BCC_RECIPIENTS, $this->options->getForcedBccRecipients() ); + printf( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::ADDITIONAL_HEADERS, $this->options->getAdditionalHeaders() ); + printf( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::DISABLE_EMAIL_VALIDAITON, $this->options->isEmailValidationDisabled() ); + // logging tab - printf ( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::MAIL_LOG_ENABLED_OPTION, $this->options->getMailLoggingEnabled () ); - printf ( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::MAIL_LOG_MAX_ENTRIES, $this->options->getMailLoggingMaxEntries () ); - printf ( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::TRANSCRIPT_SIZE, $this->options->getTranscriptSize () ); - + printf( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::MAIL_LOG_ENABLED_OPTION, $this->options->getMailLoggingEnabled() ); + printf( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::MAIL_LOG_MAX_ENTRIES, $this->options->getMailLoggingMaxEntries() ); + printf( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::TRANSCRIPT_SIZE, $this->options->getTranscriptSize() ); + // advanced tab - printf ( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::CONNECTION_TIMEOUT, $this->options->getConnectionTimeout () ); - printf ( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::READ_TIMEOUT, $this->options->getReadTimeout () ); - printf ( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::LOG_LEVEL, $this->options->getLogLevel () ); - printf ( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::RUN_MODE, $this->options->getRunMode () ); - printf ( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::STEALTH_MODE, $this->options->isStealthModeEnabled () ); - printf ( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::TEMPORARY_DIRECTORY, $this->options->getTempDirectory () ); - + printf( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::CONNECTION_TIMEOUT, $this->options->getConnectionTimeout() ); + printf( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::READ_TIMEOUT, $this->options->getReadTimeout() ); + printf( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::LOG_LEVEL, $this->options->getLogLevel() ); + printf( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::RUN_MODE, $this->options->getRunMode() ); + printf( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::STEALTH_MODE, $this->options->isStealthModeEnabled() ); + printf( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]" value="%3$s" />', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::TEMPORARY_DIRECTORY, $this->options->getTempDirectory() ); + // display the setting text - settings_fields ( PostmanAdminController::SETTINGS_GROUP_NAME ); - + settings_fields( PostmanAdminController::SETTINGS_GROUP_NAME ); + // Wizard Step 0 - printf ( '<h5>%s</h5>', _x ( 'Import Configuration', 'Wizard Step Title', Postman::TEXT_DOMAIN ) ); + printf( '<h5>%s</h5>', _x( 'Import Configuration', 'Wizard Step Title', Postman::TEXT_DOMAIN ) ); print '<fieldset>'; - printf ( '<legend>%s</legend>', _x ( 'Import configuration from another plugin?', 'Wizard Step Title', Postman::TEXT_DOMAIN ) ); - printf ( '<p>%s</p>', __ ( 'If you had a working configuration with another Plugin, the Setup Wizard can begin with those settings.', Postman::TEXT_DOMAIN ) ); + printf( '<legend>%s</legend>', _x( 'Import configuration from another plugin?', 'Wizard Step Title', Postman::TEXT_DOMAIN ) ); + printf( '<p>%s</p>', __( 'If you had a working configuration with another Plugin, the Setup Wizard can begin with those settings.', Postman::TEXT_DOMAIN ) ); print '<table class="input_auth_type">'; - printf ( '<tr><td><input type="radio" id="import_none" name="input_plugin" value="%s" checked="checked"></input></td><td><label> %s</label></td></tr>', 'none', __ ( 'None', Postman::TEXT_DOMAIN ) ); - - if ($this->importableConfiguration->isImportAvailable ()) { - foreach ( $this->importableConfiguration->getAvailableOptions () as $options ) { - printf ( '<tr><td><input type="radio" name="input_plugin" value="%s"/></td><td><label> %s</label></td></tr>', $options->getPluginSlug (), $options->getPluginName () ); + printf( '<tr><td><input type="radio" id="import_none" name="input_plugin" value="%s" checked="checked"></input></td><td><label> %s</label></td></tr>', 'none', __( 'None', Postman::TEXT_DOMAIN ) ); + + if ( $this->importableConfiguration->isImportAvailable() ) { + foreach ( $this->importableConfiguration->getAvailableOptions() as $options ) { + printf( '<tr><td><input type="radio" name="input_plugin" value="%s"/></td><td><label> %s</label></td></tr>', $options->getPluginSlug(), $options->getPluginName() ); } } print '</table>'; print '</fieldset>'; - + // Wizard Step 1 - printf ( '<h5>%s</h5>', _x ( 'Sender Details', 'Wizard Step Title', Postman::TEXT_DOMAIN ) ); + printf( '<h5>%s</h5>', _x( 'Sender Details', 'Wizard Step Title', Postman::TEXT_DOMAIN ) ); print '<fieldset>'; - printf ( '<legend>%s</legend>', _x ( 'Who is the mail coming from?', 'Wizard Step Title', Postman::TEXT_DOMAIN ) ); - printf ( '<p>%s</p>', __ ( 'Enter the email address and name you\'d like to send mail as.', Postman::TEXT_DOMAIN ) ); - printf ( '<p>%s</p>', __ ( 'Please note that to prevent abuse, many email services will <em>not</em> let you send from an email address other than the one you authenticate with.', Postman::TEXT_DOMAIN ) ); - printf ( '<label for="postman_options[sender_email]">%s</label>', __ ( 'Email Address', Postman::TEXT_DOMAIN ) ); - print $this->settingsRegistry->from_email_callback (); + printf( '<legend>%s</legend>', _x( 'Who is the mail coming from?', 'Wizard Step Title', Postman::TEXT_DOMAIN ) ); + printf( '<p>%s</p>', __( 'Enter the email address and name you\'d like to send mail as.', Postman::TEXT_DOMAIN ) ); + printf( '<p>%s</p>', __( 'Please note that to prevent abuse, many email services will <em>not</em> let you send from an email address other than the one you authenticate with.', Postman::TEXT_DOMAIN ) ); + printf( '<label for="postman_options[sender_email]">%s</label>', __( 'Email Address', Postman::TEXT_DOMAIN ) ); + print $this->settingsRegistry->from_email_callback(); print '<br/>'; - printf ( '<label for="postman_options[sender_name]">%s</label>', __ ( 'Name', Postman::TEXT_DOMAIN ) ); - print $this->settingsRegistry->sender_name_callback (); + printf( '<label for="postman_options[sender_name]">%s</label>', __( 'Name', Postman::TEXT_DOMAIN ) ); + print $this->settingsRegistry->sender_name_callback(); print '</fieldset>'; - + // Wizard Step 2 - printf ( '<h5>%s</h5>', __ ( 'Outgoing Mail Server Hostname', Postman::TEXT_DOMAIN ) ); + printf( '<h5>%s</h5>', __( 'Outgoing Mail Server Hostname', Postman::TEXT_DOMAIN ) ); print '<fieldset>'; - foreach ( PostmanTransportRegistry::getInstance ()->getTransports () as $transport ) { - $transport->printWizardMailServerHostnameStep (); + foreach ( PostmanTransportRegistry::getInstance()->getTransports() as $transport ) { + $transport->printWizardMailServerHostnameStep(); } print '</fieldset>'; - + // Wizard Step 3 - printf ( '<h5>%s</h5>', __ ( 'Connectivity Test', Postman::TEXT_DOMAIN ) ); + printf( '<h5>%s</h5>', __( 'Connectivity Test', Postman::TEXT_DOMAIN ) ); print '<fieldset>'; - printf ( '<legend>%s</legend>', __ ( 'How will the connection to the mail server be established?', Postman::TEXT_DOMAIN ) ); - printf ( '<p>%s</p>', __ ( 'Your connection settings depend on what your email service provider offers, and what your WordPress host allows.', Postman::TEXT_DOMAIN ) ); - printf ( '<p id="connectivity_test_status">%s: <span id="port_test_status">%s</span></p>', __ ( 'Connectivity Test', Postman::TEXT_DOMAIN ), _x ( 'Ready', 'TCP Port Test Status', Postman::TEXT_DOMAIN ) ); - printf ( '<p class="ajax-loader" style="display:none"><img src="%s"/></p>', plugins_url ( 'postman-smtp/style/ajax-loader.gif' ) ); - printf ( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]">', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::TRANSPORT_TYPE ); - printf ( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]">', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::PORT ); - printf ( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]">', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::SECURITY_TYPE ); - printf ( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]">', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::AUTHENTICATION_TYPE ); + printf( '<legend>%s</legend>', __( 'How will the connection to the mail server be established?', Postman::TEXT_DOMAIN ) ); + printf( '<p>%s</p>', __( 'Your connection settings depend on what your email service provider offers, and what your WordPress host allows.', Postman::TEXT_DOMAIN ) ); + printf( '<p id="connectivity_test_status">%s: <span id="port_test_status">%s</span></p>', __( 'Connectivity Test', Postman::TEXT_DOMAIN ), _x( 'Ready', 'TCP Port Test Status', Postman::TEXT_DOMAIN ) ); + printf( '<p class="ajax-loader" style="display:none"><img src="%s"/></p>', plugins_url( 'post-smtp/style/ajax-loader.gif' ) ); + printf( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]">', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::TRANSPORT_TYPE ); + printf( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]">', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::PORT ); + printf( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]">', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::SECURITY_TYPE ); + printf( '<input type="hidden" id="input_%2$s" name="%1$s[%2$s]">', PostmanOptions::POSTMAN_OPTIONS, PostmanOptions::AUTHENTICATION_TYPE ); print '<p id="wizard_recommendation"></p>'; /* Translators: Where %1$s is the socket identifier and %2$s is the authentication type */ - printf ( '<p class="user_override" style="display:none"><label><span>%s:</span></label> <table id="user_socket_override" class="user_override"></table></p>', _x ( 'Socket', 'A socket is the network term for host and port together', Postman::TEXT_DOMAIN ) ); - printf ( '<p class="user_override" style="display:none"><label><span>%s:</span></label> <table id="user_auth_override" class="user_override"></table></p>', __ ( 'Authentication', Postman::TEXT_DOMAIN ) ); + printf( '<p class="user_override" style="display:none"><label><span>%s:</span></label> <table id="user_socket_override" class="user_override"></table></p>', _x( 'Socket', 'A socket is the network term for host and port together', Postman::TEXT_DOMAIN ) ); + printf( '<p class="user_override" style="display:none"><label><span>%s:</span></label> <table id="user_auth_override" class="user_override"></table></p>', __( 'Authentication', Postman::TEXT_DOMAIN ) ); print ('<p><span id="smtp_mitm" style="display:none; background-color:yellow"></span></p>') ; - $warning = __ ( 'Warning', Postman::TEXT_DOMAIN ); - $clearCredentialsWarning = __ ( 'This configuration option will send your authorization credentials in the clear.', Postman::TEXT_DOMAIN ); - printf ( '<p id="smtp_not_secure" style="display:none"><span style="background-color:yellow">%s: %s</span></p>', $warning, $clearCredentialsWarning ); + $warning = __( 'Warning', Postman::TEXT_DOMAIN ); + $clearCredentialsWarning = __( 'This configuration option will send your authorization credentials in the clear.', Postman::TEXT_DOMAIN ); + printf( '<p id="smtp_not_secure" style="display:none"><span style="background-color:yellow">%s: %s</span></p>', $warning, $clearCredentialsWarning ); print '</fieldset>'; - + // Wizard Step 4 - printf ( '<h5>%s</h5>', __ ( 'Authentication', Postman::TEXT_DOMAIN ) ); + printf( '<h5>%s</h5>', __( 'Authentication', Postman::TEXT_DOMAIN ) ); print '<fieldset>'; - printf ( '<legend>%s</legend>', __ ( 'How will you prove your identity to the mail server?', Postman::TEXT_DOMAIN ) ); - foreach ( PostmanTransportRegistry::getInstance ()->getTransports () as $transport ) { - $transport->printWizardAuthenticationStep (); + printf( '<legend>%s</legend>', __( 'How will you prove your identity to the mail server?', Postman::TEXT_DOMAIN ) ); + foreach ( PostmanTransportRegistry::getInstance()->getTransports() as $transport ) { + $transport->printWizardAuthenticationStep(); } print '</fieldset>'; - + // Wizard Step 5 - printf ( '<h5>%s</h5>', _x ( 'Finish', 'The final step of the Wizard', Postman::TEXT_DOMAIN ) ); + printf( '<h5>%s</h5>', _x( 'Finish', 'The final step of the Wizard', Postman::TEXT_DOMAIN ) ); print '<fieldset>'; - printf ( '<legend>%s</legend>', _x ( 'You\'re Done!', 'Wizard Step Title', Postman::TEXT_DOMAIN ) ); + printf( '<legend>%s</legend>', _x( 'You\'re Done!', 'Wizard Step Title', Postman::TEXT_DOMAIN ) ); print '<section>'; - printf ( '<p>%s</p>', __ ( 'Click Finish to save these settings, then:', Postman::TEXT_DOMAIN ) ); + printf( '<p>%s</p>', __( 'Click Finish to save these settings, then:', Postman::TEXT_DOMAIN ) ); print '<ul style="margin-left: 20px">'; - printf ( '<li class="wizard-auth-oauth2">%s</li>', __ ( 'Grant permission with the Email Provider for Postman to send email and', Postman::TEXT_DOMAIN ) ); - printf ( '<li>%s</li>', __ ( 'Send yourself a Test Email to make sure everything is working!', Postman::TEXT_DOMAIN ) ); + printf( '<li class="wizard-auth-oauth2">%s</li>', __( 'Grant permission with the Email Provider for Postman to send email and', Postman::TEXT_DOMAIN ) ); + printf( '<li>%s</li>', __( 'Send yourself a Test Email to make sure everything is working!', Postman::TEXT_DOMAIN ) ); print '</ul>'; print '</section>'; print '</fieldset>'; @@ -379,188 +376,187 @@ class PostmanConfigurationController { /** * * @author jasonhendriks - * */ class PostmanGetHostnameByEmailAjaxController extends PostmanAbstractAjaxHandler { const IS_GOOGLE_PARAMETER = 'is_google'; function __construct() { - parent::__construct (); - PostmanUtils::registerAjaxHandler ( 'postman_check_email', $this, 'getAjaxHostnameByEmail' ); + parent::__construct(); + PostmanUtils::registerAjaxHandler( 'postman_check_email', $this, 'getAjaxHostnameByEmail' ); } /** * This Ajax function retrieves the smtp hostname for a give e-mail address */ function getAjaxHostnameByEmail() { - $goDaddyHostDetected = $this->getBooleanRequestParameter ( 'go_daddy' ); - $email = $this->getRequestParameter ( 'email' ); - $d = new PostmanSmtpDiscovery ( $email ); - $smtp = $d->getSmtpServer (); - $this->logger->debug ( 'given email ' . $email . ', smtp server is ' . $smtp ); - $this->logger->trace ( $d ); - if ($goDaddyHostDetected && ! $d->isGoogle) { + $goDaddyHostDetected = $this->getBooleanRequestParameter( 'go_daddy' ); + $email = $this->getRequestParameter( 'email' ); + $d = new PostmanSmtpDiscovery( $email ); + $smtp = $d->getSmtpServer(); + $this->logger->debug( 'given email ' . $email . ', smtp server is ' . $smtp ); + $this->logger->trace( $d ); + if ( $goDaddyHostDetected && ! $d->isGoogle ) { // override with the GoDaddy SMTP server $smtp = 'relay-hosting.secureserver.net'; - $this->logger->debug ( 'detected GoDaddy SMTP server, smtp server is ' . $smtp ); + $this->logger->debug( 'detected GoDaddy SMTP server, smtp server is ' . $smtp ); } - $response = array ( + $response = array( 'hostname' => $smtp, self::IS_GOOGLE_PARAMETER => $d->isGoogle, 'is_go_daddy' => $d->isGoDaddy, - 'is_well_known' => $d->isWellKnownDomain + 'is_well_known' => $d->isWellKnownDomain, ); - $this->logger->trace ( $response ); - wp_send_json_success ( $response ); + $this->logger->trace( $response ); + wp_send_json_success( $response ); } } class PostmanManageConfigurationAjaxHandler extends PostmanAbstractAjaxHandler { function __construct() { - parent::__construct (); - PostmanUtils::registerAjaxHandler ( 'manual_config', $this, 'getManualConfigurationViaAjax' ); - PostmanUtils::registerAjaxHandler ( 'get_wizard_configuration_options', $this, 'getWizardConfigurationViaAjax' ); + parent::__construct(); + PostmanUtils::registerAjaxHandler( 'manual_config', $this, 'getManualConfigurationViaAjax' ); + PostmanUtils::registerAjaxHandler( 'get_wizard_configuration_options', $this, 'getWizardConfigurationViaAjax' ); } - + /** * Handle a Advanced Configuration request with Ajax * * @throws Exception */ function getManualConfigurationViaAjax() { - $queryTransportType = $this->getTransportTypeFromRequest (); - $queryAuthType = $this->getAuthenticationTypeFromRequest (); - $queryHostname = $this->getHostnameFromRequest (); - + $queryTransportType = $this->getTransportTypeFromRequest(); + $queryAuthType = $this->getAuthenticationTypeFromRequest(); + $queryHostname = $this->getHostnameFromRequest(); + // the outgoing server hostname is only required for the SMTP Transport // the Gmail API transport doesn't use an SMTP server - $transport = PostmanTransportRegistry::getInstance ()->getTransport ( $queryTransportType ); - if (! $transport) { - throw new Exception ( 'Unable to find transport ' . $queryTransportType ); + $transport = PostmanTransportRegistry::getInstance()->getTransport( $queryTransportType ); + if ( ! $transport ) { + throw new Exception( 'Unable to find transport ' . $queryTransportType ); } - + // create the response - $response = $transport->populateConfiguration ( $queryHostname ); + $response = $transport->populateConfiguration( $queryHostname ); $response ['referer'] = 'manual_config'; - + // set the display_auth to oauth2 if the transport needs it - if ($transport->isOAuthUsed ( $queryAuthType )) { + if ( $transport->isOAuthUsed( $queryAuthType ) ) { $response ['display_auth'] = 'oauth2'; - $this->logger->debug ( 'ajaxRedirectUrl answer display_auth:' . $response ['display_auth'] ); + $this->logger->debug( 'ajaxRedirectUrl answer display_auth:' . $response ['display_auth'] ); } - $this->logger->trace ( $response ); - wp_send_json_success ( $response ); + $this->logger->trace( $response ); + wp_send_json_success( $response ); } - + /** * Once the Port Tests have run, the results are analyzed. * The Transport place bids on the sockets and highest bid becomes the recommended * The UI response is built so the user may choose a different socket with different options. */ function getWizardConfigurationViaAjax() { - $this->logger->debug ( 'in getWizardConfiguration' ); - $originalSmtpServer = $this->getRequestParameter ( 'original_smtp_server' ); - $queryHostData = $this->getHostDataFromRequest (); - $sockets = array (); + $this->logger->debug( 'in getWizardConfiguration' ); + $originalSmtpServer = $this->getRequestParameter( 'original_smtp_server' ); + $queryHostData = $this->getHostDataFromRequest(); + $sockets = array(); foreach ( $queryHostData as $id => $datum ) { - array_push ( $sockets, new PostmanWizardSocket ( $datum ) ); + array_push( $sockets, new PostmanWizardSocket( $datum ) ); } - $this->logger->error ( $sockets ); - $userPortOverride = $this->getUserPortOverride (); - $userAuthOverride = $this->getUserAuthOverride (); - + $this->logger->error( $sockets ); + $userPortOverride = $this->getUserPortOverride(); + $userAuthOverride = $this->getUserAuthOverride(); + // determine a configuration recommendation - $winningRecommendation = $this->getWinningRecommendation ( $sockets, $userPortOverride, $userAuthOverride, $originalSmtpServer ); - if ($this->logger->isTrace ()) { - $this->logger->trace ( 'winning recommendation:' ); - $this->logger->trace ( $winningRecommendation ); + $winningRecommendation = $this->getWinningRecommendation( $sockets, $userPortOverride, $userAuthOverride, $originalSmtpServer ); + if ( $this->logger->isTrace() ) { + $this->logger->trace( 'winning recommendation:' ); + $this->logger->trace( $winningRecommendation ); } - + // create the reponse - $response = array (); - $configuration = array (); + $response = array(); + $configuration = array(); $response ['referer'] = 'wizard'; - if (isset ( $userPortOverride ) || isset ( $userAuthOverride )) { + if ( isset( $userPortOverride ) || isset( $userAuthOverride ) ) { $configuration ['user_override'] = true; } - - if (isset ( $winningRecommendation )) { - + + if ( isset( $winningRecommendation ) ) { + // create an appropriate (theoretical) transport - $transport = PostmanTransportRegistry::getInstance ()->getTransport ( $winningRecommendation ['transport'] ); - + $transport = PostmanTransportRegistry::getInstance()->getTransport( $winningRecommendation ['transport'] ); + // create user override menu - $overrideMenu = $this->createOverrideMenus ( $sockets, $winningRecommendation, $userPortOverride, $userAuthOverride ); - if ($this->logger->isTrace ()) { - $this->logger->trace ( 'override menu:' ); - $this->logger->trace ( $overrideMenu ); + $overrideMenu = $this->createOverrideMenus( $sockets, $winningRecommendation, $userPortOverride, $userAuthOverride ); + if ( $this->logger->isTrace() ) { + $this->logger->trace( 'override menu:' ); + $this->logger->trace( $overrideMenu ); } - + $queryHostName = $winningRecommendation ['hostname']; - if ($this->logger->isDebug ()) { - $this->logger->debug ( 'Getting scribe for ' . $queryHostName ); + if ( $this->logger->isDebug() ) { + $this->logger->debug( 'Getting scribe for ' . $queryHostName ); } - $generalConfig1 = $transport->populateConfiguration ( $queryHostName ); - $generalConfig2 = $transport->populateConfigurationFromRecommendation ( $winningRecommendation ); - $configuration = array_merge ( $configuration, $generalConfig1, $generalConfig2 ); + $generalConfig1 = $transport->populateConfiguration( $queryHostName ); + $generalConfig2 = $transport->populateConfigurationFromRecommendation( $winningRecommendation ); + $configuration = array_merge( $configuration, $generalConfig1, $generalConfig2 ); $response ['override_menu'] = $overrideMenu; $response ['configuration'] = $configuration; - if ($this->logger->isTrace ()) { - $this->logger->trace ( 'configuration:' ); - $this->logger->trace ( $configuration ); - $this->logger->trace ( 'response:' ); - $this->logger->trace ( $response ); + if ( $this->logger->isTrace() ) { + $this->logger->trace( 'configuration:' ); + $this->logger->trace( $configuration ); + $this->logger->trace( 'response:' ); + $this->logger->trace( $response ); } - wp_send_json_success ( $response ); + wp_send_json_success( $response ); } else { /* translators: where %s is the URL to the Connectivity Test page */ - $configuration ['message'] = sprintf ( __ ( 'Postman can\'t find any way to send mail on your system. Run a <a href="%s">connectivity test</a>.', Postman::TEXT_DOMAIN ), PostmanViewController::getPageUrl ( PostmanViewController::PORT_TEST_SLUG ) ); + $configuration ['message'] = sprintf( __( 'Postman can\'t find any way to send mail on your system. Run a <a href="%s">connectivity test</a>.', Postman::TEXT_DOMAIN ), PostmanViewController::getPageUrl( PostmanViewController::PORT_TEST_SLUG ) ); $response ['configuration'] = $configuration; - if ($this->logger->isTrace ()) { - $this->logger->trace ( 'configuration:' ); - $this->logger->trace ( $configuration ); + if ( $this->logger->isTrace() ) { + $this->logger->trace( 'configuration:' ); + $this->logger->trace( $configuration ); } - wp_send_json_error ( $response ); + wp_send_json_error( $response ); } } - + /** * // for each successful host/port combination * // ask a transport if they support it, and if they do at what priority is it * // configure for the highest priority you find * - * @param unknown $queryHostData + * @param unknown $queryHostData * @return unknown */ - private function getWinningRecommendation($sockets, $userSocketOverride, $userAuthOverride, $originalSmtpServer) { + private function getWinningRecommendation( $sockets, $userSocketOverride, $userAuthOverride, $originalSmtpServer ) { foreach ( $sockets as $socket ) { - $winningRecommendation = $this->getWin ( $socket, $userSocketOverride, $userAuthOverride, $originalSmtpServer ); - $this->logger->error ( $socket->label ); + $winningRecommendation = $this->getWin( $socket, $userSocketOverride, $userAuthOverride, $originalSmtpServer ); + $this->logger->error( $socket->label ); } return $winningRecommendation; } - + /** * - * @param PostmanSocket $socket - * @param unknown $userSocketOverride - * @param unknown $userAuthOverride - * @param unknown $originalSmtpServer + * @param PostmanSocket $socket + * @param unknown $userSocketOverride + * @param unknown $userAuthOverride + * @param unknown $originalSmtpServer * @return Ambigous <NULL, unknown, string> */ - private function getWin(PostmanWizardSocket $socket, $userSocketOverride, $userAuthOverride, $originalSmtpServer) { + private function getWin( PostmanWizardSocket $socket, $userSocketOverride, $userAuthOverride, $originalSmtpServer ) { static $recommendationPriority = - 1; static $winningRecommendation = null; $available = $socket->success; - if ($available) { - $this->logger->debug ( sprintf ( 'Asking for judgement on %s:%s', $socket->hostname, $socket->port ) ); - $recommendation = PostmanTransportRegistry::getInstance ()->getRecommendation ( $socket, $userAuthOverride, $originalSmtpServer ); - $recommendationId = sprintf ( '%s_%s', $socket->hostname, $socket->port ); + if ( $available ) { + $this->logger->debug( sprintf( 'Asking for judgement on %s:%s', $socket->hostname, $socket->port ) ); + $recommendation = PostmanTransportRegistry::getInstance()->getRecommendation( $socket, $userAuthOverride, $originalSmtpServer ); + $recommendationId = sprintf( '%s_%s', $socket->hostname, $socket->port ); $recommendation ['id'] = $recommendationId; - $this->logger->debug ( sprintf ( 'Got a recommendation: [%d] %s', $recommendation ['priority'], $recommendationId ) ); - if (isset ( $userSocketOverride )) { - if ($recommendationId == $userSocketOverride) { + $this->logger->debug( sprintf( 'Got a recommendation: [%d] %s', $recommendation ['priority'], $recommendationId ) ); + if ( isset( $userSocketOverride ) ) { + if ( $recommendationId == $userSocketOverride ) { $winningRecommendation = $recommendation; - $this->logger->debug ( sprintf ( 'User chosen socket %s is the winner', $recommendationId ) ); + $this->logger->debug( sprintf( 'User chosen socket %s is the winner', $recommendationId ) ); } - } elseif ($recommendation && $recommendation ['priority'] > $recommendationPriority) { + } elseif ( $recommendation && $recommendation ['priority'] > $recommendationPriority ) { $recommendationPriority = $recommendation ['priority']; $winningRecommendation = $recommendation; } @@ -568,82 +564,82 @@ class PostmanManageConfigurationAjaxHandler extends PostmanAbstractAjaxHandler { } return $winningRecommendation; } - + /** * - * @param unknown $queryHostData + * @param unknown $queryHostData * @return multitype: */ - private function createOverrideMenus($sockets, $winningRecommendation, $userSocketOverride, $userAuthOverride) { - $overrideMenu = array (); + private function createOverrideMenus( $sockets, $winningRecommendation, $userSocketOverride, $userAuthOverride ) { + $overrideMenu = array(); foreach ( $sockets as $socket ) { - $overrideItem = $this->createOverrideMenu ( $socket, $winningRecommendation, $userSocketOverride, $userAuthOverride ); - if ($overrideItem != null) { - $overrideMenu [$socket->id] = $overrideItem; + $overrideItem = $this->createOverrideMenu( $socket, $winningRecommendation, $userSocketOverride, $userAuthOverride ); + if ( $overrideItem != null ) { + $overrideMenu [ $socket->id ] = $overrideItem; } } - + // sort - krsort ( $overrideMenu ); - $sortedMenu = array (); + krsort( $overrideMenu ); + $sortedMenu = array(); foreach ( $overrideMenu as $menu ) { - array_push ( $sortedMenu, $menu ); + array_push( $sortedMenu, $menu ); } - + return $sortedMenu; } - + /** * - * @param PostmanWizardSocket $socket - * @param unknown $winningRecommendation - * @param unknown $userSocketOverride - * @param unknown $userAuthOverride + * @param PostmanWizardSocket $socket + * @param unknown $winningRecommendation + * @param unknown $userSocketOverride + * @param unknown $userAuthOverride */ - private function createOverrideMenu(PostmanWizardSocket $socket, $winningRecommendation, $userSocketOverride, $userAuthOverride) { - if ($socket->success) { - $transport = PostmanTransportRegistry::getInstance ()->getTransport ( $socket->transport ); - $this->logger->debug ( sprintf ( 'Transport %s is building the override menu for socket', $transport->getSlug () ) ); - $overrideItem = $transport->createOverrideMenu ( $socket, $winningRecommendation, $userSocketOverride, $userAuthOverride ); + private function createOverrideMenu( PostmanWizardSocket $socket, $winningRecommendation, $userSocketOverride, $userAuthOverride ) { + if ( $socket->success ) { + $transport = PostmanTransportRegistry::getInstance()->getTransport( $socket->transport ); + $this->logger->debug( sprintf( 'Transport %s is building the override menu for socket', $transport->getSlug() ) ); + $overrideItem = $transport->createOverrideMenu( $socket, $winningRecommendation, $userSocketOverride, $userAuthOverride ); return $overrideItem; } return null; } - + /** */ private function getTransportTypeFromRequest() { - return $this->getRequestParameter ( 'transport' ); + return $this->getRequestParameter( 'transport' ); } - + /** */ private function getHostnameFromRequest() { - return $this->getRequestParameter ( 'hostname' ); + return $this->getRequestParameter( 'hostname' ); } - + /** */ private function getAuthenticationTypeFromRequest() { - return $this->getRequestParameter ( 'auth_type' ); + return $this->getRequestParameter( 'auth_type' ); } - + /** */ private function getHostDataFromRequest() { - return $this->getRequestParameter ( 'host_data' ); + return $this->getRequestParameter( 'host_data' ); } - + /** */ private function getUserPortOverride() { - return $this->getRequestParameter ( 'user_port_override' ); + return $this->getRequestParameter( 'user_port_override' ); } - + /** */ private function getUserAuthOverride() { - return $this->getRequestParameter ( 'user_auth_override' ); + return $this->getRequestParameter( 'user_auth_override' ); } } class PostmanImportConfigurationAjaxController extends PostmanAbstractAjaxHandler { @@ -651,44 +647,44 @@ class PostmanImportConfigurationAjaxController extends PostmanAbstractAjaxHandle /** * Constructor * - * @param PostmanOptions $options + * @param PostmanOptions $options */ - function __construct(PostmanOptions $options) { - parent::__construct (); + function __construct( PostmanOptions $options ) { + parent::__construct(); $this->options = $options; - PostmanUtils::registerAjaxHandler ( 'import_configuration', $this, 'getConfigurationFromExternalPluginViaAjax' ); + PostmanUtils::registerAjaxHandler( 'import_configuration', $this, 'getConfigurationFromExternalPluginViaAjax' ); } - + /** * This function extracts configuration details form a competing SMTP plugin * and pushes them into the Postman configuration screen. */ function getConfigurationFromExternalPluginViaAjax() { - $importableConfiguration = new PostmanImportableConfiguration (); - $plugin = $this->getRequestParameter ( 'plugin' ); - $this->logger->debug ( 'Looking for config=' . $plugin ); - foreach ( $importableConfiguration->getAvailableOptions () as $this->options ) { - if ($this->options->getPluginSlug () == $plugin) { - $this->logger->debug ( 'Sending configuration response' ); - $response = array ( - PostmanOptions::MESSAGE_SENDER_EMAIL => $this->options->getMessageSenderEmail (), - PostmanOptions::MESSAGE_SENDER_NAME => $this->options->getMessageSenderName (), - PostmanOptions::HOSTNAME => $this->options->getHostname (), - PostmanOptions::PORT => $this->options->getPort (), - PostmanOptions::AUTHENTICATION_TYPE => $this->options->getAuthenticationType (), - PostmanOptions::SECURITY_TYPE => $this->options->getEncryptionType (), - PostmanOptions::BASIC_AUTH_USERNAME => $this->options->getUsername (), - PostmanOptions::BASIC_AUTH_PASSWORD => $this->options->getPassword (), - 'success' => true + $importableConfiguration = new PostmanImportableConfiguration(); + $plugin = $this->getRequestParameter( 'plugin' ); + $this->logger->debug( 'Looking for config=' . $plugin ); + foreach ( $importableConfiguration->getAvailableOptions() as $this->options ) { + if ( $this->options->getPluginSlug() == $plugin ) { + $this->logger->debug( 'Sending configuration response' ); + $response = array( + PostmanOptions::MESSAGE_SENDER_EMAIL => $this->options->getMessageSenderEmail(), + PostmanOptions::MESSAGE_SENDER_NAME => $this->options->getMessageSenderName(), + PostmanOptions::HOSTNAME => $this->options->getHostname(), + PostmanOptions::PORT => $this->options->getPort(), + PostmanOptions::AUTHENTICATION_TYPE => $this->options->getAuthenticationType(), + PostmanOptions::SECURITY_TYPE => $this->options->getEncryptionType(), + PostmanOptions::BASIC_AUTH_USERNAME => $this->options->getUsername(), + PostmanOptions::BASIC_AUTH_PASSWORD => $this->options->getPassword(), + 'success' => true, ); break; } } - if (! isset ( $response )) { - $response = array ( - 'success' => false + if ( ! isset( $response ) ) { + $response = array( + 'success' => false, ); } - wp_send_json ( $response ); + wp_send_json( $response ); } } |