@php /** * Çok dilli sözleşme editörü. * Beklenen değişkenler: * $languages : Language koleksiyonu * $primaryLanguage : Language|null (ana metnin dili) * $contract : AgencyContract|null * $translationsData : array (language_id => ['title'=>, 'content'=>]) */ $contract = $contract ?? null; $translationsData = $translationsData ?? []; $primaryId = $primaryLanguage->id ?? null; $isSystem = (bool) ($contract->is_system ?? false); $baseTitle = old('title', $contract->title ?? ''); $baseContent = old('content', $contract->content ?? ''); $otherLanguages = $languages->filter(fn ($l) => $l->id !== $primaryId)->values(); // Başlangıç durumu: ana metin + yalnızca içeriği olan diller "aktif" sekme olur $langState = ['base' => ['title' => $baseTitle, 'content' => $baseContent]]; $activeLangs = collect(); foreach ($otherLanguages as $l) { $t = old("translations.{$l->id}.title", $translationsData[$l->id]['title'] ?? ''); $c = old("translations.{$l->id}.content", $translationsData[$l->id]['content'] ?? ''); if (trim(strip_tags((string) $c)) !== '' || trim((string) $t) !== '') { $langState[(string) $l->id] = ['title' => $t, 'content' => $c]; $activeLangs->push($l); } } $activeIds = $activeLangs->pluck('id')->all(); $contractContext = old('context', $contract->context ?? 'general'); $mergeCatalog = \App\Services\Operation\ContractRenderService::catalog(); @endphp {{-- Kontrat Bağlamı --}}
@foreach(\App\Models\Agency\AgencyContract::CONTEXTS as $ck => $cl) @endforeach
Rehber / Kaynak bağlamındaki şablonlar operasyon ekranında rehber atamalarında listelenir ve birleştirme alanlarıyla otomatik doldurulur.
{{-- Dil Sekmeleri --}}
İçerik girilmiş diller yeşil nokta ile işaretlenir.
{{-- Ana metin (birincil dil) --}} {{-- İçerik girilmiş çeviri dilleri --}} @foreach($activeLangs as $l) @endforeach {{-- Dil Ekle --}}
@foreach($otherLanguages as $l) @endforeach
{{-- Aktif dil bilgisi --}}
{{ $primaryLanguage->name ?? 'Varsayılan' }} dilinde düzenliyorsunuz. ANA METİN
{{-- Başlık --}}
Bu bir varsayılan sistem sözleşmesidir, ana metin başlığı değiştirilemez. (Çeviri başlıkları düzenlenebilir.) @error('title')
{{ $message }}
@enderror
{{-- İçerik Editörü --}}
Birleştirme Alanı Ekle
İmleç konumuna otomatik doldurulacak bir alan ekler.
@foreach($mergeCatalog as $group => $fields)
{{ $group }}
@foreach($fields as $f) @php $tokenDisplay = '{{' . $f['token'] . '}}'; @endphp @endforeach @endforeach
@error('content')
{{ $message }}
@enderror
{{-- Gizli gönderim alanları --}}
@foreach($activeLangs as $l) @endforeach
@push('styles') @endpush @push('scripts') @endpush