PdfTemplateFormTrait
Add/edit form of a PDF template.
Two sections (nav-pills in the template): main settings (translated name) and variants
(owned collection). Each variant has css (language independent), a semantic name per
language (variant_texts) and content (header/html/footer) per layout and language
(addPdfTemplateVariantMultiplier(), variant.layoutTexts). Variants are a client-side
Multiplier (no Naja round trips); the server Multiplier only holds structure and indexes.
Saved as an object graph (hydrateForPersist) with nested collections
variants to variantText/layoutText (derived identity), like
PollFormTrait.
Table of Contents
Methods
- createComponentEditForm() : Form
- addPdfTemplateMainFields() : void
- Main settings: translated template name (active translation).
- addPdfTemplateVariantMultiplier() : void
- Variants: client-side Multiplier (no add/remove buttons; JS clones the `<template>`).
- buildPdfTemplateVariantLayoutTexts() : ArrayCollection<int, PdfTemplateVariantLayoutText>
- Builds the owned `layoutTexts` collection: full replace from the form, per layout and language. The form knows the whole layout code list ({@see \App\UI\Admin\System\Presenters\PdfTemplatePresenter::pdfTemplateLayouts()}), so the full replace is safe (no layout is left outside the form).
- buildPdfTemplateVariants() : ArrayCollection<int, PdfTemplateVariant>
- Builds the owned collection of variants from the multiplier (empty variants are skipped).
- pdfTemplateVariantDefaults() : array<int, array<string, mixed>>
- Returns the variant multiplier defaults for edit.
- savePdfTemplateForm() : bool
- setPdfTemplateFormDefaults() : void
Methods
createComponentEditForm()
protected
createComponentEditForm() : Form
Return values
FormaddPdfTemplateMainFields()
Main settings: translated template name (active translation).
private
addPdfTemplateMainFields(Form $form) : void
Parameters
- $form : Form
addPdfTemplateVariantMultiplier()
Variants: client-side Multiplier (no add/remove buttons; JS clones the `<template>`).
private
addPdfTemplateVariantMultiplier(Form $form) : void
The container holds variantId, css, name per language and, per layout and language,
header_<layoutId>_<langId>/html_<layoutId>_<langId>/footer_<layoutId>_<langId>
(TinyMCE, data-editor): the variant content for the given layout
(PdfTemplateLayout).
Parameters
- $form : Form
buildPdfTemplateVariantLayoutTexts()
Builds the owned `layoutTexts` collection: full replace from the form, per layout and language. The form knows the whole layout code list ({@see \App\UI\Admin\System\Presenters\PdfTemplatePresenter::pdfTemplateLayouts()}), so the full replace is safe (no layout is left outside the form).
private
buildPdfTemplateVariantLayoutTexts(ArrayHash<string|int, mixed>|array<string, mixed> $row, PdfTemplateVariant $variant) : ArrayCollection<int, PdfTemplateVariantLayoutText>
Parameters
- $row : ArrayHash<string|int, mixed>|array<string, mixed>
- $variant : PdfTemplateVariant
Return values
ArrayCollection<int, PdfTemplateVariantLayoutText>buildPdfTemplateVariants()
Builds the owned collection of variants from the multiplier (empty variants are skipped).
private
buildPdfTemplateVariants(ArrayHash<string|int, mixed> $values, PdfTemplate $template) : ArrayCollection<int, PdfTemplateVariant>
variant_texts carries only the semantic name; the header/html/footer content is
built by buildPdfTemplateVariantLayoutTexts().
Parameters
- $values : ArrayHash<string|int, mixed>
- $template : PdfTemplate
Return values
ArrayCollection<int, PdfTemplateVariant>pdfTemplateVariantDefaults()
Returns the variant multiplier defaults for edit.
private
pdfTemplateVariantDefaults() : array<int, array<string, mixed>>
Return values
array<int, array<string, mixed>>savePdfTemplateForm()
private
savePdfTemplateForm(ArrayHash<string|int, mixed> $values) : bool
Parameters
- $values : ArrayHash<string|int, mixed>
Return values
boolsetPdfTemplateFormDefaults()
private
setPdfTemplateFormDefaults(Form $form) : void
Parameters
- $form : Form