bericht/ajax/page_meta.php
Eduard Wisch 06cd70d4a3
All checks were successful
Deploy bericht / deploy (push) Successful in 1s
feat: Phase 1.4 + 1.5 — Multi-Image Grids und Bildgröße komplett
DB-Klasse:
- BerichtPage::getImages() liest llx_bericht_page_image
- BerichtPage::setSlotImage() / clearImages()
- BerichtPage::slotCountForLayout()
- BerichtPage::slotRects() berechnet Slot-Positionen für 1/2/2v/4/6
- create()/update()/fetchAllForBericht() inkludieren layout/scale/align

Endpoints (alle im Bericht-Modul):
- ajax/save_page_options.php — speichert layout, image_scale, image_align
- ajax/create_grid_page.php — erstellt Multi-Image-Seite mit gewähltem Layout
- ajax/set_slot_image.php — setzt einzelnes Bild eines Slots
- ajax/page_meta.php liefert layout/scale/align mit
- ajax/page_image.php rendert Composite-PNG (GD) für Multi-Image-Seiten

UI:
- Layout-Dropdown in 3. Toolbar-Zeile (Single/Grid 2/2v/4/6)
- Bildgröße-Dropdown (100/70/50/30%) — single-only
- Position-Dropdown (Anpassen/Zentriert/Ecken) — single-only
- 'Als Grid hinzufügen'-Buttons in der Anhänge-Liste (▭▭ ▯▯ ▦ ▦▦)
- Auto-Sync der single-only-Felder beim Layout-Wechsel

Rendering:
- bericht_render_page_to_pdf() in lib/bericht.lib.php — zentrale
  Render-Funktion für Single + Grid + PDF-Quelle + image_scale + align
- bericht_align_position() für die 6 Align-Modi
- generate_pdf + preview_pdf nutzen die gemeinsame Funktion (DRY)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
[deploy]
2026-04-08 22:33:44 +02:00

24 lines
870 B
PHP

<?php
/* GET: pageid → liefert fabric_json + note der Seite */
require_once __DIR__.'/_inc.php';
global $db;
$pageid = (int) ($_GET['pageid'] ?? 0);
if (!$pageid) bericht_ajax_fail('pageid fehlt');
$res = $db->query("SELECT fabric_json, note, rotation, COALESCE(layout,'single') AS layout,"
." COALESCE(image_scale,1.0) AS image_scale, COALESCE(image_align,'fit') AS image_align"
." FROM ".$db->prefix()."bericht_page WHERE rowid = ".((int) $pageid));
if (!$res) bericht_ajax_fail($db->lasterror());
$row = $db->fetch_object($res);
if (!$row) bericht_ajax_fail('Page nicht gefunden', 404);
bericht_ajax_ok(array(
'fabric_json' => $row->fabric_json,
'note' => $row->note,
'rotation' => (int) $row->rotation,
'layout' => $row->layout,
'image_scale' => (float) $row->image_scale,
'image_align' => $row->image_align,
));