Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: OpenID Connect / OAuth client 3.0.0-alpha9 New alpha version released for module openid_connect (3.0.0-alpha9). Release: Opensolr Search 4.5.0 Minor update available for module opensolr_search (4.5.0). Release: Timelinr 1.0.1 Minor update available for module timelinr (1.0.1). Usage Milestone: Simplify Module simplify crossed 10,000 active installs. Usage Milestone: Views Reference Filter Module entityreference_filter crossed 10,000 active installs. Usage Milestone: Dropdown Language Module dropdown_language crossed 10,000 active installs. Usage Milestone: Paragraphs Browser Module paragraphs_browser crossed 10,000 active installs. Usage Milestone: OpenAPI Module openapi crossed 10,000 active installs. Usage Milestone: Decoupled Router Module decoupled_router crossed 10,000 active installs. Module Revived: Entityqueue Buttons 1.1.2 Module entityqueue_buttons updated after 8 months of inactivity (1.1.2).

This module provides a GraphQL field that allows you to retrieve an entity by passing its serialized form as an argument. This is useful for rendering previews of unsaved content, such as paragraphs, within a backend theme using GraphQL and Twig.

Overview

This module contains a GraphQL Field entityByObject where you can pass an serialized entity as an argument and you get the unserialized entity in return.

Use case

We use this field to be able to render paragraphs in the backend preview with graphql_twig with the same styling as in the frontend theme. It is not possible to display the preview of unsaved paragraph since it is not possible to query an unsaved entity with GraphQL (at least we found no possibility), this is the reason why we created this field.
Since it is not possible to pass an object as an argument, it is necessary that the entity will be passed serialized.

Usage

If you want to render paragraph in the backend preview with graphql_twig you need to extend your backend theme preprocess function and pass the serialized paragraph in the $variables['serializedObject'] argument.

function THEME_preprocess_paragraph(&$variables) {
  $variables['serializedObject'] = serialize($variables['paragraph']);
}

Now you should be able to use entityByObject to query paragraphs in your paragraph.html.twig template.

{#graphql
query ($serializedObject: String) {
  paragraph: entityByObject(serializedObject: $serializedObject) {
    ... on Paragraph {
      type: entityBundle
      ...Lead
      ...Text
    }
  }
}

fragment Lead on ParagraphLead {
  fieldTitle
  fieldLead
}

fragment Text on ParagraphText {
  fieldText {
    processed
  }
}
#}


{% set paragraph = graphql.paragraph %}

{% block paragraph %}
  {% block content %}
    {% include '@FRONTEND_THEME/modules/m-' ~ paragraph.type ~ '.html.twig' with {'data': paragraph} %}
  {%  endblock %}
{% endblock paragraph %}

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
1
Tracked since
Jul 2025
Latest release
1 year ago
Releases (12 mo)
0 ▼ from 1
Maintenance
Dormant

Releases

Version Type Core Release date
8.x-1.0-alpha3 Pre-release 8–11 Jul 23, 2025