/** * Create a new field * * @pre $params is valid data of Activity\Form\ActivityFieldFieldset * * @param array $params Parameters for the new field. * @param ActivityModel $activity The activity the field belongs to. * @param bool $dutch * @param bool $english * @return \Activity\Model\ActivityField The new field. */ public function createActivityField(array $params, ActivityModel $activity, $dutch, $english) { assert($dutch || $english, "Activities should have either be in dutch or english"); $field = new ActivityFieldModel(); $field->setActivity($activity); if ($dutch) { $field->setName($params['name']); } if ($english) { $field->setNameEn($params['nameEn']); } $field->setType($params['type']); if ($params['type'] === '2') { $field->setMinimumValue($params['min. value']); $field->setMaximumValue($params['max. value']); } if ($params['type'] === '3') { $this->createActivityOptions($field, $params, $params['optionsEn'] !== '' && $english, $params['options'] !== '' && $dutch); } return $field; }