/** * Creates a dashboard configuration object */ function __construct($xmlfilename) { $this->dashboards = array(); //read xml file and generate objects $xmlobject = simplexml_load_file($xmlfilename); //go through all dashboard sections foreach ($xmlobject->xpath('//dashboard') as $dashboard) { //save dashboard name $dashboardName = (string) $dashboard['name']; //generate dashlets and rows $dashboardDashlets = array(); foreach ($dashboard->row as $row) { $dashboardDashletsRow = array(); foreach ($row->dashlet as $dashlet) { //save class $dashletClass = (string) $dashlet['class']; $dashletClass = self::CONF_DASHLET_CLASS_PATH . "\\" . $dashletClass; //save refresh interval $dashletRefresh = (string) $dashlet['refresh']; //save parameters $dashletParameter = new DashletParameter(); foreach ($dashlet[0]->parameter as $parameter) { $key = (string) $parameter['key']; $value = (string) $parameter['value']; $dashletParameter->addEntry($key, $value); } //create dashlet if (class_exists($dashletClass)) { $dashboardDashletsRow[] = new $dashletClass($dashletRefresh, $dashletParameter); } else { $dashletParameter = new DashletParameter(); $dashletParameter->addEntry("message", "Dashlet class not found"); $dashboardDashletsRow[] = new DashletError($dashletRefresh, $dashletParameter); } } $dashboardDashlets[] = $dashboardDashletsRow; } //generate and save dashboard object $this->dashboards[$dashboardName] = new Dashboard($dashboardName, $dashboardDashlets); } }
/** * Returns an DashletError object, if something went wrong */ public function getErrorDashlet($errorMessage) { $dashletParameter = new DashletParameter(); $dashletParameter->addEntry("message", $errorMessage); return new DashletError(30, $dashletParameter); }