@php $labels = $aspectGrid['labels'] ?? []; $matrix = $aspectGrid['matrix'] ?? []; $getAspectData = function ($t) { $type = is_array($t) ? $t['type'] ?? '' : $t; $orb = is_array($t) ? ($t['orb'] ?? ($t['orb_val'] ?? 0)) : 0; $html = match ((string) $type) { '0' => '', '30' => '', '45' => '', '60' => '', '90' => '', '120' => '', '135' => '', '150' => '', '180' => '', 'PAR' => '||', 'CPAR' => '', default => '', }; $name = match ((string) $type) { '0' => t('synod'), '30' => '30°', '45' => '45°', '60' => t('sextile'), '90' => t('square'), '120' => t('triangle'), '135' => '135°', '150' => '150°', '180' => t('anti'), 'PAR' => t('parallel'), 'CPAR' => t('contra-parallel'), default => (string) $type, }; return ['html' => $html, 'name' => $name, 'orb' => $orb]; }; $pairs = []; $n = count($labels); // 1) Mevcut grid matrisinden KLASİK gezegen açılarını al for ($i = 0; $i < $n; $i++) { for ($j = 0; $j < $i; $j++) { $t = $matrix[$i][$j] ?? null; if (!$t) { continue; } $a = $labels[$i] ?? []; $b = $labels[$j] ?? []; $aspInfo = $getAspectData($t); $pairs[] = [ 'a' => $a, 'b' => $b, 'asp' => $aspInfo, 'is_asteroid' => !empty($a['is_asteroid']) || !empty($b['is_asteroid']), ]; } } @endphp
{{-- HİZALAMA MANTIĞI: Sol Sütun (%48) + Sağ Sütun (%32) + Açı (%20) = %100 Sol sütunun geniş tutulması, 'center line'ın görsel olarak ortalanmasını sağlar. --}} @forelse($pairs as $p) {{-- 1. GEZEGEN (SOLDA - SAĞA YASLI) --}} {{-- AÇI (EN SAĞDA) --}} {{-- 2. GEZEGEN (SAĞDA - SOLA YASLI) --}} @empty @endforelse
{{ t('first-planet') }} {{ t('angles') }} {{ t('second-planet') }}
{{-- Metinler --}}
{{ $p['a']['name'] }} {{ $p['a']['deg_formatted'] ?? '' }}
{{-- Ev --}} @if (!empty($p['a']['house_no'])) {{ $p['a']['house_no'] }} @endif {{-- Burç --}} {!! $p['a']['sign_symbol'] ?? '' !!} {{-- Gezegen --}} @php $aKey = $p['a']['key'] ?? null; $aForcePlain = in_array($aKey, ['IC', 'Descendant', 'DSC'], true); @endphp @if (!empty($p['a']['is_plain_text']) || $aForcePlain) {!! $p['a']['glyph_html'] !!} @else {!! $p['a']['glyph_html'] !!} @endif
{!! $p['asp']['html'] !!}
{{ $p['asp']['name'] }} @if ($p['asp']['orb'] > 0) {{ number_format($p['asp']['orb'], 1) }}° @endif
{{-- Gezegen --}} @php $bKey = $p['b']['key'] ?? null; $bForcePlain = in_array($bKey, ['IC', 'Descendant', 'DSC'], true); @endphp @if (!empty($p['b']['is_plain_text']) || $bForcePlain) {!! $p['b']['glyph_html'] !!} @else {!! $p['b']['glyph_html'] !!} @endif {{-- Burç --}} {!! $p['b']['sign_symbol'] ?? '' !!} {{-- Ev --}} @if (!empty($p['b']['house_no'])) {{ $p['b']['house_no'] }} @endif {{-- Metinler --}}
{{ $p['b']['name'] }} {{ $p['b']['deg_formatted'] ?? '' }}
{{ t('angle-not-found') }}
{{-- '150' => ' ', --}}