checkboxes.blade.php
76 lines
| 1 | @php /** @var \IAWP\Overview\Form_Field $form_field */ @endphp |
| 2 | @php /** @var string[] $selected_value */ @endphp |
| 3 | |
| 4 | <?php |
| 5 | $selected_value = $selected_value ?? null; |
| 6 | $template_values = $form_field->template_values(); |
| 7 | $has_groups = !array_key_exists(0, $template_values); |
| 8 | ?> |
| 9 | |
| 10 | <span><?php echo sanitize_text_field($form_field->name()); ?></span> |
| 11 | <?php |
| 12 | if ($has_groups) : ?> |
| 13 | <div id="<?php echo esc_attr($form_field->id()); ?>"> |
| 14 | <div class="checkbox-group-container" data-controller="checkbox-group"> |
| 15 | <div class="tab-container"><?php |
| 16 | $first_loop = true; |
| 17 | foreach ($template_values as $group_name => $values) : ?> |
| 18 | <button type="button" |
| 19 | class="checkbox-group-tab <?php echo $first_loop ? "selected" : ""; ?>" |
| 20 | data-group-name="<?php echo esc_attr($group_name); ?>" |
| 21 | data-checkbox-group-target="groupTab" |
| 22 | data-action="checkbox-group#changeTab" |
| 23 | ><?php echo sanitize_text_field($group_name); ?></button> <?php |
| 24 | $first_loop = false; |
| 25 | endforeach; ?> |
| 26 | </div><?php |
| 27 | $first_group = true; |
| 28 | $first_loop = true; |
| 29 | foreach ($template_values as $group_name => $values) : ?> |
| 30 | <div data-checkbox-group-target="group" |
| 31 | data-group-name="<?php echo esc_attr($group_name); ?>" |
| 32 | class="checkbox-group <?php echo $first_group ? "selected" : ""; ?>" |
| 33 | ><?php |
| 34 | foreach ($values as $value) : ?> |
| 35 | <label> |
| 36 | <input type="checkbox" |
| 37 | name="<?php echo esc_attr($form_field->id()); ?>" |
| 38 | value="<?php echo esc_attr($value->id()); ?>"<?php |
| 39 | if (is_array($selected_value)) { |
| 40 | echo in_array($value->id(), $selected_value) ? 'checked' : ''; |
| 41 | } else { |
| 42 | echo $first_group && $first_loop ? 'checked' : ''; |
| 43 | } ?> |
| 44 | /> |
| 45 | <?php echo sanitize_text_field($value->name()); ?> |
| 46 | </label><?php |
| 47 | $first_loop = false; |
| 48 | endforeach; ?> |
| 49 | </div><?php |
| 50 | $first_group = false; |
| 51 | endforeach; ?> |
| 52 | </div> |
| 53 | </div><?php |
| 54 | else : ?> |
| 55 | <div id="<?php echo esc_attr($form_field->id()); ?>"> |
| 56 | <div class="checkbox-group selected" data-controller="checkbox-group"><?php |
| 57 | $first_loop = true; |
| 58 | foreach ($template_values as $value) : ?> |
| 59 | <label> |
| 60 | <input type="checkbox" |
| 61 | name="<?php echo esc_attr($form_field->id()); ?>" |
| 62 | value="<?php echo esc_attr($value->id()); ?>"<?php |
| 63 | if (is_array($selected_value)) { |
| 64 | echo in_array($value->id(), $selected_value) ? 'checked' : ''; |
| 65 | } else { |
| 66 | echo $first_loop ? 'checked' : ''; |
| 67 | } ?> |
| 68 | /> |
| 69 | <?php echo sanitize_text_field($value->name()); ?> |
| 70 | </label><?php |
| 71 | $first_loop = false; |
| 72 | endforeach; ?> |
| 73 | </div> |
| 74 | </div><?php |
| 75 | endif; |
| 76 |