getEnglishTranslationForFeatureName($featureName); $likeText = 'Yes'; if (empty($like)) { $likeText = 'No'; } $body = sprintf("Feature: %s\nLike: %s\n", $featureName, $likeText, $message); if (!empty($message)) { $body .= sprintf("Feedback:\n%s\n", $message); } else { $body .= "No feedback\n"; } $this->sendMail($featureName, $body); } private function sendMail($subject, $body) { $feedbackEmailAddress = Config::getInstance()->General['feedback_email_address']; $subject = '[ Feedback Feature - Piwik ] ' . $subject; $body = Common::unsanitizeInputValue($body) . "\n" . 'Piwik ' . Version::VERSION . "\n" . 'IP: ' . IP::getIpFromHeader() . "\n" . 'URL: ' . Url::getReferrer() . "\n"; $mail = new Mail(); $mail->setFrom(Piwik::getCurrentUserEmail()); $mail->addTo($feedbackEmailAddress, 'Piwik Team'); $mail->setSubject($subject); $mail->setBodyText($body); @$mail->send(); } private function findTranslationKeyForFeatureName($featureName) { if (empty($GLOBALS['Piwik_translations'])) { return; } foreach ($GLOBALS['Piwik_translations'] as $key => $translations) { $possibleKey = array_search($featureName, $translations); if (!empty($possibleKey)) { return $key . '_' . $possibleKey; } } } private function getEnglishTranslationForFeatureName($featureName) { $loadedLanguage = Translate::getLanguageLoaded(); if ($loadedLanguage == 'en') { return $featureName; } $translationKeyForFeature = $this->findTranslationKeyForFeatureName($featureName); if (!empty($translationKeyForFeature)) { Translate::reloadLanguage('en'); $featureName = Piwik::translate($translationKeyForFeature); Translate::reloadLanguage($loadedLanguage); return $featureName; } return $featureName; } }