diff options
author | sgiehl <stefan@piwik.org> | 2015-01-13 01:13:14 +0300 |
---|---|---|
committer | sgiehl <stefan@piwik.org> | 2015-01-13 01:13:14 +0300 |
commit | a0ce768662bea281f88fb64b90a9fca4d668fd41 (patch) | |
tree | 17fd24f16111dc61fd04d4f4d63b950d97b7e4c3 /plugins/UserLanguage/Columns | |
parent | e2b9956e4bd92ca9e234d10d527be9e8caf2b68f (diff) |
refs #3962 - moved language reports to their own plugin
Diffstat (limited to 'plugins/UserLanguage/Columns')
-rw-r--r-- | plugins/UserLanguage/Columns/Language.php | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/plugins/UserLanguage/Columns/Language.php b/plugins/UserLanguage/Columns/Language.php new file mode 100644 index 0000000000..5812528688 --- /dev/null +++ b/plugins/UserLanguage/Columns/Language.php @@ -0,0 +1,54 @@ +<?php +/** + * Piwik - free/libre analytics platform + * + * @link http://piwik.org + * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later + * + */ +namespace Piwik\Plugins\UserLanguage\Columns; + +use Piwik\Common; +use Piwik\Piwik; +use Piwik\Plugin\Dimension\VisitDimension; +use Piwik\Tracker\Action; +use Piwik\Tracker\Request; +use Piwik\Tracker\Visitor; + +class Language extends VisitDimension +{ + protected $columnName = 'location_browser_lang'; + protected $columnType = 'VARCHAR(20) NOT NULL'; + + public function getName() + { + return Piwik::translate('General_Language'); + } + + /** + * @param Request $request + * @param Visitor $visitor + * @param Action|null $action + * @return mixed + */ + public function onNewVisit(Request $request, Visitor $visitor, $action) + { + return $this->getSingleLanguageFromAcceptedLanguages($request->getBrowserLanguage()); + } + + /** + * For better privacy we store only the main language code, instead of the whole browser language string. + * + * @param $acceptLanguagesString + * @return string + */ + protected function getSingleLanguageFromAcceptedLanguages($acceptLanguagesString) + { + if (empty($acceptLanguagesString)) { + return ''; + } + + $languageCode = Common::extractLanguageAndRegionCodeFromBrowserLanguage($acceptLanguagesString); + return $languageCode; + } +} |