- πΊπΈUnited States xlin1003
I believe the issue stems from the use of
array_filter
on$options['defaults'][$metatag]['value']
within themetatag_metatags_form()
function. This results in a mismatch between thedefault
andvalue
when the instance (e.g., global) is overridden, impacting the functionality inmetatag_filter_values_from_defaults()
.function metatag_metatags_form(array &$form, $instance, array $metatags = array(), array $options = array()) { // ... (other code) // Add a default value form element. if (isset($options['defaults'][$metatag]['value'])) { if (is_array($options['defaults'][$metatag]['value'])) { $options['defaults'][$metatag]['value'] = array_filter($options['defaults'][$metatag]['value']); } $metatag_form['default'] = array( '#type' => 'hidden', '#value' => $options['defaults'][$metatag]['value'], ); }
When
metatag_filter_values_from_defaults()
is called, thedefault
is set, but it does not match thevalue
.function metatag_filter_values_from_defaults(array &$values, array $defaults = array()) { foreach ($values as $metatag => $data) { $default = isset($data['default']) ? $data['default'] : (isset($defaults[$metatag]['value']) ? $defaults[$metatag]['value'] : NULL); if (isset($default) && isset($data['value']) && $default === $data['value']) { // Meta tag has a default, and it matches the user-submitted value. unset($values[$metatag]); } } }
- Status changed to Needs review
over 1 year ago 5:49pm 29 November 2023 - last update
over 1 year ago 263 pass - πΊπΈUnited States DamienMcKenna NH, USA
Thanks for putting that together. Let's see what the testbot says.