123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174 |
- <?php
- // vars
- $disabled = false;
- // empty
- if ( empty( $field['conditional_logic'] ) ) {
- $disabled = true;
- $field['conditional_logic'] = array(
- // group 0
- array(
- // rule 0
- array(),
- ),
- );
- }
- ?>
- <div class="acf-field acf-field-true-false acf-field-setting-conditional_logic" data-type="true_false" data-name="conditional_logic">
- <div class="acf-conditional-toggle">
- <div class="acf-label">
- <?php $acf_label_for = acf_idify( $field['prefix'] . '[conditional_logic]' ); ?>
- <label for="<?php echo esc_attr( $acf_label_for ); ?>"><?php _e( 'Conditional Logic', 'acf' ); ?></label>
- </div>
- <div class="acf-input">
- <?php
- acf_render_field(
- array(
- 'type' => 'true_false',
- 'name' => 'conditional_logic',
- 'prefix' => $field['prefix'],
- 'value' => $disabled ? 0 : 1,
- 'ui' => 1,
- 'class' => 'conditions-toggle',
- )
- );
- ?>
- </div>
- </div>
- <div class="rule-groups" <?php if ( $disabled ) echo ' style="display:none"'; ?>>
- <?php
- foreach ( $field['conditional_logic'] as $group_id => $group ) :
- // validate
- if ( empty( $group ) ) {
- continue;
- }
- // vars
- // $group_id must be completely different to $rule_id to avoid JS issues
- $group_id = "group_{$group_id}";
- $h4 = ( $group_id == 'group_0' ) ? __( 'Show this field if', 'acf' ) : __( 'or', 'acf' );
- ?>
- <div class="rule-group" data-id="<?php echo $group_id; ?>">
- <h4><?php echo $h4; ?></h4>
- <table class="acf-table -clear">
- <tbody>
- <?php
- foreach ( $group as $rule_id => $rule ) :
- // valid rule
- $rule = wp_parse_args(
- $rule,
- array(
- 'field' => '',
- 'operator' => '',
- 'value' => '',
- )
- );
- // vars
- // $group_id must be completely different to $rule_id to avoid JS issues
- $rule_id = "rule_{$rule_id}";
- $prefix = "{$field['prefix']}[conditional_logic][{$group_id}][{$rule_id}]";
- // data attributes
- $attributes = array(
- 'data-id' => $rule_id,
- 'data-field' => $rule['field'],
- 'data-operator' => $rule['operator'],
- 'data-value' => $rule['value'],
- );
- ?>
- <tr class="rule" <?php echo acf_esc_attrs( $attributes ); ?>>
- <td class="param">
- <?php
- acf_render_field(
- array(
- 'type' => 'select',
- 'prefix' => $prefix,
- 'name' => 'field',
- 'class' => 'condition-rule-field',
- 'disabled' => $disabled,
- 'value' => $rule['field'],
- 'choices' => array(
- $rule['field'] => $rule['field'],
- ),
- )
- );
- ?>
- </td>
- <td class="operator">
- <?php
- acf_render_field(
- array(
- 'type' => 'select',
- 'prefix' => $prefix,
- 'name' => 'operator',
- 'class' => 'condition-rule-operator',
- 'disabled' => $disabled,
- 'value' => $rule['operator'],
- 'choices' => array(
- $rule['operator'] => $rule['operator'],
- ),
- )
- );
- ?>
- </td>
- <td class="value">
- <?php
- // create field
- acf_render_field(
- array(
- 'type' => 'select',
- 'prefix' => $prefix,
- 'name' => 'value',
- 'class' => 'condition-rule-value',
- 'disabled' => $disabled,
- 'value' => $rule['value'],
- 'choices' => array(
- $rule['value'] => $rule['value'],
- ),
- )
- );
- ?>
- </td>
- <td class="add">
- <a href="#" class="button add-conditional-rule"><?php _e( 'and', 'acf' ); ?></a>
- </td>
- <td class="remove">
- <a href="#" class="acf-icon -minus remove-conditional-rule"></a>
- </td>
- </tr>
- <?php endforeach; ?>
- </tbody>
- </table>
- </div>
- <?php endforeach; ?>
- <h4><?php _e( 'or', 'acf' ); ?></h4>
- <a href="#" class="button add-conditional-group"><?php _e( 'Add rule group', 'acf' ); ?></a>
- </div>
- </div>
|