Inhalt
======

1. Installationsanleitung
1.1. Allgemeine Hinweise
1.2. Manuelle Installation
1.3. Automatische Installation unter Windows
2. Versionshinweise


1. Installationsanleitung
=========================

1.1. Allgemeine Hinweise
------------------------

Das Blog-System muss auf einem Webserver installiert werden, der PHP unterstützt.
Diese Anleitung setzt voraus, dass bereits ein solcher Webserver zur Verfügung
steht und die folgenden Daten zur Hand sind:

- Die Webserver-Adresse für den Upload von Dateien per SFTP. Diese erhält man
  vom Hosting-Anbieter. Beispiel für Strato: ssh.strato.de

- Das Installationsverzeichnis. Entspricht dem Verzeichnis, auf das die Domain
  (z.B. beispiel.de) umgeleitet wurde. Wenn hier nichts angegeben wird, werden
  die Dateien ins Standard-Verzeichnis (meist das Hauptverzeichnis) hochgeladen.

- Der Benutzername für den Upload von Dateien per SFTP. Diesen erhält man vom
  Hosting-Anbieter.

- Das Passwort für den Upload von Dateien per SFTP. Dieses erhält man vom
  Hosting-Anbieter und sollte anschließend geändert werden.

Die Installation kann manuell über ein SFTP-Programm oder automatisch mit Hilfe
eines Installationsprogramms erfolgen (Letzteres nur unter Windows):


1.2. Manuelle Installation
--------------------------

Hierzu entpackt man die heruntergeladene ZIP-Datei "install-blog-v[…].zip" in
ein Verzeichnis auf dem lokalen Rechner und lädt anschließend die entpackten
Dateien mit einem SFTP-Programm (z.B. FileZilla oder WinSCP) auf den Webserver
hoch.

Die ZIP-Datei enhält folgende Verzeichnisse:

  Verzeichnis        Inhalt

  ├──install         Dateien für die Neuinstallation.
  │  │
  │  ├──common       Gemeinsame Dateien für alle Sprachen.
  │  │
  │  ├──de           Dateien für die Sprache Deutsch.
  │  │
  │  └──en           Dateien für die Sprache Englisch.
  │
  └──update          Dateien für die Update-Installation.
     │
     ├──common       Gemeinsame Dateien für alle Sprachen.
     │
     ├──de           Dateien für die Sprache Deutsch.
     │
     └──en           Dateien für die Sprache Englisch.

Das grundsätzliche Vorgehen beim Hochladen der Dateien ist wie folgt:

- SFTP-Programm starten und mit dem Webserver verbinden. Dazu die
  Webserver-Adresse, den Benutzernamen und das Passwort angeben.

- Das Fenster eines solchen SFTP-Programm ist meist zweigeteilt: Links sieht man
  die Dateien und Verzeichnisse des lokalen Rechners, rechts die des Webservers.

- Falls man die Domain, unter der das Blog-System im WWW erreichbar sein soll,
  auf ein bestimmtes Verzeichnis des Webservers umgeleitet hat, muss auf der
  rechten Seite in dieses Verzeichnis hineingewechselt werden.

- Links wechselt man in das lokale Verzeichnis, dessen Inhalte hochgeladen werden
  sollen, markiert dort alle zu sehenden Dateien und Unterverzeichnisse (meist
  geht das mit der Tastenkombination Strg+A) und startet den Upload.

Im Folgenden wird unterschieden zwischen einer Neu- und einer Update-Installation:

a) Neuinstallation

Wenn das Blog-System zum ersten Mal auf diesem Webserver bzw. in diesem Verzeichnis
installiert wird, sollte eine Neuinstallation durchgeführt werden. Hierzu öffnet
man im SFTP-Programm das lokale Verzeichnis "install" der entpackten ZIP-Datei.
Dann wechselt man ins Unterverzeichnis "common" und lädt dessen Inhalt komplett
auf den Webserver hoch. Zuletzt lädt man noch die Inhalte *eines* der beiden
Unterverzeichnisse "de" oder "en" hoch - je nachdem, in welcher Sprache (Deutsch
oder Englisch) man das Blog-System nutzen möchte.

b) Update-Installation

Wurde das Blog-System bereits installiert und man möchte es auf eine neue Version
aktualisieren, empfiehlt sich eine Update-Installation. Dabei werden nur Dateien
aktualisiert, die normalerweise nicht vom Benutzer verändert werden.

Vor einem Update empfiehlt es sich auf jeden Fall, ein Backup zu erstellen (im
Editor des Blog-Systems unter "Öffnen > Auflisten: Backup > Button: Erstellen").

