protected function parsePostback($postbackString, $params) { $pb = json_decode($postbackString, true); $source = null; $targets = array(); foreach ($pb['components'] as $key => $value) { $cobj = null; switch ($value['type']) { case 'KPIComponent': $cobj = new KPIComponent($key); break; case 'TableComponent': $cobj = new TableComponent($key); break; case 'ChartComponent': $cobj = new ChartComponent($key); break; case 'FormComponent': $cobj = new FormComponent($key); $cobj->setInputValues($params); break; case 'KPITableComponent': $cobj = new KPITableComponent($key); break; default: die("Unknown component type"); break; } $cobj->__buildFromObject($value); $cobj->__flagDirty(); $this->addComponent($cobj); if ($value['source'] === true) { $source = $cobj; } else { $targets[] = $cobj; } } return array('source' => $source, 'targets' => $targets); }