Snapshot of main at 9f39a6e1e (2026-11-02)

This commit is contained in:
Ronald Huynen committed 2026-11-02 10:41:47 +01:00
commit 6ccf1792d7
2580 files changed
+1040202

No files matched your search

+156
View File
@@ -0,0 +1,156 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta charset="utf-8">
<title>{{ __('Posts') }}</title>
<style>
@font-face {
font-family: 'Oswald';
src: url('/fonts/static/oswald/Oswald-Regular.ttf') format('truetype');
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: 'Oswald';
src: url('/fonts/static/oswald/Oswald-SemiBold.ttf') format('truetype');
font-weight: 600;
font-style: normal;
}
@font-face {
font-family: 'Poppins';
src: url('/fonts/static/poppins/Poppins-Regular.otf') format('opentype');
font-weight: normal;
font-style: normal;
}
@page { margin: 0; }
* { box-sizing: border-box; margin: 0; padding: 0; }
html, body {
width: 210mm;
height: 297mm;
background-color: #1a1a2e;
font-family: DejaVu Sans, Arial, sans-serif;
color: #ffffff;
}
@php
// 1-up: portrait A4, 1 col × 1 row, card 210×297mm, scale 1.0
// 2-up: landscape A4, 2 cols × 1 row, each card 148×210mm (A5 portrait), scale ≈ 0.705
// 4-up: portrait A4, 2 cols × 2 rows, each card 105×148mm, scale 0.498
$cols = $perPage >= 2 ? 2 : 1;
$rows = $perPage === 4 ? 2 : 1;
$cardW = $perPage === 4 ? 105 : ($perPage === 2 ? 148 : 210);
$cardH = $perPage === 4 ? 148 : ($perPage === 2 ? 210 : 297);
$scale = match($perPage) {
2 => 148/210, // A5 portrait ≈ 0.705
4 => 0.498,
default => 1.0,
};
// Scaled measurements (baseline from posts/pdf.blade.php A4 layout)
$margin = round(20 * $scale, 1) . 'mm';
$logoTop = round(14 * $scale, 1) . 'mm';
$logoRight = round(20 * $scale, 1) . 'mm';
$logoW = round(75 * $scale, 1) . 'mm';
$logoH = round(53 * $scale, 1) . 'mm';
$titleMarginTop = round(70 * $scale, 1) . 'mm';
$titleFontMaxPt = round(54 * $scale, 1); // numeric, no unit
$titleContainerMm = $cardW - 2 * 20 * $scale; // card width minus left+right margin
$titleFont = $titleFontMaxPt . 'pt'; // fallback string for non-partial use
$catFont = round(17 * $scale, 1) . 'pt';
$catPadH = round(16 * $scale, 1) . 'px';
$catPadV = round(8 * $scale, 1) . 'px';
$excerptFont = round(17.5 * $scale, 1) . 'pt';
$excerptMT = round(6 * $scale, 1) . 'mm';
$excerptMaxH = round(60 * $scale, 1) . 'mm';
$bottomBottom= round(20 * $scale, 1) . 'mm';
$qrSize = round(20 * $scale, 1) . 'mm';
$qrCellW = round(22 * $scale, 1) . 'mm';
$qrCellPad = round(4 * $scale, 1) . 'mm';
$venueFont = round(22.5 * $scale, 1) . 'pt';
$dateFont = round(18 * $scale, 1) . 'pt';
$footerFont = round(10.4 * $scale, 1) . 'pt';
$footerMT = round(8 * $scale, 1) . 'mm';
@endphp
@if($perPage === 2)
@page { size: A4 landscape; margin: 0; }
html, body { width: 297mm; height: 210mm; }
@endif
.page-table {
width: {{ $perPage === 2 ? '297mm' : '210mm' }};
border-collapse: collapse;
}
.page-table-break { page-break-after: always; }
.page-table tr { height: {{ $cardH }}mm; }
.card-cell {
width: {{ $cardW }}mm;
height: {{ $cardH }}mm;
overflow: hidden;
position: relative;
vertical-align: top;
background-color: #1a1a2e;
}
</style>
</head>
<body>
@php
$cardsPerPage = $rows * $cols;
$pages = array_chunk($posts, $cardsPerPage);
@endphp
@foreach($pages as $pageIndex => $pagePosts)
@php
$padded = array_pad($pagePosts, $cardsPerPage, null);
$isLast = $pageIndex === count($pages) - 1;
@endphp
<table class="page-table {{ $isLast ? '' : 'page-table-break' }}">
@for($row = 0; $row < $rows; $row++)
<tr>
@for($col = 0; $col < $cols; $col++)
@php $idx = $row * $cols + $col; $data = $padded[$idx] ?? null; @endphp
<td class="card-cell">
@if($data)
@include('posts._pdf-card-bw', array_merge($data, [
'scale' => $scale,
'cardW' => $cardW,
'cardH' => $cardH,
'margin' => $margin,
'logoTop' => $logoTop,
'logoRight' => $logoRight,
'logoW' => $logoW,
'logoH' => $logoH,
'titleMarginTop' => $titleMarginTop,
'cardTitleMaxPt' => $titleFontMaxPt,
'cardTitleContainerMm' => $titleContainerMm,
'catFont' => $catFont,
'catPadH' => $catPadH,
'catPadV' => $catPadV,
'excerptFont' => $excerptFont,
'excerptMT' => $excerptMT,
'excerptMaxH' => $excerptMaxH,
'bottomBottom' => $bottomBottom,
'qrSize' => $qrSize,
'qrCellW' => $qrCellW,
'qrCellPad' => $qrCellPad,
'venueFont' => $venueFont,
'dateFont' => $dateFont,
'footerFont' => $footerFont,
'footerMT' => $footerMT,
]))
@endif
</td>
@endfor
</tr>
@endfor
</table>
@endforeach
</body>
</html>