Source of file HasManyGridFieldHack.php
Size: 1,140 Bytes - Last Modified: 2021-12-23T10:39:09+00:00
/var/www/docs.ssmods.com/process/src/code/forms/fields/HasManyGridFieldHack.php
123456789101112131415161718192021222324252627282930313233343536373839404142 | <?php /** * this->owner mother of all ugly hacks ensures * that if you open a Has Many Entry from an Has One Parent Data Object * in modeladmin (e.g. adding a city to a country) that the * city field is pre-completed. * * * * */ class HasManyGridFieldHack_HasManyList extends Extension { public function getForeignKey() { return $this->owner->foreignKey; } } class HasManyGridFieldHack extends Extension { public function updateItemEditForm($form) { $list = $this->owner->gridField->getList(); if ($list && $list instanceof HasManyList) { $foreignKey = $list->getForeignKey(); $dataClass = $list->dataClass(); $dataQuery = $list->dataQuery(); $foreignID = $list->getForeignID(); $fields = $form->Fields(); $field = $fields->dataFieldByName($foreignKey); if ($field) { $field->setValue($foreignID); $fields->replaceField($field->Name, $field->performDisabledTransformation()); } $this->owner->record->$foreignKey = $foreignID; } } } |