This is a Statamic addon that extends on Conditional Fields, so you can use the bard-contains
custom rule against any Bard field.
As luck would have it, this works great everywhere - even in a repeater, or something much more obscure... such as a Bard-in-Bard-set onion!
This addon adds a custom bard-contains:option
field condition to Statamic where option
is one or more of the following:
- empty
- notEmpty
- hasParagraphs
- hasNoParagraphs
- hasSets
- hasNoSets
- debug (see debugging)
You can use multiple options to test for all of the provided scenarios on your Bard field. This means you're using AND logic, so all options need to pass for the condition to succeed.
For instance, custom bard-contains:hasParagraphs,hasSets
will only succeed if the Bard field has both a text paragraph and a set.
If you need to have a Bard condition succeed on either of multiple options, create separate conditions using if_any
/unless_any
operators.
From the Statamic Control Panel blueprint screens, these conditions are displayed as Show/Hide when: any of the following conditions pass.
You can search for this addon in the Tools > Addons
section of the Statamic control panel and click install, or run the following command from your project root:
composer require skylennard/bard-contains
Add a condition to any field, referencing a bard field
- Use the "custom" condition syntax to set up the condition:
custom bard-contains:option
, with anoption
from the above list
Fields in a Collection/Taxonomy, for instance:
-
handle: customize
field:
type: revealer
if:
custom_content: 'custom bard-contains:empty'
-
handle: custom_content
field:
type: bard
if_any:
customize: 'equals true'
custom_content: 'custom bard-contains:notEmpty'
- Revealer
customize
is only visible when Bard is empty. - Bard
custom_content
is visible when either:- Revealer
customize
is activated and/or - Bard
custom_content
has existing content.
- Revealer
Using the option debug
can help you figure out what status the addon is seeing when checking your Bard field. This will console.log()
an object with the true/false status for all the options, so check it out in the inspector.