Das Vorgehen beim Update entspricht dem einer Neuinstallation, jedoch mit dem
Unterschied, dass sich die hochzuladenden Unterverzeichnisse nicht im Verzeichnis
"install" der entpackten ZIP-Datei befinden, sondern im Verzeichnis "update".

Nun sollte die Website durch Eingabe der Adresse (z.B. „beispiel.de“) im Browser
aufgerufen werden können. Dort wird ein Text mit weiteren Informationen zur
Ersteinrichtung des Blog-Systems angezeigt.


1.3. Automatische Installation unter Windows
--------------------------------------------

Hierzu startet man den heruntergeladen Installer "install-blog-v[…].exe" und
bestätigt die Meldung "Do you want to install Blog System Version […]?" mit OK.
Die enthaltenen Dateien werden nun in ein temporäres Verzeichnis entpackt und
das eigentliche Installationsprogramm gestartet. Alternativ kann man auch die
Datei "install.bat" aus der heruntergeladenen und entpackten ZIP-Datei
"install-blog-v[…].zip" ausführen.

Wenn der Installer das erste Mal aufgerufen wurde und noch keine Daten eingegeben
wurden, werden nun die oben unter "Allgemeine Hinweise" genannten Daten
(Sprache, Webserver-Adresse, Installationsverzeichnis, Benutzername, Passwort)
abgefragt. Nach Eingabe der Daten wird ein Auswahlmenü angezeigt:

L = Inhalt des Installationsverzeichnisses anzeigen
N = Neuinstallation
U = Update-Installation
H = Zugriffsschutz entfernen (löscht die .htaccess-Datei)
E = Eingegebene Werte ändern
I = Info (zeigt die "Readme"-Datei an)
X = Beenden

Die Auswahl einer Funktion erfolgt durch Eingabe des angegebenen Buchstabens und
der Enter-Taste.

Es ist ratsam, sich zuerst den Inhalt des Installationsverzeichnisses anzeigen
zu lassen, um sich zu vergewissern, dass man das richtige Verzeichnis angegeben
hat. Außerdem wird so auch gleich geprüft, ob die SFTP-Verbindung zum Webserver
funktioniert. Falls es hier zu einer Fehlermeldung kommt, kann man die 
Verbindungsdaten durch Eingabe von E korrigieren.

Wenn das Blog-System zum ersten Mal auf diesem Webserver bzw. in diesem Verzeichnis
installiert wird, sollte eine Neuinstallation durchgeführt werden. Dabei werden
alle erforderlichen Dateien in das angegebene Installationsverzeichnis auf den
Webspace hochgeladen.

Wurde das Blog-System bereits installiert und man möchte es auf eine neue Version
aktualisieren, sollte eine Update-Installation durchgeführt werden. Bei einem
Update werden nur Dateien installiert, die normalerweise nicht vom Benutzer
verändert werden. Vor einem Update empfiehlt es sich auf jeden Fall, ein Backup
zu erstellen (im Editor unter "Öffnen > Auflisten: Backup > Button: Erstellen").

Die Funktion "H = Zugriffsschutz entfernen" ist hilfreich, falls man einmal das
Passwort für den Zugriffsschutz vergessen hat oder sich durch Eingabe falscher
Werte selber ausgeschlossen hat. Diese Funktion löscht die Datei lib/.htaccess.

Durch Eingabe von "X" wird der Installer beendet. Falls anschließend eine
Windows-Meldung "Programmkompatibilitätsassistent" aufpoppt, kann diese
ignoriert bzw. geschlossen werden.


2. Versionshinweise
===================

Version 1.11.2 (2026-07-31)

- Geändert: Kontaktformular: Pflichtfelder können mittels zweier neuer Attribute
  "and" und "or" logisch gruppiert werden.
- Geändert: Kontaktformular: Fehlerhaft ausgefüllte Felder werden farblich
  markiert.
- Geändert: Kontaktformular: Neue Feldarten "date" (Datum) und "addition"
  (Adresszusatz).

Version 1.11.1 (2026-07-23)

- Geändert: Kontaktformular: Es können individuelle Mail-Vorlagen definiert werden.
- Geändert: Kontaktformular: Neue Feldarten, z.B. Dezimalzahl, Web-Adresse oder
  Adressfelder.
- Geändert: Kontaktformular: Neues Attribut "lineup" (mehrere Felder in einer
  Zeile).
- Geändert: Kontaktformular: Attribut "labelpos": Neue Werte "left" und "right"
  (Label links oder rechts neben dem Feld).
