Exemplo n.º 1
0
/**
 * Notifiy people that the audit has been completed
 *
 * @access public
 * @param mixed $audit_id   The id of the audit.
 * @param mixed $audit_name The name of the audit.
 * @return void
 */
function msa_notifiy_audit_is_completed($audit_id, $audit_name)
{
    // Check if we have data already saved.
    if (false === ($settings = get_option('msa_settings'))) {
        $settings = array();
    }
    // Set to the default admin email.
    if (!isset($settings['notification_emails'])) {
        $settings['notification_emails'] = get_option('admin_email');
    }
    // Send email.
    if ('' !== $settings['notification_emails']) {
        $site_name = bloginfo('description');
        if (!isset($site_name) || '' === $site_name) {
            $site_name = get_site_url();
        }
        $subject = $audit_name . __(' Completed for site: ', 'msa') . $site_name;
        $message = __('Your Audit has been completed for site: ', 'msa') . get_site_url() . "\r\n\r\n" . __('View: ', 'msa') . msa_get_single_audit_link($audit_id);
        $headers = '';
        // $headers .= "MIME-Version: 1.0\r\n";
        // $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
        $emails = apply_filters('msa_notify_emails', $settings['notification_emails'], $audit_id);
        $subject = apply_filters('msa_notify_subject', $subject, $audit_id);
        $message = apply_filters('msa_notify_message', $message, $audit_id);
        $headers = apply_filters('msa_notify_headers', $headers, $audit_id);
        $result = wp_mail($emails, $subject, $message, $headers);
    }
}
Exemplo n.º 2
0
/**
 * The Last Audit Panel Content
 *
 * @access public
 * @return string $output The HTML ouput of the last audit panel.
 */
