diff --git a/Civi/DataProcessor/Output/UIOutputHelper.php b/Civi/DataProcessor/Output/UIOutputHelper.php index bd906c5f756d6d51b8c9b8b3c89564168d79a1b9..d84710ed6044bc94c69b50c2c2acdef988171688 100644 --- a/Civi/DataProcessor/Output/UIOutputHelper.php +++ b/Civi/DataProcessor/Output/UIOutputHelper.php @@ -24,6 +24,12 @@ class UIOutputHelper { */ public static function alterMenu(&$items) { $factory = dataprocessor_get_factory(); + // Check whether the factory exists. Usually just after + // installation the factory does not exists but then no + // outputs exists either. So we can safely return this function. + if (!$factory) { + return; + } $sql = " SELECT o.permission, p.id, p.title, o.configuration, o.type, o.id as output_id diff --git a/dataprocessor.php b/dataprocessor.php index 303b0e37ec84b9c654ad5205807822f5346cc06c..a8d49f52db69a93585c2120e5567e7777dae97a7 100644 --- a/dataprocessor.php +++ b/dataprocessor.php @@ -10,7 +10,11 @@ use \Symfony\Component\DependencyInjection\Definition; * @return \Civi\DataProcessor\Factory */ function dataprocessor_get_factory() { - return \Civi::service('data_processor_factory'); + $container = \Civi::container(); + if ($container->has('data_processor_factory')) { + return \Civi::service('data_processor_factory'); + } + return null; } /**