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 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 }