function msa_dashboard_panel_last_audit_content()
{
    // Get the latest Audit.
    $audit_model = new MSA_Audits_Model();
    $audit = $audit_model->get_latest();
    if (isset($audit)) {
        $output = '<div class="msa-left-column">
			<div class="msa-left-column-content">
				<div class="msa-circle msa-circle-border msa-post-status-border-' . msa_get_score_status($audit['score']) . '">
				     <div class="msa-circle-inner">
				         <div class="msa-score-text msa-post-status-text-' . msa_get_score_status($audit['score']) . '">' . round(100 * $audit['score']) . '%</div>
				     </div>
				</div>
			</div>
		</div>';
        $output .= '<div class="msa-right-column">
			<div class="msa-right-column-content">
				<table class="wp-list-table widefat striped">
					<tbody>';
        $user = get_userdata($audit['user']);
        $output .= '<tr><td>' . __('Name', 'msa') . '</td> <td><a href="' . msa_get_single_audit_link($audit['id']) . '">' . $audit['name'] . '</a></td></tr>';
        $output .= '<tr><td>' . __('Created On', 'msa') . '</td> <td>' . date('M d Y, h:i:s', strtotime($audit['date'])) . '</td></tr>';
        $output .= '<tr><td>' . __('Number of Posts', 'msa') . '</td> <td>' . $audit['num_posts'] . '</td></tr>';
        $output .= '<tr><td>' . __('Created By', 'msa') . '</td> <td>' . $user->display_name . '</td></tr>';
        $output .= '</tbody>
				</table>
			</div>
		</div>';
    } else {
        $output = '<p>' . __('You do not have any audits yet.', 'msa') . ' <a href="' . get_admin_url() . 'admin.php?page=msa-all-audits">' . __('Create one now!', 'msa') . '</a></p>';
    }
    return $output;
}
        /**
         * Return the output for the Name column
         *
         * @access public
         * @param mixed $item The Audit.
         */
        public function column_name($item)
        {
            if (isset($item['status']) && 'in-progress' === $item['status']) {
                return apply_filters('msa_all_audits_table_column_name_extension', $item['name']);
            }
            if (!isset($item['extension'])) {
                $audit_model = new MSA_Audits_Model();
                $audit = $audit_model->get_data_from_id($item['id']);
                $condition = $audit['args']['conditions'];
                $actions = array();
                $actions['delete'] = '<a href="' . wp_nonce_url(get_admin_url() . 'admin.php?page=msa-all-audits&action=delete&audit=' . $item['id'], 'msa-delete-audit') . '">' . __('Delete', 'msa') . '</a>';
                $condition_modal = '<a href="#" class="msa-audit-conditions-button" data-id="' . $item['id'] . '">' . __('Conditions', 'msa') . '</a>
				<div class="msa-audit-conditions-modal" data-id="' . $item['id'] . '">
					<div class="msa-audit-conditions-modal-container">

						<h3 class="msa-audit-conditions-modal-heading">' . __('Conditions', 'msa') . '</h3>

						<div class="msa-audit-conditions">
							<table class="wp-list-table widefat striped fixed">

								<thead>
									<tr>
										<th scope="col">' . __('Name', 'msa') . '</th>
										<th scope="col">' . __('Weight', 'msa') . '</th>
										<th scope="col">' . __('Comparison', 'msa') . '</th>
										<th scope="col">' . __('Value', 'msa') . '</th>
										<th scope="col">' . __('Minimum', 'msa') . '</th>
										<th scope="col">' . __('Maximum', 'msa') . '</th>
									</tr>
								</thead>

								<tbody>';
                foreach (json_decode($audit['args']['conditions'], true) as $condition) {
                    $min = isset($condition['units']) ? $condition['min'] . ' ' . $condition['units'] : $condition['min'];
                    $max = isset($condition['units']) ? $condition['max'] . ' ' . $condition['units'] : $condition['max'];
                    if (1 === $condition['comparison']) {
                        $comparison = __('Greater Than', 'msa');
                        $max = '';
                    } else {
                        if (2 === $condition['comparison']) {
                            $comparison = __('Less Than', 'msa');
                            $min = '';
                        } else {
                            if (3 === $condition['comparison']) {
                                $comparison = __('In Between', 'msa');
                            }
                        }
                    }
                    $value = __('Pass or Fail', 'msa');
                    if (2 === $condition['value']) {
                        $value = __('Percentage', 'msa');
                    }
                    $condition_modal .= '<tr>
						<td>' . (isset($condition['name']) ? $condition['name'] : '') . '</td>
						<td>' . (isset($condition['weight']) ? $condition['weight'] : '') . '</td>
						<td>' . $comparison . '</td>
						<td>' . $value . '</td>
						<td>' . $min . '</td>
						<td>' . $max . '</td>
					</tr>';
                }
                $condition_modal .= '</tbody>
							</table>
						</div>
					</div>
				</div>';
                $actions['edit'] = $condition_modal;
                return apply_filters('msa_all_audits_table_column_name', sprintf('%1$s %2$s', '<a href="' . msa_get_single_audit_link($item['id']) . '">' . $item['name'] . '</a><small style="opacity:0.5;padding-left:4px;">id:(' . $item['id'] . ')</small>', $this->row_actions($actions)));
            }
            return apply_filters('msa_all_audits_table_column_name_extension', '<a href="' . $item['extension-link'] . '" target="_blank">' . $item['name'] . '</a>');
        }
Exemplo n.º 4
0
    $audit_id = sanitize_text_field(wp_unslash($_GET['audit']));
    // Input var okay.
    $audit_model = new MSA_Audits_Model();
    $audit = $audit_model->get_data_from_id($audit_id);
    $audit_posts_model = new MSA_Audit_Posts_Model();
    $audit_post = $audit_posts_model->get_data_from_id($audit_id, $post_id);
    $post = (object) $audit_post['post'];
    $data = $audit_post['data']['values'];
    $score = $audit_post['data']['score'];
    ?>

	<h1><?php 
    esc_attr_e('Post Audit Details', 'msa');
    ?>
		<a href="<?php 
    esc_attr_e(msa_get_single_audit_link($audit_id));
    ?>
