51 lines
2.2 KiB
PHP
51 lines
2.2 KiB
PHP
{{--
|
|||
|
|
@include('checkout::partials.line-custom-fields', ['line' => $line])
|
||
|
|
|
||
|
|
A cart or order line's custom-field answers (meta.custom_fields, written by
|
||
|
|
Cart\Http\Controllers\CartController::customFieldsMeta()). A file answer
|
||
|
|
only carries a File id (Modules\Core\File\Models\File is the source of
|
||
|
|
truth for name/mime/disk/path — never duplicated into meta), resolved
|
||
|
|
here and linked through the signed download route (files.download),
|
||
|
|
minted fresh on every render, with a thumbnail when the browser can
|
||
|
|
display the format (HEIC can't be shown outside Safari, so it gets the
|
||
|
|
name only).
|
||
|
|
--}}
|
||
|
|
@php
|
||
|
|
$fields = $line->meta['custom_fields'] ?? [];
|
||
|
|
$previewable = ['image/jpeg', 'image/png', 'image/webp', 'image/gif'];
|
||
|
|
@endphp
|
||
|
|
|
||
|
|
@if (! empty($fields))
|
||
|
|
<dl class="bbk-line-fields">
|
||
|
|
@foreach ($fields as $field)
|
||
|
|
<div class="bbk-line-field">
|
||
|
|
<dt>{{ $field['label'] }}</dt>
|
||
|
|
<dd>
|
||
|
|
@if ($field['type'] === 'file')
|
||
|
|
@php
|
||
|
|
$file = \Modules\Core\File\Models\File::find($field['file_id'] ?? null);
|
||
|
|
@endphp
|
||
|
|
@if ($file)
|
||
|
|
@php
|
||
|
|
$fileUrl = \Illuminate\Support\Facades\URL::temporarySignedRoute(
|
||
|
|
'files.download',
|
||
|
|
now()->addHours(2),
|
||
|
|
['file' => $file->id],
|
||
|
|
);
|
||
|
|
@endphp
|
||
|
|
<a href="{{ $fileUrl }}" class="bbk-line-field-file" target="_blank" rel="noopener">
|
||
|
|
@if (in_array($file->mime, $previewable, true))
|
||
|
|
<img src="{{ $fileUrl }}" alt="" width="40" height="40" loading="lazy">
|
||
|
|
@endif
|
||
|
|
<span>{{ $file->original_name }}</span>
|
||
|
|
</a>
|
||
|
|
@endif
|
||
|
|
@else
|
||
|
|
{{ $field['value'] }}
|
||
|
|
@endif
|
||
|
|
</dd>
|
||
|
|
</div>
|
||
|
|
@endforeach
|
||
|
|
</dl>
|
||
|
|
@endif
|