Open alisonjo315 opened 1 year ago
Okay so, here's what I'm suggesting we do -- if a design person tells me this is a standard enough treatment to be worth putting in cwd_base:
Add the template suggestions stuff to cwd_base.theme (copied from cwd_cbb.theme):
/**
* Implements hook_theme_suggestions_field_alter().
*/
function cwd_base_theme_suggestions_field_alter(&$suggestions, array $variables) {
$field = $variables['element'];
$sanitized_view_mode = strtr($field['#view_mode'], '.', '_');
// Add view mode theme suggestions.
$suggestions[] = 'field__' . $field['#entity_type'] . '__' . $field['#field_name'] . '__' . $field['#bundle'] . '__' . $sanitized_view_mode;
$suggestions[] = 'field__' . $field['#entity_type'] . '__' . $field['#field_name'] . '__' . $sanitized_view_mode;
}
Add field--node--body--full.html.twig
to cwd_base, with the following content:
{#
/**
* @file
* Theme override for node body field, full view mode (any ctype).
* ~ add div.field-body.double-margin
*
* @see field.html.twig
*
* @ingroup themeable
*/
#}
<div class="field-body double-margin">
{% include "@cwd_base/includes/_field--un-wrapped.html.twig" %}
</div>
Create a companion issue on cwd_base, to update the node--news--full.html.twig
template (and the same template for people + spotlights) as follows:
--- a/templates/news/node--news--full.html.twig
+++ b/templates/news/node--news--full.html.twig
@@ -20,9 +20,7 @@
</div>
{% endif %}
{{ node.body|view('full') }}
{% if node.field_tags.value -%}
@ama39 Could you please take a look at this when you have time? -- not urgent!
I've seen we end up with a templates for the node body field, for the full view mode -- i.e.
field--node--body--full.html.twig
(sometimes alsofield--node--body--default.html.twig
). ⚠️ Also needsmytheme_theme_suggestions_field_alter()
added to cwd_base.theme to support view mode field templates, like what's in the Bright Beams child theme (cwd_cbb
). (See comment in thread below for details.)For
--full
, the body gets adiv.field-body.double-margin
wrapper. For--default
, the body gets adiv.summary
wrapper -- but I think--default
isn't used much, because usually there's a specific teaser field, usually the body field isn't shown except on the full view mode.Is this treatment pretty standard, or just a sometimes thing?
NOTE: If we do this, we'll just need to update a couple templates in cwd_project, that currently put the wrapper markup in the node templates. (Benefit of these field templates is they get used across content types, so you don't have to have duplicate implementation.)