function gpi_action_single_recheck_page($page_id) { global $wpdb; // If we are going to recheck this data, now is the time to do it if (!empty($page_id)) { $gpi_page_stats = $wpdb->prefix . 'gpi_page_stats'; $query = "\n SELECT URL, type, object_id, term_id\n FROM {$gpi_page_stats}\n WHERE ID = {$page_id}\n "; $page_stats = $wpdb->get_row($query, ARRAY_A); $GPI_ListTable = new GPI_List_Table(); $gpi_options = $GPI_ListTable->getOptions(); require_once GPI_DIRECTORY . '/core/core.php'; $googlePagespeedInsights = new googlePagespeedInsights($gpi_options); $urls_to_recheck = array(); if (!is_null($page_stats['object_id'])) { $theid = $page_stats['object_id']; } elseif (!is_null($page_stats['term_id'])) { $theid = $page_stats['term_id']; } $urls_to_recheck[$page_stats['type']][] = array('url' => $page_stats['URL'], 'objectid' => $theid); $checkstatus = $googlePagespeedInsights->googlepagespeedinsightsworker($urls_to_recheck); if ($checkstatus == false) { $message = __('The API is busy checking other pages, please try again later.', 'gpagespeedi'); } else { $message = __('Recheck Complete.', 'gpagespeedi'); } return $message; } }
function gpi_action_recheck_page($page_id, $page_report) { global $wpdb; $gpi_page_stats = $wpdb->prefix . 'gpi_page_stats'; if (is_array($page_report) && !empty($page_report)) { // Build our where clauses for selecting URLs $page_report_count = count($page_report); $x = 1; $where_clause = ''; foreach ($page_report as $page) { if ($x < $page_report_count) { $where_clause .= 'ID = ' . $page . ' OR '; } else { $where_clause .= 'ID = ' . $page; } $x++; } // Set Force Recheck to 1 on selected URLs $wpdb->query("\n UPDATE {$gpi_page_stats} SET force_recheck = 1\n WHERE {$where_clause}\n "); // Schedule the api to check pages immediately $GPI_ListTable = new GPI_List_Table(); $gpi_options = $GPI_ListTable->getOptions(); require_once GPI_DIRECTORY . '/core/core.php'; $googlePagespeedInsights = new googlePagespeedInsights($gpi_options); $googlePagespeedInsights->google_pagespeed_insights_Update_Options('last_run_finished', false, 'gpagespeedi_options'); wp_schedule_event(time(), 'gpi_lastrun_checker', 'googlepagespeedinsightschecker'); $return_message = $page_report_count; } elseif (!empty($page_id)) { // Set Force Recheck to 1 on selected URL $wpdb->query("\n UPDATE {$gpi_page_stats} SET force_recheck = 1\n WHERE ID = {$page_id}\n "); // Schedule the api to check pages immediately $GPI_ListTable = new GPI_List_Table(); $gpi_options = $GPI_ListTable->getOptions(); require_once GPI_DIRECTORY . '/core/core.php'; $googlePagespeedInsights = new googlePagespeedInsights($gpi_options); $googlePagespeedInsights->google_pagespeed_insights_Update_Options('last_run_finished', false, 'gpagespeedi_options'); wp_schedule_event(time(), 'gpi_lastrun_checker', 'googlepagespeedinsightschecker'); $return_message = '1'; } return $return_message; }
function do_check_pages($forceRecheck = false) { if (defined('GPI_DIRECTORY')) { $options = get_option('gpagespeedi_options'); require_once GPI_DIRECTORY . '/core/core.php'; $googlePagespeedInsights = new googlePagespeedInsights($options); if ($googlePagespeedInsights) { $googlePagespeedInsights->googlepagespeedinsightsworker(array(), true, $forceRecheck); return true; } } return false; }
function gpi_render_admin_page() { $admin_page = isset($_GET['render']) ? $_GET['render'] : ''; if (isset($_REQUEST['render1']) && -1 != $_REQUEST['render1']) { $admin_page = $_REQUEST['render1']; } if (isset($_REQUEST['render2']) && -1 != $_REQUEST['render2']) { $admin_page = $_REQUEST['render2']; } $GPI_ListTable = new GPI_List_Table(); $gpi_options = $GPI_ListTable->getOptions(); $gpi_ui_options = $GPI_ListTable->getOptions('gpagespeedi_ui_options'); ?> <div class="wrap"> <div id="icon-gpi" class="icon32"><br/></div> <h2>Google Pagespeed Insights</h2> <div class="reportmodes"> <?php if ($gpi_options['strategy'] == 'both' || $gpi_options['strategy'] == 'desktop') { ?> <a href="<?php echo $_SERVER['REQUEST_URI']; ?> &strategy=desktop" class="button-gpi desktop<?php if ($gpi_ui_options['view_preference'] == "desktop") { echo ' active'; } ?> "><?php _e('Desktop Mode', 'gpagespeedi'); ?> </a> <?php } ?> <?php if ($gpi_options['strategy'] == 'both' || $gpi_options['strategy'] == 'mobile') { ?> <a href="<?php echo $_SERVER['REQUEST_URI']; ?> &strategy=mobile" class="button-gpi mobile<?php if ($gpi_ui_options['view_preference'] == "mobile") { echo ' active'; } ?> "><?php _e('Mobile Mode', 'gpagespeedi'); ?> </a> <?php } ?> </div> <h3 class="nav-tab-wrapper"> <a href="?page=<?php echo $_REQUEST['page']; ?> &render=list" class="nav-tab <?php if ($admin_page == '' || $admin_page == 'list' || $admin_page == 'ignore' || $admin_page == 'recheck') { echo 'nav-tab-active'; } ?> "><?php _e('Report List', 'gpagespeedi'); ?> </a> <?php if ($admin_page == 'details') { ?> <a href="?page=<?php echo $_REQUEST['page']; ?> &render=details&page_id=<?php echo $_GET['page_id']; ?> " class="nav-tab nav-tab-active nav-tab-temp"><?php _e('Report Details', 'gpagespeedi'); ?> </a> <?php } ?> <a href="?page=<?php echo $_REQUEST['page']; ?> &render=summary" class="nav-tab <?php if ($admin_page == 'summary') { echo 'nav-tab-active'; } ?> "><?php _e('Report Summary', 'gpagespeedi'); ?> </a> <a href="?page=<?php echo $_REQUEST['page']; ?> &render=ignored-urls" class="nav-tab <?php if ($admin_page == 'ignored-urls' || $admin_page == 'activate') { echo 'nav-tab-active'; } ?> "><?php _e('Ignored URLs', 'gpagespeedi'); ?> </a> <a href="?page=<?php echo $_REQUEST['page']; ?> &render=options" class="nav-tab <?php if ($admin_page == 'options') { echo 'nav-tab-active'; } ?> "><?php _e('Options', 'gpagespeedi'); ?> </a> <a href="?page=<?php echo $_REQUEST['page']; ?> &render=about" class="nav-tab <?php if ($admin_page == 'about') { echo 'nav-tab-active'; } ?> "><?php _e('About', 'gpagespeedi'); ?> </a> </h3> <?php if ($gpi_options['google_developer_key'] == '' && $admin_page != 'options') { ?> <div id="message" class="error"> <p><strong><?php _e('You must enter your Google API key to use this plugin! Enter your API key in the', 'gpagespeedi'); ?> <a href="?page=<?php echo $_REQUEST['page']; ?> &render=options"><?php _e('Options', 'gpagespeedi'); ?> </a></strong>.</p> </div> <?php } ?> <?php if ($gpi_options['bad_api_key'] && $admin_page != 'options') { ?> <div id="message" class="error"> <p><strong><?php _e('The Google Pagespeed API Key you entered appears to be invalid. Please update your API key in the', 'gpagespeedi'); ?> <a href="?page=<?php echo $_REQUEST['page']; ?> &render=options"><?php _e('Options', 'gpagespeedi'); ?> </a></strong>.</p> </div> <?php } ?> <?php if ($gpi_options['pagespeed_disabled'] && $admin_page != 'options') { ?> <div id="message" class="error"> <p><strong><?php _e('The "PageSpeed Insights API" service is not enabled. To enable it, please visit the "Services" page from your ', 'gpagespeedi'); ?> <a href="https://code.google.com/apis/console/" target="_blank"><?php _e('Google API Console', 'gpagespeedi'); ?> </a></strong>.</p> </div> <?php } ?> <?php if ($gpi_ui_options['action_message']) { ?> <div id="message" class="updated"> <p><?php echo $gpi_ui_options['action_message']; ?> </p> </div> <?php } ?> <?php if ($gpi_options['new_ignored_items']) { ?> <div id="message" class="error"> <p><strong><?php _e('One or more URLs could not be reached by Google Pagespeed Insights and have automatically been added to the', 'gpagespeedi'); ?> <a href="?page=<?php echo $_REQUEST['page']; ?> &render=ignored-urls"><?php _e('Ignored URLs', 'gpagespeedi'); ?> </a></strong>.</p> </div> <?php } ?> <?php if ($gpi_options['backend_error']) { ?> <div id="message" class="error"> <p><strong><?php _e('An error has been encountered while checking one or more URLs. Possible causes: <br /><br />Daily API Limit Exceeded <a href="https://code.google.com/apis/console" target="_blank">Check API Usage</a> <br />API Key user limit exceeded <a href="https://code.google.com/apis/console" target="_blank">Check API Usage</a> <br />the URL is not publicly accessible or is bad. <br /><br />The URL(s) have been added to the', 'gpagespeedi'); ?> <a href="?page=<?php echo $_REQUEST['page']; ?> &render=ignored-urls"><?php _e('Ignored URLs', 'gpagespeedi'); ?> </a></strong></p> </div> <?php } ?> <?php require_once GPI_DIRECTORY . '/core/core.php'; $googlePagespeedInsights = new googlePagespeedInsights($gpi_options); //Show currently working status on admin pages if GPI is working in the background $worker_status = $googlePagespeedInsights->google_pagespeed_insights_Check_Status(); if ($worker_status) { ?> <div id="message" class="updated"> <span><p id="gpi_status_finished" style="font-size: 13px; display: none;"><?php _e('Google Pagespeed has finished checking pagespeed scores. <a href="javascript:location.reload(true);">Refresh to see new results.</a>', 'gpagespeedi'); ?> </p><p id="gpi_status_ajax" style="font-size: 13px;"><?php _e('Google Pagespeed is running in the background. Progress...', 'gpagespeedi'); ?> </p></span> </div> <?php } //Clear any one-time messages from above $googlePagespeedInsights->google_pagespeed_insights_Update_Options('backend_error', false, 'gpagespeedi_options'); $googlePagespeedInsights->google_pagespeed_insights_Update_Options('action_message', false, 'gpagespeedi_ui_options'); $googlePagespeedInsights->google_pagespeed_insights_Update_Options('new_ignored_items', false, 'gpagespeedi_options'); $default_strategy = $gpi_ui_options['view_preference']; switch ($admin_page) { case 'list': require_once GPI_DIRECTORY . '/includes/admin/list.php'; gpi_render_list_page(); break; case 'ignored-urls': require_once GPI_DIRECTORY . '/includes/admin/ignored-urls.php'; gpi_render_ignored_urls_page(); break; case 'options': require_once GPI_DIRECTORY . '/includes/admin/options.php'; gpi_render_options_page(); break; case 'details': $page_id = isset($_GET['page_id']) ? $_GET['page_id'] : ''; require_once GPI_DIRECTORY . '/includes/admin/details.php'; gpi_render_details_page($default_strategy, $page_id); break; case 'summary': require_once GPI_DIRECTORY . '/includes/admin/summary.php'; gpi_render_summary_page($default_strategy); break; case 'about': require_once GPI_DIRECTORY . '/includes/admin/about.php'; gpi_render_about(); break; default: require_once GPI_DIRECTORY . '/includes/admin/list.php'; gpi_render_list_page(); break; } ?> </div> <?php }
function gpi_render_options_page() { ?> <?php if ($_POST) { check_admin_referer('gpagespeedi_options'); //Check for purge all data option and truncate tables if checked if ($_POST['purge_all_data']) { global $wpdb; $gpi_page_stats = $wpdb->prefix . 'gpi_page_stats'; $gpi_page_reports = $wpdb->prefix . 'gpi_page_reports'; $gpi_page_blacklist = $wpdb->prefix . 'gpi_page_blacklist'; if ($_POST['purge_all_data'] == 'purge_reports') { $wpdb->query("TRUNCATE TABLE {$gpi_page_stats}"); $wpdb->query("TRUNCATE TABLE {$gpi_page_reports}"); } elseif ($_POST['purge_all_data'] == 'purge_everything') { $wpdb->query("TRUNCATE TABLE {$gpi_page_stats}"); $wpdb->query("TRUNCATE TABLE {$gpi_page_reports}"); $wpdb->query("TRUNCATE TABLE {$gpi_page_blacklist}"); } } $options = get_option('gpagespeedi_options'); $ui_options = get_option('gpagespeedi_ui_options'); $google_developer_key = $_POST['google_developer_key'] != "" ? $_POST['google_developer_key'] : $options['google_developer_key']; $response_language = $_POST['response_language'] != "" ? $_POST['response_language'] : $options['response_language']; $strategy = $_POST['strategy'] != "" ? $_POST['strategy'] : $options['strategy']; $max_execution_time = $_POST['max_execution_time'] != "" ? $_POST['max_execution_time'] : $options['max_execution_time']; $sleep_time = $_POST['sleep_time'] != "" ? $_POST['sleep_time'] : $options['sleep_time']; $log_api_errors = isset($_POST['log_api_errors']) ? true : false; $scan_method = $_POST['scan_method'] != "" ? $_POST['scan_method'] : $options['scan_method']; $recheck_interval = $_POST['recheck_interval'] != "" ? $_POST['recheck_interval'] : $options['recheck_interval']; $check_pages = isset($_POST['check_pages']) ? true : false; $check_posts = isset($_POST['check_posts']) ? true : false; $cpt_whitelist = isset($_POST['cpt_whitelist']) ? serialize($_POST['cpt_whitelist']) : false; $check_categories = isset($_POST['check_categories']) ? true : false; $default_strategy = $_POST['strategy'] != "both" ? $_POST['strategy'] : $ui_options['view_preference']; $new_values = array('google_developer_key' => $google_developer_key, 'response_language' => $response_language, 'strategy' => $strategy, 'max_execution_time' => $max_execution_time, 'sleep_time' => $sleep_time, 'log_api_errors' => $log_api_errors, 'scan_method' => $scan_method, 'recheck_interval' => $recheck_interval, 'check_pages' => $check_pages, 'check_posts' => $check_posts, 'cpt_whitelist' => $cpt_whitelist, 'check_categories' => $check_categories, 'first_run_complete' => $options['first_run_complete'], 'last_run_finished' => $options['last_run_finished'], 'bad_api_key' => false, 'pagespeed_disabled' => false, 'new_ignored_items' => false, 'backend_error' => false, 'new_activation_message' => false); update_option('gpagespeedi_options', $new_values); $new_ui_values = array('action_message' => false, 'view_preference' => $default_strategy); update_option('gpagespeedi_ui_options', $new_ui_values); if ($new_values['scan_method'] == "wp_cron") { if (!$options['first_run_complete'] && $google_developer_key != '' || isset($_POST['check_new_pages']) || isset($_POST['recheck_all_pages'])) { if (isset($_POST['recheck_all_pages'])) { $recheck = true; } else { $recheck = false; } $worker_args = array(array(), false, $recheck); wp_schedule_single_event(time(), 'googlepagespeedinsightschecknow', $worker_args); } } } $options = get_option('gpagespeedi_options'); $cpt_whitelist_arr = unserialize($options['cpt_whitelist']); ?> <?php if ($_POST) { if (!$options['first_run_complete'] || isset($_POST['check_new_pages']) || isset($_POST['recheck_all_pages'])) { ?> <div id="message" class="updated"> <?php if ($options['scan_method'] == "session_flush") { ?> <p><?php _e('Settings Saved. Google Pagespeed Insights will now begin generating page reports. This page may appear to still be loading, however report generation will continue when you navigate away.', 'gpagespeedi'); ?> </p> <?php } else { ?> <p><?php _e('Settings Saved. Google Pagespeed Insights will now begin generating page reports. Click the "Report List" tab to watch the progress', 'gpagespeedi'); ?> </p> <?php } ?> </div> <?php } else { ?> <div id="message" class="updated"> <p><?php _e('Settings Saved.', 'gpagespeedi'); ?> </p> </div> <?php } } ?> <?php require_once GPI_DIRECTORY . '/core/core.php'; $googlePagespeedInsights = new googlePagespeedInsights($options); //Show currently working status on admin pages if GPI is working in the background $worker_status = $googlePagespeedInsights->google_pagespeed_insights_Check_Status(); if ($worker_status) { ?> <div id="message" class="error"> <p><?php _e('Google Pagespeed Options cannot be changed while Pagespeed is running. Please wait until it has finished to make any changes.', 'gpagespeedi'); ?> </p> </div> <?php } ?> <form method="post" action="?page=<?php echo $_REQUEST['page']; ?> &render=options"> <?php if (function_exists('wp_nonce_field')) { wp_nonce_field('gpagespeedi_options'); } ?> <div class="row framed boxsizing"> <div class="boxheader large toggle"> <span class="left google"><?php _e('Google Pagespeed Options', 'gpagespeedi'); ?> </span> <span class="right open"></span> </div> <div class="padded"> <p><?php _e('Google API Key:', 'gpagespeedi'); ?> </p> <input type="text" name="google_developer_key" id="google_developer_key" value="<?php echo $options['google_developer_key']; ?> " class="googleapi code" /> <p class="description"><span style="color:red;"><?php _e('This is required', 'gpagespeedi'); ?> </span>: <?php _e('if you do not have an API key you can create a new one for free from', 'gpagespeedi'); ?> : <a href="https://code.google.com/apis/console" target="_blank">https://code.google.com/apis/console</a></p> <p class="description"><?php _e('If you need help creating an API key, please see the documentation included with this plugin.', 'gpagespeedi'); ?> : <a href="http://mattkeys.me/documentation/google-pagespeed-insights/" target="_blank">Documentation</a></p> <p><?php _e('Google Response Language:', 'gpagespeedi'); ?> </p> <select name="response_language" id="response_language"> <option value="ar" <?php if ($options['response_language'] == 'ar') { echo 'selected="selected"'; } ?> >Arabic</option> <option value="bg" <?php if ($options['response_language'] == 'bg') { echo 'selected="selected"'; } ?> >Bulgarian</option> <option value="ca" <?php if ($options['response_language'] == 'ca') { echo 'selected="selected"'; } ?> >Catalan</option> <option value="zh_TW" <?php if ($options['response_language'] == 'zh_TW') { echo 'selected="selected"'; } ?> >Traditional Chinese (Taiwan)</option> <option value="zh_CN" <?php if ($options['response_language'] == 'zh_CN') { echo 'selected="selected"'; } ?> >Simplified Chinese</option> <option value="hr" <?php if ($options['response_language'] == 'hr') { echo 'selected="selected"'; } ?> >Croatian</option> <option value="cs" <?php if ($options['response_language'] == 'cs') { echo 'selected="selected"'; } ?> >Czech</option> <option value="da" <?php if ($options['response_language'] == 'da') { echo 'selected="selected"'; } ?> >Danish</option> <option value="nl" <?php if ($options['response_language'] == 'nl') { echo 'selected="selected"'; } ?> >Dutch</option> <option value="en_US" <?php if ($options['response_language'] == 'en_US') { echo 'selected="selected"'; } ?> >English</option> <option value="en_GB" <?php if ($options['response_language'] == 'en_GB') { echo 'selected="selected"'; } ?> >English UK</option> <option value="fil" <?php if ($options['response_language'] == 'fil') { echo 'selected="selected"'; } ?> >Filipino</option> <option value="fi" <?php if ($options['response_language'] == 'fi') { echo 'selected="selected"'; } ?> >Finnish</option> <option value="fr" <?php if ($options['response_language'] == 'fr') { echo 'selected="selected"'; } ?> >French</option> <option value="de" <?php if ($options['response_language'] == 'de') { echo 'selected="selected"'; } ?> >German</option> <option value="el" <?php if ($options['response_language'] == 'el') { echo 'selected="selected"'; } ?> >Greek</option> <option value="iw" <?php if ($options['response_language'] == 'iw') { echo 'selected="selected"'; } ?> >Hebrew</option> <option value="hi" <?php if ($options['response_language'] == 'hi') { echo 'selected="selected"'; } ?> >Hindi</option> <option value="hu" <?php if ($options['response_language'] == 'hu') { echo 'selected="selected"'; } ?> >Hungarian</option> <option value="id" <?php if ($options['response_language'] == 'id') { echo 'selected="selected"'; } ?> >Indonesian</option> <option value="it" <?php if ($options['response_language'] == 'it') { echo 'selected="selected"'; } ?> >Italian</option> <option value="ja" <?php if ($options['response_language'] == 'ja') { echo 'selected="selected"'; } ?> >Japanese</option> <option value="ko" <?php if ($options['response_language'] == 'ko') { echo 'selected="selected"'; } ?> >Korean</option> <option value="lv" <?php if ($options['response_language'] == 'lv') { echo 'selected="selected"'; } ?> >Latvian</option> <option value="lt" <?php if ($options['response_language'] == 'lt') { echo 'selected="selected"'; } ?> >Lithuanian</option> <option value="no" <?php if ($options['response_language'] == 'no') { echo 'selected="selected"'; } ?> >Norwegian</option> <option value="pl" <?php if ($options['response_language'] == 'pl') { echo 'selected="selected"'; } ?> >Polish</option> <option value="pt_BR" <?php if ($options['response_language'] == 'pt_BR') { echo 'selected="selected"'; } ?> >Portuguese (Brazilian)</option> <option value="pt_PT" <?php if ($options['response_language'] == 'pt_PT') { echo 'selected="selected"'; } ?> >Portuguese (Portugal)</option> <option value="ro" <?php if ($options['response_language'] == 'ro') { echo 'selected="selected"'; } ?> >Romanian</option> <option value="ru" <?php if ($options['response_language'] == 'ru') { echo 'selected="selected"'; } ?> >Russian</option> <option value="sr" <?php if ($options['response_language'] == 'sr') { echo 'selected="selected"'; } ?> >Serbian</option> <option value="sk" <?php if ($options['response_language'] == 'sk') { echo 'selected="selected"'; } ?> >Slovakian</option> <option value="sl" <?php if ($options['response_language'] == 'sl') { echo 'selected="selected"'; } ?> >Slovenian</option> <option value="es" <?php if ($options['response_language'] == 'es') { echo 'selected="selected"'; } ?> >Spanish</option> <option value="sv" <?php if ($options['response_language'] == 'sv') { echo 'selected="selected"'; } ?> >Swedish</option> <option value="th" <?php if ($options['response_language'] == 'th') { echo 'selected="selected"'; } ?> >Thai</option> <option value="tr" <?php if ($options['response_language'] == 'tr') { echo 'selected="selected"'; } ?> >Turkish</option> <option value="uk" <?php if ($options['response_language'] == 'uk') { echo 'selected="selected"'; } ?> >Ukrainian</option> <option value="vi" <?php if ($options['response_language'] == 'vi') { echo 'selected="selected"'; } ?> >Vietnamese</option> </select> <?php if ($options['first_run_complete']) { ?> <p class="description"><span style="color:red;"><?php _e('Note', 'gpagespeedi'); ?> </span>: <?php _e('URLs must be rechecked before language changes take effect. Use the "Delete Data" option under "Advanced Configuration" if you would like to remove old reports.', 'gpagespeedi'); ?> </p> <?php } ?> <p><?php _e('Report Type(s):', 'gpagespeedi'); ?> </p> <select name="strategy" id="strategy"> <option value="desktop" <?php if ($options['strategy'] == 'desktop') { echo 'selected="selected"'; } ?> ><?php _e('Desktop', 'gpagespeedi'); ?> </option> <option value="mobile" <?php if ($options['strategy'] == 'mobile') { echo 'selected="selected"'; } ?> ><?php _e('Mobile', 'gpagespeedi'); ?> </option> <option value="both" <?php if ($options['strategy'] == 'both') { echo 'selected="selected"'; } ?> ><?php _e('Both', 'gpagespeedi'); ?> </option> </select> </div> </div> <div class="row framed boxsizing"> <div class="boxheader large toggle"> <span class="left cal"><?php _e('URL Configuration', 'gpagespeedi'); ?> </span> <span class="right"></span> </div> <div class="padded hidden"> <label for="recheck_interval"><?php _e('Report Expiration', 'gpagespeedi'); ?> :</label> <select name="recheck_interval" id="recheck_interval"> <option value="<?php echo 86400; ?> " <?php if ($options['recheck_interval'] == 86400) { echo 'selected="selected"'; } ?> ><?php _e('1 Day', 'gpagespeedi'); ?> </option> <option value="<?php echo 7 * 86400; ?> " <?php if ($options['recheck_interval'] == 7 * 86400) { echo 'selected="selected"'; } ?> ><?php _e('7 Days', 'gpagespeedi'); ?> </option> <option value="<?php echo 15 * 86400; ?> " <?php if ($options['recheck_interval'] == 15 * 86400) { echo 'selected="selected"'; } ?> ><?php _e('15 Days', 'gpagespeedi'); ?> </option> <option value="<?php echo 30 * 86400; ?> " <?php if ($options['recheck_interval'] == 30 * 86400) { echo 'selected="selected"'; } ?> ><?php _e('30 Days', 'gpagespeedi'); ?> </option> </select> <p class="description"><?php _e('When using "Save Options & Check Pages", pages which are newer than the specified Report Expiration will be skipped.', 'gpagespeedi'); ?> </p> <p><?php _e('Configure which types of URLs should be checked when running reports.', 'gpagespeedi'); ?> </p> <p><span style="color:red;"><?php _e('Note', 'gpagespeedi'); ?> </span>: <?php _e('Google Pagespeed will load each page to generate a report. The more pages you select, the longer it will take for the scan to complete.', 'gpagespeedi'); ?> </p> <p class="checkbx"> <input type="checkbox" name="check_pages" id="check_pages" <?php if ($options['check_pages'] === true) { echo 'checked="checked"'; } ?> /> <label for="check_pages"><?php _e('Check Wordpress Pages', 'gpagespeedi'); ?> (<?php echo wp_count_posts('page')->publish; ?> )</label> </p> <p class="checkbx"> <input type="checkbox" name="check_posts" id="check_posts" <?php if ($options['check_posts'] === true) { echo 'checked="checked"'; } ?> /> <label for="check_posts"><?php _e('Check Wordpress Posts', 'gpagespeedi'); ?> (<?php echo wp_count_posts('post')->publish; ?> )</label> </p> <?php $category_count = count(get_categories()); ?> <p class="checkbx"> <input type="checkbox" name="check_categories" id="check_categories" <?php if ($options['check_categories'] === true) { echo 'checked="checked"'; } ?> /> <label for="check_categories"><?php _e('Check Category Indexes', 'gpagespeedi'); ?> (<?php echo $category_count; ?> )</label> </p> <?php $args = array('public' => true, '_builtin' => false); $custom_post_types = get_post_types($args, 'names', 'and'); if (!empty($custom_post_types)) { ?> <p class="checkbx"> <?php _e('Custom Post Types', 'gpagespeedi'); ?> : </p> <div class="padded" style="padding-top: 0px;"> <?php foreach ($custom_post_types as $custom_post_type) { $post_count = wp_count_posts($custom_post_type)->publish; ?> <p class="checkbx posttypes"> <input type="checkbox" name="cpt_whitelist[]" id="cpt_<?php echo $custom_post_type; ?> " value="<?php echo $custom_post_type; ?> " <?php if ($cpt_whitelist_arr && in_array($custom_post_type, $cpt_whitelist_arr)) { echo 'checked="checked"'; } ?> /> <label for="cpt_<?php echo $custom_post_type; ?> "><?php echo $custom_post_type; ?> (<?php echo $post_count; ?> )</label> </p> <?php } echo '</div>'; } ?> </div> </div> <div class="row framed boxsizing"> <div class="boxheader large toggle"> <span class="left gear"><?php _e('Advanced Configuration', 'gpagespeedi'); ?> </span> <span class="right"></span> </div> <div class="padded hidden"> <p><?php _e('For most users, the following settings can be left at their defaults unless otherwise instructed by support.', 'gpagespeedi'); ?> </p> <p><label for="max_execution_time"><?php _e('Maximum Execution Time', 'gpagespeedi'); ?> :</label></p> <select name="max_execution_time" id="max_execution_time"> <option value="60" <?php if ($options['max_execution_time'] == 60) { echo 'selected="selected"'; } ?> ><?php _e('1 Minute', 'gpagespeedi'); ?> </option> <option value="300" <?php if ($options['max_execution_time'] == 300) { echo 'selected="selected"'; } ?> ><?php _e('5 Minutes', 'gpagespeedi'); ?> </option> <option value="600" <?php if ($options['max_execution_time'] == 600) { echo 'selected="selected"'; } ?> ><?php _e('10 Minutes', 'gpagespeedi'); ?> </option> <option value="900" <?php if ($options['max_execution_time'] == 900) { echo 'selected="selected"'; } ?> ><?php _e('15 Minutes', 'gpagespeedi'); ?> </option> <option value="1800" <?php if ($options['max_execution_time'] == 1800) { echo 'selected="selected"'; } ?> ><?php _e('30 Minutes', 'gpagespeedi'); ?> </option> </select> <p class="description"><?php _e('The default value of 5 minutes is fine for most sites.', 'gpagespeedi'); ?> <br /><?php _e('Increasing this value may help if your page reports are missing pages.', 'gpagespeedi'); ?> </p> <p><label for="sleep_time"><?php _e('Report Throttling Delay Time', 'gpagespeedi'); ?> :</label></p> <select name="sleep_time" id="sleep_time"> <option value="0" <?php if ($options['sleep_time'] == 0) { echo 'selected="selected"'; } ?> ><?php _e('0 Seconds', 'gpagespeedi'); ?> </option> <option value="1" <?php if ($options['sleep_time'] == 1) { echo 'selected="selected"'; } ?> ><?php _e('1 Seconds', 'gpagespeedi'); ?> </option> <option value="2" <?php if ($options['sleep_time'] == 2) { echo 'selected="selected"'; } ?> ><?php _e('2 Seconds', 'gpagespeedi'); ?> </option> <option value="3" <?php if ($options['sleep_time'] == 3) { echo 'selected="selected"'; } ?> ><?php _e('3 Seconds', 'gpagespeedi'); ?> </option> <option value="4" <?php if ($options['sleep_time'] == 4) { echo 'selected="selected"'; } ?> ><?php _e('4 Seconds', 'gpagespeedi'); ?> </option> <option value="5" <?php if ($options['sleep_time'] == 5) { echo 'selected="selected"'; } ?> ><?php _e('5 Seconds', 'gpagespeedi'); ?> </option> <option value="10" <?php if ($options['sleep_time'] == 10) { echo 'selected="selected"'; } ?> ><?php _e('10 Seconds', 'gpagespeedi'); ?> </option> </select> <p class="description"><?php _e('The default value of 0 seconds is fine for most sites.', 'gpagespeedi'); ?> <br /><?php _e('Raising this value will slow down page reporting, but may help provide more accurate reports on poorly performing web servers', 'gpagespeedi'); ?> </p> <p class="checkbx"> <input type="checkbox" name="log_api_errors" id="log_api_errors" <?php if ($options['log_api_errors'] === true) { echo 'checked="checked"'; } ?> /> <label for="log_api_errors"><?php _e('Log API Exceptions', 'gpagespeedi'); ?> </label> </p> <p class="description"><?php _e('Exception logs will appear in the "logs" folder in the Google Pagespeed Insights plugin directory. This directory must be writable.', 'gpagespeedi'); ?> </p> <p><label for="scan_method"><?php _e('Scan Technique', 'gpagespeedi'); ?> </label></p> <select name="scan_method" id="scan_method"> <option value="wp_cron" <?php if ($options['scan_method'] == "wp_cron") { echo 'selected="selected"'; } ?> ><?php _e('WP Cron', 'gpagespeedi'); ?> </option> <option value="ajax" <?php if ($options['scan_method'] == "ajax") { echo 'selected="selected"'; } ?> ><?php _e('Ajax', 'gpagespeedi'); ?> </option> <option value="session_flush" <?php if ($options['scan_method'] == "session_flush") { echo 'selected="selected"'; } ?> ><?php _e('Session Flush', 'gpagespeedi'); ?> </option> </select> <p class="description"><?php _e('Some servers have difficulty with the default (WP Cron) scan technique. If you are having problems with WP Cron, try Ajax. If you are having trouble with Ajax as well, try Session Flush.', 'gpagespeedi'); ?> </p> <p><label for="sleep_time"><?php _e('Delete Data', 'gpagespeedi'); ?> :</label></p> <select name="purge_all_data" id="purge_all_data"> <option><?php _e('Do Nothing', 'gpagespeedi'); ?> </option> <option value="purge_reports"><?php _e('Delete Reports Only', 'gpagespeedi'); ?> </option> <option value="purge_everything"><?php _e('Delete EVERYTHING', 'gpagespeedi'); ?> </option> </select> <p class="description"><span style="color:red;"><?php _e('Warning', 'gpagespeedi'); ?> :</span> <?php _e('This option can not be reversed.', 'gpagespeedi'); ?> </p> </div> </div> <?php if (!$worker_status) { if (!$options['first_run_complete']) { submit_button(__('Save Options & Start Reporting', 'gpagespeedi')); } else { echo '<p class="submit">'; submit_button(__('Save Options', 'gpagespeedi'), 'primary', 'submit', false); submit_button(__('Save Options & Check Pages', 'gpagespeedi'), 'secondary', 'check_new_pages', false); submit_button(__('Save Options & Force Recheck All Pages', 'gpagespeedi'), 'secondary', 'recheck_all_pages', false); echo '</p>'; } } ?> </form> <?php //If Alternative Pagescan is enabled in options, do it. if ($options['scan_method'] == "session_flush") { if (!$options['first_run_complete'] && $google_developer_key != '' || isset($_POST['check_new_pages']) || isset($_POST['recheck_all_pages'])) { if (isset($_POST['recheck_all_pages'])) { $recheck = true; } else { $recheck = false; } $googlePagespeedInsights->googlepagespeedinsightsworker(array(), true, $recheck); } } }