Sh3ll
OdayForums


Server : LiteSpeed
System : Linux premium84.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
User : claqxcrl ( 523)
PHP Version : 8.1.32
Disable Function : NONE
Directory :  /home/claqxcrl/anfangola.com/wp-content/plugins/matomo/app/plugins/TagManager/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/claqxcrl/anfangola.com/wp-content/plugins/matomo/app/plugins/TagManager/Controller.php
<?php

/**
 * Matomo - free/libre analytics platform
 *
 * @link https://matomo.org
 * @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
 */
namespace Piwik\Plugins\TagManager;

use Piwik\API\Request;
use Piwik\Common;
use Piwik\DataTable\Filter\SafeDecodeLabel;
use Piwik\Filechecks;
use Piwik\Menu\MenuTop;
use Piwik\Notification;
use Piwik\Piwik;
use Piwik\Plugins\TagManager\API\PreviewCookie;
use Piwik\Plugins\TagManager\Input\AccessValidator;
use Piwik\Plugins\TagManager\Model\Container;
use Piwik\Plugins\TagManager\Model\Environment;
use Piwik\Url;
use Piwik\View;
use Piwik\Notification\Manager as NotificationManager;
class Controller extends \Piwik\Plugin\Controller
{
    /**
     * @var AccessValidator
     */
    private $accessValidator;
    /**
     * @var Container
     */
    private $container;
    public function __construct(AccessValidator $accessValidator, Container $container)
    {
        parent::__construct();
        $this->accessValidator = $accessValidator;
        $this->container = $container;
    }
    public function getDefaultAction()
    {
        return 'manageContainers';
    }
    public function debug()
    {
        Piwik::checkUserHasSomeWriteAccess();
        $output = $this->renderTemplate('debug.twig');
        return $output;
    }
    public function manageContainers()
    {
        $this->accessValidator->checkViewPermission($this->idSite);
        $idContainer = Common::getRequestVar('idContainer', '', 'string');
        $container = null;
        if (!empty($idContainer)) {
            try {
                $container = Request::processRequest('TagManager.getContainer', ['idSite' => $this->idSite, 'idContainer' => $idContainer]);
            } catch (\Exception $e) {
                // we ignore this error, it is totally fine if this container doesn't exist as we only need it to pre-select the current container name
            }
        }
        return $this->renderTemplate('manageContainers', array('container' => $container));
    }
    public function dashboard()
    {
        $this->accessValidator->checkWriteCapability($this->idSite);
        $dashboardHelpText = $this->renderTemplate('helpContent', ['subHeading' => Piwik::translate('TagManager_DashboardHelp1'), 'paragraphs' => [Piwik::translate('TagManager_DashboardHelp2'), Piwik::translate('TagManager_DashboardHelp3'), Piwik::translate('TagManager_DashboardHelp4', ['<a href="' . Url::addCampaignParametersToMatomoLink('https://matomo.org/faq/tag-manager/container-dashboard-in-matomo-tag-manager/') . '" rel="noreferrer noopener" target="_blank">', '</a>'])]]);
        $tagsHelpText = $this->renderTemplate('helpContent', ['paragraphs' => [Piwik::translate('TagManager_DashboardTagsHelp1', ['<a href="' . Url::addCampaignParametersToMatomoLink('https://matomo.org/guide/tag-manager/tags/') . '" rel="noreferrer noopener" target="_blank">', '</a>']), Piwik::translate('TagManager_DashboardTagsHelp2'), Piwik::translate('TagManager_DashboardTagsHelp3', ['<a href="' . Url::addCampaignParametersToMatomoLink('https://matomo.org/faq/tag-manager/container-dashboard-in-matomo-tag-manager/') . '" rel="noreferrer noopener" target="_blank">', '</a>'])]]);
        $triggersHelpText = $this->renderTemplate('helpContent', ['paragraphs' => [Piwik::translate('TagManager_DashboardTriggersHelp1', ['<a href="' . Url::addCampaignParametersToMatomoLink('https://matomo.org/guide/tag-manager/triggers/') . '" rel="noreferrer noopener" target="_blank">', '</a>']), Piwik::translate('TagManager_DashboardTriggersHelp2'), Piwik::translate('TagManager_DashboardTriggersHelp3', ['<a href="' . Url::addCampaignParametersToMatomoLink('https://matomo.org/faq/tag-manager/container-dashboard-in-matomo-tag-manager/') . '" rel="noreferrer noopener" target="_blank">', '</a>'])]]);
        $variablesHelpText = $this->renderTemplate('helpContent', ['paragraphs' => [Piwik::translate('TagManager_DashboardVariablesHelp1', ['<a href="' . Url::addCampaignParametersToMatomoLink('https://matomo.org/guide/tag-manager/variables/') . '" rel="noreferrer noopener" target="_blank">', '</a>']), Piwik::translate('TagManager_DashboardVariablesHelp2'), Piwik::translate('TagManager_DashboardVariablesHelp3', ['<a href="' . Url::addCampaignParametersToMatomoLink('https://matomo.org/faq/tag-manager/container-dashboard-in-matomo-tag-manager/') . '" rel="noreferrer noopener" target="_blank">', '</a>'])]]);
        $versionsHelpText = $this->renderTemplate('helpContent', ['paragraphs' => [Piwik::translate('TagManager_DashboardVersionsHelp1', ['<a href="' . Url::addCampaignParametersToMatomoLink('https://matomo.org/guide/tag-manager/versions-and-publish/') . '" rel="noreferrer noopener" target="_blank">', '</a>']), Piwik::translate('TagManager_DashboardVersionsHelp2'), Piwik::translate('TagManager_DashboardVersionsHelp3', ['<a href="' . Url::addCampaignParametersToMatomoLink('https://matomo.org/faq/tag-manager/container-dashboard-in-matomo-tag-manager/') . '" rel="noreferrer noopener" target="_blank">', '</a>'])]]);
        return $this->renderManageContainerTemplate('dashboard', ['dashboardHelpText' => $dashboardHelpText, 'tagsHelpText' => $tagsHelpText, 'triggersHelpText' => $triggersHelpText, 'variablesHelpText' => $variablesHelpText, 'versionsHelpText' => $versionsHelpText]);
    }
    public function gettingStarted()
    {
        Piwik::checkUserHasSomeViewAccess();
        $canEdit = $this->accessValidator->hasWriteCapability($this->idSite);
        return $this->renderTemplate('gettingStarted', array('canEdit' => $canEdit));
    }
    public function manageTags()
    {
        $tagsHelpText = $this->renderTemplate('helpContent', ['subHeading' => Piwik::translate('TagManager_ManageTagsHelp1'), 'paragraphs' => [Piwik::translate('TagManager_ManageTagsHelp2'), Piwik::translate('TagManager_ManageTagsHelp3', ['<a href="' . Url::addCampaignParametersToMatomoLink('https://matomo.org/guide/tag-manager/tags/') . '" rel="noreferrer noopener" target="_blank">', '</a>', '<a href="' . Url::addCampaignParametersToMatomoLink('https://matomo.org/guide/tag-manager/getting-started-with-tag-manager/') . '" rel="noreferrer noopener" target="_blank">', '</a>', '<a href="' . Url::addCampaignParametersToMatomoLink('https://matomo.org/tag-manager-training/') . '" rel="noreferrer noopener" target="_blank">', '</a>'])]]);
        return $this->renderManageContainerTemplate('manageTags', ['tagsHelpText' => $tagsHelpText]);
    }
    public function manageTriggers()
    {
        $triggersHelpText = $this->renderTemplate('helpContent', ['subHeading' => Piwik::translate('TagManager_ManageTriggersHelp1'), 'paragraphs' => [Piwik::translate('TagManager_ManageTriggersHelp2'), Piwik::translate('TagManager_ManageTriggersHelp3', ['<a href="' . Url::addCampaignParametersToMatomoLink('https://matomo.org/guide/tag-manager/triggers/') . '" rel="noreferrer noopener" target="_blank">', '</a>', '<a href="' . Url::addCampaignParametersToMatomoLink('https://matomo.org/guide/tag-manager/getting-started-with-tag-manager/') . '" rel="noreferrer noopener" target="_blank">', '</a>', '<a href="' . Url::addCampaignParametersToMatomoLink('https://matomo.org/tag-manager-training/') . '" rel="noreferrer noopener" target="_blank">', '</a>'])]]);
        return $this->renderManageContainerTemplate('manageTriggers', ['triggersHelpText' => $triggersHelpText]);
    }
    public function manageVariables()
    {
        $variablesHelpText = $this->renderTemplate('helpContent', ['subHeading' => Piwik::translate('TagManager_ManageVariablesHelp1'), 'paragraphs' => [Piwik::translate('TagManager_ManageVariablesHelp2'), Piwik::translate('TagManager_ManageVariablesHelp3', ['<a href="' . Url::addCampaignParametersToMatomoLink('https://matomo.org/guide/tag-manager/variables/') . '" rel="noreferrer noopener" target="_blank">', '</a>', '<a href="' . Url::addCampaignParametersToMatomoLink('https://matomo.org/guide/tag-manager/getting-started-with-tag-manager/') . '" rel="noreferrer noopener" target="_blank">', '</a>', '<a href="' . Url::addCampaignParametersToMatomoLink('https://matomo.org/tag-manager-training/') . '" rel="noreferrer noopener" target="_blank">', '</a>'])]]);
        return $this->renderManageContainerTemplate('manageVariables', ['variablesHelpText' => $variablesHelpText]);
    }
    public function manageVersions()
    {
        $path = \Piwik\Plugins\TagManager\TagManager::getAbsolutePathToContainerDirectory();
        Filechecks::dieIfDirectoriesNotWritable(array($path));
        $versionsHelpText = $this->renderTemplate('helpContent', ['subHeading' => Piwik::translate('TagManager_ManageVersionsHelp1'), 'paragraphs' => [Piwik::translate('TagManager_ManageVersionsHelp2'), Piwik::translate('TagManager_ManageVersionsHelp3', ['<a href="' . Url::addCampaignParametersToMatomoLink('https://matomo.org/guide/tag-manager/versions-and-publish/') . '" rel="noreferrer noopener" target="_blank">', '</a>', '<a href="' . Url::addCampaignParametersToMatomoLink('https://matomo.org/guide/tag-manager/getting-started-with-tag-manager/') . '" rel="noreferrer noopener" target="_blank">', '</a>', '<a href="' . Url::addCampaignParametersToMatomoLink('https://matomo.org/tag-manager-training/') . '" rel="noreferrer noopener" target="_blank">', '</a>'])]]);
        return $this->renderManageContainerTemplate('manageVersions', ['versionsHelpText' => $versionsHelpText]);
    }
    public function releases()
    {
        return $this->renderManageContainerTemplate('releases');
    }
    private function renderManageContainerTemplate($template, $variables = array())
    {
        $this->accessValidator->checkViewPermission($this->idSite);
        $idContainer = Common::getRequestVar('idContainer', null, 'string');
        try {
            $this->container->checkContainerExists($this->idSite, $idContainer);
        } catch (\Exception $e) {
            // use case when switching within tag management from one site to another eg on page "manage tags".
            // the other container won't be found
            $notification = new Notification($e->getMessage());
            $notification->context = Notification::CONTEXT_WARNING;
            Notification\Manager::notify('TagManager_TagDoesNotExist', $notification);
            if (Piwik::getAction() !== 'manageContainers') {
                $this->redirectToIndex('TagManager', 'manageContainers', $this->idSite);
            }
            return;
        }
        if (empty($variables['container'])) {
            $variables['container'] = Request::processRequest('TagManager.getContainer', ['idSite' => $this->idSite, 'idContainer' => $idContainer]);
        }
        $variables['idcontainerversion'] = null;
        if (!empty($variables['container']['draft']['idcontainerversion'])) {
            $variables['idcontainerversion'] = $variables['container']['draft']['idcontainerversion'];
        }
        foreach ($variables['container']['releases'] as $release) {
            if ($release['environment'] === Environment::ENVIRONMENT_PREVIEW) {
                $version = '';
                if (!empty($release['version_name'])) {
                    $version = ' (' . Piwik::translate('TagManager_VersionX', $release['version_name']) . ')';
                }
                $mtmPreviewId = PreviewCookie::COOKIE_NAME . '=' . $idContainer;
                $mtmPreviewId = SafeDecodeLabel::decodeLabelSafe($mtmPreviewId);
                $previewCookie = new PreviewCookie();
                $debugSiteUrl = $previewCookie->getDebugSiteUrl();
                $previewUrl = '';
                if (!empty($debugSiteUrl)) {
                    $previewUrl = $debugSiteUrl . (stripos($debugSiteUrl, '?') !== False ? '&' : '?') . $mtmPreviewId;
                }
                $notificationMessage = $this->renderTemplate('previewDebugNotification.twig', array('idcontainer' => $release['idcontainer'], 'debugSiteUrl' => $debugSiteUrl, 'version' => $version, 'mtmPreviewId' => $mtmPreviewId, 'previewUrl' => $previewUrl));
                $notification = new Notification($notificationMessage);
                $notification->context = Notification::CONTEXT_INFO;
                $notification->raw = true;
                NotificationManager::notify('previewDebugMode', $notification);
            }
        }
        return $this->renderTemplate($template, $variables);
    }
    public function exportContainerVersion()
    {
        $this->checkSitePermission();
        $jsonCallback = Common::getRequestVar('callback', false);
        if (!$jsonCallback) {
            $jsonCallback = Common::getRequestVar('jsoncallback', false);
        }
        if ($jsonCallback) {
            throw new \Exception('JSON callback not possible');
        }
        $result = Request::processRequest('TagManager.exportContainerVersion', array('format' => 'JSON', 'idSite' => $this->idSite));
        if (!empty($_SERVER['SERVER_NAME']) && Url::getCorsHostsFromConfig()) {
            // we make sure to send a custom cors header
            Common::sendHeader('Access-Control-Allow-Origin: ' . $_SERVER['SERVER_NAME']);
        }
        return $result;
    }
    protected function renderTemplate($template, array $variables = array())
    {
        if (false === strpos($template, '@') || false === strpos($template, '/')) {
            $template = '@' . $this->pluginName . '/' . $template;
        }
        $view = new View($template);
        if (empty($this->site) || empty($this->idSite)) {
            $this->setBasicVariablesView($view);
        } else {
            $this->setGeneralVariablesView($view);
        }
        $view->topMenu = MenuTop::getInstance()->getMenu();
        $view->tagManagerMenu = \Piwik\Plugins\TagManager\MenuTagManager::getInstance()->getMenu();
        list($defaultAction, $defaultParameters) = \Piwik\Plugins\TagManager\Menu::getDefaultAction();
        $view->tagAction = $defaultAction;
        foreach ($variables as $key => $value) {
            $view->{$key} = $value;
        }
        $notifications = $view->notifications;
        if (empty($notifications)) {
            $view->notifications = NotificationManager::getAllNotificationsToDisplay();
            NotificationManager::cancelAllNonPersistent();
        }
        return $view->render();
    }
}

ZeroDay Forums Mini