Am un câmp pentru un tip de conținut personalizat care este o referință la un tip de paragraf, folosind widget-ul Paragraf (EXPERIMENTAL). Încerc să modific acel widget pentru a afișa și a ascunde un câmp bazat pe un alt câmp din paragraf. Iată codul meu de modificare a widget-ului:
$field = 'field_supporter_form_fields';
$id_field = 'field_primary_custom';
$delta = $element['#delta'];
$id = sprintf('select[name="%s[%d][subform][%s]"]', $field, $delta, $id_field);
$element['subform']['field_field_type']['widget']['#states'] = [
'vizibil' => [
$id => ['value' => 'personalizat'],
],
];
$element['subform']['field_field_type']['widget']['#title'] = 'Bla!';
Știu că țintesc widgetul corect pentru că văd că titlul câmpului se schimbă în „Blah!”, dar vizibilitatea câmpului nu se schimbă.
Iată cum arată partea relevantă a matricei $element după modificare:
[#parents] => Matrice
(
[0] => field_supporter_form_fields
[1] => 0
[2] => subformular
[3] => field_field_type
)
[#states] => Matrice
(
[vizibil] => Matrice
(
[select[name="field_supporter_form_fields[0][subform][field_primary_custom]"]] => Matrice
(
[valoare] => personalizat
)
)
)
Câmpul dependent field_primary_custom
este o pereche de butoane radio cu valori fie primare, fie personalizate. Numele elementului de pe pagină este field_supporter_form_fields[0][subform][field_primary_custom]
care se potrivește cu ceea ce am în identificatorul meu.
De ce nu se schimbă vizibilitatea?