SitePreviewer
Learn how to build custom site previewer plugins.
SitePreviewer plugins are responsible for rendering the preview for an entity type.
Implement a `@SitePreviewer`
plugin to provide your own custom previewer.
Example
A plugin that renders a link to preview.
<?php
namespace Drupal\next\Plugin\Next\SitePreviewer;
use Drupal\Core\Entity\EntityInterface;use Drupal\next\Plugin\SitePreviewerBase;
/** * Provides a link to the preview page. * * @SitePreviewer( * id = "link", * label = "Link to preview", * description = "Displays a link to the preview page." * ) */class Link extends SitePreviewerBase {
/** * {@inheritdoc} */ public function render(EntityInterface $entity, array $sites) { $build = [];
foreach ($sites as $site) { $build[] = [ '#type' => 'link', '#title' => $this->t('Open preview'), '#url' => $site->getPreviewUrlForEntity($entity), ]; }
return $build; }
}
Configuration
SitePreviewer plugins can provide their own configuration. See `\Drupal\next\Plugin\ConfigurableSitePreviewerInterface`
.