- Geändert: Kontaktformular: Attribut "align": Neuer Wert "stretch" (links- und
  rechtsbündig mit Leerraum dazwischen).
- Geändert: Kontaktformular: Attribute "checked" und "selected" umbenannnt in
  "preset".
- Geändert: Interne geschützte Links: Link-Button ist nicht mehr innerhalb des
  Formulars, sondern referenziert es mittels form="id".
- Bugfix: Kontaktformular: Feldart "dropdown": Label hinter Feld wurde falsch
  angezeigt.
- Bugfix: Editor: Vorschaufenster

Version 1.11.0 (2026-07-17)

- Neu: Kontaktformular: Es können individuelle Felder definiert werden (siehe
  Hilfe-Seite).
- Geändert: Snippet "Absatz > Schützen": Es wird zusätzlich geprüft, ob die Seite
  mit dem zu schützenden Abschnitt innerhalb einer plausiblen Zeitspanne (2...3600
  Sekunden) aufgerufen wurde.
- Geändert: Funktion "PrettifyText": Neben JavaScript- und Style-Abschnitten werden
  nun auch Code-Abschnitte ignoriert.
- Geändert: Default-Stylesheet: H5-Überschriften mit etwas größerem Zeichenabstand.
- Geändert: Card-Widget: Letzter Absatz ohne unteren Abstand.

Version 1.10.6 (2026-07-12)

- Neu: Seitenleisten-Widgets können zufällig angeordnet werden, indem in der
  widgets.xml das Item-Attribut shuffle="true" angegeben wird.
- Neu: Fußbereichs-Widgets: Durch Angabe des Item-Attributs position="footer" in
  der widgets.xml können Widgets in den Fußbereich positioniert werden.
- Neu: Widget-Typ "Bildlink-Widget": Zeigt Bild und Text mit Link zu einem Artikel
  an. Es können mehrere Frames definiert werden, von denen dann einer zufällig
  ausgewählt wird.
- Neu: Widget-Typ "Zufallsartikel": Zeigt Titel, Beschreibungstext und Beitragsbild
  eines zufällig ausgewählten Blog-Artikels von der Übersichtsseite an.

Version 1.10.5 (2026-07-09)

- Geändert: Popups können nun beliebigen HTML-Inhalt anzeigen. Hierfür gibt es
  zwei neue Snippets:
- Neu: Snippets "Popup ohne Link (ID)" und "Popup ohne Link (HTML)".
- Geändert: Stylesheets: Einige kleinere Anpassungen.
- Bugfix: Statistik-Script: Zeilenenden des Perl-Scripts wieder nach LF
  konvertiert.

Version 1.10.4 (2026-07-07)

- Geändert: Funktion "PrettifyText": Neben Script- werden nun auch Style-Abschnitte
  ignoriert.
- Geändert: Menü: Neues Attribut "icons" zum Hinzufügen von Emoji-Icons zu
  automatisch erzeugten Menüpunkten.
- Geändert: Stylesheets: Separate Farben für Navigations- und andere Buttons.
- Geändert: Editor, Vorschau-Fenster: Smooth-Scrolling deaktiviert (kann im
  User-Stylesheet gesetzt worden sein).
- Geändert: Kontaktformular: Aufruf über internen geschützten Link ermöglicht.
- Bugfix: Editor: Base-URL wurde falsch ermittelt.
- Bugfix: Dialog "Externer Inhalt": Vorschaubild wurde nicht skaliert.
- Bugfix: Menü: Kleiner Anzeigefehler korrigiert.
- Bugfix: Artikel-Übersichtsseite: Artikel mit Dateiname "index" wurde nicht
  verlinkt.
- Bugfix: Rechtschreib-Korrektur in deutscher Sprachdatei.
- Bugfix: Menü: Schließen von Submenüs beim Öffnen eines anderen Submenüs
  korrigiert.
