WordPress.org

Plugin Directory

Changeset 651522


Ignore:
Timestamp:
01/12/13 00:11:21 (16 months ago)
Author:
MrWiblog
Message:

0.6

  • Added additional information to some reports
  • Made reports quicker to navigate
  • Rewrote a lot of SQL statements
  • Added report to show list of registered sites
Location:
plugin-register/trunk
Files:
2 added
2 edited

Legend:

Unmodified
Added
Removed
  • plugin-register/trunk/plugin-register.php

    r299057 r651522  
    33 * @package Plugin Register 
    44 * @author Chris Taylor 
    5  * @version 0.5.1 
     5 * @version 0.6 
    66 */ 
    77/* 
     
    1010Description: This is a plugin for plugin developers only. Plugin Register allows you to keep track of what version of your plugins are being installed. By registering a function to be run on activation of your plugin, a call is made to this plugin which stores details the site which is installing your plugin, which plugin is being installed, and the plugin version. Some reports are available so you can see what versions are installed. 
    1111Author: Chris Taylor 
    12 Version: 0.5.1 
     12Version: 0.6 
    1313Author URI: http://www.stillbreathing.co.uk/ 
    1414*/ 
     
    1616// set the current version 
    1717function pluginregister_current_version() { 
    18     return "0.5.1"; 
     18    return "0.6"; 
    1919} 
    2020 
     
    5454        add_action( "admin_menu", "pluginregister_download_class" ); 
    5555        add_action( "wp_dashboard_setup", "pluginregister_dashboard" ); 
     56        add_filter( "cron_schedules", "pluginregister_cron_add_weekly" ); 
     57        pluginregister_initialise_notifications(); 
    5658    } 
    5759} 
     
    9799function pluginregister_dashboard_report() { 
    98100    if (current_user_can("edit_users")) { 
    99         pluginregister_new_urls_report(); 
     101        $seconds = 604800; 
     102        global $wpdb; 
     103 
     104        // set up pagination start 
     105        $limit = 10; 
     106        $start = findStart( $limit ); 
     107        $end = $start + $limit; 
     108         
     109        // get the unique sites first registered in the last week 
     110        $sql = $wpdb->prepare( "select SQL_CALC_FOUND_ROWS s.sitename, s.url, 
     111                count(s.id) as registrations, 
     112                (select min(time) from sb.wp_plugin_register where url = s.url) as firstregistration 
     113                from " . $wpdb->prefix . "plugin_register s 
     114                where (select min(time) from " . $wpdb->prefix . "plugin_register where url = s.url) > " . (time()-$seconds) . " 
     115                group by s.url  
     116                order by firstregistration desc 
     117                limit %d, %d;", 
     118                $start, 
     119                $limit ); 
     120        $sites = $wpdb->get_results( $sql ); 
     121         
     122        if( $sites && is_array( $sites ) && count( $sites ) > 0 ) { 
     123         
     124            // get the total number of rows 
     125            $count = $wpdb->get_var( "SELECT FOUND_ROWS();" ); 
     126             
     127            if ( $count < $limit ) { 
     128                $view = $count; 
     129            } else { 
     130                $view = ( $start+1 ) . '&ndash;' . $end; 
     131            } 
     132 
     133            // get the pages 
     134            $pages = findPages($count, $limit); 
     135             
     136            // set up the pagination links 
     137            $pagelist = paginate_links( array( 
     138                'base' => add_query_arg( 'paged', '%#%' ), 
     139                'format' => '', 
     140                'prev_text' => __('&laquo;'), 
     141                'next_text' => __('&raquo;'), 
     142                'total' => $pages, 
     143                'current' => $_GET['paged'] 
     144            )); 
     145         
     146            $days = $seconds / 60 / 60 / 24; 
     147         
     148            echo ' 
     149            <p>' . sprintf( __( 'New registered sites in the last %d days. <a href="plugins.php?page=pluginregister_reports">View full reports</a>.', "pluginregister" ), $days ) . '</p> 
     150            <div class="tablenav"> 
     151            <div class="tablenav-pages"> 
     152            <span class="displaying-num">Displaying ' . $view . ' of ' . $count . '</span> 
     153                ' . $pagelist . ' 
     154            </div> 
     155            </div> 
     156            <table class="widefat fixed" cellspacing="0"> 
     157 
     158            <thead> 
     159            <tr class="thead"> 
     160                <th>' . __( "Site name", "pluginregister" ) . '</th> 
     161                <th>' . __( "URL", "pluginregister" ) . '</th> 
     162            </tr> 
     163            </thead> 
     164 
     165            <tbody> 
     166            '; 
     167            foreach ( $sites as $site ) { 
     168                 
     169                $sql = $wpdb->prepare( "select distinct(plugin) 
     170                                from " . $wpdb->prefix . "plugin_register 
     171                                where url = %s;", 
     172                                $site->url ); 
     173                $plugins = $wpdb->get_results( $sql ); 
     174             
     175                echo ' 
     176                <tr> 
     177                    <td> 
     178                        <a href="plugins.php?page=pluginregister_reports&amp;url=' . urlencode( $site->url ) . '">'; 
     179                        if ( $site->sitename == "" ) { 
     180                            echo __( "(no name)", "pluginregister" ); 
     181                        } else { 
     182                            echo $site->sitename; 
     183                        } 
     184                echo ' 
     185                        </a></td> 
     186                    <td><a href="' . $site->url . '">' . $site->url . '</a></td> 
     187                </tr> 
     188                <tr> 
     189                    <td colspan="2"><span style="font-style: italic">'; 
     190                    if ( is_array( $plugins ) && count( $plugins ) > 0) { 
     191                        $list = ""; 
     192                        foreach( $plugins as $plugin ) { 
     193                            $list .= $plugin->plugin . ", "; 
     194                        } 
     195                        echo trim( trim( $list ), "," ); 
     196                    } 
     197                    echo '</span></td> 
     198                </tr>'; 
     199                } 
     200            echo ' 
     201            </tbody> 
     202            </table> 
     203            <div class="tablenav"> 
     204            <div class="tablenav-pages"> 
     205            <span class="displaying-num">Displaying ' . $view . ' of ' . $count . '</span> 
     206                ' . $pagelist . ' 
     207            </div> 
     208            </div> 
     209            '; 
     210        } else { 
     211            echo ' 
     212            <p>' . __( "No sites found", "pluginregister" ) . '</p> 
     213            '; 
     214        } 
    100215    } 
    101216} 
     
    162277    } 
    163278     
    164     if ( !isset( $_GET["plugin"] ) && !isset( $_GET["version"] ) && !isset( $_GET["siteq"] ) && !isset( $_GET["pluginq"] ) && !isset( $_GET["versionq"] ) && !isset( $_GET["url"] ) && !isset( $_GET["date"] ) ) { 
     279    if ( !isset( $_GET["plugin"] ) && !isset( $_GET["version"] ) && !isset( $_GET["siteq"] ) && !isset( $_GET["pluginq"] ) && !isset( $_GET["versionq"] ) && !isset( $_GET["url"] ) && !isset( $_GET["date"] ) && !isset( $_GET["screen"] ) && !isset( $_GET["list"] ) ) { 
    165280     
    166281        pluginregister_main_report(); 
    167282 
     283    } else if ( isset( $_GET["screen"] ) ) { 
     284         
     285        if ( $_GET["screen"] == "settings" ){ 
     286             
     287            if ( isset( $_GET["testemail"] ) ) { 
     288                $data = pluginregister_get_settings(); 
     289                pluginregister_send_notification_emails( $data["schedule"] ); 
     290            } 
     291             
     292            pluginregister_settings_screen(); 
     293             
     294        } 
     295         
    168296    } else if ( isset( $_GET["plugin"] ) && !isset( $_GET["version"] ) ) { 
    169297     
     
    186314        pluginregister_date_report(); 
    187315     
     316    } else if ( isset( $_GET["list"] ) ) { 
     317     
     318        if ( $_GET["list"] == "sites" ) { 
     319     
     320            pluginregister_sites_report(); 
     321         
     322        } 
     323         
    188324    } 
    189325     
     
    197333function pluginregister_admin_head() 
    198334{ 
    199     if (isset($_GET["page"]) && $_GET["page"] == "pluginregister_reports") 
    200     {    
    201     echo ' 
    202 <style type="text/css"> 
    203 #pluginregister td { 
    204 vertical-align: bottom; 
    205 } 
    206 #pluginregister ul.inline li { 
    207 display: inline; 
    208 margin-right: 2em; 
    209 } 
    210 </style>'; 
    211     } 
     335    echo ' 
     336    <link rel="stylesheet" href="' . plugins_url( 'plugin-register.css' , __FILE__ ) . '" type="text/css" media="all" /> 
     337    <script type="text/javascript" src="' . plugins_url( 'plugin-register.js' , __FILE__ ) . '"></script> 
     338    '; 
     339} 
     340  
     341function pluginregister_cron_add_weekly( $schedules ) { 
     342    // Adds once weekly to the existing schedules. 
     343    $schedules['weekly'] = array( 
     344        'interval' => 604800, 
     345        'display' => __( 'Once Weekly' ) 
     346    ); 
     347    return $schedules; 
     348} 
     349 
     350// get the settings 
     351function pluginregister_get_settings() { 
     352 
     353    // set defaults 
     354    $data = array( 
     355        "enabled" => true, 
     356        "schedule" => "daily" 
     357    ); 
     358     
     359    // get the settings 
     360    return maybe_unserialize( get_option( "pluginregister_settings", maybe_serialize( $data ) ) ); 
     361     
     362} 
     363 
     364// initialise the notifications 
     365function pluginregister_initialise_notifications() { 
     366 
     367    // get settings 
     368    $data = pluginregister_get_settings(); 
     369     
     370    // if enabled 
     371    if ( $data["enabled"] ) { 
     372     
     373        // schedule the next job 
     374        if ( ! wp_next_scheduled( 'pluginregister_notify' ) ) { 
     375            wp_schedule_event( time(), $data["schedule"], 'pluginregister_send_notification_emails', $data["schedule"] ); 
     376        } 
     377         
     378    // not enabled 
     379    } else { 
     380     
     381        // cancel the next job 
     382        $timestamp = wp_next_scheduled( 'pluginregister_notify' ); 
     383        wp_unschedule_event( $timestamp, 'pluginregister_notify', $data["schedule"] ); 
     384         
     385    } 
     386} 
     387 
     388// send the notification emails 
     389function pluginregister_send_notification_emails( $schedule ) { 
     390 
     391    $data = pluginregister_get_settings(); 
     392     
     393    $siteurl = get_admin_url(); 
     394     
     395    global $wpdb; 
     396 
     397    $days = -1; 
     398    if ( $schedule == "weekly" ) { 
     399        $days = -7; 
     400    } 
     401     
     402    $start = pluginregister_addDayToDate( time(), $days ); 
     403     
     404    $sql = "select plugin, pluginversion as version, sitename, url, time 
     405        from " . $wpdb->prefix . "plugin_register 
     406        where time >= " . $start . " 
     407        order by time;"; 
     408     
     409    // get the results 
     410    $results = $wpdb->get_results( $sql ); 
     411     
     412    $html = ''; 
     413     
     414    if( $results && is_array( $results ) && count( $results ) > 0 ) { 
     415     
     416        $html .= ' 
     417        <p>' . __( "Plugins registered:", "pluginregister" ) . ' ' . count( $results ) . '</p> 
     418 
     419        <table> 
     420 
     421        <thead> 
     422        <tr> 
     423            <th>' . __( "Plugin", "pluginregister" ) . '</th> 
     424            <th>' . __( "Version", "pluginregister" ) . '</th> 
     425            <th>' . __( "Site", "pluginregister" ) . '</th> 
     426            <th>' . __( "URL", "pluginregister" ) . '</th> 
     427            <th>' . __( "Registration date", "pluginregister" ) . '</th> 
     428        </tr> 
     429        </thead> 
     430 
     431        <tbody> 
     432        '; 
     433        foreach ( $results as $result ) { 
     434            $html .= ' 
     435            <tr> 
     436                <td><a href="' . $siteurl . 'plugins.php?page=pluginregister_reports&amp;plugin=' . urlencode( $result->plugin ) . '">' . $result->plugin . '</a></td> 
     437                <td><a href="' . $siteurl . 'plugins.php?page=pluginregister_reports&amp;plugin=' . urlencode( $result->plugin ) . '&amp;version=' . urlencode( $result->version ) . '">' . $result->version . '</a></td> 
     438                <td><a href="' . $siteurl . 'plugins.php?page=pluginregister_reports&amp;url=' . urlencode( $result->url ) . '">' . $result->sitename . '</a></td> 
     439                <td><a href="' . $result->url . '">' . $result->url . '</a></td> 
     440                <td><a href="' . $siteurl . 'plugins.php?page=pluginregister_reports&amp;date=' . date( "Y/n/j", $result->time) . '">' . date( "F j, Y, g:i a", $result->time ) . '</a></td> 
     441            </tr> 
     442            '; 
     443        } 
     444        $html .= ' 
     445        </tbody> 
     446        </table> 
     447        '; 
     448    } else { 
     449        $html .= ' 
     450        <p>' . __( "No registrations found in this period", "pluginregister" ) . '</p> 
     451        '; 
     452    } 
     453     
     454    add_filter( 'wp_mail_content_type', create_function( '', 'return "text/html";' ) ); 
     455    wp_mail( get_settings('admin_email'), __( "Plugin Register Registrations", "pluginregister" ), $html ); 
    212456} 
    213457 
     
    215459function pluginregister_main_report() { 
    216460 
     461    // the email feature isn't working properly 
     462    // <a href="plugins.php?page=pluginregister_reports&amp;screen=settings" class="button">' . __( "Email alerts", "pluginregister" ) . '</a> 
     463 
    217464    global $wpdb; 
    218465    echo ' 
    219     <h2>' . __( "Plugin Register", "pluginregister" ) . '</h2> 
     466    <h2> 
     467        ' . __( "Plugin Register", "pluginregister" ) . ' 
     468    </h2> 
    220469     
    221470    <form action="plugins.php" method="get"> 
    222         <p>' . __( "Site name/url", "pluginregister" ) . ' <input type="text" name="siteq" /> 
     471        <p> 
     472        ' . __( "Site name/url", "pluginregister" ) . ' <input type="text" name="siteq" /> 
    223473        ' . __( "Plugin name", "pluginregister" ) . ' <input type="text" name="pluginq" /> 
    224474        ' . __( "Plugin version", "pluginregister" ) . ' <input type="text" name="versionq" style="width:6em" /> 
    225475        <input type="submit" class="button" value="' . __( "Search plugin register", "pluginregister" ) . '" /> 
    226         <input type="hidden" name="page" value="pluginregister_reports" /></p> 
     476        <input type="hidden" name="page" value="pluginregister_reports" /> 
     477        <a href="plugins.php?page=pluginregister_reports&amp;list=sites" class="button">' . __( "Sites list", "pluginregister" ) . '</a> 
     478        </p> 
    227479    </form>'; 
    228480     
     
    230482    echo ' 
    231483    <h3>' . __("Date range reports") . '</h3> 
    232      
    233484    <ul class="inline"> 
    234         <li><a href="plugins.php?page=pluginregister_reports#range24hours" class="button">' . __("Last 24 hours") . '</a></li> 
    235         <li><a href="plugins.php?page=pluginregister_reports&amp;range=14days#range14days" class="button">' . __("Last 14 days") . '</a></li> 
    236         <li><a href="plugins.php?page=pluginregister_reports&amp;range=12weeks#range12weeks" class="button">' . __("Last 12 weeks") . '</a></li> 
    237         <li><a href="plugins.php?page=pluginregister_reports&amp;range=12months#range12months" class="button">' . __("Last 12 months") . '</a></li> 
     485        <li><a href="#range24hours" class="button rangebutton">' . __("Last 24 hours") . '</a></li> 
     486        <li><a href="#range14days" class="button rangebutton">' . __("Last 14 days") . '</a></li> 
     487        <li><a href="#range12weeks" class="button rangebutton">' . __("Last 12 weeks") . '</a></li> 
     488        <li><a href="#range12months" class="button rangebutton">' . __("Last 12 months") . '</a></li> 
    238489    </ul> 
    239  
    240490    '; 
    241      
    242     // show 24 hour report 
    243     if (!isset($_GET["range"])) 
    244     { 
    245          
    246         pluginregister_24hour_report(); 
    247          
    248     } 
    249      
    250     // show 14 day report 
    251     if (isset($_GET["range"]) && $_GET["range"] =="14days") 
    252     { 
    253          
    254         pluginregister_14day_report(); 
    255          
    256     } 
    257      
    258     // show 12 week report 
    259     if (isset($_GET["range"]) && $_GET["range"] =="12weeks") 
    260     { 
    261      
    262         pluginregister_12week_report(); 
    263          
    264     } 
    265      
    266     // show 12 month report 
    267     if (isset($_GET["range"]) && $_GET["range"] =="12months") 
    268     { 
    269      
    270         pluginregister_12month_report(); 
    271          
    272     } 
     491    pluginregister_24hour_report(); 
     492    pluginregister_14day_report(); 
     493    pluginregister_12week_report(); 
     494    pluginregister_12month_report(); 
    273495     
    274496    echo ' 
     
    334556    } 
    335557     
    336     pluginregister_new_urls_report( 2592000, false ); 
     558    pluginregister_new_urls_report( 2592000 ); 
    337559     
    338560    ?> 
     
    365587} 
    366588 
    367 function pluginregister_new_urls_report( $seconds = 604800, $mini = true ) { 
     589function pluginregister_settings_screen() { 
     590 
     591    $data = pluginregister_get_settings(); 
     592     
     593    // save the settings 
     594    if ( count( $_POST ) > 0 ) { 
     595        if ( isset( $_POST["cron"] ) && $_POST["cron"] == "1" ) { 
     596            $data["enabled"] = true; 
     597        } else { 
     598            $data["enabled"] = false; 
     599        } 
     600        if ( isset( $_POST["schedule"] ) ) { 
     601            $data["schedule"] = $_POST["schedule"]; 
     602        } 
     603        update_option( "pluginregister_settings", maybe_serialize( $data ) ); 
     604         
     605        echo ' 
     606        <div id="message" class="updated fade"> 
     607            <p><strong>' . __( 'The settings have been saved. <a href="plugins.php?page=pluginregister_reports&amp;screen=settings&amp;testemail=true">Test notification email</a> (will be sent to the site admin email address).', "pluginregister" ) . '</strong></p> 
     608        </div> 
     609        '; 
     610    } 
     611 
     612    echo ' 
     613    <h2> 
     614        ' . __( "Plugin Register Settings", "pluginregister" ) . ' 
     615        <a href="plugins.php?page=pluginregister_reports" class="button">' . __( "Main report", "pluginregister" ) . '</a> 
     616    </h2> 
     617     
     618    <form action="plugins.php?page=pluginregister_reports&amp;screen=settings" method="post"> 
     619     
     620        <table class="form-table"><tbody> 
     621            <tr valign="top"> 
     622                <th scope="row"> 
     623                    <label for="cron">' . __( "Enable registration emails", "pluginregister" ) . '</label> 
     624                </th> 
     625                <td> 
     626                    <input name="cron" type="checkbox" id="cron" value="1"' . ( $data["enabled"] ? ' checked="checked"' : "" ) . '> 
     627                </td> 
     628            </tr> 
     629            <tr valign="top"> 
     630                <th scope="row"> 
     631                    <label for="schedule">' . __( "Email schedule", "pluginregister" ) . '</label> 
     632                </th> 
     633                <td> 
     634                    <select name="schedule" id="schedule"> 
     635                        <option value="daily"' . ( $data["schedule"] == "daily" ? ' selected="selected"' : '' ) . '>' . __( "Daily", "pluginregister" ) . '</option> 
     636                        <option value="weekly"' . ( $data["schedule"] == "weekly" ? ' selected="selected"' : '' ) . '>' . __( "Weekly", "pluginregister" ) . '</option> 
     637                    </select> 
     638                </td> 
     639            </tr> 
     640        </tbody></table> 
     641         
     642        <p class="submit"> 
     643            <input type="submit" name="submit" id="submit" class="button button-primary" value="' . __( "Save Changes", "pluginregister" ) . '"> 
     644        </p> 
     645         
     646    </form> 
     647    '; 
     648} 
     649 
     650function pluginregister_new_urls_report( $seconds = 604800 ) { 
    368651    global $wpdb; 
    369652 
    370653    // set up pagination start 
    371     $limit = 10; 
    372     if ( !$mini ) $limit = 25; 
     654    $limit = 25; 
    373655    $start = findStart( $limit ); 
    374656    $end = $start + $limit; 
     
    413695        $days = $seconds / 60 / 60 / 24; 
    414696     
    415         if ( !$mini ) { 
    416697        echo ' 
    417698        <h3 style="padding-top:2em">' . sprintf( __( "New registered sites in the last %d days", "pluginregister" ), $days ) . '</h3> 
    418         '; 
    419         } else { 
    420         echo ' 
    421         <p>' . sprintf( __( 'New registered sites in the last %d days. <a href="plugins.php?page=pluginregister_reports">View full reports</a>.', "pluginregister" ), $days ) . '</p> 
    422         '; 
    423         } 
    424          
    425         echo ' 
    426699        <div class="tablenav"> 
    427700        <div class="tablenav-pages"> 
     
    437710            <th>' . __( "URL", "pluginregister" ) . '</th> 
    438711            <th>' . __( "First registration", "pluginregister" ) . '</th> 
    439             '; 
    440             if ( !$mini ) { 
    441             echo '<th>' . __( "Registrations", "pluginregister" ) . '</th> 
    442             <th>' . __( "Delete registrations", "pluginregister" ) . '</th>'; 
    443             } 
    444             echo ' 
     712            <th>' . __( "Registrations", "pluginregister" ) . '</th> 
     713            <th>' . __( "Delete registrations", "pluginregister" ) . '</th> 
    445714        </tr> 
    446715        </thead> 
     
    458727            echo ' 
    459728            <tr> 
    460                 <td><a href="plugins.php?page=pluginregister_reports&amp;url=' . urlencode( $site->url ) . '">' . $site->sitename . '</a></td> 
     729                <td> 
     730                    <a href="plugins.php?page=pluginregister_reports&amp;url=' . urlencode( $site->url ) . '">'; 
     731                        if ( $site->sitename == "" ) { 
     732                            echo __( "(no name)", "pluginregister" ); 
     733                        } else { 
     734                            echo $site->sitename; 
     735                        } 
     736                echo ' 
     737                    </a></td> 
    461738                <td><a href="' . $site->url . '">' . $site->url . '</a></td> 
    462                 <td>' . date( "F j, Y, g:i a", $site->firstregistration ) . '</td>'; 
    463                 if ( !$mini ) { 
    464                 echo ' 
     739                <td>' . date( "F j, Y, g:i a", $site->firstregistration ) . '</td> 
    465740                <td>' . $site->registrations . '</td> 
    466741                <td><a href="plugins.php?page=pluginregister_reports&amp;deletesite=' . urlencode( $site->url ) . '" class="button">' . __( "Delete registrations", "pluginregister" ) . '</a></td> 
    467                 '; 
    468                 } 
    469                 echo ' 
    470742            </tr> 
    471743            <tr> 
    472                 '; 
    473                 if ( !$mini ) { 
    474                 echo '<td colspan="5"><span style="font-style: italic">'; 
    475                 } else { 
    476                 echo '<td colspan="3"><span style="font-style: italic">'; 
    477                 } 
     744                <td colspan="5"><span style="font-style: italic">'; 
    478745                if ( is_array( $plugins ) && count( $plugins ) > 0) { 
    479746                    $list = ""; 
     
    504771} 
    505772 
     773// get the last 24 hours fake SQL table 
     774function pluginregister_last_24hours() { 
     775    $time = strtotime( "-23 hour" ); 
     776    $sql = "select 0 as x, " . date( "H", $time ) . " as hour\n"; 
     777    for($i = 1; $i < 24; $i++) 
     778    { 
     779        $time = strtotime( "+1 hour", $time ); 
     780        $sql .= "union all select " . $i . ", " . date( "H", $time ) . "\n"; 
     781    } 
     782    return $sql; 
     783} 
     784 
    506785// show 24 hour report 
    507786function pluginregister_24hour_report($plugin = "", $version = "") 
    508787{ 
    509  
    510788    global $wpdb; 
    511789     
    512     $plugin = $wpdb->escape($plugin); 
    513     $version = $wpdb->escape($version); 
    514      
    515     $begin = time() - (60 * 60 * 23); 
    516     $start = $begin; 
    517      
    518     for($i = 0; $i < 24; $i++) 
    519     { 
    520         $hours[] = $start; 
    521      
    522         $sql = "select count(id) as num 
    523             from " . $wpdb->prefix . "plugin_register 
    524             where hour(FROM_UNIXTIME(time)) = hour(FROM_UNIXTIME(" . $start . ")) 
    525             and day(FROM_UNIXTIME(time)) = day(FROM_UNIXTIME(" . $start . ")) 
    526             and month(FROM_UNIXTIME(time)) = month(FROM_UNIXTIME(" . $start . ")) 
    527             and year(FROM_UNIXTIME(time)) = year(FROM_UNIXTIME(" . $start . ")) 
    528             and  
    529             ('" . $plugin . "' = '' or plugin = '" . $plugin . "') 
    530             and 
    531             ('" . $version . "' = '' or plugin = '" . $version . "');"; 
    532  
    533         $registrationsnum[] = $wpdb->get_var($sql); 
    534          
    535         $start = $start + (60 * 60);             
    536     } 
    537      
     790    $sql = $wpdb->prepare("select hour, count(r.id) as registrations 
     791            from ( 
     792            " . pluginregister_last_24hours() . " 
     793            ) as hours 
     794            left outer 
     795            join " . $wpdb->prefix . "plugin_register r 
     796            on hour(FROM_UNIXTIME(r.time)) = hour 
     797            and FROM_UNIXTIME(r.time) > date_add(now(), INTERVAL -24 HOUR) 
     798            and (%s = '' or plugin = %s) 
     799            and (%s = '' or pluginversion = %s) 
     800            group by hour 
     801            order by x", 
     802            $plugin, 
     803            $plugin, 
     804            $version, 
     805            $version); 
     806 
     807    $hours = $wpdb->get_results( $sql ); 
     808 
    538809    $registrationsmax = 0; 
    539810     
    540     for($i = 0; $i < 24; $i++) 
    541     { 
    542         if ($registrationsnum[$i] > $registrationsmax) { $registrationsmax = $registrationsnum[$i]; } 
    543     } 
    544      
    545     echo ' 
    546     <h4 id="range24hours">' . __("Plugin registrations in the last 24 hours") . '</h4> 
     811    echo ' 
     812    <div id="range24hours" class="rangereport"> 
     813    <h4>' . __("Plugin registrations in the last 24 hours") . '</h4> 
    547814    <table class="widefat post fixed"> 
    548815        <thead> 
    549816        <tr> 
    550             <th style="width:100px"></th> 
    551         '; 
    552     for($i = 0; $i < 24; $i++) 
     817            <th style="width:100px">' . __( "Hour", "pluginregister" ) . '</th> 
     818        '; 
     819    foreach( $hours as $hour ) 
    553820    { 
    554         echo ' 
    555             <th>' . date("H", $hours[$i]) . '</th> 
     821        if ( $hour->registrations > $registrationsmax ) { $registrationsmax = $hour->registrations; } 
     822     
     823        echo ' 
     824            <th>' . $hour->hour . '</th> 
    556825        '; 
    557826    } 
     
    564833        '; 
    565834         
    566     for($i = 0; $i < 24; $i++) 
     835    foreach( $hours as $hour ) 
    567836    { 
    568837        echo ' 
    569838            <td>'; 
    570         if ($registrationsnum[$i] != "0" && $registrationsmax != "0") 
     839        if ( $hour->registrations != "0" && $registrationsmax != "0" ) 
    571840        { 
    572841        echo ' 
    573             <div style="background:#6F6F6F;width:10px;height:' . (round(($registrationsnum[$i]/$registrationsmax)*100)) . 'px"></div>'; 
     842            <div style="background:#6F6F6F;width:10px;height:' . ( round( ( $hour->registrations / $registrationsmax ) * 100 ) ) . 'px"></div>'; 
    574843            } 
    575844        echo ' 
    576             ' . $registrationsnum[$i] . '</td> 
     845            ' . $hour->registrations . '</td> 
    577846        '; 
    578847    } 
     
    581850        </tbody> 
    582851    </table> 
     852    </div> 
    583853    '; 
     854} 
     855 
     856// get the last 14 days fake SQL table 
     857function pluginregister_last_14days() { 
     858    $time = strtotime( "-13 day" ); 
     859    $sql = "select 0 as x, " . $time . " as date\n"; 
     860    for($i = 1; $i < 14; $i++) 
     861    { 
     862        $time = strtotime( "+1 day", $time ); 
     863        $sql .= "union all select " . $i . ", " . $time . "\n"; 
     864    } 
     865    return $sql; 
    584866} 
    585867 
     
    590872    global $wpdb; 
    591873     
    592     $plugin = $wpdb->escape($plugin); 
    593     $version = $wpdb->escape($version); 
    594  
    595     $begin = time() - (60 * 60 * 24 * 13); 
    596     $start = $begin; 
    597      
    598     for($i = 0; $i < 14; $i++) 
    599     { 
    600         $days[] = date("jS M", $start); 
    601      
    602         $sql = "select count(id) as num 
    603             from " . $wpdb->prefix . "plugin_register 
    604             where day(FROM_UNIXTIME(time)) = day(FROM_UNIXTIME(" . $start . ")) 
    605             and month(FROM_UNIXTIME(time)) = month(FROM_UNIXTIME(" . $start . ")) 
    606             and year(FROM_UNIXTIME(time)) = year(FROM_UNIXTIME(" . $start . ")) 
    607             and  
    608             ('" . $plugin . "' = '' or plugin = '" . $plugin . "') 
    609             and 
    610             ('" . $version . "' = '' or plugin = '" . $version . "');"; 
    611  
    612         $registrationsnum[] = $wpdb->get_var($sql); 
    613          
    614         $start = $start + (60 * 60 * 24);            
    615     } 
    616      
     874    $sql = $wpdb->prepare("select date, count(r.id) as registrations 
     875            from ( 
     876            " . pluginregister_last_14days() . " 
     877            ) as days 
     878            left outer 
     879            join " . $wpdb->prefix . "plugin_register r 
     880            on day(FROM_UNIXTIME(time)) = day(FROM_UNIXTIME(date)) 
     881            and month(FROM_UNIXTIME(time)) = month(FROM_UNIXTIME(date)) 
     882            and year(FROM_UNIXTIME(time)) = year(FROM_UNIXTIME(date)) 
     883            and (%s = '' or plugin = %s) 
     884            and (%s = '' or pluginversion = %s) 
     885            group by date 
     886            order by x", 
     887            $plugin, 
     888            $plugin, 
     889            $version, 
     890            $version); 
     891 
     892    $days = $wpdb->get_results( $sql ); 
     893 
    617894    $registrationsmax = 0; 
    618895     
    619     for($i = 0; $i < 14; $i++) 
    620     { 
    621         if ($registrationsnum[$i] > $registrationsmax) { $registrationsmax = $registrationsnum[$i]; } 
    622     } 
    623      
    624     echo ' 
    625     <h4 id="range14days">' . __("Plugin registrations in the last 14 days") . '</h4> 
     896    echo ' 
     897    <div id="range14days" class="rangereport"> 
     898    <h4>' . __("Plugin registrations in the last 14 days") . '</h4> 
    626899    <table class="widefat post fixed"> 
    627900        <thead> 
    628901        <tr> 
    629             <th style="width:100px"></th> 
    630         '; 
    631     for($i = 0; $i < 14; $i++) 
     902            <th style="width:100px">' . __( "Day", "pluginregister" ) . '</th> 
     903        '; 
     904    $x = 0; 
     905    foreach( $days as $day ) 
    632906    { 
    633         echo ' 
    634             <th>' . $days[$i] . '</th> 
    635         '; 
     907        if ($day->registrations > $registrationsmax) { $registrationsmax = $day->registrations; } 
     908     
     909        echo ' 
     910            <th>' . date( "d", $day->date ); 
     911            if ( $x == 0 || date( "d", $day->date ) == 1 ) { 
     912                echo ' ' . date( "M", $day->date ); 
     913            } 
     914        echo '</th> 
     915        '; 
     916        $x++; 
    636917    } 
    637918    echo ' 
     
    643924        '; 
    644925         
    645     for($i = 0; $i < 14; $i++) 
     926    foreach( $days as $day ) 
    646927    { 
    647928        echo ' 
    648929            <td>'; 
    649         if ($registrationsnum[$i] != "0" && $registrationsmax != "0") 
     930        if ( $day->registrations != "0" && $registrationsmax != "0") 
    650931        { 
    651932        echo ' 
    652             <div style="background:#6F6F6F;width:10px;height:' . (round(($registrationsnum[$i]/$registrationsmax)*100)) . 'px"></div>'; 
     933            <div style="background:#6F6F6F;width:10px;height:' . ( round( ( $day->registrations / $registrationsmax ) * 100 ) ) . 'px"></div>'; 
    653934            } 
    654935        echo ' 
    655             ' . $registrationsnum[$i] . '</td> 
     936            ' . $day->registrations . '</td> 
    656937        '; 
    657938    } 
     
    660941        </tbody> 
    661942    </table> 
     943    </div> 
    662944    '; 
     945} 
     946 
     947// get the last 12 weeks fake SQL table 
     948function pluginregister_last_12weeks() { 
     949    $time = strtotime( "-11 week" ); 
     950    $sql = "select 0 as x, " . $time . " as date\n"; 
     951    for($i = 1; $i < 12; $i++) 
     952    { 
     953        $time = strtotime( "+1 week", $time ); 
     954        $sql .= "union all select " . $i . ", " . $time . "\n"; 
     955    } 
     956    return $sql; 
    663957} 
    664958 
     
    669963    global $wpdb; 
    670964     
    671     $plugin = $wpdb->escape($plugin); 
    672     $version = $wpdb->escape($version); 
    673  
    674     // show 12 week report 
    675     $begin = time() - (60 * 60 * 24 * 7 * 11); 
    676     $start = $begin; 
    677      
    678     for($i = 0; $i < 12; $i++) 
    679     { 
    680         $weeks[] = date("jS M", $start); 
    681      
    682         $sql = "select count(id) as num 
    683             from " . $wpdb->prefix . "plugin_register 
    684             where week(FROM_UNIXTIME(time)) = week(FROM_UNIXTIME(" . $start . ")) 
    685             and year(FROM_UNIXTIME(time)) = year(FROM_UNIXTIME(" . $start . ")) 
    686             and  
    687             ('" . $plugin . "' = '' or plugin = '" . $plugin . "') 
    688             and 
    689             ('" . $version . "' = '' or plugin = '" . $version . "');"; 
    690  
    691         $registrationsnum[] = $wpdb->get_var($sql); 
    692          
    693         $start = $start + (60 * 60 * 24 * 7);            
    694     } 
    695      
    696     $registrationsmax = 0; 
    697      
    698     for($i = 0; $i < 12; $i++) 
    699     { 
    700         if ($registrationsnum[$i] > $registrationsmax) { $registrationsmax = $registrationsnum[$i]; } 
    701     } 
    702      
    703     echo ' 
    704     <h4 id="range12weeks">' . __("Plugin registrations in the last 12 weeks") . '</h4> 
     965    $sql = $wpdb->prepare("select date, count(r.id) as registrations 
     966            from ( 
     967            " . pluginregister_last_12weeks() . " 
     968            ) as days 
     969            left outer 
     970            join " . $wpdb->prefix . "plugin_register r 
     971            on week(FROM_UNIXTIME(time)) = week(FROM_UNIXTIME(date)) 
     972            and year(FROM_UNIXTIME(time)) = year(FROM_UNIXTIME(date)) 
     973            and (%s = '' or plugin = %s) 
     974            and (%s = '' or pluginversion = %s) 
     975            group by date 
     976            order by x", 
     977            $plugin, 
     978            $plugin, 
     979            $version, 
     980            $version); 
     981 
     982    $weeks = $wpdb->get_results( $sql ); 
     983     
     984    echo ' 
     985    <div id="range12weeks" class="rangereport"> 
     986    <h4>' . __("Plugin registrations in the last 12 weeks") . '</h4> 
    705987    <table class="widefat post fixed"> 
    706988        <thead> 
    707989        <tr> 
    708             <th style="width:100px"></th> 
    709         '; 
    710     for($i = 0; $i < 12; $i++) 
     990            <th style="width:100px">' . __( "Week", "pluginregister" ) . '</th> 
     991        '; 
     992    foreach( $weeks as $week ) 
    711993    { 
    712         echo ' 
    713             <th>' . $weeks[$i] . '</th> 
     994        if ( $week->registrations > $registrationsmax ) { $registrationsmax = $week->registrations; } 
     995        echo ' 
     996            <th>' . date( "W", $week->date ) . '</th> 
    714997        '; 
    715998    } 
     
    7221005        '; 
    7231006         
    724     for($i = 0; $i < 12; $i++) 
     1007    foreach( $weeks as $week ) 
    7251008    { 
    7261009        echo ' 
    7271010            <td>'; 
    728         if ($registrationsnum[$i] != "0" && $registrationsmax != "0") 
     1011        if ( $week->registrations != "0" && $registrationsmax != "0" ) 
    7291012        { 
    7301013        echo ' 
    731             <div style="background:#6F6F6F;width:10px;height:' . (round(($registrationsnum[$i]/$registrationsmax)*100)) . 'px"></div>'; 
     1014            <div style="background:#6F6F6F;width:10px;height:' . ( round( ( $week->registrations / $registrationsmax ) * 100 ) ) . 'px"></div>'; 
    7321015            } 
    7331016        echo ' 
    734             ' . $registrationsnum[$i] . '</td> 
     1017            ' . $week->registrations . '</td> 
    7351018        '; 
    7361019    } 
     
    7391022        </tbody> 
    7401023    </table> 
     1024    </div> 
    7411025    '; 
     1026} 
     1027 
     1028// get the last 12 months fake SQL table 
     1029function pluginregister_last_12months() { 
     1030    $time = strtotime( "-11 month" ); 
     1031    $sql = "select 0 as x, " . $time . " as date\n"; 
     1032    for($i = 1; $i < 12; $i++) 
     1033    { 
     1034        $time = strtotime( "+1 month", $time ); 
     1035        $sql .= "union all select " . $i . ", " . $time . "\n"; 
     1036    } 
     1037    return $sql; 
    7421038} 
    7431039 
     
    7481044    global $wpdb; 
    7491045     
    750     $plugin = $wpdb->escape($plugin); 
    751     $version = $wpdb->escape($version); 
    752  
    753     // show 12 week report 
    754     $begin = pluginregister_addMonthToDate( pluginregister_addYearToDate( time(), -1 ), 1); 
    755     $start = $begin; 
    756      
    757     for($i = 0; $i < 12; $i++) 
    758     { 
    759         $months[] = date("M y", $start); 
    760      
    761         $sql = "select count(id) as num 
    762             from " . $wpdb->prefix . "plugin_register 
    763             where month(FROM_UNIXTIME(time)) = month(FROM_UNIXTIME(" . $start . ")) 
    764             and year(FROM_UNIXTIME(time)) = year(FROM_UNIXTIME(" . $start . ")) 
    765             and  
    766             ('" . $plugin . "' = '' or plugin = '" . $plugin . "') 
    767             and 
    768             ('" . $version . "' = '' or plugin = '" . $version . "');"; 
    769  
    770         $registrationsnum[] = $wpdb->get_var($sql); 
    771          
    772         $start = pluginregister_addMonthToDate( $start, 1 ); 
    773     } 
    774      
    775     $registrationsmax = 0; 
    776      
    777     for($i = 0; $i < 12; $i++) 
    778     { 
    779         if ($registrationsnum[$i] > $registrationsmax) { $registrationsmax = $registrationsnum[$i]; } 
    780     } 
    781      
    782     echo ' 
    783     <h4 id="range12months">' . __("Plugin registrations in the last 12 months") . '</h4> 
     1046    $sql = $wpdb->prepare("select date, count(r.id) as registrations 
     1047            from ( 
     1048            " . pluginregister_last_12months() . " 
     1049            ) as days 
     1050            left outer 
     1051            join " . $wpdb->prefix . "plugin_register r 
     1052            on month(FROM_UNIXTIME(time)) = month(FROM_UNIXTIME(date)) 
     1053            and year(FROM_UNIXTIME(time)) = year(FROM_UNIXTIME(date)) 
     1054            and (%s = '' or plugin = %s) 
     1055            and (%s = '' or pluginversion = %s) 
     1056            group by date 
     1057            order by x", 
     1058            $plugin, 
     1059            $plugin, 
     1060            $version, 
     1061            $version); 
     1062 
     1063    $months = $wpdb->get_results( $sql ); 
     1064     
     1065    echo ' 
     1066    <div id="range12months" class="rangereport"> 
     1067    <h4>' . __("Plugin registrations in the last 12 months") . '</h4> 
    7841068    <table class="widefat post fixed"> 
    7851069        <thead> 
     
    7871071            <th style="width:100px"></th> 
    7881072        '; 
    789     for($i = 0; $i < 12; $i++) 
     1073    foreach( $months as $month ) 
    7901074    { 
    791         echo ' 
    792             <th>' . $months[$i] . '</th> 
     1075        if ($month->registrations > $registrationsmax) { $registrationsmax = $month->registrations; } 
     1076        echo ' 
     1077            <th>' . date( "n", $month->date ) . '</th> 
    7931078        '; 
    7941079    } 
     
    8011086        '; 
    8021087         
    803     for($i = 0; $i < 12; $i++) 
     1088    foreach( $months as $month ) 
    8041089    { 
    8051090        echo ' 
    8061091            <td>'; 
    807         if ($registrationsnum[$i] != "0" && $registrationsmax != "0") 
     1092        if ($month->registrations != "0" && $registrationsmax != "0") 
    8081093        { 
    8091094        echo ' 
    810             <div style="background:#6F6F6F;width:10px;height:' . (round(($registrationsnum[$i]/$registrationsmax)*100)) . 'px"></div>'; 
     1095            <div style="background:#6F6F6F;width:10px;height:' . ( round( ( $month->registrations / $registrationsmax ) * 100 ) ) . 'px"></div>'; 
    8111096            } 
    8121097        echo ' 
    813             ' . $registrationsnum[$i] . '</td> 
     1098            ' . $month->registrations . '</td> 
    8141099        '; 
    8151100    } 
     
    8181103        </tbody> 
    8191104    </table> 
     1105    </div> 
    8201106    '; 
    8211107} 
     
    8571143 
    8581144    echo ' 
    859     <h2><a href="plugins.php?page=pluginregister_reports">' . __( "Plugin Register", "pluginregister" ) . '</a>: ' . $plugin . '</h2> 
     1145    <h2><a href="plugins.php?page=pluginregister_reports">' . __( "Plugin Register", "pluginregister" ) . '</a>: ' . $plugin . '</h2>'; 
     1146     
     1147    // show date range reports 
     1148    echo ' 
     1149    <h3>' . __("Date range reports") . '</h3> 
     1150    <ul class="inline"> 
     1151        <li><a href="#range24hours" class="button rangebutton">' . __("Last 24 hours") . '</a></li> 
     1152        <li><a href="#range14days" class="button rangebutton">' . __("Last 14 days") . '</a></li> 
     1153        <li><a href="#range12weeks" class="button rangebutton">' . __("Last 12 weeks") . '</a></li> 
     1154        <li><a href="#range12months" class="button rangebutton">' . __("Last 12 months") . '</a></li> 
     1155    </ul> 
     1156    '; 
     1157    pluginregister_24hour_report( $plugin ); 
     1158    pluginregister_14day_report( $plugin ); 
     1159    pluginregister_12week_report( $plugin ); 
     1160    pluginregister_12month_report($plugin ); 
     1161     
     1162    echo ' 
    8601163    <h3>' . __( "Registered versions", "pluginregister" ) . '</h3> 
    8611164    '; 
     
    9171220    <h2><a href="plugins.php?page=pluginregister_reports">' . __( "Plugin Register", "pluginregister" ) . '</a>: <a href="plugins.php?page=pluginregister_reports&amp;plugin=' . urlencode( $plugin ) . '">' . $plugin . '</a>: ' . $version . '</h2> 
    9181221    '; 
     1222     
     1223    // show date range reports 
     1224    echo ' 
     1225    <h3>' . __("Date range reports") . '</h3> 
     1226    <ul class="inline"> 
     1227        <li><a href="#range24hours" class="button rangebutton">' . __("Last 24 hours") . '</a></li> 
     1228        <li><a href="#range14days" class="button rangebutton">' . __("Last 14 days") . '</a></li> 
     1229        <li><a href="#range12weeks" class="button rangebutton">' . __("Last 12 weeks") . '</a></li> 
     1230        <li><a href="#range12months" class="button rangebutton">' . __("Last 12 months") . '</a></li> 
     1231    </ul> 
     1232    '; 
     1233    pluginregister_24hour_report( $plugin, $version ); 
     1234    pluginregister_14day_report( $plugin, $version ); 
     1235    pluginregister_12week_report( $plugin, $version ); 
     1236    pluginregister_12month_report($plugin, $version ); 
    9191237     
    9201238    // set up pagination start 
     
    9871305                <td>' . $result->plugin . '</td> 
    9881306                <td>' . $result->version . '</td> 
    989                 <td><a href="plugins.php?page=pluginregister_reports&amp;url=' . urlencode( $result->url ) . '">' . $result->sitename . '</a></td> 
     1307                <td> 
     1308                    <a href="plugins.php?page=pluginregister_reports&amp;url=' . urlencode( $result->url ) . '">' . $result->sitename . '</a><br /> 
     1309                    <a href="' . $result->url . '">' . $result->url . '</a> 
     1310                </td> 
    9901311                <td><a href="plugins.php?page=pluginregister_reports&amp;date=' . date( "Y/n/j", $result->time) . '">' . date( "F j, Y, g:i a", $result->time ) . '</a></td> 
    9911312                <td><a href="plugins.php?page=pluginregister_reports&amp;plugin=' . $_GET["plugin"] . '&amp;version=' . $_GET["version"] . '&amp;deleteregistration=' . $result->id . '" class="button">' . __( "Delete registration", "pluginregister" ) . '</a></td> 
     
    11301451    $end = $start + $limit; 
    11311452     
    1132     $sql = $wpdb->prepare( "select id, plugin, pluginversion as version, sitename, url, time 
     1453    $sql = $wpdb->prepare( "select SQL_CALC_FOUND_ROWS id, plugin, pluginversion as version, sitename, url, time 
    11331454                            from " . $wpdb->prefix . "plugin_register 
    11341455                            where url = %s 
     
    12211542} 
    12221543 
     1544// show the list of sites report 
     1545function pluginregister_sites_report() { 
     1546 
     1547    global $wpdb; 
     1548     
     1549    // set up pagination start 
     1550    $limit = 100; 
     1551    $start = findStart( $limit ); 
     1552    $end = $start + $limit; 
     1553     
     1554    $sql = $wpdb->prepare( "select SQL_CALC_FOUND_ROWS distinct sitename, url 
     1555                            from " . $wpdb->prefix . "plugin_register 
     1556                            order by url asc 
     1557                            limit %d, %d;", 
     1558                            $start, 
     1559                            $limit ); 
     1560     
     1561    // get the results 
     1562    $results = $wpdb->get_results( $sql ); 
     1563     
     1564    if( $results && is_array( $results ) && count( $results ) > 0 ) { 
     1565     
     1566        echo ' 
     1567        <h2><a href="plugins.php?page=pluginregister_reports">' . __( "Plugin Register", "pluginregister" ) . '</a>: ' . __( "Sites list", "pluginregister" ) . '</h2> 
     1568        '; 
     1569     
     1570        // get the total number of rows 
     1571        $count = $wpdb->get_var( "SELECT FOUND_ROWS();" ); 
     1572         
     1573        if ( $count < $limit ) { 
     1574            $view = $count; 
     1575        } else { 
     1576            $view = ( $start+1 ) . '&ndash;' . $end; 
     1577        } 
     1578 
     1579        // get the pages 
     1580        $pages = findPages($count, $limit); 
     1581         
     1582        // set up the pagination links 
     1583        $pagelist = paginate_links( array( 
     1584            'base' => add_query_arg( 'paged', '%#%' ), 
     1585            'format' => '', 
     1586            'prev_text' => __('&laquo;'), 
     1587            'next_text' => __('&raquo;'), 
     1588            'total' => $pages, 
     1589            'current' => $_GET['paged'] 
     1590        )); 
     1591     
     1592        echo ' 
     1593        <div class="tablenav"> 
     1594        <div class="tablenav-pages"> 
     1595        <span class="displaying-num">Displaying ' . $view . ' of ' . $count . '</span> 
     1596            ' . $pagelist . ' 
     1597        </div> 
     1598        </div> 
     1599        <table class="widefat fixed" cellspacing="0"> 
     1600 
     1601        <thead> 
     1602        <tr class="thead"> 
     1603            <th>' . __( "Site", "pluginregister" ) . '</th> 
     1604            <th>' . __( "URL", "pluginregister" ) . '</th> 
     1605        </tr> 
     1606        </thead> 
     1607 
     1608        <tbody> 
     1609        '; 
     1610        foreach ( $results as $result ) { 
     1611            echo ' 
     1612            <tr> 
     1613                <td><a href="plugins.php?page=pluginregister_reports&amp;url=' . urlencode( $result->url ) . '">' . $result->sitename . '</a></td> 
     1614                <td><a href="' . $result->url . '">' . $result->url . '</a></td> 
     1615            </tr> 
     1616            '; 
     1617        } 
     1618        echo ' 
     1619        </tbody> 
     1620        </table> 
     1621        <div class="tablenav"> 
     1622        <div class="tablenav-pages"> 
     1623        <span class="displaying-num">Displaying ' . $view . ' of ' . $count . '</span> 
     1624            ' . $pagelist . ' 
     1625        </div> 
     1626        </div> 
     1627        '; 
     1628    } else { 
     1629        echo ' 
     1630 
     1631        <h2><a href="plugins.php?page=pluginregister_reports">' . __( "Plugin Register", "pluginregister" ) . '</a>: ' . $url . '</h2> 
     1632 
     1633        <p>' . __( "No registrations found for this site URL", "pluginregister" ) . '</p> 
     1634        '; 
     1635    } 
     1636 
     1637} 
     1638 
    12231639// show the date report 
    12241640function pluginregister_date_report() { 
     
    12371653    $end = $start + $limit; 
    12381654     
    1239     $sql = $wpdb->prepare( "select plugin, pluginversion as version, sitename, url, time 
     1655    $sql = $wpdb->prepare( "select SQL_CALC_FOUND_ROWS plugin, pluginversion as version, sitename, url, time 
    12401656                            from " . $wpdb->prefix . "plugin_register 
    12411657                            where year(FROM_UNIXTIME(time)) = %s 
     
    12901706            <th>' . __( "Plugin", "pluginregister" ) . '</th> 
    12911707            <th>' . __( "Version", "pluginregister" ) . '</th> 
     1708            <th>' . __( "Site", "pluginregister" ) . '</th> 
    12921709            <th>' . __( "Registration date", "pluginregister" ) . '</th> 
    12931710        </tr> 
     
    13011718                <td><a href="plugins.php?page=pluginregister_reports&amp;plugin=' . urlencode( $result->plugin ) . '">' . $result->plugin . '</a></td> 
    13021719                <td><a href="plugins.php?page=pluginregister_reports&amp;plugin=' . urlencode( $result->plugin ) . '&amp;version=' . urlencode( $result->version ) . '">' . $result->version . '</a></td> 
     1720                <td> 
     1721                    <a href="plugins.php?page=pluginregister_reports&amp;url=' . urlencode( $result->url ) . '">' . $result->sitename . '</a><br /> 
     1722                    <a href="' . $result->url . '">' . $result->url . '</a> 
     1723                </td> 
    13031724                <td>' . date( "F j, Y, g:i a", $result->time ) . '</td> 
    13041725            </tr> 
  • plugin-register/trunk/readme.txt

    r318301 r651522  
    44Tags: plugin, register, activation, count, statistics, developer 
    55Requires at least: 2.8 
    6 Tested up to: 2.9.2 
    7 Stable tag: 0.5.2 
     6Tested up to: 3.5 
     7Stable tag: 0.6 
    88 
    99For Wordpress plugin developers: keep a register of when and where your plugins are activated. 
     
    7474== Changelog == 
    7575 
     76= 0.6 = 
     77 
     78* Added additional information to some reports 
     79* Made reports quicker to navigate 
     80* Rewrote a lot of SQL statements 
     81* Added report to show list of registered sites 
     82 
    7683= 0.5.2 = 
    7784 
Note: See TracChangeset for help on using the changeset viewer.