Paragraph handler allows you to provide "Paragraph Handler" classes that can handle pre-processing and altering the render arrays of Paragraph entities when they are displayed.
This helps to prevent .theme files from getting unruly and allows you to make use of traits and inheritance for your Paragraph display logic.
This module is only useful for developers.
See example below:
namespace Drupal\mymodule\Plugin\ParagraphHandler;
use Drupal\paragraph_handler\Plugin\ParagraphHandlerBase;
use Drupal\Core\Url;
/**
* Class Card.
*
* @ParagraphHandler(
* id = "card",
* label = @Translation("Card")
* )
*/
class Card extends ParagraphHandlerBase {
/**
* {@inheritdoc}
*/
public function preprocess(array &$variables, array $element) {
if ($this->isNested()) {
$variables['nested_class'] = TRUE;
}
$variables['new_variable'] = t('Test');
}
/**
* {@inheritdoc}
*/
public function build(array &$build) {
$build['link'] = [
'#type' => 'link',
'#title' => t('Link title'),
'#text' => t('Link text'),
'#url' => Url::fromUri('<front>'),
];
}
}
Place your paragraph handler under src\Plugin\ParagraphHandler\ folder inside your module.
Roadmap
- Admin UI to manage paragraph handlers. To enable and disable handlers.
Supporting organizations:
D10 Development
Project information
- Module categories: Content Editing Experience, Content Display, Developer Tools
- Ecosystem: Paragraphs
- 41 sites report using this module
- Created by dpolant on , updated
- Drupal 10 is here!
Module will support Drupal 10.
- Stable releases for this project are covered by the security advisory policy.
Look for the shield icon below.
Releases
8.x-1.3
released 9 August 2022
Works with Drupal: ^8 || ^9 || ^10
✓ Recommended by the project’s maintainer.
Install:
Development version: 8.x-1.x-dev updated 3 Aug 2022 at 14:20 UTC