Exemple #1
0
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;
}
Exemple #2
0
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 
}