docs first pages
This commit is contained in:
parent
683d862560
commit
5050011f29
16 changed files with 320 additions and 14 deletions
143
docs/newsletter.md
Normal file
143
docs/newsletter.md
Normal file
|
@ -0,0 +1,143 @@
|
|||
# Newsletter
|
||||
|
||||
Das Newsletter erlaubt den Druck und Versand von Inhalten zum Verein. Zu einem Newsletter können öffentliche Kalendereinträge hinzugefügt werden.
|
||||
|
||||
## Newsletter erstellen
|
||||
|
||||
Ein Newsletter besteht aus Titel und Zusammenfassung, um einen schnelleren Überblick in der Pagination zu erhalten.
|
||||
|
||||
Im Newsletter können Überschrift, Einleitung/Text und Signatur hinzugefügt werden.
|
||||
Es können Daten ausgewählt werden, welche dann automatisch nach dem Text und vor der Signatur im Standard-Template angezeigt.
|
||||
Und es können Empfänger über eine Vordefinierte Datenabfrage oder manuelles hinzufügen festgelegt werden.
|
||||
Im Tab Druck und Versand wird eine Datei mit allen Hinzugefügten Kalendereinträgen angezeigt, wie auch alle erstellten pdfs wie auch eine pdf, die alle anderen pdfs enthält.
|
||||
|
||||
## Versand
|
||||
In den Einstellungen kann festgelegt werden, welcher Kommunikationstyp wie versandt werden soll. Dies wird zusätzlich nochmals vor dem finalen Versand geprüft.
|
||||
|
||||
Es wird beim Druck unterschieden in Ausgaben mit und ohne Adresse. In der Fußzeile wird dann entweder nur der Name oder auch mit Adresse gedruckt.
|
||||
|
||||
Die Auswahl des Typs Mail versendet nur den Hauptteil des pdfs mit einer ics-Datei im Anhang.
|
||||
|
||||
## Template
|
||||
Über die Templating-Engine können für den Newsletter abweichende Kopf- und Fußzeilen und ein abweichender Hauptteil festgelegt werden.
|
||||
|
||||
Ein Newsletter-Template erhält folgende Daten:
|
||||
``` ts
|
||||
// interface:
|
||||
{
|
||||
title: string;
|
||||
description: string;
|
||||
newsletterTitle: string;
|
||||
newsletterText: string;
|
||||
newsletterSignatur: string;
|
||||
dates: Array<
|
||||
{
|
||||
title: string; // enthält alternativen Titel bzw. Titel des Kalendereintrags
|
||||
content: string; // enthält alternative Beschreibung bzw. Beschreibung des Kalendereintrags
|
||||
starttime: string;
|
||||
endtime: string;
|
||||
location: string;
|
||||
formattedStarttime: string;
|
||||
formattedFullStarttime: string;
|
||||
formattedEndtime: string;
|
||||
formattedFullEndtime: string;
|
||||
}
|
||||
>;
|
||||
recipient: {
|
||||
firstname: string;
|
||||
lastname: string;
|
||||
salutation: Salutation; // (sir | madam | divers | none)
|
||||
nameaffix: string;
|
||||
street: string;
|
||||
streetNumber: string;
|
||||
streetNumberAdd: string
|
||||
};
|
||||
}
|
||||
|
||||
// beispieldaten
|
||||
|
||||
{
|
||||
title: "Beispiel Newsletter Daten",
|
||||
description: "Zusammenfassung der Demodaten.",
|
||||
newsletterTitle: "<h1>Sehr geehrtes Feuerwehrmitglied</h1>",
|
||||
newsletterText: "<p>zu folgenden Terminen möchten wir recht herzlich zur Teilnahme einladen:</p>",
|
||||
newsletterSignatur: "<p>Mit freundlichen Grüßen</p><p>...</p>",
|
||||
dates: [
|
||||
{
|
||||
title: "Termin 1",
|
||||
content: "<p>Beschreibung eines Termins</p>",
|
||||
starttime: new Date(),
|
||||
formattedStarttime: "Montag 20. Januar",
|
||||
formattedFullStarttime: "Montag 20. Januar um 19:00",
|
||||
endtime: new Date(),
|
||||
formattedEndtime: "Montag 20. Januar",
|
||||
formattedFullEndtime: "Montag 20. Januar um 21:00",
|
||||
location: "Feuerwehrhaus",
|
||||
},
|
||||
],
|
||||
recipient: {
|
||||
firstname: "Julian",
|
||||
lastname: "Krauser",
|
||||
salutation: "sir",
|
||||
nameaffix: "",
|
||||
street: "Straße",
|
||||
streetNumber: "Hausnummer",
|
||||
streetNumberAdd: "Adresszusatz",
|
||||
},
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
Das Template ist als HTML definiert und beinhaltet Platzhalter, welche durch `handlebarsjs` ausgetauscht werden.
|
||||
``` html
|
||||
<!-- Standard-Template -->
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title>Newsletter</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>{{{newsletterTitle}}}</h1>
|
||||
<p>{{{newsletterText}}}</p>
|
||||
<br />
|
||||
{{#each dates}}
|
||||
<div>
|
||||
<h2><b>{{this.formattedStarttime}}: {{this.title}}</b></h2>
|
||||
<span>{{{this.content}}}</span>
|
||||
</div>
|
||||
<br />
|
||||
{{/each}}
|
||||
<br />
|
||||
<br />
|
||||
<p>{{{newsletterSignatur}}}</p>
|
||||
</body>
|
||||
<style>
|
||||
h2,
|
||||
h3,
|
||||
p,
|
||||
span,
|
||||
ul,
|
||||
li {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2 {
|
||||
color: #990b00;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
</style>
|
||||
</html>
|
||||
|
||||
<!--Footer Template-->
|
||||
<div style="font-size: 10pt; width: 100%; margin: 0 20px; padding-top: 5px; color: #888; border-top: 0.5px solid black">
|
||||
{{recipient.lastname}}, {{recipient.firstname}}{{#if recipient.street}},{{/if}} {{recipient.street}}
|
||||
{{recipient.streetNumber}} {{recipient.streetNumberAdd}}
|
||||
</div>
|
||||
|
||||
```
|
Loading…
Add table
Add a link
Reference in a new issue