fepli
ManualReferenceSystem and data protectionAdmins

Export templates

With export templates, super admins create own outputs for the offers of a season: PDF, XML, Word file or spreadsheet.

Location: Settings > Exports. Visible to: super admins.

RuleContent
AccessAll pages under Exports are reserved for super admins.
ScopeTemplates and fonts belong to the tenant.
In the exportA template with Offer in the export appears in the tab Export of a season under Format, in the section Own templates (Export). The same templates are available in the proof, on the season page and in the export in the background.

Templates

The page has two lists, switched with the selection Templates and Fonts. The number behind each names the entries of the list.

ElementContent
TemplateName of the template. Below it, PDF and XML show the file name with the ending .html.twig or .xml.twig, Word shows the name of the uploaded file or “no file yet”, XLSX shows the file name with .xlsx.
OutputType of the template: HTML → PDF, XML, DOCX or XLSX
Page · fontPDF: page size, “portrait” or “landscape”, base font and font size, e.g. “A4 portrait · geist 11 pt”. Word: number of placeholders in the file. XLSX: number of columns and name of the sheet. XML: “UTF-8”.
In exportoffered or Draft
ModifiedDate and name of the person who saved last
Badge InstallationThe template is in the configuration of the installation and read-only.
New templateMenu with the 4 types; the choice creates a template as a draft and opens the editor.
Empty list“No templates yet.” with “Create one – a programme booklet as PDF, typesetting data as XML or a Word file with placeholders.”

Above the list it says: “Templates are Twig. A PDF template writes HTML that mPDF typesets; an XML template is output as written; a DOCX template is a Word file with placeholders. Offered templates appear under “Format” in a season’s export.”

Types

TypeEntry in New templateStarts withResult
PDFPDF from HTML with “.html.twig · typeset with mPDF”A template with title and short description per offerPDF, typeset with the page size, margins and base font of the template
XMLXML with “.xml.twig · output unchanged”A template with number and title per offerXML, output as the template writes it
WordDOCX with “Upload a Word file · placeholders are replaced”No fileWord document in which fepli replaces the placeholders
SpreadsheetXLSX with “Put columns together · fields, answers, formulas”The columns Title, Hosts and DateExcel file with one sheet

A new template is called New PDF template, New XML template, New DOCX template or New XLSX template and is a draft.

Templates of the installation

The PDF and XML outputs that the installation sets in its configuration appear in the list with the badge Installation. Word and calendar outputs of the installation do not appear there.

ElementContent
Page of a template of the installationThe editor shows settings and source text, all fields are locked. Notice: “From the installation.” with “Configured in {key} and read-only here. “Adopt as template” creates an editable copy.”
Adopt as templateCreates a copy named “{name} (copy)” as a draft and opens it in the editor. Message: ““{name}” has been created – a draft, not in the export yet.”

Editor

On the left, the editor has the settings of the template. In the middle are the source text, the Word file or the table. On the right are the preview or the variables.

ElementContent
Arrow to the leftBack to the templates
Name in the headerName of the template; “Untitled” while the field is empty
Badge Not savedThe editor holds changes that are not saved yet.
Proof PDF, Proof XML, Proof DOCX, Proof XLSXCreates the export of the season that currently has an editing phase, in the background. The file arrives under the bell. It holds the saved version, not the changes in the editor. The button is locked while the template has an error.
SaveSaves the template. Locked while nothing is changed.

Settings

FieldMeaningValuesDefault
NameThis is how the template appears in the export. Required.TextNew PDF template etc.
OutputType of the template. Switching changes what the middle shows.HTML → PDF, XML, DOCX, XLSXType of the new template
File name of the exportStart of the file name. The help text reads “With season and date, e.g. {example}”.Textexport
SheetName of the sheet in the Excel file. XLSX only.up to 31 characters, without [ ] : * ? / \Offers
One row perXLSX only. With Date, an offer with 3 dates makes 3 rows.Offer, DateOffer
Page sizePDF onlyA4, A5, A6A4
Portrait, LandscapeOrientation of the page. PDF only.Portrait, LandscapePortrait
Margins in mmDistance from the edge of the page: Top, Right, Bottom, Left. PDF only.0 to 4015
Base fontFont of the whole document. The selection names the supplied and the uploaded fonts (Fonts). PDF only.Name of a fontGeist
Font sizeIn pt. PDF only.6 to 24, in steps of 0.511
Offer in the exportMakes the template available in the export of a season. Turned off, it stays a draft.on, offoff
Delete templateDeletes the template after a question: “Delete “{name}”?” with “The template will no longer be in the export. This cannot be undone.” Message afterwards: ““{name}” has been deleted.”

