public function testFieldPosition() { $compositeOuter = new CompositeField(new TextField('A'), new TextField('B'), $compositeInner = new CompositeField(new TextField('C1'), new TextField('C2')), new TextField('D')); $this->assertEquals(0, $compositeOuter->fieldPosition('A')); $this->assertEquals(1, $compositeOuter->fieldPosition('B')); $this->assertEquals(3, $compositeOuter->fieldPosition('D')); $this->assertEquals(0, $compositeInner->fieldPosition('C1')); $this->assertEquals(1, $compositeInner->fieldPosition('C2')); $compositeOuter->insertBefore('B', new TextField('AB')); $this->assertEquals(0, $compositeOuter->fieldPosition('A')); $this->assertEquals(1, $compositeOuter->fieldPosition('AB')); $this->assertEquals(2, $compositeOuter->fieldPosition('B')); }
/** * Inserts a field before a particular field in a FieldSet. * * @param FormField $item The form field to insert * @param string $name Name of the field to insert before */ public function insertBefore($field, $insertBefore) { parent::insertBefore($field, $insertBefore); if ($field instanceof Tab) { $field->setTabSet($this); } $this->sequentialSet = null; }
protected function baseTransform($nonEditableField, $originalField) { $fieldname = $originalField->Name(); $nonEditableField_holder = new CompositeField($nonEditableField); $nonEditableField_holder->setName($fieldname . '_holder'); $nonEditableField_holder->addExtraClass('originallang_holder'); $nonEditableField->setValue($this->original->{$fieldname}); $nonEditableField->setName($fieldname . '_original'); $nonEditableField->addExtraClass('originallang'); $nonEditableField->setTitle('Original ' . $originalField->Title()); $nonEditableField_holder->insertBefore($originalField, $fieldname . '_original'); return $nonEditableField_holder; }
/** * Transform a translatable field to show the field value from the default language * DataObject below the translated field. * * This is a fallback function which handles field types that aren't transformed by * $this->transform{FieldType} functions. * * @param FormField $nonEditableField The readonly field to contain the original value * @param FormField $originalField The original editable field containing the translated value * @return \CompositeField The transformed field */ protected function baseTransform($nonEditableField, $originalField) { $fieldname = $originalField->getName(); $nonEditableField_holder = new CompositeField($nonEditableField); $nonEditableField_holder->setName($fieldname . '_holder'); $nonEditableField_holder->addExtraClass('originallang_holder'); $nonEditableField->setValue($this->original->{$fieldname}); $nonEditableField->setName($fieldname . '_original'); $nonEditableField->addExtraClass('originallang'); $nonEditableField->setTitle(_t('Translatable_Transform.OriginalFieldLabel', 'Original {title}', 'Label for the original value of the translatable field.', array('title' => $originalField->Title()))); $nonEditableField_holder->insertBefore($originalField, $fieldname . '_original'); return $nonEditableField_holder; }
/** * Inserts a field before a particular field in a FieldList. * * @param string $insertBefore Name of the field to insert before * @param FormField $field The form field to insert * @return FormField|null */ public function insertBefore($insertBefore, $field) { if ($field instanceof Tab) { $field->setTabSet($this); } return parent::insertBefore($insertBefore, $field); }
public function insertAfter($field, $insertAfter) { parent::insertBefore($field, $insertAfter); if ($field instanceof ComponentFieldHolder_Item) { $field->setHolder($this); } $this->sequentialSet = null; }
public function insertBefore($field, $insertBefore) { parent::insertBefore($field, $insertBefore); $field->setTabSet($this); }