| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- {{--
- Partial: поля макета блока — итерируется по массиву $fields.
- Переменные:
- $fields — массив определений полей из BlockLayoutRegistry
- $prefix — префикс для атрибута name (обычно 'data')
- $values — текущие значения полей (массив)
- Сложные типы вынесены в admin/blocks/partials/:
- _field_image.blade.php — image
- _field_pickers.blade.php — cars_picker, makes_picker, reviews_picker, services_picker
- _field_repeater.blade.php — repeater
- --}}
- @php
- /* Хелпер: строит публичный URL для значения поля image */
- $imageUrl = fn(?string $val): string =>
- $val
- ? (str_starts_with($val, 'http') ? $val : asset('storage/' . $val))
- : '';
- @endphp
- @foreach($fields as $field)
- {{-- ── Checkbox (булев флаг) ───────────────────────────────────────── --}}
- @if($field['type'] === 'checkbox')
- <div class="form-group">
- <div class="custom-control custom-switch">
- <input type="hidden" name="{{ $prefix }}[{{ $field['name'] }}]" value="0">
- <input type="checkbox"
- class="custom-control-input"
- id="chk-{{ $field['name'] }}"
- name="{{ $prefix }}[{{ $field['name'] }}]"
- value="1"
- {{ ($values[$field['name']] ?? false) ? 'checked' : '' }}>
- <label class="custom-control-label" for="chk-{{ $field['name'] }}">
- {{ $field['label'] }}
- </label>
- </div>
- </div>
- {{-- ── Текст / URL ──────────────────────────────────────────────────── --}}
- @elseif($field['type'] === 'text' || $field['type'] === 'url')
- <div class="form-group">
- <label>{{ $field['label'] }}</label>
- <input type="text"
- name="{{ $prefix }}[{{ $field['name'] }}]"
- class="form-control"
- value="{{ $values[$field['name']] ?? '' }}">
- </div>
- {{-- ── Textarea ──────────────────────────────────────────────────────── --}}
- @elseif($field['type'] === 'textarea')
- <div class="form-group">
- <label>{{ $field['label'] }}</label>
- <textarea name="{{ $prefix }}[{{ $field['name'] }}]"
- class="form-control" rows="3">{{ $values[$field['name']] ?? '' }}</textarea>
- </div>
- {{-- ── Image — загрузка файла ─────────────────────────────────────── --}}
- @elseif($field['type'] === 'image')
- @include('admin.blocks.partials._field_image')
- {{-- ── Picker-поля (cars, makes, reviews, services) ──────────────── --}}
- @elseif(in_array($field['type'], ['cars_picker', 'makes_picker', 'reviews_picker', 'services_picker']))
- @include('admin.blocks.partials._field_pickers')
- {{-- ── Repeater ─────────────────────────────────────────────────────── --}}
- @elseif($field['type'] === 'repeater')
- @include('admin.blocks.partials._field_repeater')
- @endif
- @endforeach
|