isOutputHandlerFor($form)) { $outputHandler->setForm($form); return $outputHandler; } } catch (\Exception $e) { // no ts() since this is a sysadmin-y message \Civi::log()->warning("Unable to use $candidate as an output handler. " . $e->getMessage()); } } return NULL; } /** * Register an outputHandler to handle an output format. * * @param string $outputHandler * The classname of a class that implements OutputHandlerInterface. */ public function register(string $outputHandler) { // Use classname as index to (a) avoid duplicates and (b) make it easier // to unset/overwrite one via hook. self::$registered[$outputHandler] = $outputHandler; } /** * There are some handlers that were hard-coded in to the form before which * have now been moved to outputhandlers. */ private static function registerBuiltins() { self::$singleton->register('\CRM_Report_OutputHandler_Print'); self::$singleton->register('\CRM_Report_OutputHandler_Csv'); self::$singleton->register('\CRM_Report_OutputHandler_Pdf'); } }