protected function getFields() { $return = array(); foreach ($this->eventClass->getProvidedEntities() as $entityDef) { if (!empty($entityDef->daoClass) && class_exists($entityDef->daoClass)) { $key = $entityDef->entity . '_'; $className = $entityDef->daoClass; if (!is_callable(array($className, 'fields'))) { continue; } $fields = call_user_func(array($className, 'fields')); foreach ($fields as $field) { $fieldKey = $key . $field['name']; $label = $field['title']; if (empty($label)) { $label = $field['name']; } $return[$fieldKey] = $label; } } } return $return; }