/** * Creates an array of the form element specification for the given $field, * to be used by the factory. * * @param \Activity\Model\ActivityField $field * @param bool $setEnglish * @return array */ protected function createFieldElementArray($field) { $result = ['name' => $field->getId()]; switch ($field->getType()) { case 0: //'Text' $result['type'] = 'Text'; break; case 1: //'Yes/No' $result['type'] = 'Zend\\Form\\Element\\Radio'; $result['options'] = ['value_options' => ['1' => 'Yes', '0' => 'No']]; break; case 2: //'Number' $result['type'] = 'Zend\\Form\\Element\\Number'; $result['attributes'] = ['min' => $field->getMinimumValue(), 'max' => $field->getMaximumValue(), 'step' => '1']; break; case 3: //'Choice' $values = []; foreach ($field->getOptions() as $option) { $values[$option->getId()] = $option->getValue(); } $result['type'] = 'Zend\\Form\\Element\\Select'; $result['options'] = ['value_options' => $values]; break; } return $result; }
protected function createActivityFieldTranslation(ActivityFieldModel $field, $language) { $fieldTranslation = new FieldTranslationModel(); //Populate the common-language parts $fieldTranslation->setId($field->getId()); $fieldTranslation->setActivity($field->getActivity()); $fieldTranslation->setMinimumValue($field->getMinimumValue()); $fieldTranslation->setMaximumValue($field->getMaximumValue()); $fieldTranslation->setType($field->getType()); if ($language === 'en') { $fieldTranslation->setName($field->getNameEn()); } if ($language === 'nl') { $fieldTranslation->setName($field->getName()); } $optionTranslations = []; foreach ($field->getOptions() as $option) { $optionTranslations[] = $this->createActivityOptionTranslation($option, $language); } $fieldTranslation->setOptions($optionTranslations); return $fieldTranslation; }