1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91
|
<?php
/**
* Matomo - free/libre analytics platform
*
* @link https://matomo.org
* @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
*/
namespace Piwik\Plugins\SitesManager\SiteContentDetection;
use Piwik\Piwik;
use Piwik\Plugin\Manager;
use Piwik\SettingsPiwik;
use Piwik\SiteContentDetector;
use Piwik\Url;
use Piwik\View;
class WordPress extends SiteContentDetectionAbstract
{
public static function getName(): string
{
return 'WordPress';
}
public static function getIcon(): string
{
return './plugins/SitesManager/images/wordpress.svg';
}
public static function getContentType(): int
{
return self::TYPE_CMS;
}
public static function getInstructionUrl(): ?string
{
return Url::addCampaignParametersToMatomoLink('https://matomo.org/faq/new-to-piwik/how-do-i-install-the-matomo-tracking-code-on-wordpress/');
}
public static function getPriority(): int
{
return 30;
}
public function isDetected(?string $data = null, ?array $headers = null): bool
{
$needle = '/wp-content';
return (strpos($data, $needle) !== false);
}
public function renderInstructionsTab(SiteContentDetector $detector): string
{
$view = new View("@SitesManager/_wordpressTabInstructions");
$request = \Piwik\Request::fromRequest();
$idSite = $request->getIntegerParameter('idSite', 0);
$period = $request->getStringParameter('period', 'day');
$date = $request->getStringParameter('date', 'yesterday');
$view->authLink = SettingsPiwik::getPiwikUrl() . 'index.php?' .
Url::getQueryStringFromParameters([
'idSite' => $idSite,
'date' => urlencode($date),
'period' => urlencode($period),
'module' => 'UsersManager',
'action' => 'addNewToken',
]);
$view->faqLink = Url::addCampaignParametersToMatomoLink('https://matomo.org/faq/general/faq_114/');
$view->sendHeadersWhenRendering = false;
$view->site = ['id' => $idSite, 'name' => ''];
$view->isJsTrackerInstallCheckAvailable = Manager::getInstance()->isPluginActivated('JsTrackerInstallCheck');
return $view->render();
}
public function renderOthersInstruction(SiteContentDetector $detector): string
{
if ($detector->wasDetected(self::getId())) {
return ''; // don't show on others page if tab is being displayed
}
return sprintf(
'<p>%s</p>',
Piwik::translate(
'SitesManager_SiteWithoutDataWordpressDescription',
[
Url::getExternalLinkTag('https://matomo.org/faq/new-to-piwik/how-do-i-install-the-matomo-tracking-code-on-wordpress/'),
'</a>',
]
)
);
}
}
|