約20の段落タイプがあります。それらの1つはh2
を挿入し、ページの上部にジャンプメニューを生成します(私は自分で生成しています)。
パターンラボには、前述の特定のタイプが使用されているため、コンテナの特別なCSSクラスの次に(挿入される次の段落が何であれ)コンテンツがあります。
theme_preprocess_paragraph
またはtheme_preprocess_field
に、現在のクラスが特定の段落タイプである場合に「振り返って」CSSクラスを追加する方法はありますか?
はい、前処理で次のようなことができます。
<?php
// Get entity reference revision item that points to this paragraph.
/** @var \Drupal\entity_reference_revisions\Plugin\Field\FieldType\EntityReferenceRevisionsItem $item_reference */
$item_reference = $paragraph->_referringItem;
// Get entity reference revision field items list that holds all
// paragraphs.
/** @var \Drupal\entity_reference_revisions\EntityReferenceRevisionsFieldItemList $items_list */
$items_list = $item_reference->getParent();
// Get next index position of current paragraph in entity ref. revision
// field items list.
$next_delta = $item_reference->getName() + 1;
// Check if there is a paragraph on the next delta.
if ($items_list->offsetExists($next_delta) && $items_list->get($next_delta)->entity) {
その特別なプロパティは、\ Drupal\Core\Field\Plugin\Field\FieldFormatter\EntityReferenceFormatterBase :: getEntitiesToView()で設定されます。また、段落自体はレンダーキャッシュされず、複数の場所で使用されないため、実際に信頼することができます。 (これもノードに設定されますが、レンダーキャッシュのため、少なくともデフォルトでは、そこにあることを信頼することはできません)。