Saving

CaseMessage
Template saved, Offer in the export on““{name}” has been saved and is available in the export.”
Template saved, Offer in the export off““{name}” has been saved – a draft, not in the export yet.”
The field Name is empty“Not saved: The template needs a name.”
PDF, XML or XLSX with an error“Not saved: {reason}” with the error of the status bar. A Word template also saves with warnings.

PDF and XML templates

In the middle is the source text as Twig, with highlighting and line numbers. The header names the file name, e.g. export.html.twig, and “Twig · HTML for mPDF” or “Twig · XML”. The Tab key indents.

ElementContent
Status bar left“No errors” or “Line {line}: {message}”. The faulty line is marked red.
Status bar rightLine and column of the caret, plus “Twig 3 · UTF-8”
Selection PreviewShows the result. Above the preview, PDF shows “{format} portrait · {pages} pages” and, with offers of the season, “{count} offers from {season}”. If the season has no offers, it shows “{count} sample offers”.
Preview PDFThe pages as the file has them, in an isolated frame
Preview XMLThe message “Well-formed · <{root}> with {count} entries” and below it the text of the file. XML is only written once it is well-formed; otherwise the preview reports “The output is not valid XML: {message}”.
Preview with an error“Preview not possible” with the message and the link Go to line {line}
Selection VariablesList of the variables that can be inserted. An entry inserts the text at the caret. For a template of the installation, the list is read-only.

Variables

The PDF template receives the offers as items, the XML template as offers. In the table, list stands for this list.

VariableContentAvailable in
listOffers of the selection, season or filtered list. The entry inserts a loop for offer in ….PDF, XML
offer.nameTitlePDF, XML
offer.numberOffer numberPDF, XML
offer.teaserShort descriptionPDF, XML
offer.descriptionDescription as HTMLPDF, XML
offer.datesDates with begin and endPDF, XML
offer.minAge, offer.maxAgeAge from, age toPDF, XML
offer.feeFee in eurosPDF, XML
offer.meetingPointMeeting pointPDF, XML
offer.hostsOrganizers with namePDF, XML
offer.categoriesCategories with namePDF, XML
offer.propertiesOwn properties with Print in the booklet, with label and value (Settings)PDF, XML
edition.nameSeasonPDF, XML
todayDate of the exportPDF, XML
imagesLogos of the organizers with path and dimensionsXML
<pagebreak />New pagePDF
{PAGENO} / {nbpg}Page number in header or footerPDF
<htmlpagefooter>Footer on each pagePDF
var:tenantLogoLogo of the tenant, e.g. as <img src="var:tenantLogo" height="18mm" />PDF
loop.index, loop.lastCounter in loopsPDF, XML
dateFilter that formats a date, e.g. date('d.m.Y')XML
<![CDATA[ … ]]>Text with special charactersXML

Rules

RuleContent
Permitted TwigThe Twig of a template runs with a limited selection of tags, filters and functions. Methods cannot be called. A variable that does not exist is an error.
Images and links in the PDFAddresses of images, links and stylesheets must begin with var:, data: or #. fepli removes every other address. Files of the server never get into the PDF.
Fonts in the PDFfont-family names the key of a font from the list (Fonts).
Offers in the PDF studioThe PDF studio finds the offers' pages if the PDF template writes the offers in a loop over items, one section per offer. The template needs nothing special for this.
Adjustments from the PDF studioAn adjustment belongs to the template and the offer. It holds in every PDF of the template until the offer or the template changes (Origin).
MessageMeaning
“There is no variable “{name}” here.”The template uses an unknown variable.
“There is no field “{name}” here.”The template accesses a field that the offer does not have.
“There is no filter “{name}”.”, “There is no function “{name}”.”There is no filter or function of this name.
“The tag “{name}” is not allowed in export templates.”, “The filter “{name}” is not allowed in export templates.”, “The function “{name}” is not allowed in export templates.”The element exists, but export templates may not use it.
“A block is not closed – is endfor or endif missing?”A for or if has no end.
“The output is not valid XML: {message}”The result of an XML template is not well-formed.

