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
path: root/core
diff options
context:
space:
mode:
authorThomas Steur <thomas.steur@gmail.com>2016-01-29 03:12:26 +0300
committerThomas Steur <thomas.steur@gmail.com>2016-02-01 02:31:41 +0300
commita008c849100991c6e254c66b747f6d40e61ba04e (patch)
tree21650d8b74d1fe9db6e799eba59ca093568dd069 /core
parentc3e29b162a6aa93ec41044e42f229b18deeeaa31 (diff)
create a new widget promoting piwik pro services
Diffstat (limited to 'core')
-rw-r--r--core/PiwikPro/Advertising.php64
-rwxr-xr-xcore/Twig.php30
2 files changed, 53 insertions, 41 deletions
diff --git a/core/PiwikPro/Advertising.php b/core/PiwikPro/Advertising.php
index dcb94c6fc1..a827ebc85b 100644
--- a/core/PiwikPro/Advertising.php
+++ b/core/PiwikPro/Advertising.php
@@ -19,6 +19,9 @@ use Piwik\Config;
*/
class Advertising
{
+ const CAMPAIGN_NAME_UPGRADE_TO_PRO = 'Upgrade_to_Pro';
+ const CAMPAIGN_NAME_UPGRADE_TO_CLOUD = 'Upgrade_to_Cloud';
+
/**
* @var Plugin\Manager
*/
@@ -54,34 +57,65 @@ class Advertising
}
/**
- * Generates a link for promoting the Piwik Cloud.
+ * Get URL for promoting the Piwik Cloud.
*
* @param string $campaignMedium
* @param string $campaignContent
* @return string
*/
- public function getPromoLinkForCloud($campaignMedium, $campaignContent = '')
+ public function getPromoUrlForCloud($campaignMedium, $campaignContent = '')
{
- $url = 'https://piwik.pro/cloud/';
- $campaign = $this->getCampaignParametersForPromoLink($name = 'Upgrade_to_Cloud', $campaignMedium, $campaignContent);
+ $url = 'https://piwik.pro/cloud/?';
- $url .= '?' . $campaign;
+ $campaign = $this->getCampaignParametersForPromoUrl(
+ $name = self::CAMPAIGN_NAME_UPGRADE_TO_CLOUD,
+ $campaignMedium,
+ $campaignContent
+ );
- return $url;
+ return $url . $campaign;
+ }
+
+ /**
+ * Get URL for promoting Piwik On Premises.
+ * @param string $campaignMedium
+ * @param string $campaignContent
+ * @return string
+ */
+ public function getPromoUrlForOnPremises($campaignMedium, $campaignContent = '')
+ {
+ $url = 'https://piwik.pro/c/upgrade/?';
+
+ $campaign = $this->getCampaignParametersForPromoUrl(
+ $name = self::CAMPAIGN_NAME_UPGRADE_TO_PRO,
+ $campaignMedium,
+ $campaignContent
+ );
+
+ return $url . $campaign;
}
/**
- * Generates a link for promoting Piwik On Premises.
+ * Appends campaign parameters to the given URL for promoting any Piwik PRO service.
+ * @param string $url
+ * @param string $campaignName
* @param string $campaignMedium
* @param string $campaignContent
* @return string
*/
- public function getPromoLinkForOnPremises($campaignMedium, $campaignContent = '')
+ public function addPromoCampaignParametersToUrl($url, $campaignName, $campaignMedium, $campaignContent = '')
{
- $url = 'https://piwik.pro/c/upgrade/';
- $campaign = $this->getCampaignParametersForPromoLink($name = 'Upgrade_to_Pro', $campaignMedium, $campaignContent);
+ if (empty($url)) {
+ return '';
+ }
+
+ if (strpos($url, '?') === false) {
+ $url .= '?';
+ } else {
+ $url .= '&';
+ }
- $url .= '?' . $campaign;
+ $url .= $this->getCampaignParametersForPromoUrl($campaignName, $campaignMedium, $campaignContent);
return $url;
}
@@ -91,15 +125,15 @@ class Advertising
*
* @param string $campaignName
* @param string $campaignMedium
- * @param string $content Optional
+ * @param string $campaignContent Optional
* @return string URL parameters without a leading ? or &
*/
- public function getCampaignParametersForPromoLink($campaignName, $campaignMedium, $content = '')
+ private function getCampaignParametersForPromoUrl($campaignName, $campaignMedium, $campaignContent = '')
{
$campaignName = sprintf('pk_campaign=%s&pk_medium=%s&pk_source=Piwik_App', $campaignName, $campaignMedium);
- if (!empty($content)) {
- $campaignName .= '&pk_content=' . $content;
+ if (!empty($campaignContent)) {
+ $campaignName .= '&pk_content=' . $campaignContent;
}
return $campaignName;
diff --git a/core/Twig.php b/core/Twig.php
index ab76791490..4a08eb40aa 100755
--- a/core/Twig.php
+++ b/core/Twig.php
@@ -87,7 +87,6 @@ class Twig
$this->addFilter_percentage();
$this->addFilter_percent();
$this->addFilter_percentEvolution();
- $this->addFilter_piwikProAdLink();
$this->addFilter_piwikProOnPremisesAdLink();
$this->addFilter_piwikProCloudAdLink();
$this->addFilter_prettyDate();
@@ -324,34 +323,13 @@ class Twig
$this->twig->addFilter($percentage);
}
- protected function addFilter_piwikProAdLink()
- {
- $twigEnv = $this->getTwigEnvironment();
- $ads = $this->getPiwikProAdvertising();
-
- $piwikProAd = new Twig_SimpleFilter('piwikProPromoLink', function ($url, $campaignName, $campaignMedium, $campaignContent = '') use ($twigEnv, $ads) {
-
- $campaign = $ads->getCampaignParametersForPromoLink($campaignName, $campaignMedium, $campaignContent);
-
- if (strpos($url, '?') === false) {
- $url .= '?' . $campaign;
- } else {
- $url .= '&' . $campaign;
- }
-
- return twig_escape_filter($twigEnv, $url, 'html_attr');
-
- }, array('is_safe' => array('html_attr')));
- $this->twig->addFilter($piwikProAd);
- }
-
protected function addFilter_piwikProOnPremisesAdLink()
{
$twigEnv = $this->getTwigEnvironment();
$ads = $this->getPiwikProAdvertising();
- $piwikProAd = new Twig_SimpleFilter('piwikProOnPremisesPromoLink', function ($medium, $content = '') use ($twigEnv, $ads) {
+ $piwikProAd = new Twig_SimpleFilter('piwikProOnPremisesPromoUrl', function ($medium, $content = '') use ($twigEnv, $ads) {
- $url = $ads->getPromoLinkForOnPremises($medium, $content);
+ $url = $ads->getPromoUrlForOnPremises($medium, $content);
return twig_escape_filter($twigEnv, $url, 'html_attr');
@@ -363,9 +341,9 @@ class Twig
{
$twigEnv = $this->getTwigEnvironment();
$ads = $this->getPiwikProAdvertising();
- $piwikProAd = new Twig_SimpleFilter('piwikProCloudPromoLink', function ($medium, $content = '') use ($twigEnv, $ads) {
+ $piwikProAd = new Twig_SimpleFilter('piwikProCloudPromoUrl', function ($medium, $content = '') use ($twigEnv, $ads) {
- $url = $ads->getPromoLinkForCloud($medium, $content);
+ $url = $ads->getPromoUrlForCloud($medium, $content);
return twig_escape_filter($twigEnv, $url, 'html_attr');