function google_analytics_reports_update_7302 in Google Analytics Reports 7.3
Replace deprecated datapoins with new ones.
File
- ./
google_analytics_reports.install, line 237 - Contains install and update functions for Google Analytics Reports module.
Code
function google_analytics_reports_update_7302() {
// Find all Google Analytics views.
$ga_views = db_select('views_view', 'v')
->fields('v', array(
'vid',
))
->condition('base_table', 'google_analytics')
->execute()
->fetchAll();
foreach ($ga_views as $ga_view) {
// Find all displays settings.
$ga_views_displays = db_select('views_display', 'v')
->fields('v', array(
'id',
'display_options',
))
->condition('vid', $ga_view->vid)
->execute()
->fetchAll();
if ($ga_views_displays) {
foreach ($ga_views_displays as $ga_views_display) {
$old_datapoins = array(
'visitorType',
'visitCount',
'daysSinceLastVisit',
'visitors',
'newVisits',
'percentNewVisits',
'visitLength',
'visits',
'timeOnSite',
'entranceBounceRate',
'visitBounceRate',
'avgTimeOnSite',
'goalValuePerVisit',
'pageviewsPerVisit',
'searchVisits',
'percentVisitsWithSearch',
'visitsWithEvent',
'eventsPerVisitWithEvent',
'visitsToTransaction',
'transactionsPerVisit',
'transactionRevenuePerVisit',
'socialInteractionsPerVisit',
'visitorAgeBracket',
'visitorGender',
);
$new_datapoints = array(
'userType',
'sessionCount',
'daysSinceLastSession',
'users',
'newUsers',
'percentNewSessions',
'sessionDurationBucket',
'sessions',
'sessionDuration',
'bounceRate',
'bounceRate',
'avgSessionDuration',
'goalValuePerSession',
'pageviewsPerSession',
'searchSessions',
'percentSessionsWithSearch',
'sessionsWithEvent',
'eventsPerSessionWithEvent',
'sessionsToTransaction',
'transactionsPerSession',
'transactionRevenuePerSession',
'socialInteractionsPerSession',
'userAgeBracket',
'userGender',
);
// Replace deprecated datapoins with new ones.
$replaced_data = str_replace($old_datapoins, $new_datapoints, $ga_views_display->display_options);
// Fix serialize data.
// See http://stackoverflow.com/a/21389439/3365600.
$fixed_data = preg_replace_callback('!s:(\\d+):"(.*?)";!', function ($match) {
return $match[1] == strlen($match[2]) ? $match[0] : 's:' . strlen($match[2]) . ':"' . $match[2] . '";';
}, $replaced_data);
db_update('views_display')
->fields(array(
'display_options' => $fixed_data,
))
->condition('vid', $ga_view->vid)
->condition('id', $ga_views_display->id)
->execute();
}
}
}
}