Skip to content
This repository has been archived by the owner on Mar 31, 2023. It is now read-only.

twig function bem() removes attributes of parent twig file #370

Open
ndf opened this issue Nov 15, 2021 · 2 comments
Open

twig function bem() removes attributes of parent twig file #370

ndf opened this issue Nov 15, 2021 · 2 comments

Comments

@ndf
Copy link

ndf commented Nov 15, 2021

What you did:

We have a hierarchy of templates.

  1. In side the top-template (in our case webform.html.twig) we call the child template with an include like this {% include "@atoms/02-text/00-headings/_heading.twig".
  2. Inside the child template function bem() is called: {{ bem(heading_base_class, (heading_modifiers), heading_blockname) }}
  3. Further down in the parent template, after the include, {{attributes}} is rendered. In this case it must print the form attributes like id, class, but also form-specific attributes like method and action.

What happened:
The function bem() in bem.function.php removes/resets the attribute function in the following block of code:

// Remove the attribute from context so it doesn't trickle down to
// includes.
$context['attributes']->removeAttribute($key);

The effect is that {{attributes}} is empty.
If I uncomment above, then bem() prints the attributes of the webform in the _heading.twig. Also not good. But the good part is that the webform itself can print its attributes. (In this example the attribute-list is printed 2 times in the webform and the heading template).

Reproduction repository (if necessary):

Problem description:
How can this problem be avoided?

Suggested solution:
Either that the bem() function resolves this automatically,
or by adding some documentation how the bem() function must be called to avoid this problem.

@welcome
Copy link

welcome bot commented Nov 15, 2021

Thanks for opening your first issue here! Be sure to follow the issue template!

@ModulesUnraveled
Copy link
Contributor

@callinmullaney I wonder if this is related to the issue with views you mentioned you were working on

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants