Skip to content

Instantly share code, notes, and snippets.

@KZeni
Last active December 3, 2022 07:35
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save KZeni/3527cf84871589e6499fe7e9f3d1d3a5 to your computer and use it in GitHub Desktop.
Save KZeni/3527cf84871589e6499fe7e9f3d1d3a5 to your computer and use it in GitHub Desktop.
<?php
/*
Plugin - WP ADA Compliance Check
functions to support dipslay or reports and reference pages
*/
/**********************************************
REFRESH REPORT PAGE
********************************************/
function wp_ada_compliance_basic_refresh_report_page(){
check_ajax_referer('wp_rest', '_wpnonce');
wp_ada_compliance_basic_purge_records();
wp_ada_compliance_basic_report_page();
}
/********************************************
// display stats/error report
**********************************************/
function wp_ada_compliance_basic_report_page() {
global $wpdb, $wp_ada_compliance_basic_def;
// check cap allowed to edit settings
$settingsuser = get_option('wp_ada_compliance_basic_settingsusers','manage_options');
// check auto correct settings
$report_filtered_errors = get_option('wp_ada_compliance_basic_report_filtered_errors','scanonly');
// create pagination offset
$total = 0;
$per_page = get_option('wp_ada_compliance_basic_errors_per_page','15');
$page = isset( $_GET['cpage'] ) ? abs( (int) $_GET['cpage'] ) : 1;
if ($page > 1) {
$offset = $page * $per_page - $per_page;
} else {
$offset = 0;
}
//filter by view
if(isset($_GET['view']) and $_GET['view'] != '') {
$view = (int)$_GET['view'];
}
else {
$_GET['view'] = 1;
$view = 1;
}
//sort
if ( isset( $_GET[ 'sort' ] ) and $_GET[ 'sort' ] != "") {
if($_GET[ 'sort' ] == 1) {
$sort = 1;
$sortby = 'date desc';
}
if($_GET[ 'sort' ] == 2) {
$sort = 2;
$sortby = 'type asc';
}
if($_GET[ 'sort' ] == 3) {
$sort = 3;
$sortby = 'errorcode asc';
}
if($_GET[ 'sort' ] == 4) {
$sort = 4;
$sortby = 'ignre desc';
}
if($_GET[ 'sort' ] == 5) {
$sort = 5;
$sortby = 'posttitle asc';
}
if($_GET[ 'sort' ] == 6) {
$sort = 6;
$sortby = 'onsave desc';
}
} else {
$sort = 1;
$sortby = "date desc";
}
// filter by post type
if (isset( $_GET['type'])) {
$type = sanitize_text_field($_GET[ 'type' ]);
} else{
$_GET['type'] = "";
$type = "";
}
// filter by error code
if (isset( $_GET['errorw']) and !isset( $_GET['error'])) $_GET['error'] = $_GET['errorw'];
if (isset( $_GET['error'])) {
$error = sanitize_text_field($_GET[ 'error' ]);
} else $error = "";
// specific post
if ( isset( $_GET[ 'errorid' ] ) and $_GET[ 'errorid' ] != "") {
$errorid = ( int )$_GET[ 'errorid' ];
} else $errorid = "";
// filter by search
if (isset( $_GET['searchtitle'])) {
if(is_numeric($_GET['searchtitle'])) {
$errorid= (int)$_GET['searchtitle'];
$searchtitle = "";
}
else $searchtitle = sanitize_text_field($_GET['searchtitle']);
$_GET['searchtitle'] = sanitize_text_field($_GET['searchtitle']);
} else $searchtitle = "";
echo '<div class="wrap"><div class="wp_ada_compliance_basic_report postbox-container metabox-holder">';
if (current_user_can('activate_plugins') and !isset($_GET['iframe']) and get_option( 'wp_ada_compliance_basic_rateus' ) != 1 and !isset($_COOKIE["wp_ada_compliance_basic_rateus"]) and !isset($_GET['wpada_review'])) {
echo '<div class="wp-ada-reiewprompt"> ';
echo '<p> ';
echo __('Please take a moment to rate our plugin. <br />We would greatly appreciate your feedback!', 'wp-ada-compliance-basic');
echo '</p>';
echo '<a href="'.esc_url(get_site_url()).'/wp-admin/admin.php?page=ada_compliance/compliancereportbasic.php&wpada_review=1" class="button button-primary"><i class="fa fa-star" aria-hidden="true"></i> ';
echo __('Rate this Plugin', 'wp-ada-compliance-basic');
echo '</a>';
echo '<a href="'.esc_url(get_site_url()).'/wp-admin/admin.php?page=ada_compliance/compliancereportbasic.php&wpada_review=3" class="button button-secondary">';
echo __('No Thanks', 'wp-ada-compliance-basic');
echo '</a>';
echo '<a href="'.esc_url(get_site_url()).'/wp-admin/admin.php?page=ada_compliance/compliancereportbasic.php&wpada_review=2" class="button button-secondary">';
echo __('Remind Me Later', 'wp-ada-compliance-basic');
echo '</a>';
echo '</div>';
}
if (!isset($_GET['iframe'])){
// display system requirement issues and additional setup:
wp_ada_compliance_basic_check_server_requirements();
}
echo '<a id="adascrollbutton" aria-label="Top"></a>';
echo '<h1 class="wp-heading-inline">';
echo __('Web Accessibility Report: ', 'wp-ada-compliance-basic');
if($errorid != "") echo esc_html(get_the_title($errorid));
elseif($searchtitle != "") echo esc_html($searchtitle);
else echo esc_html(get_bloginfo('name'));
echo '</h1>';
if ($errorid != "" and isset($_GET['iframe'])) { // specific post
$query = "SELECT * FROM ".$wpdb->prefix."wp_ada_compliance_basic where siteid = %d and postid = %d and type = %s and onsave = %d ";
// hide if auto filter is turned off
if($report_filtered_errors == 'false') $query .= " and ignre != 2 ";
$query .= "order by ignre";
$results = $wpdb->get_results( $wpdb->prepare( $query, get_current_blog_id(), $errorid, $type, 1), ARRAY_A );
$title = get_the_title($errorid);
$showresults ="View=PostID: $errorid".'; ';
if($title != "") $showresults .= __('Title=','wp-ada-compliance-basic').$title.';';
}
else{
$showresults ="";
$query = 'SELECT * FROM '.$wpdb->prefix.'wp_ada_compliance_basic where siteid = %d ';
$queryVariablesMain[] = get_current_blog_id();
$totalquery = "SELECT count(id) FROM ".$wpdb->prefix."wp_ada_compliance_basic where siteid = %d ";
$queryVariablesTotal[] = get_current_blog_id();
// hide if auto filter is turned off
if($report_filtered_errors == 'false') $query .= " and ignre != 2 ";
if( $view == 1 ) { // current
$query .= " and ignre != %d ";
$totalquery .= " and ignre != %d";
$queryVariablesMain[] = 1;
$queryVariablesTotal[] = 1;
$showresults .= __(" View=Current; ",'wp-ada-compliance-basic');
}
if ( $view == 2 ) { // all
if($report_filtered_errors == 'false'){
$query .= " and ignre != %d ";
$totalquery .= " and ignre != %d";
$queryVariablesMain[] = 2;
$queryVariablesTotal[] = 2;
}
$showresults .= __(" View=All; ",'wp-ada-compliance-basic');
}
if ( $view == 3 ) { // ignored
$query .= " and ignre = %d ";
$totalquery .= " and ignre = %d";
$queryVariablesMain[] = 1;
$queryVariablesTotal[] = 1;
$showresults .=__(" View=Ignored; ",'wp-ada-compliance-basic');
}
if( $view == 4 ) { // auto corrected issues
$query .= " and ignre = %d ";
$totalquery .= " and ignre = %d";
$queryVariablesMain[] = 2;
$queryVariablesTotal[] = 2;
$showresults .= __(" View=Auto Corrected; ",'wp-ada-compliance-basic');
}
if ( $errorid != '' ) { // filter by post type
$query .= ' and postid = %d ';
$totalquery .= " and postid = %d ";
$queryVariablesMain[] = $errorid;
$queryVariablesTotal[] = $errorid;
$showresults = __(' View=PostID: ','wp-ada-compliance-basic').$errorid.';';
}
if ( $type != '' ) { // filter by post type
$query .= ' and ( type = %s)';
$totalquery .= ' and (type = %s)';
$queryVariablesMain[] = $type;
$queryVariablesTotal[] = $type;
$showresults .= __(' Post type=','wp-ada-compliance-basic').$type.'; ';
}
if ( $error != '' ) { // filter by error code
$query .= " and errorcode = %s ";
$totalquery .= " and errorcode = %s";
$queryVariablesTotal[] = $error;
$queryVariablesMain[] = $error;
$showresults .=__(' Error type=','wp-ada-compliance-basic').$error.'; ';
}
if ( $searchtitle != '' ) { // filter by post title
$query .= " and posttitle LIKE %s ";
$totalquery .= " and posttitle LIKE %s";
$queryVariablesTotal[] = '%'.$searchtitle.'%';
$queryVariablesMain[] = '%'.$searchtitle.'%';
$showresults .=__(' Title=','wp-ada-compliance-basic').$searchtitle.'; ';
}
$showresults .= __(' Sorted by=','wp-ada-compliance-basic').$sortby.';';
$query .= " order by $sortby limit %d offset %d";
$queryVariablesMain[] = $per_page;
$queryVariablesMain[] = $offset;
$total = $wpdb->get_var($wpdb->prepare($totalquery, $queryVariablesTotal));
$results = $wpdb->get_results( $wpdb->prepare($query, $queryVariablesMain), ARRAY_A );
// display error summary
if (isset($_COOKIE['hide-wp-ada-summary']) or (isset($_GET['displaysummary']) and $_GET['displaysummary'] == 0)) $hidesummary = 1;
if(isset($hidesummary))
echo '<button type="button" class="summary-dismiss"><i class="fa fa-toggle-off"></i> '.__('Show Summary','wp-ada-compliance').'</button>';
else
echo '<button type="button" class="summary-dismiss"><i class="fa fa-toggle-on"></i> '.__('Hide Summary','wp-ada-compliance').'</button>';
echo '<div class="postbox"';
if(isset($hidesummary)) echo ' style="display:none;" ';
echo'><h2 class="hndle" style="cursor:auto;">Scan Summary</h2><div class="inside">';
wp_ada_compliance_basic_error_summary($view, $type, $error, $searchtitle, $errorid);
echo '</div></div>';
}
if(!isset($_GET['iframe'])){ // specific post
echo '<div class="wp-ada-compliance-buttns">';
$current_cron_count = get_option('wp_ada_compliance_basic_cron_count','0');
if($current_cron_count != 0 and isset($_GET['startscan'])) {
echo '<a href="'.esc_url(get_site_url()).'/wp-admin/admin.php?page=ada_compliance/compliancereportbasic.php&startscan=1&scanmore=1&sort='.esc_attr($sort).'" class="startscan button button-primary"><i class="fa fa-forward" aria-hidden="true"></i> ';
_e('Scan More', 'wp-ada-compliance-basic');
echo '</a> ';
}
else{
echo '<a href="'.esc_url(get_site_url()).'/wp-admin/admin.php?page=ada_compliance/compliancereportbasic.php&startscan=1&sort='.esc_attr($sort).'" class="startscan button button-primary"><i class="fa fa-forward" aria-hidden="true"></i> ';
_e('Start Scan', 'wp-ada-compliance-basic');
echo '</a> ';
}
echo '<a href="'.esc_url(get_site_url()).'/wp-admin/admin.php?page=ada_compliance/compliancereportbasic.php&view='.esc_attr($view).'&type='.esc_attr($type).'&error='.esc_attr($error).'&errorid='.esc_attr($errorid).'&searchtitle='.esc_attr($searchtitle).'&refresh=1&sort='.esc_attr($sort).'" class="button button-secondary"><i class="fa fa-refresh" aria-hidden="true"></i> ';
_e('Refresh View', 'wp-ada-compliance-basic');
echo '</a> ';
if (current_user_can($settingsuser) ){
echo '<a href="'.esc_url(get_site_url()).'/wp-admin/admin.php?page=wp-ada-compliance-basic-admin" class="button button-secondary"><i class="fa fa-cog" aria-hidden="true"></i> ';
_e('Settings', 'wp-ada-compliance-basic');
echo '</a> ';
}
echo ' <a href="'.esc_url(get_site_url()).'/wp-admin/admin.php?page=ada_compliance/send-report.php&error='.esc_attr($error).'&type='.esc_attr($type).'&errorid='.esc_attr($errorid).'&searchtitle='.esc_attr($searchtitle).'&view='.esc_attr($view).'&iframe=1&TB_iframe=true&width=450&height=250" class="thickbox button button-secondary" name="'.__('Email this report.', 'wp-ada-compliance-basic').'"><i class="fa fa-envelope" aria-hidden="true"></i> '.__('Email', 'wp-ada-compliance-basic').'</a>';
echo ' <a href="'.esc_url(get_site_url()).'/wp-admin/admin.php?page=ada_compliance/print-report.php&error='.esc_attr($error).'&type='.esc_attr($type).'&errorid='.esc_attr($errorid).'&searchtitle='.esc_attr($searchtitle).'&view='.esc_attr($view).'&iframe=1&TB_iframe=true&width=450&height=250" class="thickbox button button-secondary" name="'.__('Print has started, close this window when the report completes.', 'wp-ada-compliance-basic').'"><i class="fa fa-print" aria-hidden="true"></i> '.__('Print', 'wp-ada-compliance-basic').'</a>';
echo '</div>';
// display dropdown filters
echo wp_ada_compliance_basic_dropdown_builder($showresults, $sort);
}
else{
echo ' <a href="'.esc_url(get_site_url()).'/wp-admin/admin.php?page=ada_compliance/print-report.php&error='.esc_attr($error).'&type='.esc_attr($type).'&errorid='.esc_attr($errorid).'&searchtitle='.esc_attr($searchtitle).'&view='.esc_attr($view).'&iframe=1&TB_iframe=true&width=450&height=250" class="thickbox button button-secondary"><i class="fa fa-print" aria-hidden="true"></i> '.__('Print', 'wp-ada-compliance-basic').'</a>';
}
// display scan started
echo '<p class="adashowingmessage adascanstarted wp_ada_compliance_basic_scanstatus"><span class="adaworking">&nbsp;</span> ';
_e('SCAN IN PROGRESS - Upgrade to the full version to enable deep scans which will scan your entire website. Deep scans will identify issues in theme files, shortcodes, widgets, archives and much more. The automatic scan feature will monitor your website for issues while you are offline and send detailed email reports. The full version has no limit on the number of pages or posts that may be scanned.','wp-ada-compliance-basic');
echo '</p>';
// display messages
if(isset($_SESSION['my_ada_important_notices'])) {
echo '<p class="wp_ada_compliance_notices">';
echo $_SESSION['my_ada_important_notices'];
unset($_SESSION['my_ada_important_notices']);
echo '</p>';
}
if (isset($_GET['startscan']) or $results) {
if(isset($_GET['scansingle'])) {
echo '<p class="adaoldmessage wp_ada_compliance_basic_scanstatus">';
if(isset($total) and $total == 0)
_e('SCAN IS COMPLETE: No issues were found!','wp-ada-compliance-basic');
else
_e('SCAN IS COMPLETE: Results are displayed in the report below.','wp-ada-compliance-basic');
echo '<br /><span class="ada_marketing_text">';
_e(' Upgrade to the full version to enable deep scans which will scan your entire website. Deep scans will identify issues in theme files, shortcodes, widgets, archives and much more. The automatic scan feature will monitor your website for issues while you are offline and send detailed email reports. The full version has no limit on the number of pages or posts that may be scanned.','wp-ada-compliance-basic');
echo '</span>';
echo '</p>';
}
if(isset($_GET['startscan']) and $current_cron_count == 0) {
echo '<p class="adaoldmessage wp_ada_compliance_basic_scanstatus">';
if(isset($_SESSION['wp_ada_compliance_message']) and $_SESSION['wp_ada_compliance_message'] != ""){
echo esc_html($_SESSION['wp_ada_compliance_message']);
}else{
_e('SCAN IS COMPLETE: A maximum of 25 items were scanned and errors are displayed below.','wp-ada-compliance-basic');
echo '<br /><span class="ada_marketing_text">';
_e(' Upgrade to the full version to remove the scan limit and enable deep scans which will check your entire website. Deep scans will identify issues in theme files, shortcodes, widgets, archives and much more. The automatic scan feature will monitor your website for issues while you are offline and send detailed email reports. The full version has no limit on the number of pages or posts that may be scanned.','wp-ada-compliance-basic');
echo '</span>';
}
echo '</p>';
}
elseif(isset($_GET['startscan'])){
echo '<p class="adaoldmessage wp_ada_compliance_basic_scanstatus">';
echo esc_html($_SESSION['scanpercent']);
_e('% ','wp-ada-compliance-basic');
_e(' COMPLETE: Based on your scan settings all posts were not scanned in the initial scan. Click “SCAN MORE” to continue. ','wp-ada-compliance-basic');
echo '</p>';
}
if ( $results){
//display the pagination
$pagination = paginate_links(array(
'base' => add_query_arg('cpage', '%#%'),
'format' => '',
'prev_text' => __('&laquo;'),
'next_text' => __('&raquo;'),
'total' => ceil($total / $per_page),
'current' => $page,
));
$pagination = '<div class="tablenav"><div class="tablenav-pages"><span class="pagination-links">'.str_replace('page-numbers','button button-disabled',str_replace('<a ','<a class="button button-secondary" ',$pagination)).'</span></div></div>';
if(isset($_GET['startscan'])){
echo '<p class="wp_ada_light_red">';
_e('You may have issues in your theme files. Upgrade to the full version to enable deep scans which will scan your theme files, shortcodes, widgets, archives, stylesheets and much more. The full version also corrects many issues automatically including: new window links, empty tags, redundant ALT text and more.','wp-ada-compliance-basic');
echo '</p>';
}
if($pagination != "") echo $pagination;
echo '<table class="ada_error wp-list-table widefat fixed striped"><thead><tr>';
echo '<th scope="column" style="width:15%;">';
_e('Title', 'wp-ada-compliance-basic');
echo '</th>';
echo '<th scope="column" style="width:6%;">';
_e('Content Type', 'wp-ada-compliance-basic');
echo '</th>';
echo '<th scope="column" style="width:10%;">';
_e('Error Type', 'wp-ada-compliance-basic');
echo '</th>';
echo '<th scope="column" style="width:49%;">';
_e('Error', 'wp-ada-compliance-basic');
echo '</th>';
echo '<th scope="column" class="printhidden" style="width:10%;">';
_e('Effected Code', 'wp-ada-compliance-basic');
echo '</th>';
echo '<th scope="column" class="printhidden wp_ada_action_column" style="width:10%;">';
_e('Actions', 'wp-ada-compliance-basic');
echo '</th></tr></thead><tbody>';
foreach ( $results as $row ) {
echo '<tr class="errorid'.esc_attr($row['errorcode']).'-'.md5($row['object']).' errorid'. esc_attr($row['id']) .' ruleid_'.esc_attr($row['errorcode']).'">';
echo '<td>';
if(!isset($_GET['iframe'])){ // hide in iframe
echo '<a href="'.esc_url(get_site_url()).'/wp-admin/admin.php?page=ada_compliance/compliancereportbasic.php&view='. esc_attr($view).'&type='.esc_attr($type).'&error='.esc_attr($error).'&errorid='.esc_attr($errorid).'&searchtitle='.esc_attr($row['posttitle']).'&refresh=1&sort='.esc_attr($sort).'" title="'.__('filter results on this title', 'wp-ada-compliance-basic').'">';
printf(__('%s', 'wp-ada-compliance-basic'), esc_html($row['posttitle']));
echo '</a>';
}
else printf(__('%s', 'wp-ada-compliance-basic'), esc_html($row['posttitle']));
echo '<br /><span class="adaIgnored ignore'.esc_attr($row['id']).' ignore-'.esc_attr($row['errorcode']).'-'.md5($row['object']);
echo '"';
if($row['ignre'] != 1) echo ' style="display:none;" ';
echo '>';
_e('** being ignored', 'wp-ada-compliance');
echo '</span>';
if($row['ignre'] == 2) {
echo '<br /><span class="adaIgnored" title="';
_e('Upgrade to the full version to automatically correct this issue.','wp-ada-compliance-basic');
echo '">';
_e('** upgrade to auto correct this issue!', 'wp-ada-compliance-basic');
echo '</span>';
}
echo '</td>';
echo '<td>';
printf(__('%s', 'wp-ada-compliance-basic'), esc_html($row['type']));
echo '</td>';
echo '<td>';
printf(__('%s', 'wp-ada-compliance-basic'), str_replace("_", " ", esc_html($row['errorcode'])));
echo '</td>';
echo '<td class="printfixedwidth">';
if(strstr($wp_ada_compliance_basic_def[$row['errorcode']]['DisplayError'],"WARNING")) echo '<i class="fa fa-ban" aria-hidden="true"></i>';
elseif(strstr($wp_ada_compliance_basic_def[$row['errorcode']]['DisplayError'],"ALERT")) echo '<i class="fa fa-exclamation-circle" aria-hidden="true"></i>';
printf(__('%s', 'wp-ada-compliance-basic'), esc_html($wp_ada_compliance_basic_def[$row['errorcode']]['StoredError']));
echo '</div>';
// display error references
if(is_array($wp_ada_compliance_basic_def)){
if($wp_ada_compliance_basic_def[$row['errorcode']]['Reference'] != "") echo ' <a href="'.esc_url($wp_ada_compliance_basic_def[$row['errorcode']]['ReferenceURL']).'" target="_blank" class="adaNewWindowInfo">'.esc_html($wp_ada_compliance_basic_def[$row['errorcode']]['Reference']).' <i class="fa fa-external-link" aria-hidden="true"><span class="wp_ada_hidden">'.__('opens in a new window', 'wp-ada-compliance-basic').'</span></i></a>';
echo '<div class="adaHelpLinkToggle"><a href="#" class="adaHelpLinkToggle adaHelpLink viewHelp' . esc_attr($row['id']) . '"><i class="fa fa-question-circle" aria-hidden="true"></i> '.__('HELP', 'wp-ada-compliance-basic').'</a>';
echo '<div class="adaHelpText helptext' . esc_attr($row['id']) . '">'.$wp_ada_compliance_basic_def[$row['errorcode']]['HelpINSTR'];
if($wp_ada_compliance_basic_def[$row['errorcode']]['HelpURL'] != "") echo ' <a href="'.esc_url($wp_ada_compliance_basic_def[$row['errorcode']]['HelpURL']).'" target="_blank" class="adaViewbar adaNewWindowInfo">'.__('More Help', 'wp-ada-compliance-basic').' <i class="fa fa-external-link" aria-hidden="true"><span class="wp_ada_hidden">'.__('opens in a new window', 'wp-ada-compliance-basic').'</span></i></a>';
echo '</div>';
}
echo '</td>';
echo '<td class="printfixedwidth">';
echo '<span class="viewCode'.esc_attr($row['id']).' adaViewCode"><a href="#TB_inline?width=800&inlineId=code'.esc_attr($row['id']).'" class="thickbox button button-secondary"><i class="fa fa-eye" aria-hidden="true"></i>';
_e('View Code','wp-ada-compliance-basic');
echo '</a></span>';
echo '<div class="adaEffectedCode code'.esc_attr($row['id']).'" id="code'.esc_attr($row['id']).'"><code>'.wp_ada_compliance_basic_filter_autoplay_av_tags(esc_html($row['object']), "1").'</code>';
$trustedtags = '<p>,<br />,<a>,<img>,<h1>,<h2>,<h3>,<h4>,<h5>,<h6>,<input>,<map>,<area>,<audio>,<video>,<pre>';
if(stristr($row['object'],'<table')) {
$row['object'] = wp_ada_compliance_basic_close_unclosed_tables($row['object']);
$trustedtags .= ',<table>,<tr>,<td>,<th>,<tbody>,<thead>';
}
echo '<br /><code>'.strip_tags($row['object'],$trustedtags).'</code>';
if($row['examplecode'] != "") {
echo '<br /><code>'.strip_tags($row['examplecode'],'<div>').'</code>';
}
echo '</div>';
echo '</td>';
echo '<td class="wp_ada_action_column printhidden"> ';
echo '<div><a href="#" class="button button-secondary wp-ada-ignore-options-click wp-ada-ignore-options-click'.esc_attr($row['id']).'"><i class="fa fa-cog" aria-hidden="true"></i>Ignore</a>';
echo '<span class="wp-ada-ignore-options wp-ada-ignore-options'.esc_attr($row['id']).'">';
if($row['ignre'] != 1){
// ignore this instance
echo' <a href="'.esc_url(get_site_url()).'/wp-admin/admin.php?page=ada_compliance/compliancereportbasic.php&wpada_ignore='.esc_attr($row['id']).'&sort='.esc_attr($sort).'&view='.esc_attr($view).'&type='.esc_attr($type).'&error='.esc_attr($error).'&errorid='.esc_attr($errorid).'&searchtitle='.esc_attr($searchtitle);
if(isset($_GET['iframe'])) echo '&iframe=1';
echo '" title="'.__('Ignore this instance of the error.','wp-ada-compliance-basic').'" id="wpadaignore_'.esc_attr($row['id']).'_'.esc_attr($row['ignre']).'" class="button button-secondary wp_ada_compliance_basic_ignoreerror addignore"><i class="fa fa-eye-slash" aria-hidden="true"></i>';
_e('This Error','wp-ada-compliance-basic');
echo '</a><br />';
}
if($row['ignre'] == 1){
echo' <a href="'.esc_url(get_site_url()).'/wp-admin/admin.php?page=ada_compliance/compliancereportbasic.php&wpada_ignore='.esc_attr($row['id']).'&sort='.esc_attr($sort).'&canxignore=1&view='.esc_attr($view).'&type='.esc_attr($type).'&error='.esc_attr($error).'&errorid='.esc_attr($errorid).'&searchtitle='.esc_attr($searchtitle);
if(isset($_GET['iframe'])) echo '&iframe=1';
echo'" title="'.__('Remove ignore from this error instance.','wp-ada-compliance-basic').'" id="wpadaignore_'.esc_attr($row['id']).'_'.esc_attr($row['ignre']).'" class="button button-secondary wp_ada_compliance_basic_ignoreerror removeignore"><i class="fa fa-times-circle"></i>';
_e('This Error','wp-ada-compliance-basic');
echo '</a><br />';
}
// if(!isset($_GET['iframe'])){ // hide in iframe
if (current_user_can($settingsuser) ){
echo '<a href="'.esc_url(get_site_url()).'/wp-admin/admin.php?page=ada_compliance/compliancereportbasic.php&wpada_ignore_rule='.esc_attr($row['errorcode']).'&type='.esc_attr($type).'&view='.esc_attr($view).'&sort='.esc_attr($sort).'&errorid='.esc_attr($errorid).'&searchtitle='.esc_attr($searchtitle).'" title="'.__('Remove this error from the results as well as future scans.','wp-ada-compliance-basic').'" id="wpadaignorerule|'.esc_attr($row['id']).'|'.esc_attr($row['errorcode']).'" class="button button-secondary wp_ada_compliance_basic_ignorerule"><i class="fa fa-tasks" aria-hidden="true"></i>';
_e('This Rule','wp-ada-compliance-basic');
echo '</a>';
// }
}
echo '</span>';
echo '</div>';
// display edit options
if(!isset($_GET['iframe'])){ // hide in iframe
echo '<a href="'.esc_url(get_site_url()).'/wp-admin/admin.php?page=ada_compliance/compliancereportbasic.php&scansingle=1&errorid='.esc_attr($row['id']).'&sort='.esc_attr($sort).'&type='.esc_attr($row['type']).'&taxonomy='.esc_attr($row['taxonomy']).'&postid='.esc_attr($row['postid']).'&view='.esc_attr($view).'&searchtitle='.esc_attr($row['postid']).'" class="button button-secondary wp_ada_compliance_basic_recheck" id="'.esc_attr($row['type']).'|'.esc_attr($row['postid']).'"><i class="fa fa-refresh" aria-hidden="true"></i>';
_e('Recheck','wp-ada-compliance-basic');
echo '</a>';
echo '<br />';
echo '<a href="'.esc_url(get_permalink($row['postid'])).'" target="_blank" class="button button-secondary adaNewWindowInfo"><i class="fa fa-eye" aria-hidden="true" ></i>';
_e('View','wp-ada-compliance-basic');
echo '</a>';
echo '<br />';
echo '<a href="post.php?post='.esc_attr($row['postid']).'&action=edit" target="_blank" class="button button-primary adaNewWindowInfo"><i class="fa fa-pencil-square-o" aria-hidden="true" ></i>';
_e('Edit','wp-ada-compliance-basic');
echo '</a>';
echo '<br />';
}
echo '</td>';
echo '</tr>';
}
echo '</tbody></table>';
if(isset($pagination)) echo $pagination;
echo '<p class="wp_ada_error_key">';
echo '<i class="fa fa-exclamation-circle" aria-hidden="true"></i> ';
_e('ALERTS - issues that REQUIRE MANUAL verification or MAY BE corrected to improve web accessibility, enhance a user\'s experience or avoid the possibility of inaccessible content inadvertently being introduced into a website.','wp-ada-compliance-basic');
echo '<br /><br />';
echo '<i class="fa fa-ban" aria-hidden="true"></i> ';
_e('WARNINGS - issues that MUST BE corrected to insure compliance with Section 508 or WCAG 2.1 LEVEL A/AA Web Accessibility Standards and insure content is accessible to users with disabilities.','wp-ada-compliance-basic');
echo '</p>';
echo '</div></div>';
}
}
if(!$results){
echo '<p class="adaoldmessage wp_ada_compliance_basic_scanstatus">';
if(isset($_GET['startscan']) or isset($_GET['scansingle'])) {
_e('No issues were found!','wp-ada-compliance-basic');
}
else{
_e('Click "START SCAN" to begin - Please be patient while the scan completes, deep scans are thorough but can take a while to complete. Basic scans are much faster but may not identify issues in theme files. Enable automatic scans to complete the scan process over a few hours or days and continually monitor your website content.','wp-ada-compliance-basic');
}
echo '</p>';
echo '</div></div>';
}
// stop header sent warnings
if (isset($_GET['_wpnonce'])) exit;
}
/********************************************
// create guidelines reference page
***********************************************/
function wp_ada_compliance_basic_referencereport_page() {
global $wp_ada_compliance_basic_def;
// check cap allowed to edit settings
$settingsuser = get_option('wp_ada_compliance_basic_settingsusers','manage_options');
echo '<div class="adaReferenceReport">';
echo '<h2>'.__('ADA Compliance Guidelines Reference', 'wp-ada-compliance-basic').'</h2>';
echo '<a href="'.esc_url(get_site_url()).'/wp-admin/admin.php?page=ada_compliance/compliancereportbasic.php" class="button button-primary"><i class="fa fa-file-text" aria-hidden="true"></i> ';
_e('View Report', 'wp-ada-compliance-basic');
echo '</a> ';
if (current_user_can( $settingsuser ) ){
echo '<a href="'.esc_url(get_site_url()).'/wp-admin/admin.php?page=wp-ada-compliance-basic-admin" class="button button-secondary"><i class="fa fa-cog" aria-hidden="true"></i> ';
_e('Settings', 'wp-ada-compliance-basic');
echo '</a> ';
}
echo '<a href="#" class="button button-secondary" onclick="javascript:window.print(); return false;"><i class="fa fa-print" aria-hidden="true"></i> '.__('Print', 'wp-ada-compliance-basic').'</a>';
echo '<p class="adaBoldText">'.__('The WP ADA Compliance Plugin evaluates content for the most common issues typically found in the Wordpress page editor. From this page you can review the current issues that are being evaluated, references and instructions for resolving issues. As Web Accessibility standards evolve the plugin is continually updated to include the latest requirements. Visit the linked reference to learn more about the requirement or choose HELP for information on how to correct an issue.', 'wp-ada-compliance-basic').'</p>';
echo '<p class="wp_ada_error_key">';
echo '<i class="fa fa-exclamation-circle" aria-hidden="true"></i> ';
_e('ALERTS - issues that REQUIRE MANUAL verification or MAY BE corrected to improve web accessibility, enhance a user\'s experience or avoid the possibility of inaccessible content inadvertently being introduced into a website.','wp-ada-compliance-basic');
echo '<br /><br />';
echo '<i class="fa fa-ban" aria-hidden="true"></i> ';
_e('WARNINGS - issues that MUST BE corrected to insure compliance with Section 508 or WCAG 2.1 LEVEL A/AA Web Accessibility Standards and insure content is accessible to users with disabilities.','wp-ada-compliance-basic');
echo '</p>';
echo '<a id="adascrollbutton" aria-label="Top"></a>';
// display error references
if(is_array($wp_ada_compliance_basic_def))
foreach ($wp_ada_compliance_basic_def as $rows => $row){
echo '<div class="adaReference">';
if(strstr($row['DisplayError'],"WARNING")) echo '<i class="fa fa-ban" aria-hidden="true"></i>';
elseif(strstr($row['DisplayError'],"ALERT"))
echo '<i class="fa fa-exclamation-circle" aria-hidden="true"></i>';
echo esc_html($row['StoredError']);
if($row['Reference'] != "")
echo ' <a href="'. esc_url($row['ReferenceURL']).'" target="_blank" class="adaNewWindowInfo">'. esc_html($row['Reference']).' <i class="fa fa-external-link" aria-hidden="true"><span class="wp_ada_hidden">'.__('opens in a new window', 'wp-ada-compliance-basic').'</span></i></a>';
echo '<div class="adaHelpLinkToggle"><a href="#" class="adaHelpLinkToggle adaHelpLink viewHelp' . esc_attr($rows) . '"><i class="fa fa-question-circle" aria-hidden="true"></i> '.__('HELP', 'wp-ada-compliance-basic').' </i></a>';
echo '<div class="adaHelpText helptext' . esc_attr($rows) . '">'. $row['HelpINSTR'];
if($row['HelpURL'] != "") echo ' <a href="'. esc_url($row['HelpURL']).'" target="_blank" class="adaViewbar adaNewWindowInfo">'.__('More Help', 'wp-ada-compliance-basic').' <i class="fa fa-external-link" aria-hidden="true"><span class="wp_ada_hidden">'.__('opens in a new window', 'wp-ada-compliance-basic').'</span></i></a>';
echo '</div>';
echo '</div>';
echo '</div>';
}
echo '</div>';
}
/*********************************************
REPORT PAGE SUPPORT FUNCTIONS
********************************************/
/*********************************************
create filter drop downs
********************************************/
function wp_ada_compliance_basic_dropdown_builder($showresults, $sort){
global $wpdb;
$report_filtered_errors = get_option('wp_ada_compliance_basic_report_filtered_errors','scanonly');
$dropdownlists= '<form name="filtererrors" class="wp_ada_form" action="'.esc_url(get_site_url()).'/wp-admin/admin.php" method="get"><input type="hidden" name="page" value="ada_compliance/compliancereportbasic.php" />
<input type="hidden" name="sort" value="'.esc_attr($sort).'" />';
$dropdownlists .='<div class="notice notice-info"><h3 class="adaRedText"><a href="https://www.alumnionlineservices.com/php-scripts/wordpress-wp-ada-compliance-check/">';
$dropdownlists .= __('Upgrade to the full version ', 'wp-ada-compliance-basic');
$dropdownlists .='</a>';
$dropdownlists .=__('to unlock all the great features of this plugin! ', 'wp-ada-compliance-basic');
$dropdownlists .='</h3></div>';
$dropdownlists .='<div class="tablenav">';
// display view by
$dropdownlists .= '<label for="view" class="wp_ada_label">'.__('View: ', 'wp-ada-compliance-basic').'<select name="view" id="view">';
$dropdownlists.= '<option value="2"';
if(isset($_GET['view']) and $_GET['view'] == '2') $dropdownlists.= ' selected';
$dropdownlists .='>'.__('All','wp-ada-compliance-basic').'</option>';
$dropdownlists.= '<option value="3"';
if(isset($_GET['view']) and $_GET['view'] == '3') $dropdownlists.= ' selected';
$dropdownlists .='>'.__('Ignored','wp-ada-compliance-basic').'</option>';
$dropdownlists.= '<option value="1"';
if(isset($_GET['view']) and $_GET['view'] == '1') $dropdownlists.= ' selected';
$dropdownlists .='>'.__('Current','wp-ada-compliance-basic').'</option>';
$dropdownlists.= "</select></label>";
// filter by error code
$query = "SELECT distinct(errorcode) FROM ".$wpdb->prefix."wp_ada_compliance_basic where siteid = %d order by errorcode";
$results = $wpdb->get_results( $wpdb->prepare( $query, get_current_blog_id()), ARRAY_A );
$dropdownlists .= '<label for="errortype" class="wp_ada_label">'.__('Error Type: ', 'wp-ada-compliance-basic').'<select name="errorw" id="errortype">';
$dropdownlists.= '<option value="">'.__('Any','wp-ada-compliance-basic').'</option>';
foreach ( $results as $row ) {
$dropdownlists.= '<option value="'.esc_attr($row['errorcode']).'"';
if(isset($_GET['error']) and $_GET['error'] == $row['errorcode']) $dropdownlists.= ' selected';
$dropdownlists.= '>'.esc_attr__(str_replace("_", " ", $row['errorcode']),'wp-ada-compliance-basic').'</option>';
}
$dropdownlists.= "</select></label>";
// filter by post type
$query = "SELECT distinct(type) FROM ".$wpdb->prefix."wp_ada_compliance_basic where siteid = %d";
$results = $wpdb->get_results( $wpdb->prepare( $query, get_current_blog_id()), ARRAY_A );
$dropdownlists .= '<label for="posttype" class="wp_ada_label">'.__('Post Type: ', 'wp-ada-compliance-basic').'<select name="type" id="posttype">';
$dropdownlists.= '<option value="">'.__('Any','wp-ada-compliance-basic').'</option>';
foreach ( $results as $row ) {
$dropdownlists.= '<option value="'.esc_attr($row['type']).'"';
if(isset($_GET['type']) and $_GET['type'] == $row['type']) $dropdownlists.= ' selected';
$dropdownlists.= '>'.esc_attr__($row['type'],'wp-ada-compliance-basic').'</option>';
}
$dropdownlists.= '</select></label> ';
$dropdownlists.= '<label for="searchtitle" class="wp_ada_label">Search: <input type="text" name="searchtitle" id="searchtitle" value="';
if(isset($_GET['searchtitle'])) {
$dropdownlists.= sanitize_text_field($_GET['searchtitle']);
}
$dropdownlists.= '" aria-label="'.__('Post Title or Post ID', 'wp-ada-compliance-basic').'" placeholder="'.__('Post Title or Post ID', 'wp-ada-compliance-basic').'" onfocus="this.value=\'\'"></label>';
// sort list
$dropdownlists.= '<label for="sort" class="wp_ada_label sortby">Sort By: <select id="sort" name="sort">
';
$dropdownlists.= '<option value="1"';
if($sort == 1) $dropdownlists.= ' selected';
$dropdownlists.= '>';
$dropdownlists.= __('Date', 'wp-ada-compliance-basic');
$dropdownlists.= '</option>';
$dropdownlists.= '<option value="2"';
if($sort == 2) $dropdownlists.= ' selected';
$dropdownlists.= '>';
$dropdownlists.= __('Content Type', 'wp-ada-compliance-basic');
$dropdownlists.= '</option>';
$dropdownlists.= '<option value="3"';
if($sort == 3) $dropdownlists.= ' selected';
$dropdownlists.= '>';
$dropdownlists.= __('Error Type', 'wp-ada-compliance-basic');
$dropdownlists.= '</option>';
$dropdownlists.= '<option value="4"';
if($sort == 4) $dropdownlists.= ' selected';
$dropdownlists.= '>';
$dropdownlists.= __('Error State (ignore, current, etc)', 'wp-ada-compliance-basic');
$dropdownlists.= '</option>';
$dropdownlists.= ' <option value="5"';
if($sort == 5) $dropdownlists.= ' selected';
$dropdownlists.= '>';
$dropdownlists.= __('Title', 'wp-ada-compliance-basic');
$dropdownlists.= '</option>';
$dropdownlists.= '</select></label>';
$dropdownlists.= '<a href="'.esc_url(get_site_url()).'/wp-admin/admin.php?page=ada_compliance/compliancereportbasic.php&view=1&type=&error=&errorid=&searchtitle=&refresh=1&sort=" class="button button-secondary"><i class="fa fa-filter" aria-hidden="true"></i> ';
$dropdownlists.= __('Clear Filters', 'wp-ada-compliance-basic');
$dropdownlists.= '</a> ';
// submit
$dropdownlists.= '<input type="submit" value="'.__('Filter', 'wp-ada-compliance-basic').'" class=" wp_ada_label button button-primary" /></div>';
// display filter message
// if(isset($showresults)){
// $dropdownlists .='<p class="adashowingmessage">';
// $dropdownlists .=__('Filters: ', 'wp-ada-compliance-basic');
// $dropdownlists .= sprintf(__('%s', 'wp-ada-compliance-basic'), esc_attr($showresults));
// $dropdownlists .='</p>';
// }
$dropdownlists .='</form>';
return $dropdownlists;
}
/*********************************************
create error summary
********************************************/
function wp_ada_compliance_basic_error_summary($view, $type, $error, $searchtitle, $errorid){
global $wpdb;
$query = "SELECT * FROM ".$wpdb->prefix."wp_ada_compliance_basic where siteid = %d";
$queryVariables[] = get_current_blog_id();
$totalquery ='';
// hide if auto filter is turned off
$report_filtered_errors = get_option('wp_ada_compliance_basic_report_filtered_errors','scanonly');
if($report_filtered_errors == 'false') $totalquery .= " and ignre != 2 ";
if( $view == 1 ) { // current
$totalquery .= " and ignre != %d";
$queryVariables[] = 1;
}
if ( $view == 3 ) { // ignored
$totalquery .= " and ignre = %d";
$queryVariables[] = 1;
}
if( $view == 4 ) { // auto corrected issues
$totalquery .= " and ignre = %d";
$queryVariables[] = 2;
}
if ( $type != '' ) { // filter by post type
$totalquery .= ' and (type = %s)';
$queryVariables[] = $type;
}
if ( $error != '' ) { // filter by error code
$totalquery .= " and errorcode = %s";
$queryVariables[] = $error;
}
if ( $searchtitle != '' ) { // filter by error code
$totalquery .= " and posttitle LIKE %s";
$queryVariables[] = '%'.$searchtitle.'%';
}
if ( $errorid != '' and $errorid != 0 ) { // filter by error code
$totalquery .= " and postid = %d ";
$queryVariables[] = $errorid;
}
$query.=$totalquery;
$records = $wpdb->get_results($wpdb->prepare($query, $queryVariables),ARRAY_A);
$total = count($records);
wp_ada_compliance_basic_dashboard_summary();
echo '<div class="wp_ada_summary_right">';
echo '<h2 class="wp_ada_summary_header">';
_e('Issue Summary','wp-ada-compliance-basic');
echo '</h2>';
echo '<p class="wp_ada_issue_sum">';
echo '<span class="adaViewbar">';
_e('total issues: ', 'wp-ada-compliance-basic');
echo '</span>';
echo esc_html($total);
echo '</p>';
if ( $error == '' ) {
$query = "SELECT distinct(errorcode) FROM ".$wpdb->prefix."wp_ada_compliance_basic where siteid = %d ";
$results = $wpdb->get_results( $wpdb->prepare( $query, get_current_blog_id()), ARRAY_A );
foreach ( $results as $row ) {
echo '<p class="wp_ada_issue_sum">';
echo wp_ada_compliance_basic_error_count($row['errorcode'], $totalquery, $queryVariables);
echo '</p>';
}
}
echo '</div>';
}
/*********************************************
count errors
********************************************/
function wp_ada_compliance_basic_error_count($errorcode, $totalquery, $queryVariables){
global $wpdb;
$query = "SELECT * FROM ".$wpdb->prefix."wp_ada_compliance_basic where siteid = %d ";
$query.=$totalquery;
$query .= " and errorcode = %s ";
$queryVariables[] = $errorcode;
$results = $wpdb->get_results( $wpdb->prepare( $query, $queryVariables), ARRAY_A );
$total = count($results);
foreach ( $results as $row ) {
return '<span class="adaViewbar">'.str_replace("_", " ", esc_attr($errorcode)).':</span> '.esc_attr($total).'<br />';
}
}
/********************************************
// create email report
**********************************************/
function wp_ada_compliance_basic_create_email_report($email, $postinfo=0) {
global $wpdb, $wp_ada_compliance_basic_def;
$showresults = "";
if(is_array($postinfo)){
$query = 'SELECT * FROM '.$wpdb->prefix.'wp_ada_compliance_basic where siteid = %d ';
// hide if auto filter is turned off
$report_filtered_errors = get_option('wp_ada_compliance_basic_report_filtered_errors','scanonly');
if($report_filtered_errors == 'false') $query .= " and ignre != 2 ";
$queryVariablesMain[] = get_current_blog_id();
if(array_key_exists("view",$postinfo)){
if($postinfo['view'] == 1 ) {
$query .= " and ignre != %d ";
$queryVariablesMain[] = 1;
$showresults .= __(" View=Current; ",'wp-ada-compliance-basic');
}
if($postinfo['view'] == 2 ) {
$showresults .= __(' View=All; ','wp-ada-compliance-basic');
}
if ( $postinfo['view'] == 3 ) { // ignored
$query .= " and ignre = %d ";
$queryVariablesMain[] = 1;
$showresults .= __(" View=Ignored; ",'wp-ada-compliance-basic');
}
if( $postinfo['view'] == 4 ) { // auto corrected issues
$query .= " and ignre = %d ";
$queryVariablesMain[] = 2;
$showresults .= __(" View=Auto Corrected; ",'wp-ada-compliance-basic');
}
}
if (array_key_exists("errorid",$postinfo) and $postinfo['errorid'] != '' ) { // filter by post type
$query .= ' and postid = %d ';
$queryVariablesMain[] = $postinfo['errorid'];
$showresults = __(' View=PostID: ','wp-ada-compliance-basic').$postinfo['errorid'].';';
}
if (array_key_exists("type",$postinfo) and $postinfo['type'] != '' ) { // filter by post type
$query .= ' and (type = %s)';
$queryVariablesMain[] = $postinfo['type'];
$showresults .= __(' Post type=','wp-ada-compliance-basic').$postinfo['type'].'; ';
}
if (array_key_exists("error",$postinfo) and $postinfo['error'] != '' ) { // filter by error code
$query .= " and errorcode = %s ";
$queryVariablesMain[] = $postinfo['error'];
$showresults .=__('Error type=','wp-ada-compliance-basic').$postinfo['error'].'; ';
}
if (array_key_exists("searchtitle",$postinfo) and $postinfo['searchtitle'] != '' ) { // filter by post title
$query .= " and posttitle LIKE %s ";
$queryVariablesMain[] = '%'.$postinfo['searchtitle'].'%';
$showresults .=__('Title=','wp-ada-compliance-basic').$postinfo['searchtitle'].'; ';
}
if (array_key_exists("sort",$postinfo)) {
if($postinfo['sort'] == 1) $sortby = 'date desc';
if($postinfo['sort'] == 2) $sortby = 'type asc';
if($postinfo['sort'] == 3) $sortby = 'errorcode asc';
if($postinfo['sort'] == 4) $sortby = 'ignre desc';
if($postinfo['sort'] == 5)$sortby = 'posttitle asc';
} else $sortby = "date desc";
$query .= " order by $sortby ";
}
else{
$notification_frequency = get_option('wp_ada_compliance_basic_notification_frequency','daily');
// create interval based on frequency
if($notification_frequency == 'monthly') $interval = '30 DAY';
if($notification_frequency == 'weekly') $interval = '7 DAY';
if($notification_frequency == 'daily') $interval = '1 DAY';
if($notification_frequency == 'twicedaily') $interval = '12 HOUR';
if($notification_frequency == 'hourly') $interval = '1 HOUR';
$query = 'SELECT * FROM '.$wpdb->prefix.'wp_ada_compliance_basic where siteid = %d and ignre = %d ';
// hide if auto filter is turned off
$report_filtered_errors = get_option('wp_ada_compliance_basic_report_filtered_errors','scanonly');
if($report_filtered_errors == 'false') $query .= " and ignre != 2 ";
$query .= 'and date >= DATE_SUB(NOW(),INTERVAL '.$interval.') order by date desc';
$queryVariablesMain[] = get_current_blog_id();
$queryVariablesMain[] = 0;
}
$results = $wpdb->get_results( $wpdb->prepare($query, $queryVariablesMain), ARRAY_A );
echo '<div class="wp_ada_compliance_report">';
if ( sizeof($results) > 0 ) {
$report = '<h2>'.__('Web Accessibility Report', 'wp-ada-compliance-basic').'</h2>';
if(isset($interval)) $report .= '<p>'.__('This report includes issues identified in the past '.$interval.'.', 'wp-ada-compliance-basic'). '</p>';
elseif($showresults != "") $report .= '<p>'.esc_html($showresults).'</p>';
$report .= '<table class="ada_error wp-list-table widefat fixed striped" border="1"><thead><tr>';
$report .= '<th scope="column" style="width:15%;">';
$report .= __('Title', 'wp-ada-compliance-basic');
$report .= '</th>';
$report .= '<th scope="column" style="width:6%;">';
$report .= __('Content Type', 'wp-ada-compliance-basic');
$report .= '</th>';
$report .= '<th scope="column" style="width:69%;">';
$report .= __('Error Type', 'wp-ada-compliance-basic');
$report .= '</th>';
$report .= '<th scope="column" style="width:10%;">';
$report .= __('Error', 'wp-ada-compliance-basic');
$report .= '</th></tr></thead><tbody>';
foreach ( $results as $row ) {
$userid = get_userdata($row['activeuser']);
if((is_array($postinfo) and ($email != "" or $email == 'print')) or ($email != "" and $email != $userid->user_email)){
$issuefound = 1;
$report .= '<tr>';
$report .= '<td>';
$report .= sprintf(__('%s', 'wp-ada-compliance-basic'), esc_html($row['posttitle']));
if($row['ignre'] == 1) {
$report .='<br /><span class="adaIgnored">';
$report .=__('** being ignored', 'wp-ada-compliance-basic');
$report .= '</span>';
}
elseif($row['ignre'] == 2) {
$report .='<br /><span class="adaIgnored">';
$report .=__('** upgrade to auto correct this issue!', 'wp-ada-compliance-basic');
$report .= '</span>';
}
$report .= '</td>';
$report .= '<td>';
$report .= sprintf(__('%s', 'wp-ada-compliance-basic'), esc_html($row['type']));
$report .= '</td>';
$report .= '<td>';
$report .= sprintf(__('%s', 'wp-ada-compliance-basic'), str_replace("_", " ", esc_html($row['errorcode'])));
$report .= '</td>';
$report .= '<td>';
$report .= sprintf(__('%s', 'wp-ada-compliance-basic'), esc_html($wp_ada_compliance_basic_def[$row['errorcode']]['StoredError']));
// if printing display error
if($email == 'print'){
$report .= '<div class="adaEffectedCode code'.esc_attr($row['id']).'" id="code'.esc_attr($row['id']).'"><code>'.wp_ada_compliance_basic_filter_autoplay_av_tags(esc_html($row['object']), "1").'</code>';
$trustedtags = '<p>,<br />,<a>,<img>,<h1>,<h2>,<h3>,<h4>,<h5>,<h6>,<input>,<map>,<area>,<audio>,<video>,<pre>';
if(stristr($row['object'],'<table')) {
$row['object'] = wp_ada_compliance_basic_close_unclosed_tables($row['object']);
$trustedtags .= ',<table>,<tr>,<td>,<th>,<tbody>,<thead>';
}
$report .= '<br /><code>'.strip_tags($row['object'],$trustedtags).'</code>';
$report .= '</div>';
}
$report .= '</td>';
$report .= '</tr>';
}
}
$report .= '</tbody></table>';
$report .= '
<style>
table{
border-collapse: collapse;
}
table.ada_error td, table.ada_error th
{
padding: 5px;
color: #000;
min-width: 75px;
background-color:#ccc;
}
table.ada_error td
{
background-color:#fff;
}
</style>';
}
if(isset($issuefound)) return $report;
else return "";
}
/*********************************************
Modify media library to add filter for images missing alternate text
**********************************************/
add_action('restrict_manage_posts', 'wp_ada_compliance_basic_media_library_dropdown');
add_action('pre_get_posts','wp_ada_compliance_basic_media_filter');
function wp_ada_compliance_basic_media_library_dropdown()
{
$scr = get_current_screen();
if ( $scr->base !== 'upload' ) return;
if (isset($_GET['accessibility-filter'])){
$value = sanitize_text_field($_GET['accessibility-filter']);
} else $value = "";
echo '
<label for="accessibility-filter" class="screen-reader-text">Filter by accessibility</label>
<select class="accessibility-filter" name="accessibility-filter" id="accessibility-filter">
<option value=""';
if($value == "") echo ' selected';
echo '>';
_e('Accessibility Issues', 'wp-ada-compliance-basic');
echo '</option>';
echo '<option value="missingalt"';
if($value == "missingalt") echo ' selected';
echo '>';
_e('Missing Alternate Text', 'wp-ada-compliancebasic');
echo '</option>';
echo '<option value="invalidalt"';
if($value == "invalidalt") echo ' selected';
echo '>';
_e('Invalid Alternate Text', 'wp-ada-compliance-basic');
echo '</option>';
echo '</select>';
}
function wp_ada_compliance_basic_media_filter($query) {
if ( is_admin() && $query->is_main_query() ) {
if (isset($_GET['accessibility-filter'])){
if($_GET['accessibility-filter'] == "missingalt") {
$query->set('meta_query', array(
'relation' => 'OR',
array(
'key' => '_wp_attachment_image_alt',
'value' => '',
'compare' => '='
),
array(
'key' => '_wp_attachment_image_alt',
'compare' => 'NOT EXISTS'
)
));
}
if ($_GET['accessibility-filter'] == "invalidalt") {
$query->set('meta_query', array(
'relation' => 'OR',
array(
'key' => '_wp_attachment_image_alt',
'value' => '.jpg',
'compare' => 'LIKE'
),
array(
'key' => '_wp_attachment_image_alt',
'value' => '.png',
'compare' => 'LIKE'
),
array(
'key' => '_wp_attachment_image_alt',
'value' => '.gif',
'compare' => 'LIKE'
),
array(
'key' => '_wp_attachment_image_alt',
'value' => '_',
'compare' => 'LIKE'
),
array(
'key' => '_wp_attachment_image_alt',
'value' => 'photo of',
'compare' => 'LIKE'
),
array(
'key' => '_wp_attachment_image_alt',
'value' => 'image of',
'compare' => 'LIKE'
),
array(
'key' => '_wp_attachment_image_alt',
'value' => 'graphic of',
'compare' => 'LIKE'
)
)
);
}
}
}
}
/***********************************************************************************
// remove autoplay attributes from audio and video embeds
**********************************************************************************/
function wp_ada_compliance_basic_filter_autoplay_av_tags($content, $run=0){
$strip_autoplay = get_option('wp_ada_compliance_strip_autoplay','true');
if($strip_autoplay == 'true' or $run == 1){
$content= str_ireplace('autostart="true"', "", $content);
$content= str_ireplace("autostart='true'", "", $content);
$content= str_ireplace('&autoPlay=true', "", $content);
$content= str_ireplace('&amp;autoPlay=true', "", $content);
$content = preg_replace('/<param(\s)*name=(\'|")+(autoplay)(\'|")+(\/)*(\s)*value=(\'|")+(true)(\'|")+(\s*\/*>)(<\/param>)*/i','', $content);
$content= str_ireplace('autoPlay="autoplay"', "", $content);
$content= str_ireplace('autoplay=""', "", $content);
$content= str_ireplace("autoplay=''", "", $content);
$content= str_ireplace("autoPlay='autoplay'", "", $content);
$content= str_ireplace('autoPlay="1"', "", $content);
$content= str_ireplace("autoPlay='1'", "", $content);
$content = preg_replace('/(<audio+.+)((\s)((\S)+=("|\')(\w|\s|-|_)*("|\'))*(\s))*(autoplay)+(((\s)*((\S)+=("|\')(\w|\s|-|_)*("|\'))*(\s)*)*>)/i','$1$11', $content);
$content = preg_replace('/(<video+.+)((\s)((\S)+=("|\')(\w|\s|-|_)*("|\'))*(\s))*(autoplay)+(((\s)*((\S)+=("|\')(\w|\s|-|_)*("|\'))*(\s)*)*>)/i','$1$11', $content);
}
return $content;
}
/*************************************************
closed unclosed tags to keep from breaking report
*************************************************/
function wp_ada_compliance_basic_close_unclosed_tables($object){
$tabletags = substr_count($object,'<table');
$tableclosetags = substr_count($object,'</table>');
if($tabletags > $tableclosetags){
$numbertoadd = ($tabletags - $tabletags);
for($i = 1; $i <= $numbertoadd; $i++){
$object.="</table>";
}
}
return $object;
}
?>
<?php
/*
Plugin - WP ADA Compliance Check
functiosn to display admin setting pages and process related actions
*/
/************************************************************
// add the admin settings
**********************************************************/
function wp_ada_compliance_basic_admin_init(){
/***********************************************************************
DEFINE CONTENT TO SCAN SETTINGS
**************************************************************************/
add_settings_section('wp_ada_compliance_basic_scantypes', __('Content to Monitor', 'wp-ada-compliance-basic'), 'wp_ada_compliance_basic_scantypetext', 'wp_ada_compliance_basic');
// scan with wpget files
register_setting( 'wp_ada_compliance_basic_options', 'wp_ada_compliance_basic_deep_scan');
add_settings_field('wp_ada_compliance_basic_deep_scan', '', 'wp_ada_compliance_basic_settings_deep_scan', 'wp_ada_compliance_basic', 'wp_ada_compliance_basic_scantypes');
// post types
register_setting( 'wp_ada_compliance_basic_options', 'wp_ada_compliance_basic_posttypes');
add_settings_field('wp_ada_compliance_basic_posttypes', '', 'wp_ada_compliance_basic_settings_posttypes', 'wp_ada_compliance_basic', 'wp_ada_compliance_basic_scantypes');
/***********************************************************************
DEFINE FILTERS SETTINGS
**************************************************************************/
add_settings_section('wp_ada_compliance_basic_filters', __('Content Filters - (Full Version Only)', 'wp-ada-compliance-basic'), 'wp_ada_compliance_basic_filtertext', 'wp_ada_compliance_basic');
// turn on content filtering
register_setting( 'wp_ada_compliance_basic_options', 'wp_ada_compliance_basic_filter_content');
add_settings_field('wp_ada_compliance_basic_filter_content', '', 'wp_ada_compliance_basic_settings_filter_content', 'wp_ada_compliance_basic', 'wp_ada_compliance_basic_filters');
/***********************************************************************
DEFINE AUTO SCAN & NOTIFICATION SETTINGS
**************************************************************************/
add_settings_section('wp_ada_compliance_basic_notify', __('Scan & Notification - (Full Version Only)', 'wp-ada-compliance-basic'), 'wp_ada_compliance_basic_scan_notification', 'wp_ada_compliance_basic');
// how many posts to scan during full scans
register_setting( 'wp_ada_compliance_basic_options', 'wp_ada_compliance_basic_full_scan_post_count');
add_settings_field('wp_ada_compliance_basic_full_scan_post_count', '', 'wp_ada_compliance_basic_settings_full_scan_post_count', 'wp_ada_compliance_basic', 'wp_ada_compliance_basic_notify');
/***********************************************************************
DEFINE SCAN RULE SETTINGS
**************************************************************************/
add_settings_section('wp_ada_compliance_basic_scan_rules', __('Scan Rules', 'wp-ada-compliance-basic'), 'wp_ada_compliance_basic_scan_rule_text', 'wp_ada_compliance_basic');
// scan rules section
register_setting( 'wp_ada_compliance_basic_options', 'wp_ada_compliance_basic_scan_rules');
add_settings_field('wp_ada_compliance_basic_scan_rules', '', 'wp_ada_compliance_basic_settings_scan_rule', 'wp_ada_compliance_basic', 'wp_ada_compliance_basic_scan_rules');
/***********************************************************************
DEFINE MISC SETTINGS
**************************************************************************/
add_settings_section('wp_ada_compliance_basic_main', __('Misc. Settings', 'wp-ada-compliance-basic'), 'wp_ada_compliance_basic_text', 'wp_ada_compliance_basic');
// number of errors per page to display on error report
register_setting( 'wp_ada_compliance_basic_options', 'wp_ada_compliance_basic_errors_per_page');
add_settings_field('wp_ada_compliance_errors_per_page', '', 'wp_ada_compliance_basic_settings_errors_per_page', 'wp_ada_compliance_basic', 'wp_ada_compliance_basic_main');
// use jquery to manage error page
register_setting( 'wp_ada_compliance_basic_options', 'wp_ada_compliance_basic_jquery_use');
add_settings_field('wp_ada_compliance_basic_jquery_use', '', 'wp_ada_compliance_basic_settings_jquery_use', 'wp_ada_compliance_basic', 'wp_ada_compliance_basic_main');
// attachment title check
register_setting( 'wp_ada_compliance_basic_options', 'wp_ada_compliance_basic_attachmenttitles');
add_settings_field('wp_ada_compliance_basic_attachmenttitles', '', 'wp_ada_compliance_basic_settings_attachmenttitles', 'wp_ada_compliance_basic', 'wp_ada_compliance_basic_main');
// settings authorized user
register_setting( 'wp_ada_compliance_basic_options', 'wp_ada_compliance_basic_settingsusers');
add_settings_field('wp_ada_compliance_basic_settingsusers', '', 'wp_ada_compliance_basic_settings_settingsusers', 'wp_ada_compliance_basic', 'wp_ada_compliance_basic_main');
// website language code
register_setting( 'wp_ada_compliance_basic_options', 'wp_ada_compliance_basic_language_code');
add_settings_field('wp_ada_compliance_basic_language_code', '', 'wp_ada_compliance_basic_settings_language_code', 'wp_ada_compliance_basic', 'wp_ada_compliance_basic_main');
// assumed background color
register_setting( 'wp_ada_compliance_basic_options', 'wp_ada_compliance_basic_background_color');
add_settings_field('wp_ada_compliance_basic_background_color', '', 'wp_ada_compliance_basic_settings_background_color', 'wp_ada_compliance_basic', 'wp_ada_compliance_basic_main');
// starting heading in page content
register_setting( 'wp_ada_compliance_basic_options', 'wp_ada_compliance_basic_starting_H_level');
add_settings_field('wp_ada_compliance_basic_starting_H_level', '', 'wp_ada_compliance_basic_settings_starting_H_level', 'wp_ada_compliance_basic', 'wp_ada_compliance_basic_main');
// enable wave evaluation tools
register_setting( 'wp_ada_compliance_basic_options', 'wp_ada_compliance_basic_enablewave');
add_settings_field('wp_ada_compliance_basic_enablewave', '', 'wp_ada_compliance_basic_settings_enablewave', 'wp_ada_compliance_basic', 'wp_ada_compliance_basic_main');
// retain settings when plugin is deleted
register_setting( 'wp_ada_compliance_basic_options', 'wp_ada_compliance_basic_retain_settings');
add_settings_field('wp_ada_compliance_basic_retain_settings', '', 'wp_ada_compliance_basic_settings_retain_settings', 'wp_ada_compliance_basic', 'wp_ada_compliance_basic_main');
}
// instructions for notification settings goes here
function wp_ada_compliance_basic_notifications() {
echo '<h2 class="ada_compliance_settings_text hndle" style="cursor:auto;">';
_e('Scan & Notification - (Full Version Only)', 'wp-ada-compliance-basic');
echo '</h2>';
}
// instructions for misc settings goes here
function wp_ada_compliance_basic_text() {
echo '<h2 class="ada_compliance_settings_text hndle" style="cursor:auto;">';
_e('Misc. Settings', 'wp-ada-compliance-basic');
echo '</h2>';
}
// scan rule section text goes here
function wp_ada_compliance_basic_scan_rule_text() {
echo '<h2 class="ada_compliance_settings_text hndle" style="cursor:auto;">';
_e('Scan Rules', 'wp-ada-compliance-basic');
echo '</h2>';
}
// filter section text goes here
function wp_ada_compliance_basic_filtertext() {
echo '<h2 class="ada_compliance_settings_text hndle" style="cursor:auto;">';
_e('Content Filters - (Full Version Only)', 'wp-ada-compliance-basic');
echo '</h2>';
}
// filter database content
function wp_ada_compliance_basic_settings_filter_content() {
echo '<p class="adamarketingtext">'.__('Upgrade to the full version to unlock content filters. Content filters will automatically correct many common issues and save you many tedious hours of work. Refer to our ','wp-ada-compliance-basic').'<a href="https://www.alumnionlineservices.com/version-comparison/">'.__('version comparison tool','wp-ada-compliance-basic').'</a> '.__('for a complete list of features.','wp-ada-compliance-basic').' </p>';
}
// display scan and notification option text
function wp_ada_compliance_basic_settings_full_scan_post_count(){
echo '<p class="adamarketingtext">'.__('Upgrade to the full version to unlock the automatic scan feature which will monitor your website for issues while you are offline and send detailed email reports.','wp-ada-compliance-basic').'</p>';
}
// display settings deep scan (scan with wpget)
function wp_ada_compliance_basic_settings_deep_scan() {
global $wp_ada_compliance_basic_unsupported_deepscan;
$wp_ada_compliance_basic_deep_scan = get_option('wp_ada_compliance_basic_deep_scan','basic');
echo '<fieldset>';
echo '<legend>';
_e('Choose a content scan type:', 'wp-ada-compliance-basic');
echo '</legend>';
echo '<br />';
echo '<input type="radio" name="wp_ada_compliance_basic_deep_scan" id="wp_ada_compliance_basic_deep_scan_deep" value="deep" disabled><label for="wp_ada_compliance_basic_deep_scan_deep">';
_e('Deep Scan (Slower but thorough scan, will identify issues found in page content and theme files.)', 'wp-ada-compliance-basic');
echo '</label> <br />';
echo '<input type="radio" name="wp_ada_compliance_basic_deep_scan" id="wp_ada_compliance_basic_deep_scan_basic" value="basic" checked ><label for="wp_ada_compliance_basic_deep_scan_basic">';
_e('Basic Scan (Scan of database fields only, will not identify issues found in theme files.)');
echo '</label>';
echo '</fieldset>';
}
// scan type section text goes here
function wp_ada_compliance_basic_scantypetext() {
// purge scan records
wp_ada_compliance_basic_purge_records();
echo '<h2 class="ada_compliance_settings_text hndle" style="cursor:auto;">';
_e('Content to Monitor', 'wp-ada-compliance-basic');
echo '</h2>';
}
// number of errors per page to display
function wp_ada_compliance_basic_settings_errors_per_page() {
$errors = get_option('wp_ada_compliance_basic_errors_per_page','15');
echo '<p>';
echo '<label for="wp_ada_compliance_basic_errors_per_page">';
_e('Number of errors to display on report page: ', 'wp-ada-compliance-basic');
echo '</label>';
echo ' <i class="fa fa-plus-circle adanewitem" aria-hidden="true"> '.__('new setting', 'wp-ada-compliance-basic').'</i>';
echo '<br />';
echo '<input type="text" size="25" name="wp_ada_compliance_basic_errors_per_page" id="wp_ada_compliance_basic_errors_per_page" value="'.esc_attr($errors).'" />';
echo '</p>';
}
// use jquery to manage reports page
function wp_ada_compliance_basic_settings_jquery_use() {
$jquery_use = get_option('wp_ada_compliance_basic_jquery_use','true');
echo '<fieldset>';
echo '<legend>';
_e('Enable jquery use on the report screen. On modern browser this setting significantly improves the report screen interaction. Jquery support is not good on some older browsers.', 'wp-ada-compliance-basic');
echo ' <i class="fa fa-plus-circle adanewitem" aria-hidden="true"> '.__('new setting', 'wp-ada-compliance-basic').' </i>';
echo '</legend>';
echo '<br />';
echo '<input type="radio" name="wp_ada_compliance_basic_jquery_use" id="wp_ada_compliance_basic_jquery_use_true" value="true" ';
if($jquery_use == 'true') echo ' checked';
echo '><label for="wp_ada_compliance_basic_jquery_use_true">';
_e('Yes', 'wp-ada-compliance-basic');
echo '</label> ';
echo '<input type="radio" name="wp_ada_compliance_basic_jquery_use" id="wp_ada_compliance_basic_jquery_use_false" value="false" ';
if($jquery_use == 'false') echo ' checked';
echo '><label for="wp_ada_compliance_basic_jquery_use_false">';
_e('No', 'wp-ada-compliance-basic');
echo '</label> ';
echo '</fieldset>';
}
// display settings to remove linking of images to file
function wp_ada_compliance_basic_settings_starting_H_level() {
$starting_H_level = get_option('wp_ada_compliance_basic_starting_H_level','h2');
echo '<fieldset>';
echo '<legend>';
_e('The page title should always be wrapped in H1 elements and be displayed at the top of each page with the exception of the home page which may have the title of your website inside H1 elements. Most Wordpress themes are designed to place the page title automatically. If your theme does not place the page title and it is instead entered manually using the Wordpress editor this option should be changed to H1.', 'wp-ada-compliance-basic');
echo '</legend>';
echo '<br />';
_e('Starting heading level in your Wordpress page editor (normally H2): ', 'wp-ada-compliance-basic');
echo '<br />';
echo '<input type="radio" name="wp_ada_compliance_basic_starting_H_level" id="wp_ada_compliance_basic_starting_H_level_h1" value="h1" ';
if($starting_H_level == 'h1') echo ' checked';
echo '><label for="wp_ada_compliance_basic_starting_H_level_h1">';
_e('H1', 'wp-ada-compliance-basic');
echo '</label> ';
echo '<input type="radio" name="wp_ada_compliance_basic_starting_H_level" id="wp_ada_compliance_basic_starting_H_level_h2" value="h2" ';
if($starting_H_level == 'h2') echo ' checked';
echo '><label for="wp_ada_compliance_basic_starting_H_level_h2">';
_e('H2', 'wp-ada-compliance-basic');
echo '</label> ';
echo '</fieldset>';
}
// enable wave evaluation tool
function wp_ada_compliance_basic_settings_enablewave() {
$enablewave = get_option('wp_ada_compliance_basic_enablewave','true');
echo '<fieldset>';
echo '<legend>';
_e('Enable WAVE Web Accessibility Evaluation Tool featues:', 'wp-ada-compliance-basic');
echo ' <i class="fa fa-plus-circle adanewitem" aria-hidden="true"> '.__('new setting', 'wp-ada-compliance-basic').' </i>';
echo '</legend>';
echo '<br />';
echo '<input type="radio" name="wp_ada_compliance_basic_enablewave" id="wp_ada_compliance_basic_enablewave_true" value="true" ';
if($enablewave == 'true') echo ' checked';
echo '><label for="wp_ada_compliance_basic_enablewave_true">';
_e('Yes', 'wp-ada-compliance-basic');
echo '</label> ';
echo '<input type="radio" name="wp_ada_compliance_basic_enablewave" id="wp_ada_compliance_basic_enablewave_false" value="false" ';
if($enablewave == 'false') echo ' checked';
echo '><label for="wp_ada_compliance_basic_enablewave_false">';
_e('No', 'wp-ada-compliance-basic');
echo '</label> ';
echo '</fieldset>';
}
// retain settings when plugin is deleted
function wp_ada_compliance_basic_settings_retain_settings() {
$retain_settings = get_option('wp_ada_compliance_basic_retain_settings','false');
echo '<fieldset>';
echo '<legend>';
_e('When using the "Add Plugin" file uploader to apply plugin updates you will need to delete the old version before uploading the new one. This option allows you to retain plugin settings when the plugin is deleted. When permanently removing the plugin this setting should be changed so the database and all associated settings are removed.', 'wp-ada-compliance-basic');
echo ' <i class="fa fa-plus-circle adanewitem" aria-hidden="true"> '.__('new setting', 'wp-ada-compliance-basic').' </i>';
echo '</legend>';
echo '<br />';
echo '<input type="radio" name="wp_ada_compliance_basic_retain_settings" id="wp_ada_compliance_basic_retain_settings_true" value="true" ';
if($retain_settings == 'true') echo ' checked';
echo '><label for="wp_ada_compliance_basic_retain_settings_true">';
_e('Retain settings when plugin is deleted.', 'wp-ada-compliance-basic');
echo '</label> <br />';
echo '<input type="radio" name="wp_ada_compliance_basic_retain_settings" id="wp_ada_compliance_basic_retain_settings_false" value="false" ';
if($retain_settings == 'false') echo ' checked';
echo '><label for="wp_ada_compliance_basic_retain_settings_false">';
_e('Remove settings when the plugin is deleted.', 'wp-ada-compliance-basic');
echo '</label> ';
echo '</fieldset>';
}
// display errors settings autorized user list
function wp_ada_compliance_basic_settings_settingsusers() {
$settingsuser = get_option('wp_ada_compliance_basic_settingsusers','manage_options');
echo '<fieldset>';
echo '<legend>';
_e('Choose the minimum role that can modify plugin settings: ', 'wp-ada-compliance-basic');
echo '</legend>';
echo '<br />';
echo '<input type="radio" name="wp_ada_compliance_basic_settingsusers" id="wp_ada_compliance_basic_settingsusers_editor" value="edit_pages" ';
if($settingsuser == 'edit_pages') echo ' checked';
echo '><label for="wp_ada_compliance_basic_settingsusers_editor">';
_e('Editors', 'wp-ada-compliance-basic');
echo '</label> ';
echo '<input type="radio" name="wp_ada_compliance_basic_settingsusers" id="wp_ada_compliance_basic_settingsusers_admin" value="manage_options" ';
if($settingsuser == 'manage_options' or $settingsuser == 'update_core') echo ' checked';
echo '><label for="wp_ada_compliance_basic_settingsusers_admin">';
_e('Administrators', 'wp-ada-compliance-basic');
echo '</label> ';
echo '</fieldset>';
}
// background color
function wp_ada_compliance_basic_settings_background_color() {
$background_color = get_option('wp_ada_compliance_basic_background_color','#ffffff');
echo '<p>';
_e('While checking for a contrast ratio of 4.5:1 between page text and the background color it is assumed that the background is set to white. Change this setting if the content area of your website uses a background color other than white. This setting does not apply to colors set in css files, rather only to text that is colored within the page editor.', 'wp-ada-compliance-basic');
echo '<br /><label for="wp_ada_compliance_basic_background_color">';
_e('Content area background color:', 'wp-ada-compliance-basic');
echo '</label><br />';
echo '<input type="text" size="25" name="wp_ada_compliance_basic_background_color" id="wp_ada_compliance_basic_background_color" value="'.esc_attr($background_color).'" />';
echo '</p>';
}
// language code
function wp_ada_compliance_basic_settings_language_code() {
$languagecode = get_option('wp_ada_compliance_basic_language_code','en');
echo '<p>';
echo '<label for="wp_ada_compliance_basic_language_code">';
_e('Primary language code for the website: ', 'wp-ada-compliance-basic');
echo '(<a href="https://www.w3schools.com/tags/ref_language_codes.asp">';
_e('Language Code Reference','wp-ada-compliance-basic');
echo'</a>)';
echo '</label><br />';
echo '<input type="text" size="25" name="wp_ada_compliance_basic_language_code" id="wp_ada_compliance_basic_language_code" value="'.esc_attr($languagecode).'" />';
echo '</p>';
}
// include attachments in check title scan
function wp_ada_compliance_basic_settings_attachmenttitles() {
$attachmenttitles = get_option('wp_ada_compliance_basic_attachmenttitles','false');
echo '<fieldset>';
echo '<legend>';
_e('Include attachments when checking for duplicate or missing titles.', 'wp-ada-compliance-basic');
echo '<span class="adaAllGood">';
_e(' (Only necessary when your theme presents public facing attachment pages.)','wp-ada-compliance-basic');
echo '</span>';
echo '</legend>';
echo '<br />';
echo '<input type="radio" name="wp_ada_compliance_basic_attachmenttitles" id="wp_ada_compliance_basic_attachmenttitles_yes" value="true" ';
if($attachmenttitles == 'true') echo ' checked';
echo '><label for="wp_ada_compliance_basic_attachmenttitles_yes">';
_e('Yes', 'wp-ada-compliance-basic');
echo '</label> ';
echo '<input type="radio" name="wp_ada_compliance_basic_attachmenttitles" id="wp_ada_compliance_basic_attachmenttitles_no" value="false" ';
if($attachmenttitles == 'false') echo ' checked';
echo '><label for="wp_ada_compliance_basic_attachmenttitles_no">';
_e('No', 'wp-ada-compliance-basic');
echo '</label> ';
echo '</fieldset>';
}
// display post types field
function wp_ada_compliance_basic_settings_posttypes() {
$checked = get_option('wp_ada_compliance_basic_posttypes',array('page','post'));
echo '<fieldset>';
echo '<legend>';
_e('Choose the post types to be monitored: (Limited to 25 in the basic version)', 'wp-ada-compliance-basic');
echo '</legend>';
global $wpdb;
$post_type_list = array();
// set default post types
$post_type_list[] = "post";
$post_type_list[] = "page";
foreach ( $post_type_list as $post_type ) {
if(post_type_supports( $post_type, 'editor' )){
echo '<p><label for="wp_ada_compliance_basic_posttypes_'.esc_attr($post_type).'"><input id="wp_ada_compliance_basic_posttypes_'.esc_attr($post_type).'" type="checkbox" class="posttypeselector" name="wp_ada_compliance_basic_posttypes[]" value="'.esc_attr($post_type).'"';
if(is_array($checked) and in_array($post_type, $checked)) echo ' checked="checked"' ;
echo ' /> '.esc_attr($post_type).'</label></p>';
}
}
echo '</fieldset>';
echo '<p class="adamarketingtext">'.__('Upgrade to the full version to remove the scan limit and enable deep scans which will check your entire website. Deep scans will identify issues in theme files, shortcodes, custom post types, widgets, archives and much more. The full version has no limit on the number of pages or posts that may be scanned.','wp-ada-compliance-basic').'</p>';
}
/************************************************
define scan rules
*************************************************/
function wp_ada_compliance_basic_settings_scan_rule() {
global $wp_ada_compliance_basic_def;
// update ignore rules
//wp_ada_compliance_basic_update_scan_rule_ignore_options();
// set default options
wp_ada_compliance_basic_set_scan_rule_options();
$scanoptions = get_option('wp_ada_compliance_basic_scan_rules', array());
$ignore_rules = get_option('wp_ada_compliance_basic_ignore_scan_rules', array());
echo '<fieldset>';
echo '<legend style="font-weight:bold;">';
_e('Choose the issues to look for while scanning content on your website.', 'wp-ada-compliance-basic');
echo '</legend>';
echo '<div class="adaReferenceReport">';
echo '<p class="wp_ada_error_key">';
echo '<i class="fa fa-exclamation-circle" aria-hidden="true"></i> ';
_e('ALERTS - issues that REQUIRE MANUAL verification or MAY BE corrected to improve web accessibility, enhance a user\'s experience or avoid the possibility of inaccessible content inadvertently being introduced into a website.','wp-ada-compliance-basic');
echo '<br /><br />';
echo '<i class="fa fa-ban" aria-hidden="true"></i> ';
_e('WARNINGS - issues that MUST BE corrected to insure compliance with Section 508 or WCAG 2.1 LEVEL A/AA Web Accessibility Standards and insure content is accessible to users with disabilities.','wp-ada-compliance-basic');
echo '</p>';
if(is_array($wp_ada_compliance_basic_def))
foreach ($wp_ada_compliance_basic_def as $rows => $row){
echo '<div class="adaReference">';
echo '<input type="checkbox" class="wp_ada_scan_rules" name="wp_ada_compliance_basic_scan_rules[]" id="wp_ada_compliance_basic_scan_rules_'.esc_attr($rows).'" value="'.esc_attr($rows).'"';
if(!in_array($rows,$ignore_rules)) echo ' checked="checked"';
echo '>';
echo '<label for="wp_ada_compliance_basic_scan_rules_'.esc_attr($rows).'">';
if(strstr($row['DisplayError'],"WARNING")) echo '<i class="fa fa-ban" aria-hidden="true"></i>';
elseif(strstr($row['DisplayError'],"ALERT")) echo '<i class="fa fa-exclamation-circle" aria-hidden="true"></i>';
if(isset($row['Settings']) and $row['Settings'] != "") echo esc_html($row['Settings']);
else echo esc_html($row['StoredError']);
if($row['Reference'] != "") echo ' <a href="'.esc_url($row['ReferenceURL']).'" target="_blank" class="adaNewWindowInfo">'.esc_html($row['Reference']).' <i class="fa fa-external-link" aria-hidden="true"><span class="wp_ada_hidden">'.__('opens in a new window', 'wp-ada-compliance-basic').'</span></i></a>';
echo '</label>';
echo '</div>';
}
echo '</div>';
echo '</fieldset>';
}
/**********************************************
CREATE MENU LINKS AND PAGES
**********************************************/
function wp_ada_compliance_basic_admin_menu() {
$settingsuser = get_option('wp_ada_compliance_basic_settingsusers','manage_options');
if($settingsuser == "") $settingsuser = 'manage_options';
if(current_user_can('edit_pages')){
// web accessibility heading link
add_menu_page( __('WP ADA Compliance Report', 'wp-ada-compliance-basic'), __('Web Accessibility Basic','wp-ada-compliance-basic'), 'edit_pages', 'ada_compliance/compliancereportbasic.php', 'wp_ada_compliance_basic_report_page', 'dashicons-media-document', 10 );
// submenu links
// error report link
add_submenu_page('ada_compliance/compliancereportbasic.php', __('Error Report', 'wp-ada-compliance-basic'), __('Error Report','wp-ada-compliance-basic'), 'edit_pages', 'ada_compliance/compliancereportbasic.php', 'wp_ada_compliance_basic_report_page' );
// issue reference link
add_submenu_page('ada_compliance/compliancereportbasic.php', __('ADA Compliance Guidelines Reference', 'wp-ada-compliance-basic'), __('Error References','wp-ada-compliance-basic'), 'read', 'ada_compliance/compliancereferencereportbasic.php', 'wp_ada_compliance_basic_referencereport_page' );
// settings link
add_submenu_page('ada_compliance/compliancereportbasic.php', __('Settings', 'wp-ada-compliance-basic'), __('Settings','wp-ada-compliance-basic'), $settingsuser, 'wp-ada-compliance-basic-admin', 'wp_ada_compliance_basic_settings_page' );
// send report page (hidden from menu)
add_submenu_page(null, __('Send Report', 'wp-ada-compliance-basic'), __('Send Report','wp-ada-compliance-basic'), 'edit_pages', 'ada_compliance/send-report.php', 'wp_ada_compliance_basic_send_report' );
// print report page (hidden from menu)
add_submenu_page(null, __('Print Report', 'wp-ada-compliance-basic'), __('Print Report','wp-ada-compliance-basic'), 'edit_pages', 'ada_compliance/print-report.php', 'wp_ada_compliance_basic_print_report' );
}
}
// webaim validation link and other external links
function wp_ada_compliance_basic_add_external_link_admin_submenu() {
global $submenu;
$enablewave = get_option('wp_ada_compliance_basic_enablewave','true');
if($enablewave == 'true'){
$permalink = 'http://wave.webaim.org/report#/'.get_site_url();
$submenu['ada_compliance/compliancereportbasic.php'][] = array( __('Evaluate with WAVE','wp-ada-compliance-basic'), 'edit_pages', esc_url($permalink) );
}
$permalink = 'https://www.access-board.gov/guidelines-and-standards/communications-and-it/about-the-ict-refresh/final-regulatory-impact-analysis#_Toc377046563';
$submenu['ada_compliance/compliancereportbasic.php'][] = array( __('Section 508 Reference','wp-ada-compliance-basic'), 'edit_pages', esc_url($permalink) );
$permalink = 'https://www.w3.org/WAI/WCAG21/quickref/';
$submenu['ada_compliance/compliancereportbasic.php'][] = array( __('WCAG 2.1 Reference','wp-ada-compliance-basic'), 'edit_pages', esc_url($permalink) );
}
/************************************************************
// add seeting link to menu
**********************************************************/
function wp_ada_compliance_basic_admin_add_page() {
$settingsuser = get_option('wp_ada_compliance_basic_settingsusers','manage_options');
add_options_page(__('Web Accessibility Settings', 'wp-ada-compliance-basic'), __('Web Accessibility Settings', 'wp-ada-compliance-basic'), $settingsuser, 'wp-ada-compliance-basic-admin', 'wp_ada_compliance_basic_options_page');
}
/************************************************************
// display the admin options page
**********************************************************/
function wp_ada_compliance_basic_options_page() {
// reset data
if (isset($_GET[ 'purge' ])) {
update_option( 'wp_ada_compliance_basic_cron_count', 0);
update_option( 'wp_ada_compliance_basic_scan_increment', 0);
wp_ada_compliance_basic_purge();
wp_ada_compliance_basic_admin_notices();
$_SERVER['REQUEST_URI'] = str_replace('&purge=1', '', $_SERVER['REQUEST_URI']);
}
// reset settings
if (isset($_GET[ 'reset_settings' ])) {
wp_ada_compliance_basic_remove_options();
$_SERVER['REQUEST_URI'] = str_replace('&reset_settings=1', '', $_SERVER['REQUEST_URI']);
}
echo '<div class="wrap"><div class="wp-ada-compliance-settings-page postbox-container metabox-holder">';
echo '<h1 class="wp-heading-inline">';
echo __('Web Accessibility Report Settings', 'wp-ada-compliance-basic');
echo '</h1>';
echo '<div class="notice notice-info"><h3 class="adaRedText"><a href="https://www.alumnionlineservices.com/php-scripts/wordpress-wp-ada-compliance-check/">';
_e('Upgrade to the full version ', 'wp-ada-compliance-basic');
echo '</a>';
_e('to unlock all the great features of this plugin! ', 'wp-ada-compliance-basic');
echo '</h3></div>';
echo '<p>';
echo '<a href="'.esc_url(get_site_url()).'/wp-admin/admin.php?page=ada_compliance/compliancereportbasic.php" class="button button-primary"><i class="fa fa-file-text" aria-hidden="true"></i> ';
_e('View Report', 'wp-ada-compliance-basic');
echo '</a> ';
echo '<a href="'.esc_url(get_site_url()).'/wp-admin/admin.php?page=wp-ada-compliance-basic-admin&purge=1" onclick="return confirm(\'';
_e('Are you sure you want to reset all error data?', 'wp-ada-compliance-basic');
echo '\')" onkeypress="return confirm(\'';
_e('Are you sure you want to reset all error data?', 'wp-ada-compliance-basic');
echo '\')" class="button button-secondary"><i class="fa fa-eraser" aria-hidden="true"></i> ';
_e('Reset Report Data', 'wp-ada-compliance-basic');
echo '</a> ';
// reset options
echo '<a href="'.esc_url(get_site_url()).'/wp-admin/admin.php?page=wp-ada-compliance-basic-admin&reset_settings=1" onclick="return confirm(\'';
_e('Are you sure you want to reset plugin settings?', 'wp-ada-compliance-basic');
echo '\')" onkeypress="return confirm(\'';
_e('Are you sure you want to reset plugin settings?', 'wp-ada-compliance-basic');
echo '\')" class="button button-secondary"><i class="fa fa-cog" aria-hidden="true"></i> ';
_e('Reset Settings', 'wp-ada-compliance-basic');
echo '</a> ';
echo '</p>';
// display system requirement issues and additional setup:
wp_ada_compliance_basic_check_server_requirements();
echo '<div><form action="options.php" method="post" id="ada_compliance_options">';
settings_fields('wp_ada_compliance_basic_options');
wp_ada_compliance_basic_do_settings_sections_tabs('wp_ada_compliance_basic');
echo '</form></div>';
echo '<a id="adascrollbutton" aria-label="Top"></a>';
echo '</div>';
}
/***********************************************************
change default roll to edit settings
***********************************************************/
function wp_ada_compliance_basic_set_role(){
$settingsuser = get_option('wp_ada_compliance_basic_settingsusers','manage_options');
if($settingsuser == "") return 'manage_options';
return $settingsuser;
}
// register endpoint to rescan a document
add_action( 'rest_api_init', function () {
register_rest_route( 'wp_ada_compliance_basic/v1', '/rescan', array(
'methods' => 'GET',
'callback' => 'wp_ada_compliance_basic_rest_start_single_scan',
'permission_callback' => function () {
return current_user_can( 'edit_pages' );
}
) );
} );
// register endpoint to update report upon return
add_action( 'rest_api_init', function () {
register_rest_route( 'wp_ada_compliance_basic/v1', '/refreshreport', array(
'methods' => 'GET',
'callback' => 'wp_ada_compliance_basic_refresh_report_page',
'permission_callback' => function () {
return current_user_can( 'edit_pages' );
}
) );
} );
// register endpoints to update ignore status
add_action( 'rest_api_init', function () {
register_rest_route( 'wp_ada_compliance_basic/v1', '/ignore', array(
'methods' => 'GET',
'callback' => 'wp_ada_compliance_basic_ignore',
'permission_callback' => function () {
return current_user_can( 'edit_pages' );
}
) );
} );
// ignore documents
function wp_ada_compliance_basic_ignore(){
check_ajax_referer('wp_rest', '_wpnonce');
// ignore errors
if(isset($_GET[ 'wpadaignore' ])){
$values = explode('_',sanitize_text_field($_GET[ 'wpadaignore' ]));
if($values[2] == 0) $setting = 1;
if($values[2] == 1) $setting = 0;
if($values[2] == 2) $setting = 1;
wp_ada_compliance_basic_jquery_ignore_error((int)$values[1], $setting);
// remove records no longer being scanned
wp_ada_compliance_basic_purge_records();
return $values[1];
}
if ( isset( $_GET[ 'wpadaignorerule' ] ) ) {
$values = explode('|',sanitize_text_field($_GET[ 'wpadaignorerule' ]));
wp_ada_compliance_basic_ignore_scan_rule($values[2]);
// remove records no longer being scanned
wp_ada_compliance_basic_purge_records();
return $values[2];
}
}
/************************************************************
do tabbed sections
**************************************************************/
/** Replace the call to 'do_settings_sections()' with a call to this function */
function wp_ada_compliance_basic_do_settings_sections_tabs($page){
global $wp_settings_sections, $wp_settings_fields;
if(!isset($wp_settings_sections[$page])) :
return;
endif;
echo '<div id="abb-tabs">';
echo '<p><span class="button-group">';
foreach((array)$wp_settings_sections[$page] as $section) :
if(!isset($section['title']))
continue;
printf('<a href="#%1$s" class="button button-secondary">%2$s</a>',
$section['id'], /** %1$s - The ID of the tab */
$section['title'] /** %2$s - The Title of the section */
);
endforeach;
echo '<input class="button button-primary" name="Submit" type="submit" value="';
_e('Save Changes', 'wp-ada-compliance-basic');
echo '" /></span></p>';
foreach((array)$wp_settings_sections[$page] as $section) :
echo '<div class="postbox">';
printf('<div id="%1$s">',
$section['id'] /** %1$s - The ID of the tab */
);
if(!isset($section['title']))
continue;
if($section['callback'])
call_user_func($section['callback'], $section);
if(!isset($wp_settings_fields) || !isset($wp_settings_fields[$page]) || !isset($wp_settings_fields[$page][$section['id']]))
continue;
echo '<div class="inside">';
echo '<table>';
do_settings_fields($page, $section['id']);
echo '</table>';
echo '</div>';
echo '</div></div>';
endforeach;
echo '<p><input class="button button-primary" name="Submit" type="submit" value="';
_e('Save Changes', 'wp-ada-compliance-basic');
echo '" /></p>';
echo '</div></div>';
}
?>
/* CSS Document */
.wp_ada_compliance_report{
margin-top: 35px;
}
.toplevel_page_ada_compliance-compliancereportbasic .notice{
max-width: 78%;
}
.wp-ada-compliance-wave-link{
text-align:center;
font-size: 90%;
}
.wp-ada-compliance-wave-link .fa{
font-size: 140%;
margin-right: 2px;
}
.adanewitem{
color:#008000;
font-size: 120% !important;
}
.wpadaJqueryOff .wp-ada-ignore-options{
display:block;
}
/* not needed
.wpadaJqueryOff .adaHelpText{
display:block;
}
.wpadaJqueryOff .adaHelpLink {
display:none;
}*/
.wpadaIframe #wpadminbar, .wpadaIframe #adminmenuwrap, .wpadaIframe #adminmenuback, .wpadaIframe .wp_ada_compliance_scanstatus, .wpadaIframe .wp-ada-help-icon{
display:none;
}
body.wpadaIframe {
margin-left:-45px;
padding: 5px;
}
.summary-dismiss {
border: 1px solid #000;
position: absolute;
top: 0;
right: 20px;
margin: 0;
padding: 5px;
background-color: #2F6FA7;
color: #fff;
cursor: pointer;
}
.adadismiss{
float:right;
background: #dc3232;
padding: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 6px;
color: #fff;
font-weight:bold;
border: 2px solid #fff;
cursor:pointer;
}
.wp-ada-reiewprompt{
position: absolute;
top: 250px; /* position the top edge of the element at the middle of the parent */
left: 50%; /* position the left edge of the element at the middle of the parent */
transform: translate(-50%, -50%);
border: 1px solid #000;
background-color: #eee;
text-align: center;
height: 200px;
width: 500px;
z-index: 2000;
color: #000;
}
.wp-ada-reiewprompt a{
margin-top: 20px;
margin-right: 10px;
}
.gutenberg__editor .wp_ada_version_message{
margin: 2px;
font-size: 85%;
}
.wp-ada-print_results{
display:none;
}
.admin_page_ada_compliance-print-report #wpadminbar, .admin_page_ada_compliance-print-report #adminmenuwrap{
display:none !important;
}
.wp_ada-compliance-recommended-plugins{
margin-bottom: 20px !important;
font-weight:bold;
}
li.wp_ada_light {
font-size: 600%;
margin-left: 50px;
}
li.wp_ada_light span {
font-size: 20% !important;
margin-left: 0px !important;
vertical-align: top;
line-height: 10px;
}
.wp_ada_light_green {
color: #005700;
font-size: 120%;
}
.wp_ada_compliance_notices {
font-weight: bold;
padding: 10px;
color: #C91215;
font-size: 110%;
}
.wp_ada_form .wp-ada-compliance-filters{
float:right;
margin-top: 0px;
margin-right: 100px;
}
.wp_ada_action_column{
width:105px;
}
.wp-ada-ignore-options{
display:none;
margin-left: 20px;
padding-bottom: 5px;
}
.wp-ada-ignore-options-click{
margin: 0px;
padding:0px;
color: #0073aa;
text-decoration:underline;
cursor:pointer;
}
.wp-ada-ignore-options-click:focus{
outline:auto;
}
.wp_ada_scan_rules{
margin-right: 20px !important;
width: 20px !important;
height: 20px !important;
}
.wp_ada_compliance_basic_print{
float:right;
}
.wp_ada_version_message{
font-size: 110%;
font-weight:bold;
}
.wp_ada_light_red {
color: #C91215;
font-size: 120%;
}
.wp_ada_light_yellow {
color: #e4ce04;
font-size: 120%;
text-shadow: -1px 0 black, 0 1px black, 1px 0 black, 0 -1px black;
}
.ada_compliance_settings_text {
padding: 10px;
font-size: 120%;
font-weight: bold;
}
.ada_compliance_report_link{
margin: 10px;
text-align:center;
}
.ada_compliance_missing_license {
background-color: #ED9FA0!important;
}
#ada_compliance_options label {
margin-right: 10px !important;
}
a span.adaNewWindow {
text-decoration: none;
}
.wp-ada-compliance-buttns{
clear:both;
}
.wp-ada-compliance-buttns a{
margin-bottom: 10px;
}
.wp_ada_compliance_basic_scanstatus{
padding: 8px;
border: 1px solid black;
margin: 10px;
background-color:green;
color:#fff;
font-weight:bold;
}
.adaError {
color: #fff;
padding: 10px;
font-size: 100%;
background-color: #dc3232;
border-color: #ebccd1;
width: 90%;
}
.adaError .fa {
margin-right: 5px;
}
.adaError .fa-ban, .adaError .fa-exclamation-circle {
font-size: 150% !important;
}
.adaReferenceReport {
background-color: #fff;
padding: 10px;
}
.ada_compliance_report_link_clear {
text-align:center;
}
.ada_compliance_report_link_clear .fa-thumbs-up{
font-size: 200%;
width: 100px;
padding: 5px;
background-color: #005700;
color:#ffffff;
cursor:auto !important;
font-weight:bold;
}
.adaReference .fa-ban, .wp_ada_error_key .fa-ban, .ada_error .fa-ban {
font-size: 150% !important;
margin-right: 10px !important;
color: #C91215;
}
.adaReference .fa-exclamation-circle, .wp_ada_error_key .fa-exclamation-circle, .ada_error .fa-exclamation-circle {
font-size: 150% !important;
margin-right: 10px !important;
}
.wp_ada_error_key {
margin-top: 15px;
background-color: #fff;
padding: 5px;
border: 1px dashed #0073aa;
}
.adaReferenceReport .wp_ada_error_key {
background-color: #eee;
}
.adaError a {
color: #fff;
}
.adaError h2 {
color: #fff;
}
.adaErrorText {
color: #fff;
margin-left: 10px;
font-size: 110%;
}
.adaAllGood {
color: #005700;
}
.adaRedText {
color: #C91215;
}
.adaBoldText {
font-weight: bold;
}
.adamarketingtext{
font-weight: bold;
color: #C91215;
font-size: 110% !important;
width: 80%;
margin-top: 20px !important;
}
.adaEffectedCode {
display: none;
}
.wp-ada-send-report{
margin: 20px;
}
body.toplevel_page_ada_compliance-compliancereportbasic #TB_window img, .adaEffectedCode img{
max-width: 500px;
max-height: 200px;
}
body.toplevel_page_ada_compliance-compliancereportbasic #TB_window code *{
min-height: 200px;
}
.adaHelpText {
display: none;
font-weight: bold;
border: 1px dashed #0073aa;
padding: 10px;
margin-top: 10px;
color:#000;
}
td .adaHelpLink {
padding: 0px;
}
.adaHelpLinkToggle{
display: inline;
}
td .adaHelpLink:focus {
outline:auto;
}
.adaViewbar {
font-weight: bold;
padding: 5px;
}
.adaHelpLink {
font-weight: bold;
padding: 8px;
cursor: pointer;
color: #0073aa;
text-decoration: underline;
}
.wp_ada_form #sort,.wp_ada_form #view{
max-width: 90px;
}
.adashowingmessage {
clear:both;
display: block;
vertical-align: middle;
}
.wp_ada_form .adashowingmessage{
margin-right: 20px;
border-bottom: 1px solid #0073aa;
font-weight:bold;
}
.adaViewCode {
cursor: pointer;
color: #0073aa;
text-decoration: underline;
}
.adaworking{
background: url(ajax-loading.jpg) no-repeat;
background-size: 30px 25px;
width: 50px;
height: 50px;
padding-right: 20px;
}
.adaIgnored {
color:#C91215;
}
.wp_ada_compliance_basic_updates {
font-weight: bold;
padding: 10px;
border: 1px solid #C91215;
}
.btn {
display: inline-block;
padding: 6px 12px;
margin-bottom: 0;
font-size: 14px;
font-weight: 400;
line-height: 1.42857143;
text-align: center;
white-space: nowrap;
vertical-align: middle;
-ms-touch-action: manipulation;
touch-action: manipulation;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
background-image: none;
border: 1px solid transparent;
border-radius: 4px;
}
.btn-primary {
color: #fff !important;
background-color: #337ab7;
border-color: #2e6da4;
text-decoration: none;
}
.btn-primary:hover {
color: #eee !important;
}
.btn-warning {
color: #fff !important;
background-color: #D72124;
border-color: #2e6da4;
text-decoration: none;
}
.btn-warning:hover {
color: #eee !important;
}
.btn-danger {
color: #fff;
background-color: #CD322D;
border-color: #d43f3a;
text-decoration: none;
font-weight:bold;
}
.btn-danger:hover {
color: #eee !important;
}
.floatright{
float: right;
margin: 5px;
}
.adaReference {
margin: 10px;
border-bottom: 1px solid #ccc;
padding: 10px;
}
.ada_post_custom_fields {
margin-right: 20px;
width: 300px;
display: inline-block;
}
.adascanstarted {
display: none;
}
.ada_posttype_notification {
display: none;
}
.wp_ada_label {
font-weight: bold;
margin-right: 1em;
}
.wp_ada_issue_sum {
float: left;
margin: 0px;
margin-right: 15px;
width: 28%;
max-width: 215px;
}
.wp_ada_summary_left {
display:inline-block;
margin-left:2%;
list-style: disc;
border: 0px;
border-right: 1px solid #eee;
width:22%;
padding-right:1%;
vertical-align:top;
}
.wp_ada_dashboard_widget .wp_ada_summary_left {
float:none;
display:block;
width:100%;
margin:0;
padding:0;
list-style:none;
}
.wp_ada_summary_right {
display:inline-block;
margin-left:2%;
width:72%;
vertical-align:top;
}
h2.wp_ada_summary_header {
margin-top: 0px;
}
.wp_ada_dashboard_widget ul {
list-style: disc;
}
.wp_ada_dashboard_widget .wp_ada_issue_sum {
float: none;
display: block;
width: 5px;
}
.wp_ada_dashboard_widget .wp_ada_summary {
width: 350px;
border: 0px;
}
a span.wp_ada_hidden {
position: absolute;
left: -9999px;
font-size: 9pt !important;
border: 1px dotted !important;
background-color: #eee;
color: #000;
font-weight: normal !important;
padding: 1px;
font-family: arial !important;
width: 11.5em;
text-align: center;
text-transform: lowercase;
}
a.adaNewWindowInfo {
position: relative;
}
a.adaNewWindowInfo:hover .wp_ada_hidden, a.adaNewWindowInfo:focus .wp_ada_hidden, a.adaNewWindowInfo:active .wp_ada_hidden {
z-index: 1000;
position: absolute;
top: 1.4em;
left: 3em;
}
.ada_error .wp_ada_action_column a.adaNewWindowInfo:hover .wp_ada_hidden, .ada_error .wp_ada_action_column a.adaNewWindowInfo:focus .wp_ada_hidden, .ada_error .wp_ada_action_column a.adaNewWindowInfo:active .wp_ada_hidden {
left: -5em;
}
.ada_error .fa {
margin-right: 5px;
}
a i.fa-external-link {
margin-left: 5px;
font-size: .7em;
color: #000;
}
.adaReference a i.fa-external-link, .ada_error a i.fa-external-link {
font-size: .9em;
}
.adaError a i.fa-external-link {
font-size: 1em;
color: #fff;
}
.ada_marketing_text{
color:yellow;
}
.activationfield {
font-weight: bold;
margin-bottom: 20px !important;
}
@media only screen and (max-width: 1295px) {
.wp_ada_label {
display: block;
margin: 5px;
}
.wp_ada_form .wp-ada-compliance-filters{
float:none;
}
}
@media only screen and (max-width: 1024px) {
.wp_ada_summary_left {
float: left;
width: 55%;
margin-left: 25px;
}
.wp_ada_issue_sum {
float:none;
}
.wp_ada_form{
width: 91%;
}
h2.wp_ada_summary_header{
margin-top: -20px;
}
}
@media only screen and (max-width: 768px) {
.wp-ada-compliance-buttns{
clear:both;
}
.wp-ada-compliance-buttns a{
display:block;
margin: 10px;
}
}
@media only screen and (max-width: 500px) {
.toplevel_page_ada_compliance-compliancereportbasic .btn {
display: block;
margin-bottom: 5px;
}
.wp_ada_label {
display: block;
margin: 5px;
}
.wp_ada_summary_left {
float: none;
margin: 0px;
margin-left: 25px;
}
.wp_ada_issue_sum {
float: none;
width: 100%;
margin-right: 0px;
}
.ada_error, .ada_error th, .ada_error td {
display: block;
}
.ada_error tr {
border: 1px solid #ccc;
}
/* Hide table headers (but not display: none;, for accessibility) */
.ada_error th {
position: absolute;
top: -9999px;
left: -9999px;
}
.ada_error td {
/* Behave like a "row" */
border: none;
border-bottom: 1px solid #eee;
position: relative;
padding-left: 50%;
}
.ada_error td:before {
/* Now like a table header */
position: absolute;
/* Top/left values mimic padding */
top: 6px;
left: 6px;
width: 45%;
padding-right: 10px;
white-space: nowrap;
}
/*
Label the data
*/
.ada_error td:nth-of-type(1):before {
content: "Title";
}
.ada_error td:nth-of-type(2):before {
content: "Content Type";
}
.ada_error td:nth-of-type(3):before {
content: "Error Type";
}
.ada_error td:nth-of-type(4):before {
content: "Error";
}
.ada_error td:nth-of-type(5):before {
content: "Effected Code";
}
.ada_error td:nth-of-type(6):before {
content: "Actions";
}
}
@media print {
.wp_ada_compliance_report{
margin-top: -150px;
}
.adaViewCode, .adaHelpLink {
display:none;
}
.ada_error {
font-size: 90%;
}
.ada_error a{
text-decoration:none;
color: #000;
}
.web-accessibility-basic_page_ada_compliance-compliancereferencereportbasic .adaReferenceReport .adaEffectedCode, .toplevel_page_ada_compliance-compliancereportbasic .wp_ada_compliance_basic_report .adaEffectedCode{
display:inline;
}
.web-accessibility-basic_page_ada_compliance-compliancereferencereportbasic .adaReferenceReport .printfixedwidth, .toplevel_page_ada_compliance-compliancereportbasic .wp_ada_compliance_basic_report .printfixedwidth{
position:relative;
display:inline;
float:left;
border:0;
}
.web-accessibility-basic_page_ada_compliance-compliancereferencereportbasic .adaReferenceReport .printhidden, .toplevel_page_ada_compliance-compliancereportbasic .wp_ada_compliance_basic_report .printhidden{
display:none;
}
.wp-ada-print_results{
display:block;
}
.admin_page_ada_compliance-print-report{
margin-left: -120px;
width: 100%;
height: 100%;
background:#fff;
}
.admin_page_ada_compliance-print-report #wpadminbar, .admin_page_ada_compliance-print-report #adminmenuback{
display:none !important;
}
.admin_page_ada_compliance-print-report .adaEffectedCode{
display:block;
}
body.toplevel_page_ada_compliance-compliancereportbasic {
visibility:hidden;
background-color:#fff;
transform: scale(.9);
}
body.web-accessibility-basic_page_ada_compliance-compliancereferencereportbasic
{
visibility:hidden;
background-color:#fff;
}
.web-accessibility-basic_page_ada_compliance-compliancereferencereportbasic .adaReferenceReport, .toplevel_page_ada_compliance-compliancereportbasic .wp_ada_compliance_basic_report {
visibility:visible;
margin-left:-150px;
}
.web-accessibility-basic_page_ada_compliance-compliancereferencereportbasic .adaReferenceReport .btn, .toplevel_page_ada_compliance-compliancereportbasic .wp_ada_compliance_basic_report .btn,
.toplevel_page_ada_compliance-compliancereportbasic .wp_ada_compliance_basic_report .wp_ada_form{
display:none;
}
.web-accessibility-basic_page_ada_compliance-compliancereferencereportbasic .adaReferenceReport div{
page-break-inside:avoid;
}
.toplevel_page_ada_compliance-compliancereportbasic .wp_ada_compliance_basic_report tr, .web-accessibility-basic_page_ada_compliance-compliancereferencereportbasic .adaReferenceReport tr{
border-bottom: 1px solid #ccc;
}
}
/* settings tabs */
#ada_compliance_options .ui-tabs ul.ui-tabs-nav{
border-bottom: 2px solid #CCC;
line-height: 31px;
margin-top: 40px;
}
#ada_compliance_options .ui-tabs ul.ui-tabs-nav li{
display: inline;
margin-right: 10px;
background-color: #fff;
font-weight:bold;
}
#ada_compliance_options .ui-tabs ul.ui-tabs-nav li.ui-state-active{
background-color: #2F6FA7 !important;
color:#fff !important;
border: 1px solid #CCC;
border-bottom: none;
}
#ada_compliance_options .ui-tabs ul.ui-tabs-nav li a{
color: #000;
background-color: #fff;
border: 1px solid #ccc;
border-bottom: none;
font-size: 1em;
text-decoration: none;
padding: 8px 10px;
}
#ada_compliance_options .ui-tabs ul.ui-tabs-nav li a:hover{
color: #2F6FA7;
background-color: #ffff;
}
#ada_compliance_options .ui-tabs ul.ui-tabs-nav li.ui-state-active a{
color: #fff;
cursor: pointer !important;
background-color: #2F6FA7;
}
/* add settings scroll button */
#adascrollbutton {
display: inline-block;
background-color: #2F6FA7;
width: 50px;
height: 50px;
text-align: center;
border-radius: 4px;
margin: 0px;
position: fixed;
bottom: 5px;
right: 0px;
transition: background-color .3s;
z-index: 1000;
}
#adascrollbutton:hover {
cursor: pointer;
background-color: #333;
}
#adascrollbutton:active {
background-color: #555;
}
#adascrollbutton::after {
content: "\f077";
font-family: FontAwesome;
font-weight: normal;
font-style: normal;
font-size: 2em;
line-height: 50px;
color: #fff;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment