예제 #1
0
/**
 * Post Type Attribute options for the filters
 *
 * @access public
 * @param mixed $content  The un-filtered content.
 * @return mixed $content The filtered content.
 */
function msa_filter_attribute_post_type_options($content)
{
    $audit = -1;
    if (isset($_GET['audit'])) {
        // Input var okay.
        $audit = sanitize_text_field(wp_unslash($_GET['audit']));
        // Input var okay.
        // Get all the post types for this audit.
        $audit_model = new MSA_Audits_Model();
        $audit = $audit_model->get_data_from_id($audit);
        $form_fields = json_decode($audit['args']['form_fields'], true);
        foreach ($form_fields['post-types'] as $post_type) {
            $content[] = array('name' => ucfirst($post_type), 'value' => $post_type);
        }
    }
    return $content;
}
        /**
         * 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>');
        }
예제 #3
0
    }
    ?>

		</div>

	</div>

<?php 
} else {
    if (isset($_GET['audit']) && check_admin_referer('msa-single-audit')) {
        // Input var okay.
        $audit_id = sanitize_text_field(wp_unslash($_GET['audit']));
        // Input var okay.
        // Get the Audit.
        $audit_model = new MSA_Audits_Model();
        $audit = $audit_model->get_data_from_id($audit_id);
        $form_fields = json_decode($audit['args']['form_fields'], true);
        // Get the posts for an audit.
        $audit_posts_model = new MSA_Audit_Posts_Model();
        $posts = $audit_posts_model->get_data($audit_id);
        // Get all the current filters.
        $current_filters = '';
        $conditions = msa_get_conditions();
        $attributes = msa_get_attributes();
        foreach ($conditions as $key => $condition) {
            if (isset($condition['filter']['name']) && isset($_GET[$condition['filter']['name']])) {
                // Input var okay.
                $current_filters .= '&' . $condition['filter']['name'] . '=' . sanitize_text_field(wp_unslash($_GET[$condition['filter']['name']]));
                // Input var okay.
            }
        }
예제 #4
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');
}