Plugins that wish to add display HTML should create a Controller that either
extends from this class or from {@link ControllerAdmin}. Every public method in
the controller will be exposed as a controller method and can be invoked via
an HTTP request.
Learn more about Piwik's MVC system here.
### Examples
**Defining a controller**
class Controller extends \Piwik\Plugin\Controller
{
public function index()
{
$view = new View("@MyPlugin/index.twig");
... setup view ...
return $view->render();
}
}
**Linking to a controller action**
Link
public function __construct(Translator $translator) { parent::__construct(); $this->translator = $translator; $this->idSite = Common::getRequestVar('idSite', null, 'int'); $this->goals = API::getInstance()->getGoals($this->idSite); }
public function __construct() { parent::__construct(); $this->idSite = Common::getRequestVar('idSite', null, 'int'); $this->goals = API::getInstance()->getGoals($this->idSite); foreach ($this->goals as &$goal) { $goal['name'] = Common::sanitizeInputValue($goal['name']); if (isset($goal['pattern'])) { $goal['pattern'] = Common::sanitizeInputValue($goal['pattern']); } } }
function redirectToCoreHomeIndex() { $defaultReport = API::getInstance()->getUserPreference(Piwik::getCurrentUserLogin(), API::PREFERENCE_DEFAULT_REPORT); $module = 'CoreHome'; $action = 'index'; // User preference: default report to load is the All Websites dashboard if ($defaultReport == 'MultiSites' && \Piwik\Plugin\Manager::getInstance()->isPluginActivated('MultiSites')) { $module = 'MultiSites'; } if ($defaultReport == Piwik::getLoginPluginName()) { $module = Piwik::getLoginPluginName(); } $idSite = Common::getRequestVar('idSite', false, 'int'); parent::redirectToIndex($module, $action, $idSite); }
/** * Constructor. * * @param PasswordResetter $passwordResetter * @param AuthInterface $auth * @param SessionInitializer $authenticatedSessionFactory \ */ public function __construct($passwordResetter = null, $auth = null, $sessionInitializer = null) { parent::__construct(); if (empty($passwordResetter)) { $passwordResetter = new PasswordResetter(); } $this->passwordResetter = $passwordResetter; if (empty($auth)) { $auth = StaticContainer::get('Piwik\\Auth'); } $this->auth = $auth; if (empty($sessionInitializer)) { $sessionInitializer = new SessionInitializer(); } $this->sessionInitializer = $sessionInitializer; }
public function __construct(Updater $updater) { $this->updater = $updater; parent::__construct(); }
/** * Calls {@link setBasicVariablesView()} and {@link setBasicVariablesAdminView()} * using the supplied view. * * @param View $view * @api */ protected function setBasicVariablesView($view) { parent::setBasicVariablesView($view); self::setBasicVariablesAdminView($view); }
public function __construct(Translator $translator) { $this->translator = $translator; parent::__construct(); }
protected function init() { parent::init(); $this->dashboard = new Dashboard(); }
protected function getDefaultWebsiteId() { $sitesId = \Piwik\Plugins\SitesManager\API::getInstance()->getSitesIdWithAdminAccess(); if (!empty($sitesId)) { return $sitesId[0]; } return parent::getDefaultWebsiteId(); }
public function __construct(SegmentFormatter $segmentFormatter) { $this->segmentFormatter = $segmentFormatter; parent::__construct(); }
function __construct() { parent::__construct(); $this->limit = Config::getInstance()->General['all_websites_website_per_page']; }
public function __construct() { parent::__construct(); }
public function __construct(Updater $updater, Plugins $marketplacePlugins = null) { $this->updater = $updater; $this->marketplacePlugins = $marketplacePlugins; parent::__construct(); }
public function __construct(Translator $translator) { parent::__construct(); }