- π³πΏNew Zealand thomasmurphy
I found a similar behaviour with core 11.1.6, feeds 3.0.0, tamper 2.0.0-beta4. Importing a csv value to a boolean, with the convert to boolean tamper, and the no match set to "null" doesn't behave that way. It's defaults to false instead.
I verified this by creating a test node with the "N/A" value set via the checkbox/radio buttons, and a test view renders the boolean value as blank. The only two outcomes with the tamper "convert to boolean" plug-in is default to true or false. For context I set a test csv value to "NULL" to verify that this wasn't a problem related to an empty string.
- π³π±Netherlands megachriz
If you can write a test that demonstrates the bug, that would be great! The test should be added to \Drupal\Tests\tamper\Unit\Plugin\Tamper\ConvertBooleanTest.
Since there is a patch, I set the issue status to "Needs work". "active" indicates that there's only a report and no existing code.
- Status changed to Needs work
10 days ago 6:29pm 15 August 2025 - π³π±Netherlands megachriz
After this issue was posted, some changes were made to the boolean plugin in #3322750: Some plugins do not implement submitConfigurationForm() correctly - Add UI tests β .
I found one case where the plugin did not work as expected: when the "If no match" was set to "True". In this case the value was returned as is instead of a
TRUE
value. That's because PHP evaluates the following condition to true when$this->getSetting(self::SETTING_NO_MATCH)
isTRUE
:$this->getSetting(self::SETTING_NO_MATCH) == 'pass'
And this resulted into the original value being returned instead of
TRUE
.Changing this to
$this->getSetting(self::SETTING_NO_MATCH) === 'pass'
fixes that issue.
I have reworked the tests to find this bug. I believe the issue reported originally in this issue got fixed by the changes in #3322750: Some plugins do not implement submitConfigurationForm() correctly - Add UI tests β .
@thomasmurphy
I could not reproduce your issue. When I set the "If no match" to "Null" and I import something that does not match the "Truth" or "False" setting, I see in the Feeds log that the item's field really equalsnull
:{"title":"Nothing","bool":null}
So I assume the value gets modified later in the process. Either by a FeedsTarget plugin or by the field that the data gets written to.