Word templates

The middle shows the uploaded file. Without a file, it shows Choose DOCX file with “.docx up to 10 MB · please save older .doc files as .docx in Word”. Above it, it says: “Design the document in Word and upload it here. Placeholders like ${offer.name} are replaced with text on export; whatever is between ${offer} and ${/offer} repeats for each offer. Font, header and footer and logos stay as they are in Word.”

ElementContent
File cardName of the file, below it “{size} KB · uploaded {date} · {name}”
DownloadDownloads the saved file.
ReplaceUploads another file and replaces the previous one.
Placeholders foundEvery placeholder of the file with its meaning, the number of its occurrences and the badge known or unknown. Above it, it says “{count} different · all known” or “{count} different · {count} unknown”.
Right column PlaceholdersList of all placeholders. An entry copies the placeholder to the clipboard and reports “{placeholder} copied”.
PlaceholderContent
${offer}Start of the block that repeats for each offer
${/offer}End of the block
${offer.name}Title
${offer.number}Offer number
${offer.teaser}Short description
${offer.description}Description as text
${offer.date}Dates, e.g. “14.07.2026, 09:30–15:00”
${offer.age}Age, e.g. “10–14 years”
${offer.fee}Fee, e.g. “€12.00”
${offer.meetingPoint}Meeting point
${offer.hosts}Organizers, separated by commas
${offer.categories}Categories, separated by commas
${edition.name}Season, e.g. “Summer holidays 2027”
${today}Date of the export
RuleContent
FormattingThe placeholders are replaced with text; the formatting comes from the placeholder in Word.
Table row per offerIf the block is in one table row, the row is repeated for each offer.
Warning without block“Without ${offer} … ${/offer} only the first offer is in the document.”
Warning without end“${offer} without ${/offer} – the block does not end.”
Warning for an unknown placeholder“fepli doesn’t know {names} – it stays unchanged in the text of the export. A typo? The list on the right shows all placeholders.”
Files.docx only, up to 10 MB
MessageMeaning
“Only .docx files. Please save older .doc files as .docx in Word.”The file has another format.
“The file is larger than 10 MB.”The file is too large.

The Word templates of the instance with the markers ${BLOCK_ANGEBOT} and ${name} are described under Export.


XLSX templates

The middle shows the table as the file will have it, worked out for the first offers of the season with an editing phase. If the season has no offers, it shows sample offers. Below the table are the settings of the selected column.

ElementContent
Header of the tableName of the sheet, then “{count} columns · {count} sample offers” or “{count} columns · {count} offers of the season”. If a column has an error, the message follows.
Column letterSelects the column. Calculated columns carry fx. A red dot marks a column with an error.
ColumnMenu with Offer field, Questionnaire answer, Calculation and Cost breakdown. Questionnaire answer is missing while there is no question whose answer can be taken over. Cost breakdown is missing while no questionnaire has a cost breakdown.
Empty table“No columns yet. Add one with “+ Column”.”

Column

FieldMeaningValues
HeadingHead of the column in the file. Formulas refer to it.Text
Arrows Move left, Move rightMove the column
DuplicateCreates a copy next to the column
Remove columnRemoves the column
ContentType of the columnOffer field, Questionnaire answer, Calculation
Offer fieldValue from the offer. Only for Offer field.ID, Offer number, Title, Hosts, Date, Meeting point, Age from, Age to, min. participants, max. participants, Fee, Application via fepli, Consent required, Contact person, Contact person’s e-mail, Categories, Season
QuestionQuestion of a questionnaire, grouped by questionnaire. Only for Questionnaire answer. If the question no longer exists, it says “(question no longer exists)”.
Cost lineLine of a cost breakdown or Sum of all lines. Only for a question with a cost breakdown.
Fixed costs, per participantPart of the line: fixed costs or costs per participant. Only for a question with a cost breakdown.
Sum of columns, FormulaKind of calculation. Only for Calculation.
Add up columnsColumns with numbers that form the sum. Without a number column it says “No columns with numbers yet.”
FormulaExpression with columns in square brackets, e.g. [Fixed costs] + [Variable costs] * [max participants]. Allowed are numbers, +, −, *, /, brackets and the functions MIN, MAX and RUNDEN; several values are separated by a semicolon. An entry with the name of a column inserts the reference.
FormatDisplay in ExcelText, Number, Euro, Date and time, Yes/no as 1/0
Result rowRow below the table with the result of the columnnone, Sum, Average

