Archived
75 lines
1.6 KiB
PHP
75 lines
1.6 KiB
PHP
<?php
|
|
/**
|
|
* @package GoogleAnalytics\Admin
|
|
*/
|
|
|
|
/**
|
|
* Dashboards table inherited class.
|
|
*/
|
|
class Yoast_GA_Dashboards_Table_Generate extends Yoast_GA_Dashboards_Driver_Generate {
|
|
|
|
/**
|
|
* @var string - The ID of requested dimension
|
|
*/
|
|
protected $dimension_id;
|
|
|
|
/**
|
|
* Construct will set all values and generate the date for response
|
|
*/
|
|
public function __construct() {
|
|
parent::__construct();
|
|
|
|
$this->set_dimension_id();
|
|
|
|
$this->generate();
|
|
}
|
|
|
|
/**
|
|
* Putting $this->data and $this->mapping and give them back as a json encoded string
|
|
*
|
|
* @return string
|
|
*/
|
|
public function get_json() {
|
|
$return = array(
|
|
'data' => $this->escape_strings_array( $this->data ),
|
|
);
|
|
|
|
return json_encode( $return );
|
|
}
|
|
|
|
/**
|
|
* Filtering the current data to eliminate all values which are not in given period
|
|
*
|
|
* @param integer $google_data
|
|
*
|
|
* @return integer
|
|
*/
|
|
protected function filter_google_data( $google_data ) {
|
|
return $google_data['value'];
|
|
}
|
|
|
|
/**
|
|
* Setting the dimension_id for current request. Based on dimension_id the graph_type will be set, this to
|
|
* handle the request correctly
|
|
*/
|
|
private function set_dimension_id() {
|
|
$this->dimension_id = filter_input( INPUT_GET, 'dimension_id' );
|
|
|
|
if ( ! empty( $this->dimension_id ) ) {
|
|
$this->graph_type = 'ga:dimension' . $this->dimension_id;
|
|
}
|
|
else {
|
|
$this->graph_type = $this->graph_type;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Generate the data for the frontend based on the $google_data
|
|
*/
|
|
private function generate() {
|
|
$google_data = $this->get_google_data();
|
|
$this->data = is_array( $google_data ) ? array_values( $google_data ) : array();
|
|
}
|
|
|
|
}
|