diff options
Diffstat (limited to 'Postman/Postman-Controller/PostmanDashboardWidgetController.php')
-rw-r--r-- | Postman/Postman-Controller/PostmanDashboardWidgetController.php | 161 |
1 files changed, 0 insertions, 161 deletions
diff --git a/Postman/Postman-Controller/PostmanDashboardWidgetController.php b/Postman/Postman-Controller/PostmanDashboardWidgetController.php deleted file mode 100644 index 8f6bae6..0000000 --- a/Postman/Postman-Controller/PostmanDashboardWidgetController.php +++ /dev/null @@ -1,161 +0,0 @@ -<?php -if ( ! defined( 'ABSPATH' ) ) { - exit; // Exit if accessed directly -} - -if (! class_exists ( "PostmanDashboardWidgetController" )) { - - // - class PostmanDashboardWidgetController { - private $rootPluginFilenameAndPath; - private $options; - private $authorizationToken; - private $wpMailBinder; - - /** - * Start up - */ - public function __construct($rootPluginFilenameAndPath, PostmanOptions $options, PostmanOAuthToken $authorizationToken, PostmanWpMailBinder $binder) { - assert ( ! empty ( $rootPluginFilenameAndPath ) ); - assert ( ! empty ( $options ) ); - assert ( ! empty ( $authorizationToken ) ); - assert ( ! empty ( $binder ) ); - $this->rootPluginFilenameAndPath = $rootPluginFilenameAndPath; - $this->options = $options; - $this->authorizationToken = $authorizationToken; - $this->wpMailBinder = $binder; - - add_action ( 'wp_dashboard_setup', array ( - $this, - 'addDashboardWidget' - ) ); - - add_action ( 'wp_network_dashboard_setup', array ( - $this, - 'addNetworkDashboardWidget' - ) ); - - // dashboard glance mod - if ($this->options->isMailLoggingEnabled ()) { - add_filter ( 'dashboard_glance_items', array ( - $this, - 'customizeAtAGlanceDashboardWidget' - ), 10, 1 ); - } - - // Postman API: register the human-readable plugin state - add_filter ( 'print_postman_status', array ( - $this, - 'print_postman_status' - ) ); - } - - /** - * Add a widget to the dashboard. - * - * This function is hooked into the 'wp_dashboard_setup' action below. - */ - public function addDashboardWidget() { - // only display to the widget to administrator - if (PostmanUtils::isAdmin ()) { - wp_add_dashboard_widget ( 'example_dashboard_widget', __ ( 'Postman SMTP', 'post-smtp' ), array ( - $this, - 'printDashboardWidget' - ) ); // Display function. - } - } - - /** - * Add a widget to the network dashboard - */ - public function addNetworkDashboardWidget() { - // only display to the widget to administrator - if (PostmanUtils::isAdmin ()) { - wp_add_dashboard_widget ( 'example_dashboard_widget', __ ( 'Postman SMTP', 'post-smtp' ), array ( - $this, - 'printNetworkDashboardWidget' - ) ); // Display function. - } - } - - /** - * Create the function to output the contents of our Dashboard Widget. - */ - public function printDashboardWidget() { - $goToSettings = sprintf ( '<a href="%s">%s</a>', PostmanUtils::getSettingsPageUrl (), __ ( 'Settings', 'post-smtp' ) ); - $goToEmailLog = sprintf ( '%s', _x ( 'Email Log', 'The log of Emails that have been delivered', 'post-smtp' ) ); - if ($this->options->isMailLoggingEnabled ()) { - $goToEmailLog = sprintf ( '<a href="%s">%s</a>', PostmanUtils::getEmailLogPageUrl (), $goToEmailLog ); - } - apply_filters ( 'print_postman_status', null ); - printf ( '<p>%s | %s</p>', $goToEmailLog, $goToSettings ); - } - - /** - * Print the human-readable plugin state - */ - public function print_postman_status() { - if (! PostmanPreRequisitesCheck::isReady ()) { - printf ( '<p><span style="color:red">%s</span></p>', __ ( 'Error: Postman is missing a required PHP library.', 'post-smtp' ) ); - } else if ($this->wpMailBinder->isUnboundDueToException ()) { - printf ( '<p><span style="color:red">%s</span></p>', __ ( 'Postman: wp_mail has been declared by another plugin or theme, so you won\'t be able to use Postman until the conflict is resolved.', 'post-smtp' ) ); - } else { - if ($this->options->getRunMode () != PostmanOptions::RUN_MODE_PRODUCTION) { - printf ( '<p><span style="background-color:yellow">%s</span></p>', __ ( 'Postman is in <em>non-Production</em> mode and is dumping all emails.', 'post-smtp' ) ); - } else if (PostmanTransportRegistry::getInstance ()->getSelectedTransport ()->isConfiguredAndReady ()) { - printf ( '<p class="wp-menu-image dashicons-before dashicons-email"> %s </p>', sprintf ( _n ( '<span style="color:green">Postman is configured</span> and has delivered <span style="color:green">%d</span> email.', '<span style="color:green">Postman is configured</span> and has delivered <span style="color:green">%d</span> emails.', PostmanState::getInstance ()->getSuccessfulDeliveries (), 'post-smtp' ), PostmanState::getInstance ()->getSuccessfulDeliveries () ) ); - } else { - printf ( '<p><span style="color:red">%s</span></p>', __ ( 'Postman is <em>not</em> configured and is mimicking out-of-the-box WordPress email delivery.', 'post-smtp' ) ); - } - $currentTransport = PostmanTransportRegistry::getInstance ()->getActiveTransport (); - $deliveryDetails = $currentTransport->getDeliveryDetails ( $this->options ); - printf ( '<p>%s</p>', $deliveryDetails ); - } - } - - /** - * Create the function to output the contents of our Dashboard Widget. - */ - public function printNetworkDashboardWidget() { - printf ( '<p class="wp-menu-image dashicons-before dashicons-email"> %s</p>', __ ( 'Postman is operating in per-site mode.', 'post-smtp' ) ); - } - - /** - * From http://www.hughlashbrooke.com/2014/02/wordpress-add-items-glance-widget/ - * http://coffeecupweb.com/how-to-add-custom-post-types-to-at-a-glance-dashboard-widget-in-wordpress/ - * - * @param mixed $items - * @return string - */ - function customizeAtAGlanceDashboardWidget($items = array()) { - // only modify the At-a-Glance for administrators - if (PostmanUtils::isAdmin ()) { - $post_types = array ( - PostmanEmailLogPostType::POSTMAN_CUSTOM_POST_TYPE_SLUG - ); - - foreach ( $post_types as $type ) { - - if (! post_type_exists ( $type )) - continue; - - $num_posts = wp_count_posts ( $type ); - - if ($num_posts) { - - $published = intval ( $num_posts->publish ); - $privated = intval ( $num_posts->private ); - $post_type = get_post_type_object ( $type ); - - $text = _n ( '%s ' . $post_type->labels->singular_name, '%s ' . $post_type->labels->name, $privated, 'post-smtp' ); - $text = sprintf ( $text, number_format_i18n ( $privated ) ); - - $items [] = sprintf ( '<a class="%1$s-count" href="%3$s">%2$s</a>', $type, $text, PostmanUtils::getEmailLogPageUrl () ) . "\n"; - } - } - - return $items; - } - } - } -}
\ No newline at end of file |