/** * Adds Fields for internal use: * - One field that specifies the unique id of the form (useful if several * forms are on one page) * - One field that specifies the page number of the form (for multi-page * forms) * - For multi-page-forms, each page gets all fields of the preceding page * as hidden constant Fields */ private function addInternalFields() { $i = 0; foreach ($this->fieldCollections as $collection) { $collection->getDisplay()->setInvisible(); $pageNumber = new \Feeld\Field\Constant(new \Feeld\DataType\Integer(), self::PREFIX_FIELD_PAGE . $this->getId(), new \Feeld\Display\HTML\Input('hidden')); $pageNumber->setDefault($i); $collection->addField($pageNumber); $collection->addField((new \Feeld\Field\Constant(new \Feeld\DataType\Str(new \Sanitor\Sanitizer(FILTER_SANITIZE_STRING, FILTER_FLAG_STRIP_LOW | FILTER_FLAG_STRIP_HIGH)), $this->getId(), new \Feeld\Display\HTML\Input('hidden')))->setDefault($this->getUniqueID())->addValidator(new \Wellid\Validator\MinLength(13))); $lastCollection = $collection; if ($i > 0) { $collection->addCollection($this->transformToConstants($lastCollection)); } $i++; $valueMapper = new ValueMapper(new HTMLFormInternalFields(), ValueMapStrategy::MAP_SETTERS, array(self::PREFIX_FIELD_PAGE . $this->getId() => 'PageNumber', $this->getId() => 'UID')); $valueMapper->setId(self::PREFIX_VALUE_MAPPER . $this->getId()); $collection->addValueMapper($valueMapper); } }
/** * Sets a ValueMapper * * @param \Feeld\FieldCollection\ValueMapper $valueMapper */ public function addValueMapper(ValueMapper $valueMapper) { if (!$valueMapper->hasId()) { $this->valueMapper[] = $valueMapper; } else { $this->valueMapper[$valueMapper->getId()] = $valueMapper; } }