Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsgiehl <stefan@piwik.org>2015-01-13 01:13:14 +0300
committersgiehl <stefan@piwik.org>2015-01-13 01:13:14 +0300
commita0ce768662bea281f88fb64b90a9fca4d668fd41 (patch)
tree17fd24f16111dc61fd04d4f4d63b950d97b7e4c3 /plugins/UserLanguage/Columns
parente2b9956e4bd92ca9e234d10d527be9e8caf2b68f (diff)
refs #3962 - moved language reports to their own plugin
Diffstat (limited to 'plugins/UserLanguage/Columns')
-rw-r--r--plugins/UserLanguage/Columns/Language.php54
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;
+ }
+}