pluginManager = $pluginManager; } /** * Get an instance of a specific log table if such a log table exists. * * @param string $tableNameWithoutPrefix eg "log_visit" * @return LogTable|null */ public function getLogTable($tableNameWithoutPrefix) { foreach ($this->getAllLogTables() as $table) { if ($table->getName() === $tableNameWithoutPrefix) { return $table; } } } /** * Get all log table instances defined by any activated and loaded plugin. The returned tables are not sorted in * any order. * @return LogTable[] */ public function getAllLogTables() { if (!isset($this->tablesCache)) { $tables = $this->pluginManager->findMultipleComponents('Tracker', 'Piwik\\Tracker\\LogTable'); $logTables = array(); /** * Only used for tests. Triggered to add custom log tables which are not automatically picked up. * In case you need to define a log table, please put them inside the "Tracker" directory of your plugin. * Please note custom log tables are currently not an official API. * * **Example** * * public function addLogTable(&$logTables) * { * $logTables[] = new LogTable(); * } * * @param array &$logTables An array containing a list of log entries. * * @deprecated Only used for tests * @ignore */ Piwik::postEvent('LogTables.addLogTables', array(&$logTables)); foreach ($tables as $table) { $logTables[] = StaticContainer::get($table); } $this->tablesCache = $logTables; } return $this->tablesCache; } }