guysartorelli / silverstripe-gridfield-preview
Standalone silverstripe GridField component for previewing records directly from the GridField
Installs: 45
Dependents: 0
Suggesters: 0
Security: 0
Stars: 6
Watchers: 5
Forks: 1
Open Issues: 0
Type:silverstripe-vendormodule
Requires
- php: ^8.1
- silverstripe/admin: ^2
- silverstripe/framework: ^5
Requires (Dev)
README
A stand-alone GridField
component that enables previewing records directly from a GridField.
Install
composer require guysartorelli/silverstripe-gridfield-preview
CMS User Usage
Click the preview button in the gridfield. This will automatically open the preview panel (in split mode if your screen is wide enough, or in preview mode otherwise) with the preview set to the record you clicked.
Developer Usage
Directly inn a ModelAdmin
The easiest way to use this module is to add PreviewableModelAdminExtension
as an extension for your ModelAdmin
subclass. By default this will add a preview button to the gridfield for all tabs that have CMSPreviewable
models.
MyApp\Admin\MyModelAdmin: extensions: - GuySartorelli\GridFieldPreview\PreviewableModelAdminExtension
You can also configure this to only add the component for specific model classes:
MyApp\Admin\MyModelAdmin: extensions: - GuySartorelli\GridFieldPreview\PreviewableModelAdminExtension gridfield_previewable_classes: - MyApp\Model\MyPreviewableModel
In literally any other GridField
You can add the GridFieldPreviewButton
GridField
component to literally any GridField
, even one that belongs to a DataObject
which has its own preview!
use GuySartorelli\GridFieldPreview\GridFieldPreviewButton; use SilverStripe\Forms\GridField\GridField; use SilverStripe\Forms\GridField\GridFieldConfig_RecordViewer; //... public function getCMSFields() { $fields = parent::getCMSFields(); $fields->addFieldToTab('Root.Main', GridField::create( 'SomethingPreviewable', 'Something Previewable', MyPreviewableDataObject::get(), $config = GridFieldConfig_RecordViewer::create() )); // Here's the important part - add the GridFieldPreviewButton component! $config->addComponent(GridFieldPreviewButton::create()); return $fields; }