" class="page-title-action"><?php 
    esc_attr_e('All Posts', 'msa');
    ?>
</a>
	</h1>

	<div class="msa-header msa-single-post">

		<div class="msa-column msa-header-column msa-header-score-wrap">
			<div class="msa-header-score-container">
				<div class="msa-header-post-score msa-post-status-bg msa-post-status-bg-<?php 
    esc_attr_e(msa_get_score_status($score['score']));
    ?>
">
Exemplo n.º 5
0
/**
 * Prints the box content.
 *
 * @access public
 * @param object $post A WP_Post obejct.
 * @return void
 */
function msa_meta_box_callback($post)
{
    // Get the latest audit.
    $audit_model = new MSA_Audits_Model();
    $audit = $audit_model->get_latest();
    // Check to see if we have an audit.
    if (isset($audit)) {
        $post_id = -1;
        if (isset($_GET['post'])) {
            // Input var okay.
            $post_id = sanitize_text_field(wp_unslash($_GET['post']));
            // Input var okay.
        }
        $audit = $audit_model->get_data_from_id($audit['id']);
        $audit_posts_model = new MSA_Audit_Posts_Model();
        $audit_post = $audit_posts_model->get_data_from_id($audit['id'], $post_id);
        if ($audit_post) {
            $post = (object) $audit_post['post'];
            $data = $audit_post['data']['values'];
            $score = $audit_post['data']['score'];
            $condition_categories = msa_get_condition_categories();
            $user = get_userdata($audit['user']);
            do_action('msa_before_post_meta_box', $audit['id'], $post_id);
            ?>
<div class="msa-post-meta-container msa-post-meta-audit-meta-attributes">
				<p class="msa-post-meta-attribute"><?php 
            esc_attr_e('Score: ', 'msa');
            ?>
</p>
				<p class="msa-post-meta-attribute"><?php 
            esc_attr_e('From Audit: ', 'msa');
            ?>
</p>
				<p class="msa-post-meta-attribute"><?php 
            esc_attr_e('Created On: ', 'msa');
            ?>
</p>
				<p class="msa-post-meta-attribute"><?php 
            esc_attr_e('Created By: ', 'msa');
            ?>
</p>
			</div>

			<div class="msa-post-meta-container msa-post-meta-audit-meta-values">
				<p class="msa-post-meta-value msa-post-status-bg msa-post-status-bg-<?php 
            esc_attr_e(msa_get_score_status($score['score']));
            ?>
"><?php 
            esc_attr_e(round($score['score'] * 100, 2));
            ?>
%</p>
				<p class="msa-post-meta-value"><a href="<?php 
            esc_attr_e(msa_get_single_audit_link($audit['id']));
            ?>
" target="_blank"><?php 
            esc_attr_e($audit['name']);
            ?>
</a></p>
				<p class="msa-post-meta-value"><?php 
            esc_attr_e(date('M j, Y', strtotime($audit['date'])));
            ?>
</p>
				<p class="msa-post-meta-value"><?php 
            esc_attr_e($user->display_name);
            ?>
</p>
			</div><?php 
            foreach ($condition_categories as $key => $condition_category) {
                ?>
<div class="postbox" id="<?php 
                esc_attr_e($key);
                ?>
" style="pointer-events: none;">
					<?php 
                echo apply_filters('msa_condition_category_content', $key, $post, $data, $score);
                // WPCS: XSS ok.
                ?>
				</div><?php 
            }
            do_action('msa_after_post_meta_box', $audit['id'], $post_id);
        }
    }
    wp_enqueue_style('msa-all-audits-css', MY_SITE_AUDIT_PLUGIN_URL . '/css/all-audits.css');
    wp_enqueue_style('msa-post-meta-css', MY_SITE_AUDIT_PLUGIN_URL . '/css/post-meta.css');
    wp_enqueue_style('msa-common-css', MY_SITE_AUDIT_PLUGIN_URL . '/css/common.css');
}
Exemplo n.º 6
0
/**
 * Hooks into the 'admin_print_scripts-$page' to inlcude the scripts for the all audits page
 *
 * @access public
 * @static
 * @return void
 */
