http://www.mediawiki.org/wiki/Special:Code/MediaWiki/91037
Revision: 91037 Author: reedy Date: 2011-06-29 01:04:43 +0000 (Wed, 29 Jun 2011) Log Message: ----------- Stylize and fix some indenting Modified Paths: -------------- trunk/wikistats/MetricsReporting/MetricsReporting.php trunk/wikistats/MetricsReporting/MetricsReportingQuery.php trunk/wikistats/MetricsReporting/api/ApiAnalytics.php trunk/wikistats/MetricsReporting/api/ApiAnalyticsMetric.php trunk/wikistats/MetricsReporting/metrics/comscore_reach_percentage.php trunk/wikistats/MetricsReporting/metrics/comscore_unique_visotors.php trunk/wikistats/MetricsReporting/metrics/dump_active_editors_100.php trunk/wikistats/MetricsReporting/metrics/dump_active_editors_5.php trunk/wikistats/MetricsReporting/metrics/dump_article_count.php trunk/wikistats/MetricsReporting/metrics/dump_binary_count.php trunk/wikistats/MetricsReporting/metrics/dump_edits.php trunk/wikistats/MetricsReporting/metrics/dump_new_registered_editors.php trunk/wikistats/MetricsReporting/metrics/squid_page_views.php Modified: trunk/wikistats/MetricsReporting/MetricsReporting.php =================================================================== --- trunk/wikistats/MetricsReporting/MetricsReporting.php 2011-06-29 00:37:23 UTC (rev 91036) +++ trunk/wikistats/MetricsReporting/MetricsReporting.php 2011-06-29 01:04:43 UTC (rev 91037) @@ -1,4 +1,4 @@ -<?php +<?php $wgeAnalyticsFieldNames = array( 'select_regions' => "REGION", @@ -34,9 +34,9 @@ "US" => "United States", "W" => "World", ), -//"select_countries" => array(), -//"select_web_properties"=> array(), -"select_projects"=> array( +// "select_countries" => array(), +// "select_web_properties"=> array(), +"select_projects" => array( "wb" => "Wikibooks", "wk" => "Wiktionary", "wn" => "Wikinews", @@ -45,19 +45,19 @@ "ws" => "Wikisource", "wv" => "Wikiversity", "co" => "Commons", - "wx" => "Other projects", + "wx" => "Other projects", ), -//"select_wikis"=> array(), -"select_editors"=> array( +// "select_wikis"=> array(), +"select_editors" => array( "A" => "Anonymous", "R" => "Registered User", "B" => "Bot", ), -"select_edits"=> array( +"select_edits" => array( "M" => "Manual", "B" => "Bot", ), -"select_platform"=> array( +"select_platform" => array( "M" => "Moblie", "N" => "Non-Mobile", ), @@ -70,13 +70,13 @@ $wgAutoloadClasses['MetricsReportingQuery'] = $dir . '/MetricsReportingQuery.php'; $wgeAnalyticsMetricsList = array(); -$metricsdir = $dir."/metrics"; -$dh = opendir($metricsdir); -while( ($file = readdir($dh)) !== false){ - if(filetype($metricsdir."/".$file) == "file" ){ - $file_path_parts = pathinfo($metricsdir."/".$file); - if($file_path_parts['extension'] == 'php'){ - $wgAutoloadClasses["ApiAnalyticsMetric{$file_path_parts['filename']}"] = $metricsdir."/".$file; +$metricsdir = $dir . "/metrics"; +$dh = opendir( $metricsdir ); +while ( ( $file = readdir( $dh ) ) !== false ) { + if ( filetype( $metricsdir . "/" . $file ) == "file" ) { + $file_path_parts = pathinfo( $metricsdir . "/" . $file ); + if ( $file_path_parts['extension'] == 'php' ) { + $wgAutoloadClasses["ApiAnalyticsMetric{$file_path_parts['filename']}"] = $metricsdir . "/" . $file; $wgeAnalyticsMetricsList[] = $file_path_parts['filename']; } } @@ -90,9 +90,9 @@ function wfAnalyticsMetricConnection() { global $wgeAnalyticsMetricDBserver, $wgeAnalyticsMetricDBname; global $wgeAnalyticsMetricDBuser, $wgeAnalyticsMetricDBpassword; - + static $db; - + if ( !$db ) { $db = new DatabaseMysql( $wgeAnalyticsMetricDBserver, @@ -101,7 +101,7 @@ $wgeAnalyticsMetricDBname ); $db->query( "SET names utf8" ); } - + return $db; } - + Modified: trunk/wikistats/MetricsReporting/MetricsReportingQuery.php =================================================================== --- trunk/wikistats/MetricsReporting/MetricsReportingQuery.php 2011-06-29 00:37:23 UTC (rev 91036) +++ trunk/wikistats/MetricsReporting/MetricsReportingQuery.php 2011-06-29 01:04:43 UTC (rev 91037) @@ -1,19 +1,19 @@ <?php -class MetricsReportingQuery{ - +class MetricsReportingQuery { + public $query = ""; public $queryProperties = array(); - - public function __construct(){ + + public function __construct() { } - public function __construct($initial_query, $initial_prop_name, $initial_prop_value){ + public function __construct( $initial_query, $initial_prop_name, $initial_prop_value ) { $this->query = $initial_query; - $this->queryProperties = array($initial_prop_name => $initial_prop_value); + $this->queryProperties = array( $initial_prop_name => $initial_prop_value ); } - - public function mergeWith(MetricsReportingQuery $queryObj){ - $this->query = $this->query.$queryObj->query; - $this->queryProperties = array_merge($this->queryProperties, $queryObj->queryProperties); + + public function mergeWith( MetricsReportingQuery $queryObj ) { + $this->query = $this->query . $queryObj->query; + $this->queryProperties = array_merge( $this->queryProperties, $queryObj->queryProperties ); } } \ No newline at end of file Modified: trunk/wikistats/MetricsReporting/api/ApiAnalytics.php =================================================================== --- trunk/wikistats/MetricsReporting/api/ApiAnalytics.php 2011-06-29 00:37:23 UTC (rev 91036) +++ trunk/wikistats/MetricsReporting/api/ApiAnalytics.php 2011-06-29 01:04:43 UTC (rev 91037) @@ -7,146 +7,145 @@ class ApiAnalytics extends ApiBase { - + public function execute() { - + global $wgeAnalyticsMetricsList, $wgeAnalyticsFieldReturns; $params = $this->extractRequestParams(); $result = $this->getResult(); - foreach($wgeAnalyticsMetricsList as $metricName){ - //find the metric requested - if($metricName == $params["metric"]){ - - //instantiate the class and an empty array of metricsreportingquery objects + foreach ( $wgeAnalyticsMetricsList as $metricName ) { + // find the metric requested + if ( $metricName == $params["metric"] ) { + + // instantiate the class and an empty array of metricsreportingquery objects $metricClassName = "ApiAnalyticsMetric$metricName"; $metric = new $metricClassName; $filterParams = $metric->getAllowedFilterParams(); $queries = array(); - - //check to see which filters are set - foreach($filterParams as $filterParam){ - if(isset( $params["$filterParam"])){ - $filter_results = $this->collectQueryFilters($filterParam, $params["$filterParam"]); - - //if multiple results returned, merge each of the query objects with whatever exists - if (count($filter_results) > 1){ - foreach ($filter_results as $result){ - foreach ($queries as $queryObj){ - $result->merge($queryObj); + + // check to see which filters are set + foreach ( $filterParams as $filterParam ) { + if ( isset( $params["$filterParam"] ) ) { + $filter_results = $this->collectQueryFilters( $filterParam, $params["$filterParam"] ); + + // if multiple results returned, merge each of the query objects with whatever exists + if ( count( $filter_results ) > 1 ) { + foreach ( $filter_results as $result ) { + foreach ( $queries as $queryObj ) { + $result->merge( $queryObj ); } } - $queries = $filter_results; - } - //else just merge with the only object - else{ - foreach($queries as &$queryObj){ - $queryObj->merge($filter_results[0]); + $queries = $filter_results; + } else { + // else just merge with the only object + foreach ( $queries as &$queryObj ) { + $queryObj->merge( $filter_results[0] ); } } - } //endif - }//end filters - - //calculate time - $range = " DATE = {$params["months"]}"; //TODO: query + } // endif + }// end filters + + // calculate time + $range = " DATE = {$params["months"]}"; // TODO: query $minDate = $params["months"]; - if(strpos($params["months"],";") !== FALSE){ - $rangeVals = explode($params["months"], ";"); + if ( strpos( $params["months"], ";" ) !== FALSE ) { + $rangeVals = explode( $params["months"], ";" ); $range = " DATE >= $rangeVals[0] AND DATE <= $rangeVals[1]"; $minDate = $rangeVals[0]; } $timeStart = 0; - if(($timeStart = strtotime($str)) !== false){ - $result->addValue("","timeStart",strfmttime("%Y%m%d%H%M%S",$timeStart)); + if ( ( $timeStart = strtotime( $str ) ) !== false ) { + $result->addValue( "", "timeStart", strfmttime( "%Y%m%d%H%M%S", $timeStart ) ); } - - //foreach query - foreach($queries as &$queryObj){ + + // foreach query + foreach ( $queries as &$queryObj ) { $queryObj->query = $queryObj->query . " AND " . $range; - - foreach($queryObj->queryProperties as $filterName => $filterVal){ - $result->addValue("", $filterName, $filterVal); //filters + + foreach ( $queryObj->queryProperties as $filterName => $filterVal ) { + $result->addValue( "", $filterName, $filterVal ); // filters } - - if($metric->canBeNormalized){ - //TODO: modify queries for normalization - if(isset($params["normalized"]) && (strpos($params["normalized"], "true") !== FALSE)){ - //is normalized - $result->addValue("","normalized","true"); + + if ( $metric->canBeNormalized ) { + // TODO: modify queries for normalization + if ( isset( $params["normalized"] ) && ( strpos( $params["normalized"], "true" ) !== FALSE ) ) { + // is normalized + $result->addValue( "", "normalized", "true" ); } else { - $result->addValue("","normalized","false"); + $result->addValue( "", "normalized", "false" ); } - - - if(isset($params["modailty"]) && (strpos($params["modality"], "indexed") !== FALSE)){ - //modify query for indexed - $result->addValue("","modality","indexed"); + + + if ( isset( $params["modailty"] ) && ( strpos( $params["modality"], "indexed" ) !== FALSE ) ) { + // modify query for indexed + $result->addValue( "", "modality", "indexed" ); } - + } - + } - + $language = $params["report_language"]; - + $dbr = wfAnalyticsMetricConnection(); - //TODO: build return object from queries - + // TODO: build return object from queries + } } } - //override with vars for individual metrics - protected function collectQueryFilters($field, $fieldVal){ + // override with vars for individual metrics + protected function collectQueryFilters( $field, $fieldVal ) { global $wgeAnalyticsFieldNames; - - //get rid of any potential whitespace - $param = preg_replace('/\s\s+/', '', $fieldVal); - $returnQueries = array(new MetricsReportingQuery); - - if(!isset ($wgeAnalyticsFieldNames["$field"]) ){ + + // get rid of any potential whitespace + $param = preg_replace( '/\s\s+/', '', $fieldVal ); + $returnQueries = array( new MetricsReportingQuery ); + + if ( !isset ( $wgeAnalyticsFieldNames["$field"] ) ) { return $returnQueries; } - + $fieldName = $wgeAnalyticsFieldNames["$field"]; - - $sub_queries = explode(",", $param); - foreach($sub_queries as $sub_query){ + + $sub_queries = explode( ",", $param ); + foreach ( $sub_queries as $sub_query ) { $topval = 0; - if(strpos($sub_query,"top:") !== FALSE){ - $topval = (int) substr($sub_query, strpos($sub_query,"top:") + 4); + if ( strpos( $sub_query, "top:" ) !== FALSE ) { + $topval = (int) substr( $sub_query, strpos( $sub_query, "top:" ) + 4 ); } - - if(strpos($sub_query,"+") !== FALSE ){ - $and_params = explode("+", $sub_query); - foreach($and_params as $and_param){ - $this->validate_atomic_param($and_param, $field); - } - $returnQueries[] = new MetricsReportingQuery("$filedName = $sub_query ", - $fieldName,$sub_query);; //TODO: This is not what the query means + + if ( strpos( $sub_query, "+" ) !== FALSE ) { + $and_params = explode( "+", $sub_query ); + foreach ( $and_params as $and_param ) { + $this->validate_atomic_param( $and_param, $field ); + } + $returnQueries[] = new MetricsReportingQuery( "$filedName = $sub_query ", + $fieldName, $sub_query ); ; // TODO: This is not what the query means } - else{ - if(!$topval){ - //TODO:check for {project}:{lang} (ie wp:en) style here - - $this->validate_atomic_param($sub_query, $field); - $returnQueries[] = new MetricsReportingQuery("$fieldName = $sub_query ", //TODO: this might be what this query means - $fieldName, $sub_query); + else { + if ( !$topval ) { + // TODO:check for {project}:{lang} (ie wp:en) style here + + $this->validate_atomic_param( $sub_query, $field ); + $returnQueries[] = new MetricsReportingQuery( "$fieldName = $sub_query ", // TODO: this might be what this query means + $fieldName, $sub_query ); } - else{ - $returnQueries[] = new MetricsReportingQuery("$fieldName < $topval", //TODO: This is not what this query means - $fieldName, $topval); + else { + $returnQueries[] = new MetricsReportingQuery( "$fieldName < $topval", // TODO: This is not what this query means + $fieldName, $topval ); } } } return $returnQueries; } - - protected function validate_atomic_param($param, $field){ + + protected function validate_atomic_param( $param, $field ) { global $wgeAnalyticsValidParams; - if(isset($wgeAnalyticsValidParams["$field"]) && count($wgeAnalyticsValidParams["$field"]) > 0){ - if(count( array_keys($wgeAnalyticsValidParams["$field"], $param) ) > 0){ + if ( isset( $wgeAnalyticsValidParams["$field"] ) && count( $wgeAnalyticsValidParams["$field"] ) > 0 ) { + if ( count( array_keys( $wgeAnalyticsValidParams["$field"], $param ) ) > 0 ) { return true; } else { return false; @@ -158,4 +157,4 @@ public function getVersion() { return __CLASS__ . ': $Id$'; } -} \ No newline at end of file +} Modified: trunk/wikistats/MetricsReporting/api/ApiAnalyticsMetric.php =================================================================== --- trunk/wikistats/MetricsReporting/api/ApiAnalyticsMetric.php 2011-06-29 00:37:23 UTC (rev 91036) +++ trunk/wikistats/MetricsReporting/api/ApiAnalyticsMetric.php 2011-06-29 01:04:43 UTC (rev 91037) @@ -1,18 +1,18 @@ -<?php +<?php -abstract class ApiAnalyticsMetric{ - - +abstract class ApiAnalyticsMetric { + + protected $canBeNormalized = false; - + protected $name = null; - - protected function getAllowedFilterParams(){ + + protected function getAllowedFilterParams() { return array(); } - - - + + + } Modified: trunk/wikistats/MetricsReporting/metrics/comscore_reach_percentage.php =================================================================== --- trunk/wikistats/MetricsReporting/metrics/comscore_reach_percentage.php 2011-06-29 00:37:23 UTC (rev 91036) +++ trunk/wikistats/MetricsReporting/metrics/comscore_reach_percentage.php 2011-06-29 01:04:43 UTC (rev 91037) @@ -1,16 +1,16 @@ <?php - -class ApiAnalyticsMetriccomscore_reach_percentage extends ApiAnalyticsMetric{ - - + +class ApiAnalyticsMetriccomscore_reach_percentage extends ApiAnalyticsMetric { + + protected $canBeNormalized = true; - + protected $name = "comscore_reach_percentage"; - - protected function getAllowedFilterParams(){ - return array("select_regions", "select_countries"); + + protected function getAllowedFilterParams() { + return array( "select_regions", "select_countries" ); } - + } -//Any additions go here \ No newline at end of file +// Any additions go here \ No newline at end of file Modified: trunk/wikistats/MetricsReporting/metrics/comscore_unique_visotors.php =================================================================== --- trunk/wikistats/MetricsReporting/metrics/comscore_unique_visotors.php 2011-06-29 00:37:23 UTC (rev 91036) +++ trunk/wikistats/MetricsReporting/metrics/comscore_unique_visotors.php 2011-06-29 01:04:43 UTC (rev 91037) @@ -1,16 +1,16 @@ <?php - -class ApiAnalyticsMetriccomscore_unique_visitors extends ApiAnalyticsMetric{ - - + +class ApiAnalyticsMetriccomscore_unique_visitors extends ApiAnalyticsMetric { + + protected $canBeNormalized = true; - + protected $name = "comscore_unique_visitors"; - - protected function getAllowedFilterParams(){ - return array("select_regions", "select_countries"); + + protected function getAllowedFilterParams() { + return array( "select_regions", "select_countries" ); } - + } -//Any additions go here \ No newline at end of file +// Any additions go here \ No newline at end of file Modified: trunk/wikistats/MetricsReporting/metrics/dump_active_editors_100.php =================================================================== --- trunk/wikistats/MetricsReporting/metrics/dump_active_editors_100.php 2011-06-29 00:37:23 UTC (rev 91036) +++ trunk/wikistats/MetricsReporting/metrics/dump_active_editors_100.php 2011-06-29 01:04:43 UTC (rev 91037) @@ -1,16 +1,16 @@ <?php -class ApiAnalyticsMetricdump_active_editors_100 extends ApiAnalyticsMetric{ - - +class ApiAnalyticsMetricdump_active_editors_100 extends ApiAnalyticsMetric { + + protected $canBeNormalized = true; - + protected $name = "dump_active_editors_100"; - - protected function getAllowedFilterParams(){ - return array("select_projects", "select_wikis"); + + protected function getAllowedFilterParams() { + return array( "select_projects", "select_wikis" ); } - + } -//Any additions go here \ No newline at end of file +// Any additions go here \ No newline at end of file Modified: trunk/wikistats/MetricsReporting/metrics/dump_active_editors_5.php =================================================================== --- trunk/wikistats/MetricsReporting/metrics/dump_active_editors_5.php 2011-06-29 00:37:23 UTC (rev 91036) +++ trunk/wikistats/MetricsReporting/metrics/dump_active_editors_5.php 2011-06-29 01:04:43 UTC (rev 91037) @@ -1,16 +1,16 @@ <?php -class ApiAnalyticsMetricdump_active_editors_5 extends ApiAnalyticsMetric{ - - +class ApiAnalyticsMetricdump_active_editors_5 extends ApiAnalyticsMetric { + + protected $canBeNormalized = true; - + protected $name = "dump_active_editors_5"; - - protected function getAllowedFilterParams(){ - return array("select_projects", "select_wikis"); + + protected function getAllowedFilterParams() { + return array( "select_projects", "select_wikis" ); } - + } -//Any additions go here \ No newline at end of file +// Any additions go here \ No newline at end of file Modified: trunk/wikistats/MetricsReporting/metrics/dump_article_count.php =================================================================== --- trunk/wikistats/MetricsReporting/metrics/dump_article_count.php 2011-06-29 00:37:23 UTC (rev 91036) +++ trunk/wikistats/MetricsReporting/metrics/dump_article_count.php 2011-06-29 01:04:43 UTC (rev 91037) @@ -1,16 +1,16 @@ <?php -class ApiAnalyticsMetricdump_article_count extends ApiAnalyticsMetric{ - - +class ApiAnalyticsMetricdump_article_count extends ApiAnalyticsMetric { + + protected $canBeNormalized = true; - + protected $name = "dump_article_count"; - - protected function getAllowedFilterParams(){ - return array("select_projects", "select_wikis"); + + protected function getAllowedFilterParams() { + return array( "select_projects", "select_wikis" ); } - + } -//Any additions go here \ No newline at end of file +// Any additions go here \ No newline at end of file Modified: trunk/wikistats/MetricsReporting/metrics/dump_binary_count.php =================================================================== --- trunk/wikistats/MetricsReporting/metrics/dump_binary_count.php 2011-06-29 00:37:23 UTC (rev 91036) +++ trunk/wikistats/MetricsReporting/metrics/dump_binary_count.php 2011-06-29 01:04:43 UTC (rev 91037) @@ -1,16 +1,16 @@ <?php -class ApiAnalyticsMetricdump_binary_count extends ApiAnalyticsMetric{ - - +class ApiAnalyticsMetricdump_binary_count extends ApiAnalyticsMetric { + + protected $canBeNormalized = true; - + protected $name = "dump_binary_count"; - - protected function getAllowedFilterParams(){ - return array("select_projects", "select_wikis"); + + protected function getAllowedFilterParams() { + return array( "select_projects", "select_wikis" ); } - + } -//Any additions go here \ No newline at end of file +// Any additions go here \ No newline at end of file Modified: trunk/wikistats/MetricsReporting/metrics/dump_edits.php =================================================================== --- trunk/wikistats/MetricsReporting/metrics/dump_edits.php 2011-06-29 00:37:23 UTC (rev 91036) +++ trunk/wikistats/MetricsReporting/metrics/dump_edits.php 2011-06-29 01:04:43 UTC (rev 91037) @@ -1,16 +1,16 @@ <?php -class ApiAnalyticsMetricdump_edits extends ApiAnalyticsMetric{ - - +class ApiAnalyticsMetricdump_edits extends ApiAnalyticsMetric { + + protected $canBeNormalized = true; - + protected $name = "dump_active_edits"; - - protected function getAllowedFilterParams(){ - return array("select_projects", "select_wikis"); + + protected function getAllowedFilterParams() { + return array( "select_projects", "select_wikis" ); } - + } -//Any additions go here \ No newline at end of file +// Any additions go here \ No newline at end of file Modified: trunk/wikistats/MetricsReporting/metrics/dump_new_registered_editors.php =================================================================== --- trunk/wikistats/MetricsReporting/metrics/dump_new_registered_editors.php 2011-06-29 00:37:23 UTC (rev 91036) +++ trunk/wikistats/MetricsReporting/metrics/dump_new_registered_editors.php 2011-06-29 01:04:43 UTC (rev 91037) @@ -1,16 +1,16 @@ <?php -class ApiAnalyticsMetricdump_new_registered_editors extends ApiAnalyticsMetric{ - - +class ApiAnalyticsMetricdump_new_registered_editors extends ApiAnalyticsMetric { + + protected $canBeNormalized = true; - + protected $name = "dump_new_registered_editors"; - - protected function getAllowedFilterParams(){ - return array("select_projects", "select_wikis"); + + protected function getAllowedFilterParams() { + return array( "select_projects", "select_wikis" ); } - + } -//Any additions go here \ No newline at end of file +// Any additions go here \ No newline at end of file Modified: trunk/wikistats/MetricsReporting/metrics/squid_page_views.php =================================================================== --- trunk/wikistats/MetricsReporting/metrics/squid_page_views.php 2011-06-29 00:37:23 UTC (rev 91036) +++ trunk/wikistats/MetricsReporting/metrics/squid_page_views.php 2011-06-29 01:04:43 UTC (rev 91037) @@ -1,17 +1,17 @@ <?php -class ApiAnalyticsMetricsquid_page_views extends ApiAnalyticsMetric{ - - +class ApiAnalyticsMetricsquid_page_views extends ApiAnalyticsMetric { + + protected $canBeNormalized = true; - + protected $name = "squid_page_views"; - - protected function getAllowedFilterParams(){ - return array("select_regions", "select_countries", "select_web_properties", "select_projects", "select_wikis", "select_platform" + + protected function getAllowedFilterParams() { + return array( "select_regions", "select_countries", "select_web_properties", "select_projects", "select_wikis", "select_platform" ); } - + } -//Any additions go here \ No newline at end of file +// Any additions go here \ No newline at end of file _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs