Source of file DisambiguationSegmentFieldModifier.php
Size: 1,301 Bytes - Last Modified: 2018-07-16T11:15:18+00:00
/var/www/docs.ssmods.com/process/src/code/modifiers/DisambiguationSegmentFieldModifier.php
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 | <?php use SilverStripe\Forms\SegmentFieldModifier\AbstractSegmentFieldModifier; class DisambiguationSegmentFieldModifier extends AbstractSegmentFieldModifier { /** * @inheritdoc * * @param string $value * * @return string */ 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; } /** * @inheritdoc * * @param string $value * * @return string */ public function getSuggestion($value) { return $this->getPreview($value); } } |