Source of file DisambiguationSegmentFieldModifier.php
Size: 1,228 Bytes - Last Modified: 2021-12-23T10:38:03+00:00
/var/www/docs.ssmods.com/process/src/code/Modifier/DisambiguationSegmentFieldModifier.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | <?php namespace SilverStripe\UserForms\Modifier; use SilverStripe\Forms\Form; use SilverStripe\Forms\SegmentFieldModifier\AbstractSegmentFieldModifier; use SilverStripe\UserForms\Model\EditableFormField; class DisambiguationSegmentFieldModifier extends AbstractSegmentFieldModifier { public function getPreview($value) { if ($this->form instanceof Form && $record = $this->form->getRecord()) { $parent = $record->Parent(); $try = $value; $sibling = EditableFormField::get() ->filter('ParentID', $parent->ID) ->filter('Name', $try) ->where('"ID" != ' . $record->ID) ->first(); $counter = 1; while ($sibling !== null) { $try = $value . '_' . $counter++; $sibling = EditableFormField::get() ->filter('ParentID', $parent->ID) ->filter('Name', $try) ->first(); } if ($try !== $value) { return $try; } } return $value; } public function getSuggestion($value) { return $this->getPreview($value); } } |