A column with an Offer field starts with the format that suits the field: Euro for Fee, Date and time for Date, Number for numbers, age details and participant numbers, Yes/no as 1/0 for Application via fepli and Consent required, otherwise Text.

Cost breakdown

The entry Cost breakdown in the menu Column (description there: “every line fixed and per participant, with sums”) creates two columns for every line of the cost breakdown, Fixed {line} and Var {line}, plus the columns Fixed costs and Variable costs with the sums.

Notes below the column

ElementContent
In ExcelThe formula that the column has in the file, below it the origin of the value: “Value of the offer: {field}.”, “Answer from “{questionnaire}” · {question}. Empty where the questionnaire is not filled in.” or “Saved as an Excel formula that keeps calculating in the file when somebody changes values.” With a result row, “Result row: {formula}” follows.
“Example: {values}”The values of the first offers, “empty” without a value
References“References go by heading, not by position: reordering breaks no formula, renaming updates the references.”
MessageMeaning
“No columns chosen.”The table has no column.
“The formula is missing.”The calculation has no formula.
“There is no column “{name}”.”The formula names a heading that no column has.
“Two columns are called “{name}” – the reference is ambiguous.”2 columns have the same heading.
“Allowed are columns in [ ], numbers, + − * / ( ) and MIN, MAX, RUNDEN.”The formula contains another character.
“The formula does not add up – is a bracket, a number or an operator missing?”The formula is incomplete.
“Refers to itself in a circle.”2 calculations refer to each other.

Fonts

Location: Settings > Exports > Fonts.

Above the list it says: “Fonts for PDF templates. The CSS name is what goes in the template: font-family: swiza; Only static TrueType files (.ttf) – mPDF cannot read variable fonts and OTF.”

ElementContent
FontName, below it the key that font-family uses in the template.
Badge built in, uploadedOrigin of the font. Supplied are Geist, Geist Medium, DejaVu Sans, DejaVu Serif and DejaVu Sans Mono.
“in {count} templates”, “not used”Number of templates that set the font as base font
Sample lineExample text in the font
Styles4 fields: Regular (R), Italic (I), Bold (B), Bold italic (BI). A field shows file name and size, or “missing”.
+ FileUploads the file for a missing style of an uploaded font.
Upload font filesUploads one or more TrueType files. fepli assigns them to a font and a style by the file name.
RemoveDeletes the font after the question “Remove “{name}”?” with “The font’s files will be deleted.” Message afterwards: ““{name}” has been removed.” For a font in use it says “Remove it from the templates first”.
RuleContent
Assignment“File names are matched: Name-Regular.ttf, -Italic, -Bold or -SemiBold, -BoldItalic. mPDF sets every weight from 600 up with the bold style; Medium and Light become fonts of their own (name-medium).”
File typeStatic TrueType files (.ttf) only
RemovingA font can only be removed when no template sets it as base font. Supplied fonts cannot be removed.
MessageMeaning
“{count} font files uploaded.”, “Font file uploaded.”The upload worked.
“{name}: only static TrueType files (.ttf).”The file is not a TrueType file.
“{name}: mPDF cannot read OpenType with CFF outlines (.otf) – please use the TrueType version.”The file is an OTF font.
“{name}: a variable font – mPDF needs a static file per style.”The file is a variable font.
“{name}: this font comes with fepli and needs no file.”The file belongs to a supplied font.
“Templates still use “{name}” – choose another font there first.”The font cannot be removed.