2016-11-28 21:52:15 -08:00

127 lines
4.3 KiB
PHP

<?php
function wp_statistics_generate_page_postbox_content($pageuri, $pageid, $days = 20, $chart_title = null, $rangestart = '', $rangeend = '' ) {
GLOBAL $WP_Statistics;
if( ! $WP_Statistics->get_option('pages') ) { return; }
if( $chart_title == null ) { $chart_title = __('Page Trending Stats', 'wp_statistics'); }
if( $pageuri && !$pageid ) { $pageid = wp_statistics_uri_to_id( $pageuri ); }
$post = get_post($pageid);
if( is_object($post) ) { $title = esc_html( $post->post_title ); } else { $title = ""; }
$urlfields = "&page-id={$pageid}";
if( $pageuri ) { $urlfields .= "&page-uri={$pageuri}"; }
list( $daysToDisplay, $rangestart_utime, $rangeend_utime ) = wp_statistics_date_range_calculator( $days, $rangestart, $rangeend );
$daysInThePast = round( ( time() - $rangeend_utime ) / 86400 , 0 );
?>
<script type="text/javascript">
var pages_chart;
jQuery(document).ready( function() {
<?php
echo 'var page_data_line = [';
for( $i = $daysToDisplay; $i >= 0; $i-- ) {
$stat = wp_statistics_pages( '-' . ( $i + $daysInThePast ), $pageuri, $pageid );
echo "['" . $WP_Statistics->Real_Current_Date( 'Y-m-d', '-' . $i, $rangeend_utime ) . "'," . $stat . "], ";
}
echo "];\n";
$tickInterval = $daysToDisplay / 20;
if( $tickInterval < 1 ) { $tickInterval = 1; }
?>
pages_jqchart = jQuery.jqplot( 'page-stats', [page_data_line], {
title: {
text: '<b>' + <?php echo json_encode( __( $chart_title, 'wp_statistics' ) ); ?> + '</b>',
fontSize: '12px',
fontFamily: 'Tahoma',
textColor: '#000000',
},
axes: {
xaxis: {
min: '<?php echo $WP_Statistics->Real_Current_Date( 'Y-m-d', '-' . $daysToDisplay, $rangeend_utime );?>',
max: '<?php echo $WP_Statistics->Real_Current_Date( 'Y-m-d', '-0', $rangeend_utime );?>',
tickInterval: '<?php echo $tickInterval; ?> day',
renderer:jQuery.jqplot.DateAxisRenderer,
tickRenderer: jQuery.jqplot.CanvasAxisTickRenderer,
tickOptions: {
angle: -45,
formatString:'%b %#d',
showGridline: false,
},
},
yaxis: {
min: 0,
padMin: 1.0,
label: <?php echo json_encode( __('Number of Hits', 'wp_statistics' ) ); ?>,
labelRenderer: jQuery.jqplot.CanvasAxisLabelRenderer,
labelOptions: {
angle: -90,
fontSize: '12px',
fontFamily: 'Tahoma',
fontWeight: 'bold',
},
}
},
legend: {
show: true,
location: 's',
placement: 'outsideGrid',
labels: [ '<?php echo (int) $pageid . ' - ' . $title; ?>' ],
renderer: jQuery.jqplot.EnhancedLegendRenderer,
rendererOptions:
{
numberColumns: 5,
disableIEFading: false,
border: 'none',
},
},
highlighter: {
show: true,
bringSeriesToFront: true,
tooltipAxes: 'xy',
formatString: '%s:&nbsp;<b>%i</b>&nbsp;',
tooltipContentEditor: tooltipContentEditor,
},
grid: {
drawGridlines: true,
borderColor: 'transparent',
shadow: false,
drawBorder: false,
shadowColor: 'transparent'
},
} );
function tooltipContentEditor(str, seriesIndex, pointIndex, plot) {
// display series_label, x-axis_tick, y-axis value
return plot.legend.labels[seriesIndex] + ", " + str;;
}
jQuery(window).resize(function() {
JQPlotPagesChartLengendClickRedraw()
});
function JQPlotPagesChartLengendClickRedraw() {
pages_jqchart.replot( {resetAxes: ['yaxis'] } );
jQuery('div[id="page-stats"] .jqplot-table-legend').click( function() {
JQPlotPagesChartLengendClickRedraw();
});
}
jQuery('div[id="page-stats"] .jqplot-table-legend').click( function() {
JQPlotPagesChartLengendClickRedraw()
});
});
</script>
<div id="page-stats" style="height:500px;"></div>
<?php
}