select.blade.php
46 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 | @endphp |
| 9 | |
| 10 | @if($has_groups) |
| 11 | <div> |
| 12 | <label>{{ sanitize_text_field($form_field->name()) }}</label> |
| 13 | <select name="{{ esc_attr($form_field->id()) }}" id="{{ esc_attr($form_field->id()) }}"> |
| 14 | @foreach($template_values as $group_name => $values) |
| 15 | @php $first_group = $loop->first @endphp |
| 16 | <optgroup label="{{ esc_attr($group_name) }}"> |
| 17 | @foreach($values as $value) |
| 18 | <option value="{{ esc_attr($value->id()) }}" |
| 19 | @if($selected_value !== null) |
| 20 | {{ $value->id() == $selected_value ? 'selected' : '' }} |
| 21 | @else |
| 22 | {{ $first_group && $loop->first ? 'selected' : '' }} |
| 23 | @endif |
| 24 | >{{ sanitize_text_field($value->name()) }}</option> |
| 25 | @endforeach |
| 26 | </optgroup> |
| 27 | @endforeach |
| 28 | </select> |
| 29 | </div> |
| 30 | @else |
| 31 | <div> |
| 32 | <label>{{ sanitize_text_field($form_field->name()) }}</label> |
| 33 | <select name="{{ esc_attr($form_field->id()) }}" id="{{ esc_attr($form_field->id()) }}"> |
| 34 | @foreach($template_values as $value) |
| 35 | <option value="{{ esc_attr($value->id()) }}" |
| 36 | @if($selected_value !== null) |
| 37 | {{ $value->id() == $selected_value ? 'selected' : '' }} |
| 38 | @else |
| 39 | {{ $loop->first ? 'selected' : '' }} |
| 40 | @endif |
| 41 | >{{ sanitize_text_field($value->name()) }}</option> |
| 42 | @endforeach |
| 43 | </select> |
| 44 | </div> |
| 45 | @endif |
| 46 |