This project is not covered by Drupal’s security advisory policy.
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 %}
Project information
- Module categories: Decoupled
- Ecosystem: GraphQL
- 42 sites report using this module
- Created by InaW on , updated
- This project is not covered by the security advisory policy.
Use at your own risk! It may have publicly disclosed vulnerabilities.
Releases
Make module D10 ready
Development version: 8.x-1.x-dev updated 13 Jun 2023 at 07:02 UTC