- Bugfix: Menü: Erkennung aktiver Items auch wenn die URL einen Sprunkanker (#)
  enthält.
- Bugfix: Snippet "Artikel-Card intern" ("Article card internal"): Funktioniert nun
  auch, wenn die URL einen Sprunkanker (#) enthält.
- Bugfix: Internen geschützten Link: Der Schriftstil des Absatzes wird beibehalten.

Version 1.10.3 (2026-06-29)

- Neu: Cookie-Einwilligungs-Dialog (wird erst gezeigt, wenn tatsächlich Cookies
  gesetzt werden).
- Neu: Generische Funktion zum Einfügen von Formularen für Einstellungen (Cookies,
  externe Inhalte, Statistikdaten).
- Geändert: Snippets in der Rubrik "Einstellungen" entfernt; Einstellungs-Formulare
  können nun als Textbaustein eingefügt werden.
- Geändert: Statistik-Script: Die beim Seitenaufruf gesendeten POST-Daten werden
  angezeigt.
- Geändert: Eingebettete externe Inhalte: Dialog-Design für Zustimmungsdialog
  überarbeitet.

Version 1.10.2 (2026-06-26)

- Geändert: Snippets zum Einfügen von Textbausteinen entfernt; Textbausteine können
  jetzt über den Dateimanager eingefügt werden.
- Geändert: Snippet "Absatz > Schützen": Methode zur Erkennung des Aufrufs der Seite
  über einen internen Link geändert.
- Neu: Editor: Über den Dateimanager können spezielle Links zu internen Seiten mit
  geschützten Informationen eingefügt werden.
- Neu: Menü: Zusatz type="protected" zum Verlinken interner Seiten mit geschützten
  Informationen (z.B. Kontaktdaten).
- Geändert: Snippet "Einzelnes Bild > als Tabelle": Statt des Bild-Dateipfades kann
  auch ein Base64-String mit den Bilddaten angegeben werden.
- Neu: Snippet "Einzelnes Bild > Base64-codieren": Erzeugt einen Base64-String aus
  den Bilddaten.
- Blog4u: Link zur Datenschutzerklärung von den Sprach-Dateien in die Config-Datei
  verschoben und via Setup konfigurierbar gemacht.
- Neu: Zugriffsschutz für Unterverzeichnisse.

Version 1.10.1 (2026-06-23)

- Neu: Robots-Tag <meta name="robots" content="noindex,nofollow,noarchive" /> -
  aktivierbar im Editor > Button "Bearbeiten".
- Neu: Snippet "Einzelnes Bild > als Tabelle" zum Einfügen einer Grafik als
  HTML-Tabelle (zum Schutz persönlicher Daten).
- Neu: Snuppet "Absatz > Schützen": Zeigt sensible Daten nur an, wenn die Seite
  über einen internen Link und durch einen „echten“ Benutzer aufgerufen wurde,
  oder nach Button-Klick.
- Neu: Fußbereich am Ende jeder Seite, konfigurierbar über Widgets-Editor.

Version 1.10.0 (2026-06-18)

- Neu: Popup-Links: Öffnet beim Anklicken eines Links zuerst ein Popup-Fenster mit
  beliebigem Text und Informationen zum Link. Auch Popups ohne Link sind möglich.
- Neu: Snippets zum Einfügen von Popup-Links (intern, extern, ohne Link).
- Geändert: Editor: Einfügen von Popup-Links zu Artikeln über den Dateimanager.
- Neu: Snippets "Sonderzeichen" zum Einfügen von typographischen Anführungszeichen,
  Apostroph und Gedankenstrich.
- Neu: Link-Icons für externe Links und Sprungmarken (Seitenanker).
- Diverse kleinere Bugfixes und Verbesserungen.

Version 1.9.1 (2026-05-12)

- Geändert: Kontaktformular: Schutz gegen Spam-Bots erweitert (es muss mit dem
  Formular interagiert werden).
- Geändert: Externe Inhalte in IFRAMEs: Automatische Ermittlung des Vorschaubildes.
- Geändert: Neues Snippet "IFRAME (Video, Karte, ...)" ersetzt die bisherigen
  Snippets "YouTube-Video" und "GoogleMaps-Karte".

Version 1.9.0 (2026-04-28)

- Neu: Externe Inhalte in IFRAMEs werden erst nach Zustimmung laden (Datenschutz)
  (weitere Hinweise hierzu in der Datei demo.php, Abschnitte "YouTube-Video" und
  "GoogleMaps-Karte").
- Neu: Snippets "Externe Inhalte" und "Website-Statistik" in der neuen Rubrik
  "Einstellungen" (weitere Hinweise hierzu in der Datei demo.php).
- Geändert: Statistik-Script: Funktion zum Ignorieren von Einträgen erweitert um
  Dialog und Referrer-URL.
- Geändert: Bei Aufruf von Seiten mit der Endung ".php" wird diese aus der
  Adresszeile entfernt, auch wenn ein Suchparameter angegeben ist.
- Bugfix: baseUrl wurde falsch ermittelt im Preview-Fenster des Editors.

Version 1.8.1 (2026-03-23)

- Neu: HTML-Header: Canonical-Tag wird gesetzt.
- Geändert: Bei Aufruf von Seiten mit Endung ".php" wird diese aus der Adresszeile
  entfernt.
- Geändert: Wenn der Aufrufer von Facebook kommt, wird der URL-Parameter "fbclid"
  ohne Wert an alle internen Links weitergereicht. Seiten können dies auswerten
  und darauf reagieren.
- Geändert: Bildbetrachter (ImageViewer): Bildbeschreibung im ALT-Tag:
  BB-Code-Parser angepasst.
- Geändert: Editor: Einfügen von Artikel-Links aus dem Dateimanager.
- Geändert: Statistik-Script: Nicht gefundene Seiten werden mit Fehlercode
  "404" kenntlich gemacht.
- Bugfix: HTTP-Fehlercode der Fehlerseite (z.B. 404) wird an Browser
  weitergeleitet.
- Bugfix: Statistik-Script: Datei "nolog.db" wird erzeugt, falls sie nicht
  existiert.

Version 1.8.0 (2026-03-03)

- Neu: Bildbetrachter (ImageViewer). Wird aktiviert via Snippet oder durch Einfügen
  der Bilder in eine FIGURE oder DIV mit class="viewer".
- Neu: Bildraster (ImageGrid), um Bilder als Thumbnails im Raster anzuordnen. Wird
  aktiviert via Snippet oder durch Einfügen in ein DIV mit class="image-grid".
- Neu: Snippets zum Auskommentieren von Inline-Text und Zeilen.
- Geändert: Snippets umorganisiert/umbenannt und Tooltips mit Hinweisen hinzugefügt.
- Geändert: Snippets zur Übersetzung von Link/Seite: Keine Angabe der Quellsprache
  mehr erforderlich; standardmäßig wird die Sprache des HTML-Dokuments verwendet.
- Geändert: Erweiterung des Website-Statistik-Scripts und Möglichkeit, das Logging
  eigener Seiteaufrufe zu deaktivieren.
- Kleinere Bugfixes.

Version 1.7.0 (2026-02-01)

- Neu: Gästebuch
- Neu: Umschaltung des Farb-Designs (Automatisch, Hell, Dunkel).
- Neu: RSS-Feed (incl. Widget)
- Neu: Mehrsprachige Artikel mit automatischer Umschaltung der Sprache.
- Neu: Snippets "Zentriert nebeneinander" und "Mehrsprachiger Artikel".
- Geändert: Titel und Beschreibung im HTML-Header der Artikel.
- Bugfix: Kategorie- und Schlagwort-Links unter dem Artikel waren fehlerhaft,
  wenn die Seite vom Typ "index" nicht die Startseite (Dateiname "index") war.
- Bugfix: "Hüpfen" der Seite beim Laden durch Initialisierung des Menüs.
- Bugfix: Table-Sorter korrigiert (lib/tableSorter.js).
- Weitere kleinere Bugfixes (z.B. Editor).

Version 1.6.0 (30.12.2025)

- Neu: Snippets "Artikel-Card intern", "Website-Card extern", "Audioclip für
  Playlist" und "Bereich aufklappbar".
- Geändert: HTML-Metadaten für Keywords, Website-Name, Artikel-Veröffentlichungs-
  und Aktualisierungs-Datum sowie Generator hinzugefügt.
- Geändert: Farbschema (light/dark) konfigurierbar gemacht.
- Bugfix: Kontaktformular XSS-sicher gemacht.

Version 1.5.0 (20.05.2025)

- Neu: Snippets "Tooltip" und "Kein automat. Umbruch".
- Geändert: Default-Stylesheet angepasst.
- Bugfix: Pfade in der sitemap.xml korrigiert.

Version 1.4.0 (04.07.2024)

- Neu: Archiv-Widget zur Auswahl der Artikel nach Jahr und Monat.
- Neu: Übersetzungs-Widget zur Übersetzung der Website in eine andere Sprache.

Version 1.3.0 (27.06.2024)

- Neu: Editor: "Veröffentlicht"-Flag für Artikel-Eigenschaften.
- Geändert: Nur veröffentlichte Artikel sind in Sitemap und Widgets enthalten.

Version 1.2.0 (26.06.2024)

- Neu: Print-Style zum Ausdrucken von Artikeln.
- Neu: Kontaktformular: Administrative Angaben sind nun ebenfalls mehrsprachig.

Version 1.1.0 (25.06.2024)

- Neu: Editor: Dark-Modus.

Version 1.0.1 (22.06.2024)

- Bugfix: Editor: Backup-Dialog: Button "Start" wird nun korrekt initialisiert.

Version 1.0 (21.06.2024)

- Erstveröffentlichung

