Source of file BlockLinkField_Readonly.php
Size: 2,654 Bytes - Last Modified: 2021-12-23T10:29:57+00:00
/var/www/docs.ssmods.com/process/src/src/Form/BlockLinkField_Readonly.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 | <?php namespace SilverStripe\ElementalBlocks\Form; use SilverStripe\CMS\Model\SiteTree; use SilverStripe\Forms\CheckboxField_Readonly; use SilverStripe\Forms\FieldList; use SilverStripe\Forms\ReadonlyField; use SilverStripe\Forms\TextField; use SilverStripe\Forms\ToggleCompositeField; use SilverStripe\Forms\TreeDropdownField; /** * Readonly version of a {@link BlockLinkField} field, which displays the data fields as readonly text * inputs and a checkbox for "target blank". */ class BlockLinkField_Readonly extends ReadonlyField { public function Field($properties = []) { /** @var BlockLinkField $originalField */ $originalField = BlockLinkField::create('TempReadonly')->setValue($this->value); $name = $this->getName(); $fields = FieldList::create(); $fields->push( TreeDropdownField::create($name . '_PageID', null, SiteTree::class) ->setTitle(_t('SilverStripe\\ElementalBlocks\\Form\\BlockLinkField.SelectPage', 'Select a page')) ->setValue($originalField->getParsedValue()->PageID) ->performReadonlyTransformation() ); if ($originalField->getShowLinkText()) { $fields->push( $this->castedCopy(TextField::class) ->setName($name . '_Text') ->setTitle(_t('SilverStripe\\ElementalBlocks\\Form\\BlockLinkField.LinkText', 'Link text')) ->setValue($originalField->getLinkText()) ); } $fields->push( $this->castedCopy(TextField::class) ->setName($name . '_Description') ->setTitle(_t('SilverStripe\\ElementalBlocks\\Form\\BlockLinkField.Description', 'Link description')) ->setValue($originalField->getLinkDescription()) ); $fields->push( $this->castedCopy(CheckboxField_Readonly::class) ->setName($name . '_TargetBlank') ->setTitle( _t('SilverStripe\\ElementalBlocks\\Form\\BlockLinkField.TargetBlank', 'Open in a new window/tab') ) ->setValue($originalField->getLinkTargetBlank()) ); $fields->each(function ($field) { $field->setReadonly(true); }); return ToggleCompositeField::create($name . '_Readonly', $this->Title(), $fields); } /** * Do not render a form field holder for this, just display the toggled composite field * * {@inheritDoc} */ public function FieldHolder($properties = []) { return $this->Field($properties); } } |