web-dev-qa-db-fra.com

Vérifier le type de contenu dans le prétraitement de paragraphe

J'ai écrit une fonction de prétraitement de paragraphe qui fonctionne parfaitement. Le seul problème est que j'en ai besoin pour fonctionner uniquement lorsque ce paragraphe est incorporé dans un certain type de contenu.

function mytheme_preprocess_paragraph__paragraph_type(&$variables) {
   // Do things here if content type == 'specified_type'
}

Cependant, je ne sais pas comment vérifier le type de contenu. Comment puis-je accomplir cela?

6
Vecta

La façon correcte d'obtenir les données d'entité faisant référence à votre paragraphe est d'utiliser l'API d'entité de paragraphe.

/**
 * Implements template_preprocess_paragraph().
 *
 * @param array $variables
 *   An associative array containing:
 *   - elements: An array of elements to display in view mode.
 *   - paragraph: The paragraph object.
 *   - view_mode: View mode; e.g., 'full', 'teaser'...
 */

function mytheme_preprocess_paragraph(&$variables) {
  /** @var \Drupal\paragraphs\Entity\Paragraph $paragraph */
  $paragraph = $variables['paragraph'];
  // Get the parent bundle.
  $parentBundle = $paragraph->getParentEntity()->bundle();
}
14
hugronaphor