function msa_all_audits_scripts()
{
    msa_include_default_styles();
    // Style.
    wp_enqueue_style('msa-all-audits-css', MY_SITE_AUDIT_PLUGIN_URL . '/css/all-audits.css');
    wp_enqueue_style('msa-fontawesome-css', MY_SITE_AUDIT_PLUGIN_URL . '/includes/font-awesome/css/font-awesome.min.css');
    wp_enqueue_style('msa-jquery-ui-css', MY_SITE_AUDIT_PLUGIN_URL . '/includes/jquery-datepicker/jquery-ui.min.css');
    wp_enqueue_style('msa-jquery-ui-theme-css', MY_SITE_AUDIT_PLUGIN_URL . '/includes/jquery-datepicker/jquery-ui.theme.min.css');
    wp_enqueue_style('msa-jquery-daterange-picker-css', MY_SITE_AUDIT_PLUGIN_URL . '/includes/jquery-daterange-picker/jquery.comiseo.daterangepicker.css');
    wp_enqueue_style('media-views');
    // Scripts.
    wp_enqueue_script('jquery');
    wp_enqueue_script('jquery-ui-core');
    wp_enqueue_script('jquery-ui-datepicker');
    wp_enqueue_script('msa-jquery-daterange-picker-js', MY_SITE_AUDIT_PLUGIN_URL . '/includes/jquery-daterange-picker/jquery.comiseo.daterangepicker.js', array('jquery', 'jquery-ui-core', 'jquery-ui-datepicker', 'jquery-ui-button', 'jquery-ui-tabs', 'jquery-ui-menu', 'jquery-ui-widget', 'msa-moment-js'));
    wp_enqueue_script('msa-moment-js', MY_SITE_AUDIT_PLUGIN_URL . '/includes/moment/moment.min.js');
    wp_enqueue_script('msa-all-audits-js', MY_SITE_AUDIT_PLUGIN_URL . '/js/all-audits.js');
    wp_localize_script('msa-all-audits-js', 'msa_all_audits_data', array('site_url' => get_site_url(), 'admin_url' => get_admin_url(), 'audit_page' => get_admin_url() . 'admin.php?page=msa-all-audits', 'add_post_to_audit_nonce' => wp_create_nonce('add_post_to_audit_nonce'), 'update_audit_score_nonce' => wp_create_nonce('update_audit_score_nonce'), 'get_post_ids_nonce' => wp_create_nonce('get_post_ids_nonce'), 'info' => __('Your Audit is now being created and you can monitor its status from the progress bar below.  Please <strong>DO NOT</strong> refresh this page as that will stop the audit. If you want to stop this audit for any reason, then click <a href="' . get_admin_url() . 'admin.php?page=msa-all-audits" class="msa-force-stop">Force Stop</a>.', 'msa'), 'success_message' => __('Your Audit has been created! See it ', 'msa')));
    if (false === ($show_columns = get_option('msa_show_columns_' . get_current_user_id()))) {
        $show_columns = array();
    }
    wp_enqueue_script('msa-single-audit-js', MY_SITE_AUDIT_PLUGIN_URL . '/js/single-audit.js');
    wp_localize_script('msa-single-audit-js', 'msaSingleAuditData', array('audit_page' => isset($_GET['audit']) ? msa_get_single_audit_link(wp_unslash($_GET['audit'])) : '', 'show_columns' => $show_columns, 'attribute_title' => __('Attributes', 'msa'), 'conditions' => msa_get_conditions(), 'show_column_nonce' => wp_create_nonce('msa_show_column'), 'condition_categories' => msa_get_condition_categories()));
    wp_enqueue_script('msa-single-post-js', MY_SITE_AUDIT_PLUGIN_URL . '/js/single-post.js');
}