CMS  Version 3.9
custom_report_manager.inc
Go to the documentation of this file.
1 <?php
8 {
9  private static $managerClassMap = null;
10 
11  static function registerManagerClass($target, $managerClass, $description = "")
12  {
13  CustomReportManager::$managerClassMap[$target] = array("class" => $managerClass, "description" => $description);
14  }
15 
16  static function registerManagerClasses()
17  {
18  if (is_array(CustomReportManager::$managerClassMap)) return;
19  ComponentManager::fireEvent("RegisterCustomReportManagers");
20  }
21 
22  static function getManagerClass($target)
23  {
25  $record = CustomReportManager::$managerClassMap[$target];
26  return ($record) ? $record["class"] : null;
27  }
28 
29  static function getManagerDescription($target)
30  {
32  $record = CustomReportManager::$managerClassMap[$target];
33  return ($record) ? $record["description"] : null;
34  }
35 
36  static function createManager($target)
37  {
39  return ($class) ? new $class : null;
40  }
41 
42  static function getTargets()
43  {
45  if (!count(CustomReportManager::$managerClassMap)) return null;
46 
47  $targets = array_keys(CustomReportManager::$managerClassMap);
48  sort($targets);
49  return $targets;
50  }
51 
52  static function getTarget($manager)
53  {
55  if (!count(CustomReportManager::$managerClassMap)) return "";
56 
57  $cl = get_class($manager);
58  foreach(CustomReportManager::$managerClassMap as $target => $record)
59  {
60  if ($record["class"] == $cl) return $target;
61  }
62 
63  return "";
64  }
65 }?>
static fireEvent($event, $parameter=null, $mustBeConsumed=false)
Fire an event to all subscribers as detailed in their manifests.
static createManager($target)
static registerManagerClass($target, $managerClass, $description="")
static getManagerClass($target)
static getManagerDescription($target)
static getTarget($manager)