9 |
--------------------------------------------------------------------------------
/pages/inhalt/editor-wechseln/index.md:
--------------------------------------------------------------------------------
1 | # Editor wechseln
2 |
3 |
4 | Bludit verwendet standardmäßig den Editor SimpleMDE, einen einfachen und übersichtlichen Editor für Markdown Code. Man kann auch den Editor TinyMCE verwenden, der die einfache Erstellung und Bearbeitung von HTML Code ermöglicht.
5 | Diese beiden Editoren sind bei Bludit vorinstalliert und unter Plugins aufgelistet.
6 |
7 | ## Umstellung auf TinyMCE
8 | - Melde dich im **Administrationsbereich** an.
9 | - Wähle **Plugins** in der linken Seitenleiste.
10 | - Deaktiviere das Plugin **SimpleMDE**.
11 | - Aktiviere das Plugin **TinyMCE**.
12 | - Jetzt kannst du TinyMCE als Editor verwenden.
13 |
--------------------------------------------------------------------------------
/pages/erste-schritte/themes/index.md:
--------------------------------------------------------------------------------
1 | # Themes
2 |
3 |
4 | Bludit verwendet Themes (Gestaltungsvorlagen) für das Design von Websites oder Blogs.
5 |
6 | Von der Seite [Bludit Themes](https://themes.bludit.com) können verschiedene Themes heruntergeladen werden.
7 |
8 | ## Theme installieren und aktivieren
9 | 1. Lade das ZIP-Archiv mit dem Theme herunter.
10 | 2. Entpacke das ZIP-Archiv.
11 | 3. Kopiere das entpackte ZIP-Archiv in den Ordner '/bl-themes/' auf dem Server.
12 | 4. Klicke im Admin-Bereich in der Navigation in der linken Seitenleiste auf den Menüpunkt **Einstellungen** und wähle dann **Themes**.
13 | 5. Klicke **Aktivieren** beim Theme, das Du verwenden möchtest.
14 |
--------------------------------------------------------------------------------
/pages/inhalt/weiterlesen-link/index.md:
--------------------------------------------------------------------------------
1 | # "Weiterlesen"-Link
2 |
3 |
4 |
5 | Du kannst den Inhalt deiner Seite mit dem Tag `` aufteilen
6 |
7 | 
8 |
9 | Beispiel:
10 | ```
11 | This is the first part of the content of the page.
12 |
13 |
14 |
15 | This is the second part of the page.
16 | ```
17 |
18 |
25 | Diese Funktion ist abhängig vom eingesetzten Theme. Nicht alle unterstützen diese Funktion.
26 |
27 |
--------------------------------------------------------------------------------
/pages/erste-schritte/plugins/index.md:
--------------------------------------------------------------------------------
1 | # Plugins
2 |
3 |
4 | Mit Plugins können die Funktionen von Bludit erweitert werden.
5 |
6 | Einige Plugins sind standardmässig installiert. Nicht alle sind jedoch aktiviert.
7 |
8 | Weitere Plugins können von der Seite [Bludit Plugins](https://plugins.bludit.com) heruntergeladen werden.
9 |
10 | ### Plugin installieren
11 | 1. Das ZIP-Archiv mit dem Plugin herunterladen.
12 | 2. Das ZIP-Archiv entpacken.
13 | 3. Das entpackte ZIP-Archiv in den Ordner '/bl-plugins/' auf dem Server laden.
14 |
15 | ### Plugin aktivieren und konfigurieren
16 | 1. Im Admin-Bereich in der linken Seitenleiste unter "Einstellungen" den Menüpunkt **Plugins** klicken.
17 | 2. Beim Plugin, das verwendet werden soll, **Aktivieren** klicken.
18 | 3. Die meisten Plugins können durch Anklicken von **Einstellungen** den eigenen Bedürfnissen angepasst werden.
19 |
--------------------------------------------------------------------------------
/pages/bludit-pro/index.md:
--------------------------------------------------------------------------------
1 | # Bludit PRO
2 |
3 |
4 | ## Was ist Bludit PRO?
5 | Bludit PRO is Bludit with extra remarkable plugins. Bludit PRO doesn't have to be purchased nor requires any special licensing to use it.
6 |
7 | Bludit PRO is available for Backers and Sponsors from Open Collective. Donations and community support are what helps the project stay up and running. Support Bludit via Open Collective today and enjoy all the great features of Bludit plus more with Bludit PRO!
8 |
9 | - Werde [Unterstützer](https://opencollective.com/bludit#backer)
10 | - Werde [Sponsor](https://opencollective.com/bludit#sponsor)
11 | - [Open Collective](https://opencollective.com/bludit)
12 |
13 | ## Plugins included in Bludit PRO
14 | - [Timemachine](https://docs.bludit.com/en/bludit-pro/timemachine)
15 | - [Remote Content](https://docs.bludit.com/en/bludit-pro/remote-content)
16 | - Simple Stats
17 |
--------------------------------------------------------------------------------
/pages/sicherheit/admin-user-deaktivieren/index.md:
--------------------------------------------------------------------------------
1 | # Admin-User deaktivieren
2 |
3 |
4 | Bludit erstellt standardmäßig den Benutzer `admin` als Administrator für das System. Bludit verwendet diesen Benutzer für Kennwortwiederherstellungsereignisse, oder wenn Sie einen Benutzer löschen und seinen Inhalt beibehalten möchten, wird dieser Inhalt dem `admin`-Benutzer zugewiesen.
5 |
6 | Aus Sicherheitsgründen können Sie diesen Benutzer deaktivieren.
7 |
8 | ## So deaktivieren Sie den Admin-Benutzer
9 | Wenn Sie den Administrator des Systems deaktivieren möchten, stellen Sie sicher, dass Sie einen anderen Benutzer mit der Administratorrolle haben.
10 |
11 | - Gehen Sie zum Administrations-Bereich
12 | - Verwalten > Benutzer > admin
13 | - Benutzer bearbeiten > Status > Deaktivieren Sie den Benutzer
14 |
15 |
16 |
Aktivieren des Benutzers
17 | Um den Benutzer wieder zu aktivieren, müssen Sie ein neues Passwort festlegen.
18 |
19 |
--------------------------------------------------------------------------------
/pages/inhalt/bild-hochladen-und-einfuegen/index.md:
--------------------------------------------------------------------------------
1 | # Bild einfügen
2 |
3 |
4 |
5 | Beim Erstellen oder Bearbeiten einer Seite kannst du über die rechte Sidebar ein Bild hochladen und danach in den Seiteninhalt einfügen.
6 |
7 | 1. Öffne den Abschnitt **Bilder** auf der rechten Sidebar.
8 | 2. Auf den Button **Upload weitere Bilder** klicken
9 | 3. Auf den Button **Bild hochladen** klicken
10 | 4. Wähle das Bild auf deiner Festplatte aus
11 | 5. Nachdem das Bild hochgeladen wurde wird eine kleine Vorschau des Bildes angezeigt. Mit einem Klick kannst du es auswählen.
12 | 6. Wähle **Bild einfügen**
13 | 7. Das Bild ist nun eingefügt.
14 |
15 | 
16 |
17 |
18 |
Anmerkung
19 | Der eingefügte Code kann sich je nach Editor unterscheiden. Standardmäßig wird Markdown Code erzeugt.
20 |
21 |
--------------------------------------------------------------------------------
/pages/plugins/after-creation/index.md:
--------------------------------------------------------------------------------
1 | # Hook nach Seitenerstellung
2 |
3 |
4 | Nachdem eine Seite erstellt worden ist, ruft Bludit den Hook `afterPageCreate` auf. Dieser Hook wird auch für zur Veröffentlichung geplante Seiten verwendet
5 |
6 |
7 | Der Hook wurde mit der Version Bludit v3.13 erweitert.
8 |
9 |
10 | ## Beispiel: Zeichenkette zu einem Titel hinzufügen
11 | Das folgende Beispiel fügt eine Zeichenkette vor dem Titel ein, nachdem eine Seite erstellt worden ist.
12 |
13 | ```php
14 | title();
22 | $newTitle = 'Summer: '.$currentTitle;
23 |
24 | global $pages;
25 | $pages->edit(array(
26 | 'key'=>$key,
27 | 'title'=>$newTitle
28 | ));
29 | }
30 |
31 | }
32 |
33 | ?>
34 | ```
35 |
36 | Das Plugin mit dem Beispiel kann hier heruntergeladen werden:
37 | - https://github.com/bludit/examples/tree/master/plugins/title-appender
38 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2017 Bludit
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/pages/snippets/verwandte-inhalte/index.md:
--------------------------------------------------------------------------------
1 | # Verwandte Inhalte
2 |
3 |
4 | Mit dem Code der Beispiele können verwandte Inhalte (Seiten oder Beiträge) ausgegeben werden.
5 |
6 | ## Beispiel: Verwandte Inhalte
7 | Beim folgenden Beispiel werden die Titel verwandter Inhalte ausgegeben.
8 |
9 | ```php
10 | related();
12 | foreach ($relatedPages as $pageKey) {
13 | $related = new Page($pageKey);
14 | echo $related->title();
15 | }
16 | ?>
17 | ```
18 |
19 | ## Beispiel: Sortierung verwandter Inhalte
20 | Mit `->related()` wird eine unsortierte Liste verwandter Inhalte ausgegeben. Im folgenden Beispiel werden sie nach Datum sortiert.
21 |
22 | ```php
23 | related();
27 | foreach ($relatedPages as $pageKey) {
28 | $tmp = new Page($pageKey);
29 | $sort[$tmp->date['U']] = new Page($pageKey);
30 | }
31 |
32 | // Sort array by key which is unixtimestamp
33 | krsort($sort);
34 |
35 | // Print related page title and date
36 | foreach ($sort as $related) {
37 | echo $related->title();
38 | echo $related->date();
39 | }
40 | ?>
41 | ```
42 |
--------------------------------------------------------------------------------
/pages/inhalt/neuen-inhalt-erstellen/index.md:
--------------------------------------------------------------------------------
1 | # Inhalt erstellen
2 |
3 |
4 | Logge dich in den **Admin Bereich** ein und klicke auf den Punkt **Neuer Inhalt** im linken Menü.
5 |
6 | Fülle alle Felder aus und speichere deinen Beitrag mit einem Klick auf den Button **Speichern**.
7 | 
8 |
9 |
10 |
Hinweis
11 | Der Inhalt unterstützt Markdown und HTML-Code.
12 |
13 |
14 |
15 |
Editor
16 | Bludit verwendet standardmäßig den Editor SimpleMDE, du kannst aber auch TinyMCE oder einen anderen Editor benutzen. Wie man den Editor wechselt
17 |
18 |
19 |
20 |
Markdown
21 | Weitere Informationen zum Markdown Code findest du unter dem folgenden Link: Markdown Cheatsheet oder Markdown auf der Website Planet Bludit.
22 |
23 |
--------------------------------------------------------------------------------
/pages/inhalt/veroeffentlichung-planen/index.md:
--------------------------------------------------------------------------------
1 | # Veröffentlichung planen
2 |
3 |
4 |
5 | Du kannst eine Seite automatisch zu einem bestimmten Zeitpunkt veröffentlichen.
6 |
7 | Führe folgende Schritte aus um dies zu tun:
8 | 1. Erstelle einen neuen Inhalt
9 | 2. Klicke auf **Erweitert** in der rechten Sidebar.
10 | 3. Wähle hier das Datum der Veröffentlichung der Seite.
11 | 4. Der Status der Seite muss **Veröffentlicht** sein.
12 | 5. Vervollständige den Inhalt mitsamt Titel, Inhalt und sonstigen Angaben.
13 | 6. Klicke auf **Speichern**.
14 |
15 | 
16 |
17 |
18 |
Anmerkung
19 | Die Seiten mit geplanter Veröffentlichung erscheinen auf dem Dashboard und im Bereich Inhalte verwalten mit dem Label Geplant.
20 |
21 |
22 |
23 |
Anmerkung
24 | Bis zur Veröffentlichung der Seite ist diese für die User nicht sichtbar.
25 |
26 |
27 |
28 |
Anmerkung
29 | Das veröffentlichungsdatum kann im Adminbereich bearbeitet werden.
30 |
31 |
--------------------------------------------------------------------------------
/pages/plugins/benutzerdefinierte-hooks/index.md:
--------------------------------------------------------------------------------
1 | # Benutzerdefinierte Hooks
2 |
3 |
4 | Bludit unterstützt benutzerdefinierte Hooks für Plugins. Damit können Plugins an jeder beliebigen Stelle eines Themes aufgerufen werden.
5 |
6 |
7 | Benutzerdefinierte Hooks wurden mit Bludit v3.13 eingeführt.
8 |
9 |
10 | ## Beispiel
11 | Das folgende Beispiel definiert die zwei benutzerdefinierten Hooks `select` and `insert`.
12 |
13 | Damit die Hooks verwendet werden können, müssen sie (object methods) zum Array `$this->customHooks` der Methode `init()` hinzugefügt werden.
14 |
15 | ```php
16 | customHooks = array(
23 | 'select',
24 | 'insert'
25 | );
26 | }
27 |
28 | public function select()
29 | {
30 | echo 'Custom hook select';
31 | }
32 |
33 | public function insert()
34 | {
35 | echo 'Custom hook insert';
36 | }
37 | }
38 |
39 | ?>
40 | ```
41 |
42 | Nachdem das Plugin aktiviert worden ist, kann der benutzerdefinierte Hook mit dem Helper `Theme::plugins` im Theme aufgerufen werden.
43 |
44 | ```php
45 |
51 | ```
52 |
--------------------------------------------------------------------------------
/pages/sprachen/theme-uebersetzen/index.md:
--------------------------------------------------------------------------------
1 | # Übersetzen eines Themes
2 |
3 |
4 | Jedes Theme besitzt ein Verzeichnis `languages` in welchem sich unterschiedliche Dateien für jede unterstützte Sprache befinden.
5 |
6 | ```
7 | /bl-themes/{THEME_NAME}/languages/
8 | de_DE.json
9 | en.json
10 | es.json
11 | fr_FR.json
12 | ...
13 | ```
14 |
15 |
16 |
File Encoding
17 | All dictionary files are JSON files and are encoding on UTF-8.
18 |
19 |
20 | ---
21 |
22 | Folgendes Beispiel zeigt die Sprachdatei für die Sprache Englisch `en.json`.
23 | Jede Zeile ist ein Key-Value Paar mit dem Key auf der linken und dem Wert auf der rechten Seite.
24 |
25 |
{
26 | "theme-data":
27 | {
28 | "name": "Pure",
29 | "description": "Simple and clean, based on the framework Pure.css."
30 | }
31 | }
32 |
33 | Wie man sehen kann gibt es ein Feld mit dem Namen `theme-data`. Dieses hat den Namen und die Beschreibung des Themes.
34 |
35 | Folgendes Beispiel zeigt die Sprachdatei für die Sprache Spanisch `es.json`.
36 |
37 |
{
38 | "theme-data":
39 | {
40 | "name": "Pure",
41 | "description": "Simple y minimalista, basado en el framework Pure.css."
42 | }
43 | }
44 |
--------------------------------------------------------------------------------
/pages/erste-schritte/upgrade/index.md:
--------------------------------------------------------------------------------
1 | # Upgrade
2 |
3 |
4 | 1. Erstelle ein vollständiges Backup mit allen Dateien und Verzeichnissen.
5 | 2. Merke dir die Version von Bludit, die verwendet wurde, falls du aus irgendeinem Grund den Upgrade rückgängig machen musst.
6 | 3. Lade die neueste Version von Bludit von der [offiziellen Website](https://www.bludit.com/de/) herunter.
7 | 4. Entpacke das ZIP-Archiv.
8 | 5. Ersetze existierende Dateien mit den neuen Dateien.
9 | 6. Logge dich in den Admin-Bereich ein.
10 | 7. Fertig.
11 |
12 |
13 |
Upgrade von Bludit 1.x auf Bludit 2.x
14 | Lies dir vor dem Versions-Upgrade die Hinweise auf [blog](https://blog.bludit.com) durch, da hier Zusatzschritte nötig sind.
15 |
16 |
17 |
18 |
Wichtig
19 | Nach dem Upgrade ist es empfehlenswert alle Einstellungen im Admin-Bereich zu überprüfen.
20 |
21 |
22 |
23 |
Files auf den Server laden
24 | Um die Dateien auf den Server zu laden, kannst du einen FTP-Client verwenden. Weitere Informationen dazu findest du beispielsweise auf der Website Planet Bludit unter File Transfer Protocol (FTP).
25 |
33 | Nicht alle Themes unterstützen alle Hooks für Themes.
34 |
35 |
--------------------------------------------------------------------------------
/pages/erste-schritte/voraussetzungen/index.md:
--------------------------------------------------------------------------------
1 | # Voraussetzungen
2 |
3 |
4 | Benötigt wird ein Webserver oder Webhosting mit PHP-Unterstützung.
5 |
6 | Auf diesem muss folgendes installiert sein:
7 |
8 | - PHP v5.3 oder höher.
9 | - Die PHP-Erweiterung [mbstring](http://php.net/manual/de/book.mbstring.php) zur Unterstützung von UTF-8.
10 | - Die PHP-Bibliothek [GD](http://php.net/manual/de/book.image.php) zur Bildverarbeitung.
11 | - Die PHP-Erweiterung [DOM](http://php.net/manual/de/book.dom.php) für den Zugriff auf XML-Dokumente.
12 | - Die PHP-Erweiterung [JSON](http://php.net/manual/de/book.json.php) für die Verwendung des Datenaustauschformats JSON.
13 |
14 | ## Unterstützt werden beispielsweise folgende Webserver
15 |
16 | * [Eingebauter PHP-Webserver](http://php.net/manual/de/features.commandline.webserver.php)
17 | * Nginx mit dem Modul [ngx_http_rewrite_module](http://nginx.org/en/docs/http/ngx_http_rewrite_module.html)
18 | * Apache mit dem Modul [mod_rewrite](http://httpd.apache.org/docs/current/mod/mod_rewrite.html)
19 | * Lighttpd mit dem Modul [mod_rewrite](http://redmine.lighttpd.net/projects/1/wiki/docs_modrewrite)
20 | * Hiawatha mit [rewrite rules](https://www.hiawatha-webserver.org/howto/url_rewrite_rules)
21 | * H2O, vgl. dazu im Support-Forum den Eintrag [H2O HTTP/2 web server and Bludit](https://forum.bludit.org/viewtopic.php?f=6&t=1015)
22 |
--------------------------------------------------------------------------------
/pages/snippets/plugins/index.md:
--------------------------------------------------------------------------------
1 | # Plugins
2 |
3 |
4 | Snippets to help you work with plugins:
5 |
6 | ## Activate plugin
7 |
8 | ```
9 |
15 | ```
16 |
17 | ## Deactivate plugin
18 |
19 | ```
20 |
26 | ```
27 |
28 | ## Check if a plugin is activated (enabled)
29 |
30 | ```
31 |
41 | ```
42 |
43 | ## Get a plugin
44 | This function returns a [Plugin-Object](https://github.com/bludit/bludit/blob/master/bl-kernel/abstract/plugin.class.php).
45 |
46 | The plugin needs to be activated, otherwise the `getPlugin()` function returns `false`.
47 |
48 | ```
49 | label();
58 |
59 | // Execute the hook siteSidebar of the plugin and print it
60 | echo $plugin->siteSidebar();
61 | ?>
62 | ```
63 |
--------------------------------------------------------------------------------
/pages/sprachen/plugin-uebersetzen/index.md:
--------------------------------------------------------------------------------
1 | # Übersetzen eines Plugins
2 |
3 |
4 | Jedes Plugin besitzt ein Verzeichnis `languages` in welchem sich unterschiedliche Dateien für jede unterstützte Sprache befinden.
5 |
6 | ```
7 | /bl-plugins//languages/
8 | de_DE.json
9 | en.json
10 | es.json
11 | fr_FR.json
12 | ...
13 | ```
14 |
15 |
16 |
Dateikodierung
17 | Alle Dateien sind im JSON Format und dem Zeichensatz UTF-8.
18 |
19 |
20 | ---
21 |
22 | Folgendes Beispiel zeigt die Sprachdatei für die Sprache Englisch `en.json`.
23 | Jede Zeile ist ein Key-Value Paar mit dem Key auf der linken und dem Wert auf der rechten Seite.
24 |
25 |
{
26 | "plugin-data":
27 | {
28 | "name": "Page list",
29 | "description": "Shows the list of pages in order."
30 | },
31 |
32 | "home": "Home",
33 | "show-home-link": "Show home link"
34 | }
35 |
36 | Wie man sehen kann gibt es ein Feld mit dem Namen `plugin-data`. Dieses hat den Namen und die Beschreibung des Plugins.
37 | Die weiteren Felder sind die Übersetzungen für die Schlüssel `home` und `show-home-link`.
38 |
39 | Folgendes Beispiel zeigt die Sprachdatei für die Sprache Spanisch `es.json`.
40 |
41 |
{
42 | "plugin-data":
43 | {
44 | "name": "Listado de paginas",
45 | "description": "Muestra el listado de paginas en orden."
46 | },
47 |
48 | "home": "Inicio",
49 | "show-home-link": "Mostrar link de la pagina de incio"
50 | }
51 |
--------------------------------------------------------------------------------
/pages/sicherheit/brute-force-schutz/index.md:
--------------------------------------------------------------------------------
1 | # Brute-Force-Schutz
2 |
3 |
4 | ## Was ist eine Brute-Force-Angriff?
5 | Bei einem Brute-Force-Angriff handelt es sich um eine Methode, die versucht Passwörter oder Schlüssel durch automatisiertes, wahlloses Ausprobieren herauszufinden [Wikipedia](https://de.wikipedia.org/wiki/Brute-Force-Methode).
6 |
7 | ## Wie funktioniert der Schutz?
8 | Bludit bietet einen Brute-Force-Schutz zur Abwehr dieser Art von Angriffen und ist standardmäßig aktiviert.
9 |
10 | Bei jedem fehlgeschlagenen Login fügt Bludit die IP des Benutzers, dessen Authentifizierung fehlgeschlagen ist, einer Blacklist hinzu. Wenn der Benutzer sich mehrmals fehlerhaft anmeldet, blockiert Bludit die entsprechende IP für einen bestimmten Zeitraum und der Benutzer kann sich erst anmelden, wenn die Blockierung abgelaufen ist.
11 |
12 | ## Klasse und Objekt
13 | Es existiert ein `Sicherheits Objekt` mit dem Namen `$security` der entsprechenden Klasse `/bl-kernel/security.class.php`. Schauen Sie sich die Variablen in der Klasse an.
14 |
15 |
22 |
23 | - `minutesBlocked`: Die Anzahl der Minuten, in der die IP blockiert wird.
24 | - `numberFailuresAllowed`: Anzahl der fehlgeschlagenen Versuche, nach denen die Sperre ausgelöst wird.
25 | - `blackList`: Die Liste der blockierten IP-Adressen.
26 |
27 |
28 |
Hinweis
29 | Sie können diese Werte für Ihre eigenen Anforderungen anpassen.
30 |
31 |
--------------------------------------------------------------------------------
/pages/erste-schritte/einfuehrung/index.md:
--------------------------------------------------------------------------------
1 | # Einführung
2 |
3 |
4 |
5 | Bludit ist eine Web-Anwendung, mit der schnell und einfach **Websites** oder **Blogs** eingerichtet werden können. Sie ist völlig **kostenlos** und **Open Source**. Bludit verwendet Dateien im Format **JSON**, um die Inhalte zu speichern, es muss deshalb keine Datenbank installiert und konfiguriert werden. Alles, was benötigt wird, ist ein Server, auf dem PHP installiert ist.
6 |
7 |
Information und Hilfe
8 | Informationen, Fragen und Diskussionen.
9 | * [Gitter](https://gitter.im/bludit/support), Online-Chat
10 | * [Support-Forum](https://forum.bludit.org) mit deutschsprachigem Forum
11 | * [Deutschsprachiger Newsletter](http://eepurl.com/b6mpKf)
12 | * [Planet Bludit](https://planet-bludit.ch), deutschsprachige Website mit Tipps und Snippets
13 |
14 |
15 |
Soziale Medien
16 | Hinweise auf Neuigkeiten und Kontakte mit anderen Benutzern.
17 | * [Twitter](https://twitter.com/bludit) **@bludit**
18 | * [Facebook](https://www.facebook.com/bluditcms)
19 | * [Youtube](https://www.youtube.com/channel/UCuLu0Z_CHBsTiYTDz129x9Q)
20 |
21 |
26 | Spenden und die Unterstützung der Community sind das, was das Projekt in Gang hält. Unterstütze Bludit mit einer Spende über PayPal oder über Patreon und erhalte dafür Bludit Pro.
27 | * [Paypal](https://www.paypal.me/bluditpro/5)
28 | * [Patreon](https://www.patreon.com/bludit) - Beiträge geben Zugang zu Bludit Pro.
29 |
30 |
Lizenz
31 | Bludit ist Open-Source-Software und steht unter der [MIT-Lizenz](https://tldrlegal.com/license/mit-license).
32 |
--------------------------------------------------------------------------------
/pages/sicherheit/passwort-wiederherstellen/index.md:
--------------------------------------------------------------------------------
1 | # Passwort wiederherstellen
2 |
3 |
4 | Sie können das Passwort für den Benutzer `admin` mit dem Skript `recovery.php` wiederherstellen.
5 |
6 |
7 |
So stellen Sie das Passwort wieder her
8 |
9 | 1. Laden Sie folgende Datei herunter [recovery.php](https://raw.githubusercontent.com/bludit/password-recovery-tool/master/recovery.php)
10 | 2. Diese Datei `recovery.php` laden Sie in Ihre Bludit Installation, in den Wurzel-Ordner, herauf.
11 | 3. Öffnen Sie diese Datei in Ihrem Webbrowser, zum Beispiel: https://example.com/recovery.php, ändern Sie `example.com` zu Ihrer Domain.
12 | 4. Ein neues Passwort für den `admin` Benutzer wird generiert und im Browser angezeigt.
13 | 5. Melden Sie sich im Administrations-Bereich mit dem Benutzer `admin` und dem neuen generierten Passwort an.
14 |
15 | Das Skript recovery.php wird versuchen, sich selbst zu löschen. Sollte dies jedoch nicht der Fall sein, empfehlen wir, die Datei recovery.php manuell zu löschen.
16 |
17 | ---
18 |
19 |
So stellen Sie das Passwort über die Befehlszeile wieder her
20 |
21 | Sie können die PHP-Datei `recovery.php` über die Befehlszeile ausführen.
22 |
23 | ```
24 | # Wechseln Sie in das Verzeichnis, in dem Sie Bludit installiert haben
25 | cd /var/html/bludit
26 |
27 | # Laden Sie die Datei herunter
28 | curl -o recovery.php https://raw.githubusercontent.com/bludit/password-recovery-tool/master/recovery.php
29 |
30 | # Führen Sie das Tool aus
31 | php recovery.php
32 | ```
33 |
34 | ```
35 | Bludit Password Recovery Tool
36 |
37 | Username: admin
38 | New password: 00bef4566011d2015df2786dbd094003
39 |
40 | >> The file recovery.php was deleted automatically for security reasons. <<
41 | ```
--------------------------------------------------------------------------------
/pages/themes/grundlagen/index.md:
--------------------------------------------------------------------------------
1 | # Grundlagen
2 |
3 |
4 | Bludit ist bei Themes sehr flexibel und erlaubt die Verwendung jedes Frameworks ([Bootstrap](http://getbootstrap.com/), [Kube](http://imperavi.com/kube/), [Pure.io](purecss.io), [Skel](https://github.com/n33/skel), [Less](http://lesscss.org/), etc), jeglichen Javascript code oder was immer du möchtest.
5 |
6 | Alle Themes liegen im Verzeichnis 'bl-themes' und haben eine vordefinierte Struktur.
7 |
8 | ### Inhalt
9 | 1. [Theme Verzeichnisstruktur](#structure)
10 | 2. [Information über das Theme](#information)
11 | 3. [Name und Beschreibung](#name-description)
12 |
13 | ---
14 |
15 | ## Theme Verzeichnisstruktur
16 | Dies ist die Verzeichnisstruktur mitsamt der benötigten Dateien für ein Theme.
17 | ```
18 | /bl-themes/{THEME_NAME}/
19 | language/en.json
20 | metadata.json
21 | index.php
22 | ```
23 |
24 | ## Information über das Theme
25 | Die Information des Themes befindet sich in der JSON Datei `metadata.json`.
26 |
49 | Wir haben ein Gibhub-Repository mit Beispielen, welches du unter folgendem Link findest: Bludit Theme Beispiele.
50 |
51 |
--------------------------------------------------------------------------------
/pages/entwickler/verzeichnisstruktur/index.md:
--------------------------------------------------------------------------------
1 | # Verzeichnisstruktur
2 |
3 |
4 | Das ist die Verzeichnisstruktur von Bludit.
5 |
6 | ```
7 | bl-content/
8 | bl-kernel/
9 | bl-languages/
10 | bl-plugins/
11 | bl-themes/
12 | ```
13 |
14 | ## bl-content
15 | Dieses Verzeichnis ist sehr wichtig, da Bludit dort alle Dateien - Datenbanken als auch Bilder - ablegt. Vor einem Update wird dringend dazu geraten, von diesem Verzeichnis eine Sicherung anzulegen.
16 |
17 | ```
18 | bl-content/
19 |
20 | databases/
21 | plugins/ <-- Database: plugins
22 | pages.php <-- Database: pages
23 | security.php <-- Database: black list, brute force protection, others
24 | site.php <-- Database: site variables, name, description, slogan, others
25 | tags.php <-- Database: tags
26 | users.php <-- Database: users
27 |
28 | pages/ <-- Content: pages
29 | about/index.txt
30 | food/index.txt
31 |
32 | tmp/ <-- Temp files
33 |
34 | uploads/ <-- Uploaded files
35 | profiles/ <-- Profiles images
36 | thumbnails/ <-- Thumbnails images
37 | photo1.jpg
38 | photo2.png
39 | ```
40 |
41 | ## bl-kernel
42 | Dieses Verzeichnis beinhaltet den Logik-Kern von Bludit.
43 |
44 | ## bl-languages
45 | In diesem Verzeichnis befinden sich alle Sprachdateien im JSON-Format und dem Zeichensatz UTF-8.
46 |
47 | ```
48 | bl-languages/
49 | bg_BG.json
50 | cs_CZ.json
51 | de_CH.json
52 | en.json
53 | es.json
54 | ...
55 | ```
56 |
57 | ## bl-plugins
58 | In diesem Verzeichnis befinden sich alle Plugins. Neue Plugins müssen hier abgelegt werden damit sie erkannt werden.
59 |
60 | ```
61 | bl-plugins/
62 | about/
63 | disqus/
64 | rss/
65 | sitemap/
66 | simplemde/
67 | ...
68 | ```
69 |
70 | ## bl-themes
71 | Dieses Verzeichnis beinhaltet alle Themes. Neue Themes müssen hier abgelegt werden, damit sie erkannt werden.
72 |
73 | ```
74 | bl-themes/
75 | clean-blog/
76 | kernel-panic/
77 | ...
78 | ```
79 |
--------------------------------------------------------------------------------
/pages/plugins/grundlagen/index.md:
--------------------------------------------------------------------------------
1 | # Grundlagen
2 |
3 |
4 | Plugins befinden sich bei Bludit im Verzeichnis `bl-plugins` und haben eine vordefinierte Verzeichnis- und Dateistruktur.
5 | Jedes Plugin ist in Bludit als Objekt mit Hooks (Methoden) dargstellt und ansprechbar.
6 |
7 | ### Inhalt
8 | 1. [Hello World](#hello-world)
9 | 2. [Plugin Struktur](#structure)
10 | 3. [Informationen über das Plugin](#information)
11 | 4. [Name und Beschreibung](#name-description)
12 |
13 | ---
14 |
15 | ## Hello World
16 | Das "Hello World" Plugin für Bludit.
17 |
24 |
25 | ## Plugin Struktur
26 | Das ist die vorgegebene Verzeichnis- und Dateistruktur für ein Plugin.
27 | ```
28 | /bl-plugins/{PLUGIN_NAME}/
29 | language/en.php
30 | metadata.json
31 | plugin.php
32 | ```
33 |
34 | ## Informationen über das Plugin
35 | Die Informationen über das Plugin befinden sich in der JSON-Datei `metadata.json`.
36 |
46 |
47 | ## Name und Beschreibung
48 | Der Name und die Beschreibung des Plugins befinden sich in der JSON-Datei `languages/en.json`.
49 |
{
50 | "plugin-data":
51 | {
52 | "name": "Hello World",
53 | "description": "Print Hello World in the sidebar"
54 | }
55 | }
56 |
57 |
58 |
Beispiele
59 | Wir haben ein Gibhub-Repository mit Beispielen, welches du unter folgendem Link findest: Bludit Beispiele.
60 |
61 |
--------------------------------------------------------------------------------
/pages/developers/site-object/index.md:
--------------------------------------------------------------------------------
1 | # Site Object
2 |
3 |
4 |
5 | Das Objekt `$Site` beinhaltet alle Informationen über die Datenbank `/bl-content/databases/site.php`
6 |
7 | ## Methoden und Beispiele
8 |
9 | ### URL Filter
10 | Die Rückgabewerte sind Standardwerte und können vom User geändert werden.
11 |
12 |
# Get the admin filter
13 | $Site->uriFilters('admin'); # returns /admin/
14 |
15 | #Get the post filter
16 | $Site->uriFilters('post'); # returns /post/
17 |
18 | #Get the page filter
19 | $Site->uriFilters('page'); # returns /
20 |
21 | #Get the tag filter
22 | $Site->uriFilters('tag'); # returns /tag/
23 |
24 | #Get the blog filter
25 | $Site->uriFilters('blog'); # returns /blog/
26 |
27 |
28 | ### Seitentitel
29 |
echo $Site->title();
30 |
31 | ### Seiten-Slogan
32 |
echo $Site->slogan();
33 |
34 | ### Seitenbeschreibung
35 |
echo $Site->description();
36 |
37 | ### Fußzeilentext
38 |
echo $Site->footer();
39 |
40 | ### Aktuelles Theme
41 |
$theme = $Site->theme();
42 |
43 | ### Aktuelles Theme für den Admin-Bereich
44 |
$theme = $Site->adminTheme();
45 |
46 | ### Eingestellte Zeitzone
47 |
echo $Site->timezone();
48 |
49 | ### Eingestellte Sprache
50 |
echo $Site->language();
51 |
52 | ### Eingestellte Locale
53 |
echo $Site->locale();
54 |
55 | ### Eingestellte Haupt-Seite
56 |
echo $Site->homepage();
57 |
58 | ### Anzahl der Seiten auf einer Seite
59 |
echo $Site->postsPerPage();
60 |
61 | ### Aktuelle Version von Bludit
62 |
echo $Site->currentBuild();
63 |
--------------------------------------------------------------------------------
/pages/developers/url-object/index.txt:
--------------------------------------------------------------------------------
1 | Title: Url Object
2 | Position: 100
3 | Status: draft
4 | Content:
5 | Where am I. This method returns where the user is browsing.
6 |
// If user browser http://domain.com/myfirstpage and the page filter is /
7 | echo $Url->whereAmI(); // Returns page
8 |
9 | // If user browse http://domain.com/post/mypost and the post filter is /post/
10 | echo $Url->whereAmI(); // Returns post
11 |
12 | // If user browse http://domain.com/tag/dog and the tag filter is /tag/
13 | echo $Url->whereAmI(); // Returns tag
14 |
15 | // If user browse the homepage http://domain.com
16 | echo $Url->whereAmI(); // Returns home
17 |
18 |
19 | Working with slugs.
20 |
// If user browse http://domain.com/myfirstpage
21 | echo $Url->slug(); // Print myfirstpage
22 |
23 | // If user browse http://domain.com/post/mypost and the post filter is /post/
24 | echo $Url->slug(); // Print mypost
25 |
26 | // If user browse http://domain.com/tag/dog and the tag filter is /tag/
27 | echo $Url->slug(); // Print dog
28 |
29 |
30 | Working with URI.
31 |
// If user browse http://domain.com/myfirstpage
32 | echo $Url->uri(); // Print myfirstpage
33 |
34 | // If user browse http://domain.com/post/mypost
35 | echo $Url->slug(); // Print /post/mypost
36 |
37 | // If user browse http://domain.com/tag/dog
38 | echo $Url->slug(); // Print /tag/dog
39 |
62 |
--------------------------------------------------------------------------------
/pages/api/introduction/index.md:
--------------------------------------------------------------------------------
1 | # API Grundlagen
2 |
3 |
4 |
5 | ---
6 | Die Bludi API (Application Programming Interface) ist ein Plugin das die Integration von Bludit ermöglicht.
7 | Mit diesem Plugin ist es möglich Daten aus der Datenbank mit einem HTTP Request abzufragen oder zu aktualisieren.
8 |
9 | ### Content
10 | 1. [Installation](#installation)
11 | 2. [URL](#url)
12 | 3. [Endpoints und Methoden](#endpoints)
13 | 4. [Methoden Parameter](#inputs)
14 | 4. [HTTP Response](#http-response)
15 |
16 | ---
17 |
18 | ## Installation
19 | Das API-Plugin ist mit der Installation von Bludit automatisch dabei. Es muss nur über das Admin-Panel **Admin panel->Plugins->API->Aktivieren** aktiviert werden.
20 |
21 | ## URL
22 | Die URL der API lautet
23 | ```
24 | {protocol}://{domain}/api/{endpoint}
25 | ````
26 |
27 | Example:
28 | ```
29 | https://example.com/api/pages
30 | ```
31 |
32 | ## Endpoints und Methoden
33 |
34 | Endpoint | Method | Beschreibung
35 | ------------------------|---------------|-----------------------------------------------|
36 | /pages | GET | Gibt ein Array mit einer Liste aller Seiten zurück. |
37 | /pages/ | GET | Gibt eine Seite anhand des Schlüssels zurück |
38 | /pages | POST | Erstellt eine neue Seite |
39 |
40 | ## Methoden Parameter
41 |
42 | Key | Type | Beschreibung
43 | ----------------|---------------|-----------------------------------------------|
44 | token | string | API token |
45 | limit | integer | Eine Zahl um die Anzahl der Seiten zu begrenzen |
46 | authentication | string | Authentifizierungs User Token |
47 |
48 | ## HTTP Response
49 | Das zurückgegebene Format ist JSON mit folgenden Feldern:
50 |
51 | | Key | Type | Beschreibung |
52 | ----------------|---------------|-----------------------------------------------|
53 | | message | string | Gibt eine kleine Message über das Ergebnis des Requests zurück. |
54 | | data | array | Der Inhalt der Antwort dieses Endpoints |
55 |
56 | Außerdem kann man über den HTTP-Code die verschiednen Antworten prüfen.
57 |
--------------------------------------------------------------------------------
/pages/themes/example-my-first-theme/index.md:
--------------------------------------------------------------------------------
1 | # Beispiel: Mein erstes Theme
2 |
3 |
4 | Nachfolgend erstellen wir ein neues, einfaches Theme mit dem Namen 'Coffee'.
5 |
6 | - Erstelle das Theme-Verzeichnis im Verzeichnis `/bl-themes/`, in unserem Fall `/bl-themes/coffee/`
7 | - Erstelle das Verzeichnis `languages` im Theme-Verzeichnis `/bl-themes/coffee/`
8 | - Erstelle die Datei `en.json` im Verzeichnis `/bl-themes/coffee/languages/`
9 | - Erstelle die Datei `metadata.json` im Verzeichnis `/bl-themes/coffee/`
10 | - Erstelle die Datei `index.php` im Verzeichnis `/bl-themes/coffee/`
11 |
12 | Die Verzeichnisstruktur mit den eben erstellten Dateien muss jetzt so aussehen:
13 | ```
14 | /bl-themes/coffee/
15 | language/en.json
16 | metadata.json
17 | index.php
18 | ```
19 |
20 | Im nächsten Schritt erstellen wir den Inhalt der Dateien. Wir beginnen mit der Datei `index.php` und fügen dieser folgenden HTML und PHP Code zu.
21 |
22 | ```html
23 |
24 |
25 |
26 |
27 | Bludit
28 |
29 |
30 |
31 |
32 |
title() ?>
33 |
content() ?>
34 |
35 |
36 |
37 |
38 |
39 |
40 | ```
41 |
42 | Bearbeite jetzt die Datei `languages/en.json` um den Namen und die Beschreibung des Themes hinzuzufügen.
43 |
{
44 | "theme-data":
45 | {
46 | "name": "Coffee",
47 | "description": "This is my first theme for Bludit."
48 | }
49 | }
50 |
51 |
52 | Jetzt bearbeiten wir die Datei `metadata.json` um die Informationen über das Theme zu vervollständigen.
53 |
64 |
65 | Herzlichen Glückwunsch, du hast soeben dein erstes Theme für Bludit erstellt!
66 |
67 |
68 |
Beispiele
69 | Wir haben ein Gibhub-Repository mit Beispielen, welches du unter folgendem Link findest: Bludit Theme Beispiele.
70 |
71 |
--------------------------------------------------------------------------------
/pages/erste-schritte/installation/index.md:
--------------------------------------------------------------------------------
1 | # Installation
2 |
3 |
4 | Bludit ist in wenigen Schtitten installiert:
5 |
6 | 1. Lade die neueste Version von Bludit von der [offiziellen Website](https://www.bludit.com/de/) herunter.
7 | 2. Entpacke das ZIP-Archiv.
8 | 3. Lade den Inhalt des ZIP-Archivs in das Verzeichnis auf deinem Server, in dem du Bludit installieren möchtest. Das kann im Hauptverzeichnis sein (root) oder in einem Unterverzeichnis wie beispielsweise `/bludit`.
9 | 4. Rufe im Browser die Domain mit der Installation auf. Befindet sie im Hauptverzeichnis `https://meinedomain.ch`, wenn sie sich in einem Unterverzeichnis befindet beispielsweise `https://meinedomain.ch/bludit`.
10 | 5. Der Bludit-Installer führt dich darauf durch die Einrichtung der Website.
11 |
12 | ---
13 |
14 |
Installation in einem Unterverzeichnis
15 |
16 | Wird Bludit in einem Unterverzeichnis eingerichtet, muss bei einigen Hostern die Datei `.htaccess` im Installationsverzeichnis angepasst werden.
17 |
18 | Wird Bludit beispielsweise im Unterverzeichnis `bludit` installiert, muss in diesem Falle die Datei `.htaccess` wie folgt angepasst werden (Zeile 9):
19 |
20 | ```
21 | # Base directory
22 | RewriteBase /bludit/
23 | ```
24 |
25 | ---
26 |
27 |
IIS (Internet Information Services)
28 |
29 | Für die Installation mit IIS (Internet Information Services, früher: Internet Information Server) von Microsoft muss die Datei .htaccess angepasst werden.
30 |
31 | Beispielsweise:
32 |
33 | ```
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 | ```
46 |
47 | ---
48 |
49 |
50 |
Zeitzone
51 | Bludit versucht deine Zeitzone automatisch zu ermitteln. Es empfiehlt sich aber, die Einstellung der Zeitzone nach der Installation im Administrationsbereich unter Einstellungen > Sprache/Zeitzone > Zeitzone zu überprüfen.
52 |
53 |
54 |
55 |
Dateien auf den Server laden
56 | Um die Dateien auf den Server zu laden, kannst du einen FTP- oder SFTP-Prograamm (FTP-Client) oder WebFTP verwenden. Weitere Informationen dazu findest du beispielsweise auf der Website Planet Bludit unter File Transfer (FTP und SFTP).
57 |
58 |
--------------------------------------------------------------------------------
/pages/verschiedenes/plugin-oder-theme-zu-repositories-hinzufuegen/index.md:
--------------------------------------------------------------------------------
1 | # Plugin oder Theme zu den Repositories hinzufügen
2 |
3 |
4 | Wenn du eine Plugin oder ein Theme entwickelt hast, das du auch anderen Usern zur Verfügung stellen möchtest, kannst du es zu unseren Repositories hinzufügen. Dann werden diese auch auf den offiziellen Seiten aufgelistet:
5 | [Bludit Plugins](https://plugins.bludit.com) und [Bludit Themes](https://themes.bludit.com).
6 |
7 | ## Voraussetzungen
8 | - Das Plugin oder das Theme muss sich in einem öffentlichen Github Repository befinden.
9 | - Das Repository muss ich in einer bestimmten Verzeichnisstruktur befinden. (siehe unten)
10 |
11 | ## Vordefinierte Struktur für das Quell-Repository
12 | Im Hauptverzeichnis muss sich der Quellcode und die folgenden Dateien befinden:
13 | ```
14 | languages/en.json
15 | metadata.json
16 | ...
17 | ```
18 |
19 | Nachfolgend ein Link zu einem Beispiel-Plugin
20 | - https://github.com/bludit-plugins/hello
21 |
22 | Nachfolgend ein Link zu einem Beispiel-Theme
23 | - https://github.com/bludit-themes/massively
24 |
25 | ## Das Repository zu der Liste hinzufügen
26 | Hast du das Quell-Repository erstellt kannst du dessen URL auf unsere Liste setzen.
27 |
28 | Die URL-Liste der Plugins befindet sich hier:
29 | - https://github.com/bludit/plugins/blob/master/repositories.txt
30 |
31 | Die URL-Liste der Themes befindet sich hier:
32 | - https://github.com/bludit/themes/blob/master/repositories.txt
33 |
34 | ## Bearbeiten der Datei repositories.txt
35 | Um diese Datei bearbeiten zu können, musst du einen Pull-Request erzeugen.
36 | Die unten dargestellten Bilder zeigen wie dies über den Webbrowser gemacht wird und zeigen, wie man die Datei `repositories.txt` bearbeitet. Auf die gleiche Weise lässt sich die Datei für die Themes bearbeiten.
37 |
38 | ### Schritt 1: Auf das Stift-Symbol klicken
39 | 
40 |
41 | ### Schritt 2: Die URL des Quell-Repositories hinzufügen
42 | 
43 |
44 | ### Schritt 3: Titel und Beschreibung des Themes oder Plugins vervollständigen
45 | 
46 |
47 | ### Schritt 4: Auf den Button klicken um einen Pull Request zu erzeugen
48 | 
49 |
50 | ### Schritt 5: Titel und Beschreibung prüfen und auf den Button "Create pull request" klicken
51 | 
52 |
53 | ### Schritt 6: Erledigt!
54 | 
55 |
--------------------------------------------------------------------------------
/pages/webservers/nginx/index.md:
--------------------------------------------------------------------------------
1 | # Nginx
2 |
3 |
4 |
5 | Bludit supports Nginx and is a recommended option for a Webserver.
6 |
7 | Bludit has hiw own `router` who handle all request and response, so the idea is give it all the request to the `index.php` file.
8 |
9 | Considerations:
10 | - The webserver is running PHP-FPM as CGI Process Manager
11 | - PHP-FPM is listen on Unix socket on `unix:/run/php/php-fpm.sock`.
12 |
13 | ## HTTP set up
14 | In order to set up a new server block for Bludit, generate a new file with the configuration in `/etc/nginx/conf.d/bludit.conf`, this directory could be different in other distributions of GNU/Linux, for example, in Ubuntu could be `/etc/nginx/sites-enabled/bludit.conf`.
15 |
16 | ```
17 | server {
18 | listen 80;
19 | server_name example.com;
20 | root /www/bludit;
21 | index index.php;
22 |
23 | access_log /var/log/nginx/example.log;
24 | error_log /var/log/nginx/example.log;
25 |
26 | location ~ \.(jpg|jpeg|gif|png|css|js|ico|svg|eot|ttf|woff|woff2|otf)$ {
27 | access_log off;
28 | expires 30d;
29 | }
30 |
31 | location ~ \.php$ {
32 | fastcgi_pass unix:/run/php/php-fpm.sock;
33 | fastcgi_index index.php;
34 | include fastcgi.conf;
35 | }
36 |
37 | location / {
38 | try_files $uri $uri/ /index.php?$args;
39 | }
40 | }
41 | ```
42 |
43 | ## HTTPS set up
44 | HTTPS configuration has some extra configurations and of course the SSL certificate. We recommend use [LetsEncrypt](https://letsencrypt.org) to get a free certificate.
45 |
46 | The server block has this configuration, and we add and extra block to redirect request from HTTP to HTTPS.
47 | ```
48 | server {
49 | listen 443 ssl;
50 | server_name example.com;
51 | root /www/bludit;
52 | index index.php;
53 |
54 | access_log /var/log/nginx/example.log;
55 | error_log /var/log/nginx/example.log;
56 |
57 | ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
58 | ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
59 | ssl_dhparam /etc/ssl/certs/dhparam.pem;
60 |
61 | ssl_session_cache shared:SSL:50m;
62 | ssl_session_timeout 10m;
63 |
64 | ssl_prefer_server_ciphers on;
65 | ssl_stapling on;
66 | ssl_stapling_verify on;
67 | ssl_protocols TLSv1.1 TLSv1.2;
68 | ssl_ciphers "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";
69 |
70 | add_header Strict-Transport-Security "max-age=31557600; includeSubDomains";
71 |
72 | location ~ \.(jpg|jpeg|gif|png|css|js|ico|svg|eot|ttf|woff|woff2|otf)$ {
73 | access_log off;
74 | expires 30d;
75 | }
76 |
77 | location ~ \.php$ {
78 | fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
79 | fastcgi_index index.php;
80 | include fastcgi.conf;
81 | fastcgi_param HTTPS on;
82 | }
83 |
84 | location / {
85 | try_files $uri $uri/ /index.php?$args;
86 | }
87 | }
88 |
89 | # Redirect from HTTP to HTTPS
90 | server {
91 | listen 80;
92 | server_name example.com;
93 | return 301 https://example.com$request_uri;
94 | }
95 | ```
96 |
97 |
--------------------------------------------------------------------------------
/pages/advanced/installation-on-gnu-linux/index.md:
--------------------------------------------------------------------------------
1 | # Installation on GNU/Linux
2 |
3 |
4 | All examples are out of the box installation, with Nginx Webserver. If you have the steps for other distributions, you can publish it on the [forum](https://forum.bludit.org) or just edit this page on Github, you can find a button at the end of the page with the link.
5 |
6 | ### Content
7 | 1. [Installation on Ubuntu 16.04](#ubuntu)
8 | 2. [Installation on Centos 7 / RedHat 7](#centos)
9 |
10 | ---
11 |
12 | ## Installation on Ubuntu 16.04 LTS
13 |
14 | Considerations:
15 | - PHP-FPM is running under the username `www-data`.
16 | - PHP-FPM is listen on Unix socket on `unix:/run/php/php7.0-fpm.sock`.
17 | - Nginx is running under the username `www-data`.
18 | - You don't have installed any other webserver.
19 | - This is a basic configuration, considere read more for production environments.
20 |
21 | Install Nginx Webserver, PHP and some tools.
22 | ```
23 | $ sudo apt install -y nginx php-fpm php-dom php-mbstring php-cli php-gd php-opcache unzip wget
24 | ```
25 |
26 | Configure Nginx.
27 | ```
28 | $ sudo rm -f /etc/nginx/sites-enabled/*
29 | ```
30 |
31 | Add a new file with the virtual server block in `/etc/nginx/conf.d/bludit.conf`
32 | ```
33 | server {
34 | listen 80;
35 | server_name _;
36 | root /www/bludit;
37 | index index.php;
38 |
39 | location ~ \.php$ {
40 | fastcgi_pass unix:/run/php/php7.0-fpm.sock;
41 | include fastcgi.conf;
42 | }
43 |
44 | location / {
45 | try_files $uri $uri/ /index.php?$args;
46 | }
47 | }
48 | ```
49 |
50 | Download the latest version of Bludit and uncompress it.
51 | ```
52 | $ mkdir /www
53 | $ cd /www
54 | $ wget https://s3.amazonaws.com/bludit-s3/bludit-builds/bludit_latest.zip
55 | $ unzip bludit_latest.zip
56 | $ sudo chown -R www-data:www-data /www
57 | ```
58 |
59 | Restart the services to load the new configurations.
60 | ```
61 | $ sudo service php7.0-fpm restart
62 | $ sudo service nginx restart
63 | ```
64 |
65 | Open your browser and navigate to http://localhost, finish with the installation.
66 |
67 | ---
68 |
69 | ## Installation on Centos 7 / Red Hat 7
70 |
71 | Considerations:
72 | - PHP-FPM is running under the username `nginx`.
73 | - PHP-FPM is listen on Unix socket on `unix:/run/php/php-fpm.sock`.
74 | - Nginx is running under the username `nginx`.
75 | - You don't have installed any other webserver.
76 | - This is a basic configuration, considere read more for production environments.
77 |
78 | ```
79 | $ sudo yum install -y epel-release
80 | ```
81 |
82 | Install Nginx Webserver, PHP and some tools.
83 | ```
84 | $ yum install -y nginx php-fpm php-cli php-dom php-mbstring php-zip php-gd
85 | ```
86 |
87 | Configure Nginx, add a new file with the virtual server block in `/etc/nginx/conf.d/bludit.conf`
88 | ```
89 | server {
90 | listen 80;
91 | server_name _;
92 | root /www/bludit;
93 | index index.php;
94 |
95 | location ~ \.php$ {
96 | fastcgi_pass unix:/run/php/php7.0-fpm.sock;
97 | include fastcgi.conf;
98 | }
99 |
100 | location / {
101 | try_files $uri $uri/ /index.php?$args;
102 | }
103 | }
104 | ```
105 |
106 | Download the latest version of Bludit and uncompress it.
107 | ```
108 | $ mkdir /www
109 | $ cd /www
110 | $ wget https://s3.amazonaws.com/bludit-s3/bludit-builds/bludit_latest.zip
111 | $ unzip bludit_latest.zip
112 | $ sudo chown -R nginx:nginx /www
113 | ```
114 |
115 | Restart the services to load the new configurations.
116 | ```
117 | $ sudo systemctl php-fpm restart
118 | $ sudo systemctl nginx restart
119 | ```
120 |
121 | Open your browser and navigate to http://localhost, finish with the installation.
--------------------------------------------------------------------------------
/pages/api/create-edit-delete-content/index.md:
--------------------------------------------------------------------------------
1 | # Inhalte erstellen/bearbeiten/löschen
2 |
3 |
4 |
5 | Die Bludit API unterstützt eine Funktion um eine bestimmte Seite oder eine Liste aller Seiten abzurufen.
6 |
7 | Standardmäßig benötigt die API den `API token`. Um Inhalte zu schreiben benötigt man einen User mit der Rolle **ADMINISTRATOR** und dessen `Authorization Token`. Diesen bekommt man im Admin-Bereich unter **Verwalten->Benutzer->{Username}->Edit User->Authentication Token->Token**.
8 |
9 | By default the API requiere the `API token`, and to write content you need an user with the **ADMINISTRATOR** role and his `Authorization Token`; You can get the `Authorization Token` on **Manage->Users->{Username}->Benutzer bearbeiten->Authentifizierungs-Token->Token**.
10 |
11 | ### Inhalt
12 | 1. [Erstellen einer neuen Seite](#create-a-new-page)
13 | 2. [Eine Seite bearbeiten](#edit-a-page)
14 | 3. [Eine Seite löschen](#delete-a-page)
15 |
16 | ---
17 |
18 | ## Erstellen einer neuen Seite
19 |
20 | ### Request
21 | - Endpoint: `/api/pages`
22 | - Method: `POST`
23 | - Content-Type: `application/json`
24 | - Content
25 |
26 | ```
27 | {
28 | "token": "24a8857ed78a8c89a91c99afd503afa7",
29 | "authentication": "193569a9d341624e967486efb3d36d75",
30 | "title": "My dog",
31 | "content": "Content of the page here, support Markdown code and HTML code."
32 | }
33 | ```
34 |
35 | ### Response
36 | - HTTP Code: `200`
37 | - Content-Type: `application/json`
38 | - Content
39 |
40 | ```
41 | {
42 | "status": "0",
43 | "message": "Page created.",
44 | "data": {
45 | "key": "my-dog"
46 | }
47 | }
48 | ```
49 |
50 | ### cURL Befehl Beispiel
51 | Hier ist ein Beispiel der Abfrage mit dem Kommandozeilen-Tool cURL. Die Datei `data.json` beinhaltet die Informationen um eine Seite erstellen zu können.
52 |
53 | File `data.json`
54 | ```
55 | {
56 | "token": "24a8857ed78a8c89a91c99afd503afa7",
57 | "authentication": "193569a9d341624e967486efb3d36d75",
58 | "title": "My dog",
59 | "content": "Content of the page here, support Markdown code and HTML code."
60 | }
61 | ```
62 |
63 | ```
64 | $ curl -vvv -X POST -H "Content-Type: application/json" -d @data.json "https://example.com/api/pages"
65 |
66 | > POST /api/pages HTTP/1.1
67 | > Host: example.com
68 | > User-Agent: curl/7.54.0
69 | > Accept: */*
70 | > Content-Type: application/json
71 |
72 | < HTTP/1.1 200 OK
73 | < Date: Sun, 27 Aug 2017 18:58:25 GMT
74 | < Set-Cookie: Bludit-KEY=3de3df692e83b9cbbf5d31de385110bb; path=/; HttpOnly
75 | < Expires: Thu, 19 Nov 1981 08:52:00 GMT
76 | < Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
77 | < Pragma: no-cache
78 | < Access-Control-Allow-Origin: *
79 | < Content-Length: 50731
80 | < Content-Type: application/json
81 |
82 | {
83 | "status": "0",
84 | "message": "Page created.",
85 | "data": {
86 | "key": "my-dog"
87 | }
88 | }
89 | ```
90 |
91 | ---
92 |
93 | ## Eine Seite bearbeiten
94 |
95 | ### Request
96 | - Endpoint: `/api/pages/`
97 | - Method: `PUT`
98 | - Content-Type: `application/json`
99 | - Content
100 |
101 | ```
102 | {
103 | "token": "24a8857ed78a8c89a91c99afd503afa7",
104 | "authentication": "193569a9d341624e967486efb3d36d75",
105 | "title": "My edited dog",
106 | "content": "Content of the page here, support Markdown code and HTML code."
107 | }
108 | ```
109 |
110 | ### Response
111 | - HTTP Code: `200`
112 | - Content-Type: `application/json`
113 | - Content
114 |
115 | ```
116 | {
117 | "status": "0",
118 | "message": "Page edited.",
119 | "data": {
120 | "key": "my-dog"
121 | }
122 | }
123 | ```
124 |
125 | ---
126 |
127 | ## Eine Seite löschen
128 |
129 | ### Request
130 | - Endpoint: `/api/pages/`
131 | - Method: `DELETE`
132 | - Content-Type: `application/json`
133 | - Content
134 |
135 | ```
136 | {
137 | "token": "24a8857ed78a8c89a91c99afd503afa7",
138 | "authentication": "193569a9d341624e967486efb3d36d75"
139 | }
140 | ```
141 |
142 | ### Response
143 | - HTTP Code: `200`
144 | - Content-Type: `application/json`
145 | - Content
146 |
147 | ```
148 | {
149 | "status": "0",
150 | "message": "Page deleted."
151 | }
152 | ```
153 |
--------------------------------------------------------------------------------
/pages/inhalt/benutzerdefinierte-felder/index.md:
--------------------------------------------------------------------------------
1 | # Benutzerdefinierte Felder
2 |
3 |
4 | ## Einleitung
5 | Benutzerdefinierte Felder erlauben es, die Datenbank der Inhalte mit eigenen Feldern zu erweitern. Diese Felder können verwendet werden, wenn ein neuer Inhalt angelegt oder ein Inhalt bearbeitet wird.
6 |
7 | ## Beispiel
8 |
9 | Um ein Feld `Untertitel` hinzuzufügen, wird im Admnistrationsbereich der Reiter `Benutzerdefinierte Felder`aufgerufen unter
10 |
11 | ```
12 | Einstellungen > Allgemein
13 | ```
14 |
15 | Dann wird folgendes im JSON-Format in den Textbereich eingegeben und durch Klicken des Buttons `Speichern` gespeichert:
16 |
17 | ```
18 | {
19 | "Untertitel": {
20 | "type": "string",
21 | "placeholder": "Untertitel der Seite",
22 | "position": "bottom"
23 | }
24 | }
25 | ```
26 |
27 | Jetzt kann eine neue Seite angelegt werden unter `Neuer Inhalt`.
28 |
29 | As you can see there is a new field at the bottom of the editor requesting a "Subtitle for the page". Complete the "Title", "Content" and the new field "Subtitle for the page" and click on the button "Save".
30 |
31 |
32 | ## Struktur
33 | Die Struktur eines benutzerdefinierten Feldes wird im Format JSON definiert und unterstützt folgende Schlüssel.
34 |
35 | The structure is defined as a JSON format and supports the following keys:
36 | - (required) `type`: Type of the custom field, supported values (`string`, `bool`).
37 | - (optional) `label`: The label for the custom field.
38 | - (optional) `tip`: Small text for the user to describe the custom field.
39 | - (optional) `default`: Default value for the custom field.
40 | - (optional) `placeholder`: Small text inside the field.
41 | - (optional) `position`: Position in the editor, supported values (`top`, `bottom`).
42 |
43 | ## Eigene Felder hinzufügen
44 | To add custom fields go to:
45 | ```
46 | Settings > General > Custom fields
47 | ```
48 |
49 | To define custom field you need to generate a JSON structure. Check the following examples.
50 |
51 | Custom field as `string` and the key name `youtube`:
52 | ```
53 | {
54 | "youtube": {
55 | "type": "string",
56 | "label": "YouTube",
57 | "tip": "Write the YouTube URL."
58 | }
59 | }
60 | ```
61 |
62 | Custom field as `boolean` and the key name `inStock`:
63 | ```
64 | {
65 | "inStock": {
66 | "type": "bool",
67 | "label": "In Stock",
68 | "tip": "Select this field if you have stock."
69 | }
70 | }
71 | ```
72 |
73 | Two custom fields with different types.
74 | ```
75 | {
76 | "product": {
77 | "type": "string",
78 | "label": "Product",
79 | "tip": "Write the product name."
80 | },
81 | "inStock": {
82 | "type": "bool",
83 | "label": "In Stock",
84 | "tip": "Select this field if you have stock."
85 | }
86 | }
87 | ```
88 |
89 | Three custom fields with different types and different position in the editor.
90 | ```
91 | {
92 | "product": {
93 | "type": "string",
94 | "placeholder": "Product name",
95 | "position": "top"
96 | },
97 | "inStock": {
98 | "type": "bool",
99 | "tip": "Select this field if you have stock.",
100 | "position": "top"
101 | },
102 | "imageURL": {
103 | "type": "string",
104 | "placeholder": "Image URL",
105 | "position": "bottom"
106 | }
107 | }
108 | ```
109 |
110 | ## Get custom field
111 | The class page provides the method `custom()` which returns the value of the field.
112 |
113 | The following example prints the value of the field `youtube` from the above example.
114 | ```
115 | custom('youtube');
117 | ?>
118 | ```
119 |
120 | Check the boolean value from the field `inStock` from the above example.
121 | ```
122 | custom('inStock')) {
124 | echo "There is stock!";
125 | } else {
126 | echo "No more products";
127 | }
128 | ?>
129 | ```
130 |
131 | ## Delete custom field
132 | To delete a custom field you just need to remove the entry from the JSON structure. The custom fields are not complete deleted from the database but are invalidated.
133 |
134 | If you want to remove all custom fields just set an empty JSON in the textarea, as following:
135 | ```
136 | {}
137 | ```
138 |
--------------------------------------------------------------------------------
/pages/developers/page-object/index.txt:
--------------------------------------------------------------------------------
1 | title:Page Object
2 | Position: 100
3 | Status: draft
4 | content:If the user filter by a particular page there will be an object `$Page`. To check if the user is filtering by a page you can uses the object `$Url` and the method `whereAmI()`.
5 |
6 |
if( $Url->whereAmI()==='page' ) {
7 | echo 'The page filtered is '.$Page->title();
8 | }
9 | else {
10 | echo 'The user is not watching a particular page';
11 | }
12 |
13 |
14 | ### Methods and examples of usage
15 |
16 | Print page title.
17 |
echo $Page->title();
18 |
19 | Print page description.
20 |
echo $Page->description();
21 |
22 | Print page content.
23 |
echo $Page->content();
24 |
25 | Get content in raw format, without parse.
26 |
$raw = $Page->contentRaw();
27 |
28 | Print page tags.
29 |
echo $Page->tags();
30 |
31 | Print page tags from the array tags.
32 |
96 |
97 |
98 |
99 | ## $pages array
100 |
101 | This array contains all published pages. Each item from the array is a [Page Object](../themes/page-object).
102 |
103 | ### Examples
104 |
105 | Print all pages title
106 |
111 |
112 | Print all pages title and content
113 |
foreach($pages as $page)
114 | {
115 | echo '
'.$page->title().'
';
116 | echo '
'.$page->content().'
';
117 | }
118 |
119 |
120 | ---
121 |
122 | ## $posts array
123 |
124 | This array contains all posts published for the current page number. Each item from the array is a [Post Object](../themes/post-object).
125 |
126 | ### Examples
127 |
128 | Print all posts title
129 |
134 |
135 | Print all posts title and content
136 |
foreach($posts as $post)
137 | {
138 | echo '
'.$post->title().'
';
139 | echo '
'.$post->content().'
';
140 | }
141 |
--------------------------------------------------------------------------------
/pages/themes/helper-for-themes/index.md:
--------------------------------------------------------------------------------
1 | # Helper-Klassen für Themes
2 |
3 |
4 | Die Helper unterstützen den Entwickler dabei den Code übersichtlicher zu gestalten und geben die Möglichkeit, weniger
5 | Code schreiben zu müssen.
6 |
7 | Diese Objekte besitzen statische Methoden (zu sehen an den Doppelpunkten beim Aufruf)
8 |
9 | ## Title
10 | Erzeugt einen Titel-Head-Tag mit dynamischen Inhalt aus den Einstellungen der Seite.
11 | ```php
12 |
15 | ```
16 |
17 | ```
18 | Page title | Title site
19 | ```
20 |
21 | ## Description
22 | Erzeugt einen Description-Head-Tag mit dynamischen Inhalt aus den Einstellungen der Seite.
23 | ```php
24 |
27 | ```
28 |
29 | ```
30 |
31 | ```
32 |
33 | ## CSS Dateien
34 | Diese Methode generiert einen Stylesheet-Head-Tag um eine CSS mit dem Namen `blog.css` aus dem Ordner `/bludit/themes/{THEME_NAME}/css/` einzufügen.
35 | ```php
36 |
39 | ```
40 |
41 | ```
42 |
43 | ```
44 |
45 | Es gibt auch die Möglichkeit gleich mehrere CSS Einträge zu erstellen.
46 |
49 |
50 | ```
51 |
52 |
53 | ```
54 |
55 | ## Javascript Dateien
56 | Diese Methode generiert einen Script-Head-Tag um eine Javascript-Datei mit dem Namen `main.js` aus dem Ordner `/bludit/themes/{THEME_NAME}/js/` einzufügen.
57 |
58 | ```php
59 |
62 | ```
63 |
64 | ```
65 |
66 | ```
67 |
68 | Es gibt auch die Möglichkeit gleich mehrere Script Einträge zu erstellen.
69 | ```php
70 |
73 | ```
74 |
75 | ```
76 |
77 |
78 | ```
79 |
80 | ## Favicon
81 | Diese Methode generiert einen Head-Tag für das Favicon. In diesem Beispiel befindet sich das Icon im Hauptverzeichnis des Themes `/bludit/themes/{THEME_NAME}/favicon.png`.
82 |
83 |
86 |
87 | ```
88 |
89 | ```
90 |
91 | ## Plugins einbinden
92 | Bludit unterstützt Plugins. Jedes Plugin besitzt Hooks (Einhängepunkte) über die man steuern kann, an welcher Stelle ein Plugin beim Seitenaufbau aktiv werden soll.
93 |
94 | Im folgenden Beispiel werden alle Plugins im Head-Bereich ausgeführt.
95 |
96 | ```php
97 |
100 | ```
101 |
102 | Hinzufügen aller Plugins beim Beginn des Body-Abschnitts.
103 | ```php
104 |
107 | ```
108 |
109 | ## jQuery einbinden
110 | Bludit verwendet [jQuery](http://jquery.com) und stellt eine Methode für das Einbinden zur Verfügung.
111 |
112 | ```php
113 |
116 | ````
117 |
118 | ```
119 |
120 | ```
121 |
122 | Man kann [jQuery](http://jquery.com) auch vom offiziellen CDN einbinden.
123 |
124 | ```php
125 |
129 | ```
130 |
131 | ```
132 |
133 | ```
134 |
135 | ## FontAwesome einbinden
136 | Bludit verwendet [FontAwesome](http://fontawesome.io) und stellt eine Methode für das Einbinden zur Verfügung.
137 |
138 | ```php
139 |
142 | ```
143 |
144 | ```
145 |
146 | ```
147 |
148 | Man kann [FontAwesome](http://fontawesome.io) auch vom offiziellen CDN [BootstrapCDN](https://www.bootstrapcdn.com) einbinden.
149 |
150 | ```php
151 |
155 | ```
156 |
157 | ```
158 |
159 | ```
160 |
--------------------------------------------------------------------------------
/pages/api/read-content/index.md:
--------------------------------------------------------------------------------
1 | # Inhalte lesen
2 |
3 |
4 |
5 | Die Bludit API unterstützt eine Funktion um eine bestimmte Seite oder eine Liste aller Seiten abzurufen.
6 |
7 | Standardmäßig benötigt die API den `API token`.
8 |
9 | ### Content
10 | 1. [Anfrage einer Liste aller Seiten](#request-a-list-of-pages)
11 | 2. [Anfrage einer bestimmten Seite](#request-a-particular-pages)
12 |
13 | ---
14 |
15 | ## Anfrage einer Liste aller Seiten
16 |
17 | ### Request
18 | - Endpoint: `/api/pages`
19 | - Method: `GET`
20 | - Parameters: `token`
21 |
22 | ### Response
23 | - HTTP Code: `200`
24 | - Content-Type: `application/json`
25 | - Content
26 |
27 | ```
28 | {
29 | "status": "0",
30 | "message": "List of pages, amount of items: 15",
31 | "data": [
32 | {
33 | "key": "the-dog",
34 | "title": "The Dog",
35 | "content": "Content of the page",
36 | "description": "Description of the page",
37 | "date": "2017-08-24 22:00:00",
38 | "permalink": "http:\/\/example.com\/the-dog"
39 | },
40 | {
41 | ....
42 | }
43 | ]
44 | }
45 | ```
46 |
47 | ### cURL Befehl Beispiel
48 | Hier ist ein Beispiel der Abfrage mit dem Kommandozeilen-Tool cURL:
49 | ```
50 | $ curl -vvv -X GET -G "https://example.com/api/pages" -d "token=80a09ba055b73f68e3c9e7c9ea12b432"
51 |
52 | > GET /api/pages?token=80a09ba055b73f68e3c9e7c9ea12b432 HTTP/1.1
53 | > Host: example.com
54 | > User-Agent: curl/7.54.0
55 | > Accept: */*
56 |
57 | < HTTP/1.1 200 OK
58 | < Date: Sun, 27 Aug 2017 18:58:25 GMT
59 | < Set-Cookie: Bludit-KEY=3de3df692e83b9cbbf5d31de385110bb; path=/; HttpOnly
60 | < Expires: Thu, 19 Nov 1981 08:52:00 GMT
61 | < Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
62 | < Pragma: no-cache
63 | < Access-Control-Allow-Origin: *
64 | < Content-Length: 50731
65 | < Content-Type: application/json
66 |
67 | {
68 | "status": "0",
69 | "message": "List of pages, amount of items: 15",
70 | "data": [
71 | {
72 | "key": "the-dog",
73 | "title": "The Dog",
74 | "content": "Content of the page",
75 | "description": "Description of the page",
76 | "date": "2017-08-24 22:00:00",
77 | "permalink": "http:\/\/example.com\/the-dog"
78 | },
79 | {
80 | ....
81 | }
82 | ]
83 | }
84 | ```
85 |
86 | ### AJAX mit jQuery
87 | Beispiel eines AJAX-Requests mit der Bibliothek [jQuery](https://api.jquery.com/jQuery.ajax/).
88 | ```
89 | $.ajax({
90 | url: "https://example.com/api/pages",
91 | method: "GET",
92 | data: "token=80a09ba055b73f68e3c9e7c9ea12b432",
93 | dataType: 'json',
94 | success: function(json) {
95 | console.log(json);
96 | }
97 | });
98 | ```
99 |
100 | Ein vollständiges Beispiel gibt es unter [Bludit Examples](https://github.com/bludit/examples/tree/master/api/ajax-request-list-of-pages).
101 |
102 | ---
103 |
104 | ## Anfrage einer bestimmten Seite
105 |
106 | ### Request
107 | - Endpoint: `/api/pages/`
108 | - Method: `GET`
109 | - Parameters: `token`
110 |
111 | ### Response
112 | - HTTP Code: `200`
113 | - Content-Type: `application/json`
114 | - Content
115 |
116 | ```
117 | {
118 | "status": "0",
119 | "message": "List of pages, amount of items: 15",
120 | "data": {
121 | "key": "the-dog",
122 | "title": "The Dog",
123 | "content": "Content of the page",
124 | "description": "Description of the page",
125 | "date": "2017-08-24 22:00:00",
126 | "permalink": "http:\/\/example.com\/the-dog"
127 | }
128 | }
129 | ```
130 |
131 | ### cURL Befehl Beispiel
132 | Hier ist ein Beispiel der Abfrage mit dem Kommandozeilen-Tool cURL:
133 | ```
134 | $ curl -vvv -X GET -G "https://example.com/api/pages/the-dog" -d "token=80a09ba055b73f68e3c9e7c9ea12b432"
135 |
136 | > GET /api/pages/the-dog?token=80a09ba055b73f68e3c9e7c9ea12b432 HTTP/1.1
137 | > Host: example.com
138 | > User-Agent: curl/7.54.0
139 | > Accept: */*
140 |
141 | < HTTP/1.1 200 OK
142 | < Date: Sun, 27 Aug 2017 18:58:25 GMT
143 | < Set-Cookie: Bludit-KEY=3de3df692e83b9cbbf5d31de385110bb; path=/; HttpOnly
144 | < Expires: Thu, 19 Nov 1981 08:52:00 GMT
145 | < Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
146 | < Pragma: no-cache
147 | < Access-Control-Allow-Origin: *
148 | < Content-Length: 50731
149 | < Content-Type: application/json
150 |
151 | {
152 | "status": "0",
153 | "message": "List of pages, amount of items: 15",
154 | "data": {
155 | "key": "the-dog",
156 | "title": "The Dog",
157 | "content": "Content of the page",
158 | "description": "Description of the page",
159 | "date": "2017-08-24 22:00:00",
160 | "permalink": "http:\/\/example.com\/the-dog"
161 | }
162 | }
163 | ```
164 |
165 | ### AJAX mit jQuery
166 | Beispiel eines AJAX-Requests mit der Bibliothek [jQuery](https://api.jquery.com/jQuery.ajax/).
167 | ```
168 | $.ajax({
169 | url: "https://example.com/api/pages/the-dog",
170 | method: "GET",
171 | data: "token=80a09ba055b73f68e3c9e7c9ea12b432",
172 | dataType: 'json',
173 | success: function(json) {
174 | console.log(json);
175 | }
176 | });
177 | ```
178 |
179 | Ein vollständiges Beispiel gibt es unter [Bludit Examples](https://github.com/bludit/examples/tree/master/api/ajax-request-a-particular-page).
180 |
--------------------------------------------------------------------------------
/pages/entwickler/variablen/index.md:
--------------------------------------------------------------------------------
1 | # Variablen
2 |
3 | ---
4 |
5 | ## Konstanten
6 |
7 | Nachfolgend siehst du eine Liste mit allen Konstanten und deren Default-Werten. Diese Konstanten befinden sich in der Datei `/bludit/bl-kernel/boot/init.php`.
8 |
9 | | Constants | Value | Type | Notes
10 | | ------------------------------|-----------------------|---------------|-----------------------------------------------------|
11 | | BLUDIT_VERSION | 1.0.1 | String | Bludit version
12 | | BLUDIT_CODENAME | Vector | String | Bludit codename
13 | | BLUDIT_RELEASE_DATE | 2016-01-15 | String | Bludit release date, date format YYYY-MM-DD
14 | | BLUDIT_BUILD | 20160115 | String | Bludit build number
15 | | DEBUG_MODE | True | Boolean | False if you wan to disable all logs and warnings
16 | | THUMBNAILS_WIDTH | 400 | Integer | Thumbnails width size
17 | | THUMBNAILS_HEIGHT | 400 | Integer | Thumbnails height size
18 | | THUMBNAILS_AMOUNT | 6 | Integer | Amount of thumbnails on Quick Images
19 | | SALT_LENGTH | 8 | Integer | String length of the password salt
20 | | PAGE_BREAK | <\!-- pagebreak --> | String | String for break a post o page
21 | | POSTS_PER_PAGE_ADMIN | 10 | Integer | Post per page for Admin panel->Manage->Posts
22 | | DB_DATE_FORMAT | Y-m-d H:i:s | String | Database date format
23 | | SITEMAP_DATE_FORMAT | Y-m-d | String | Sitemap date format
24 | | SCHEDULED_DATE_FORMAT | d M - h:i a | String | Date format for dashboard schedule posts
25 | | TOKEN_EMAIL_TTL | +15 minutes | String | Token time to live for login via email
26 | | MB_STRING | True / False | Boolean | Multibyte string extension loaded
27 | | SALT_LENGTH | 8 | Integer | String length of the password salt
28 |
29 | ## Konstanten: Absolute Pfade
30 |
31 | - Web root Verzeichnis: */var/www/*
32 | - Bludit Verzeichnis: */var/www/bludit/*
33 |
34 | | Constants | Value | Type | Notes
35 | | ------------------------------|-------------------------------------------------------|---------------|--------------------------|
36 | | PATH_ROOT | /var/www/bludit/ | String
37 | | PATH_LANGUAGES | /var/www/bludit/bl-languages/ | String
38 | | PATH_THEMES | /var/www/bludit/bl-themes/ | String
39 | | PATH_PLUGINS | /var/www/bludit/bl-plugins/ | String
40 | | PATH_KERNEL | /var/www/bludit/bl-kernel/ | String
41 | | PATH_CONTENT | /var/www/bludit/bl-content/ | String
42 | | PATH_ABSTRACT | /var/www/bludit/bl-kernel/abstract/ | String
43 | | PATH_RULES | /var/www/bludit/bl-kernel/boot/rules/ | String
44 | | PATH_HELPERS | /var/www/bludit/bl-kernel/helpers/ | String
45 | | PATH_AJAX | /var/www/bludit/bl-kernel/ajax/ | String
46 | | PATH_JS | /var/www/bludit/bl-kernel/js/ | String
47 | | PATH_POSTS | /var/www/bludit/bl-content/posts/ | String
48 | | PATH_PAGES | /var/www/bludit/bl-content/pages/ | String
49 | | PATH_DATABASES | /var/www/bludit/bl-content/databases/ | String
50 | | PATH_PLUGINS_DATABASES | /var/www/bludit/bl-content/databases/plugins/ | String
51 | | PATH_TMP | /var/www/bludit/bl-content/tmp/ | String
52 | | PATH_UPLOADS | /var/www/bludit/bl-content/uploads/ | String
53 | | PATH_UPLOADS_PROFILES | /var/www/bludit/bl-content/uploads/profiles/ | String
54 | | PATH_UPLOADS_THUMBNAILS | /var/www/bludit/bl-content/uploads/thumbnails/ | String
55 | | PATH_ADMIN | /var/www/bludit/bl-kernel/admin/ | String
56 | | PATH_ADMIN_THEMES | /var/www/bludit/bl-kernel/admin/themes/ | String
57 | | PATH_ADMIN_CONTROLLERS | /var/www/bludit/bl-kernel/admin/controllers/ | String
58 | | PATH_ADMIN_VIEWS | /var/www/bludit/bl-kernel/admin/views/ | String
59 | | PATH_ADMIN_VIEWS | /var/www/bludit/bl-kernel/admin/views/ | String
60 | | PATH_THEME | /var/www/bludit/bl-themes/{theme_name}/ | String
61 | | PATH_THEME_PHP | /var/www/bludit/bl-themes/{theme_name}/php/ | String
62 | | PATH_THEME_CSS | /var/www/bludit/bl-themes/{theme_name}/css/ | String
63 | | PATH_THEME_JS | /var/www/bludit/bl-themes/{theme_name}/js/ | String
64 | | PATH_THEME_IMG | /var/www/bludit/bl-themes/{theme_name}/img/ | String
65 | | PATH_THEME_LANG | /var/www/bludit/bl-themes/{theme_name}/language/ | String
66 |
67 |
68 | ## Konstanten: Relative Pfade
69 |
70 | - Web root Verzeichnis: */var/www/*
71 | - Bludit Verzeichnis: */var/www/bludit/*
72 |
73 | | Constants | Value | Type | Notes
74 | | --------------------------------------|---------------------------------------------------------------|---------------|--------------------------|
75 | | HTML_PATH_ROOT | /bludit/ | String
76 | | HTML_PATH_THEMES | /bludit/bl-themes/ | String
77 | | HTML_PATH_THEME | /bludit/bl-themes/{theme_name}/ | String
78 | | HTML_PATH_THEME_CSS | /bludit/bl-themes/{theme_name}/css/ | String
79 | | HTML_PATH_THEME_JS | /bludit/bl-themes/{theme_name}/js/ | String
80 | | HTML_PATH_THEME_IMG | /bludit/bl-themes/{theme_name}/img/ | String
81 | | HTML_PATH_ADMIN_ROOT | /bludit/admin/ | String
82 | | HTML_PATH_ADMIN_THEME | /bludit/bl-kernel/admin/themes/{admin_theme_name}/ | String
83 | | HTML_PATH_ADMIN_THEME_JS | /bludit/bl-kernel/admin/themes/{admin_theme_name}/js/ | String
84 | | HTML_PATH_ADMIN_THEME_CSS | /bludit/bl-kernel/admin/themes/{admin_theme_name}/css/ | String
85 | | HTML_PATH_ADMIN_THEME_IMG | /bludit/bl-kernel/admin/themes/{admin_theme_name}/img/ | String
86 | | HTML_PATH_UPLOADS | /bludit/bl-content/uploads/ | String
87 | | HTML_PATH_UPLOADS_PROFILES | /bludit/bl-content/uploads/profiles/ | String
88 | | HTML_PATH_UPLOADS_THUMBNAILS | /bludit/bl-content/uploads/thumbnails/ | String
89 | | HTML_PATH_PLUGINS | /bludit/bl-plugins/ | String
90 |
91 |
92 | ## Konstanten: Domain und base path
93 |
94 | - Protocol: *http or https*
95 | - Domain: *www.domain.com*
96 | - Base path: */bludit/*
97 |
98 | | Constants | Value | Type | Notes
99 | | ------------------------------|-----------------------------------------------------------------------|---------------|--------------------------|
100 | | DOMAIN | {protocol}://www.domain.com | String
101 | | DOMAIN_BASE | {protocol}://www.domain.com/bludit/ | String
102 | | DOMAIN_THEME_CSS | {protocol}://www.domain.com/bludit/bl-themes/{theme_name}/css/ | String
103 | | DOMAIN_THEME_JS | {protocol}://www.domain.com/bludit/bl-themes/{theme_name}/js/ | String
104 | | DOMAIN_THEME_IMG | {protocol}://www.domain.com/bludit/bl-themes/{theme_name}/img/ | String
105 | | DOMAIN_UPLOADS | {protocol}://www.domain.com/bludit/bl-content/uploads/ | String
106 | | DOMAIN_UPLOADS_PROFILES | {protocol}://www.domain.com/bludit/bl-content/uploads/profiles/ | String
107 | | DOMAIN_UPLOADS_THUMBNAILS | {protocol}://www.domain.com/bludit/bl-content/uploads/thumbnails/ | String
108 |
--------------------------------------------------------------------------------
/pages/themes/example-my-second-theme/index.md:
--------------------------------------------------------------------------------
1 | # Beispiel: Mein zweites Theme
2 |
3 |
4 | ## 1. Verzeichnisstruktur
5 | Jetzt erstellen wir die Verzeichnisstruktur für das Theme. Dieses nennen wir `Mars`.
6 | Erstelle das Theme-Verzeichnis im Verzeichnis `/bl-themes/`, in unserem Fall `/bl-themes/mars/`.
7 |
8 | Jetzt erstellen wir die Unterverzeichnisse languages, css und js:
9 | - Erstelle das Verzeichnis `languages` im Theme-Verzeichnis `/bl-themes/mars/`
10 | - Erstelle das Verzeichnis `css` im Theme-Verzeichnis `/bl-themes/mars/`
11 | - Erstelle das Verzeichnis `js` im Theme-Verzeichnis `/bl-themes/mars/`
12 |
13 | Die Verzeichnisstruktur sollte jetzt so aussehen:
14 | ```
15 | /bl-themes/mars/
16 | css/
17 | js/
18 | language/
19 | ```
20 |
21 | ## 2. Themeinformationen
22 | Erstelle eine Datei mit dem Namen `metadata.json` im Theme-Verzeichnis und dem folgenden Inhalt:
23 |
24 | ```
25 | {
26 | "author": "Bludit",
27 | "email": "",
28 | "website": "",
29 | "version": "1.0",
30 | "releaseDate": "2017-10-10",
31 | "license": "MIT",
32 | "compatible": "2.0",
33 | "notes": ""
34 | }
35 | ```
36 |
37 | Jetzt erstelle eine Datei `en.json` im Verzeichnis `/bl-themes/mars/languages/` mit folgendem Inhalt:
38 |
39 | ```
40 | {
41 | "theme-data":
42 | {
43 | "name": "Mars",
44 | "description": "This is my second theme for Bludit."
45 | }
46 | }
47 | ```
48 |
49 | ## 3. index.php
50 | Jetzt arbeiten wir an der Datei `index.php`. Erstelle diese im Theme-Verzeichnis `/bl-themes/mars/` mit folgendem Inhalt:
51 |
52 | ```
53 |
54 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 | ```
63 |
64 | ### 3.1. CSS Dateien
65 | CSS-Dateien können einfach in das Theme eingebunden werden. Dies kann über das Tag `link` geschehen oder über den Bludit-Helper `Theme::`. Nachfolgend verwenden wir zweiteres und fügen die Datei `blog.css` in das Theme ein.
66 |
67 | ```
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 | ```
81 |
82 | ### 3.2. JavaScript Dateien
83 | JavaScript-Dateien können einfach in das Theme eingebunden werden. Dies kann über das Tag `link` geschehen oder über den Bludit-Helper `Theme::`. Nachfolgend verwenden wir zweiteres und fügen die Datei `blog.js` in das Theme ein.
84 |
85 | ```
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 | ```
102 |
103 | ### 3.3. Plugins mit dem hook siteHead
104 | Damit Plugins funktionieren müssen Hooks mit dem Helper `Theme::plugins` gesetzt werden.
105 | Nachfolgend setzen wir den Hook für die Plugins, die bei den SiteHeads ausgeführt werden sollen.
106 |
107 | ```
108 |
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
118 |
119 |
120 |
121 |
122 |
123 |
124 |
125 |
126 | ```
127 |
128 | ### 3.4. Seitentitel
129 | Der Seitentitel wird in den Bereichen Head und Body gesetzt.
130 |
131 | ```
132 |
133 |
134 |
135 |
136 |
137 |
138 | title() ?>
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
title() ?>
152 |
153 |
154 | ```
155 |
156 | ### 3.5. Inhalt
157 | Jetzt fügen wir Beitragsinhalte auf der Seite ein.
158 |
159 | Um zu ermitteln auf welcher Seite der User sich gerade befindet kann die Variable `$WHERE_AM_I` verwendet werden.
160 | Wenn der User zum Beispiel eine Seite (einen Inhalt) ansieht, hat die Variable `$WHERE_AM_I` den Wert `page`, befindet sich der User auf der Startseite ist der Wert `home`.
161 |
162 | ```
163 |
164 |
165 |
166 |
167 |
168 |
169 | title() ?>
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
title() ?>
183 |
184 | whereAmI()=='home') {
186 | echo 'The user is browsing the front page';
187 | }
188 | elseif ($Url->whereAmI()=='page') {
189 | echo 'The user is browsing a particular page';
190 | }
191 | elseif ($Url->whereAmI()=='category') {
192 | echo 'The user is browsing a particular category';
193 | }
194 | elseif ($Url->whereAmI()=='tag') {
195 | echo 'The user is browsing a particular tag';
196 | }
197 | ?>
198 |
199 |
200 | ```
201 |
202 | Befindet sich der User auf der Startseite generiert Bludit ein Array `$pages` mit allen veröffentlichten Seiten. Jede Seite ist hierbei ein [Seiten Objekt](https://).
203 |
204 | ```
205 |
206 |
207 |
208 |
209 |
210 |
211 | title() ?>
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
';
231 | echo '';
232 | }
233 | }
234 | elseif ($Url->whereAmI()=='page') {
235 | echo 'The user is browsing a particular page';
236 | }
237 | elseif ($Url->whereAmI()=='category') {
238 | echo 'The user is browsing a particular category';
239 | }
240 | elseif ($Url->whereAmI()=='tag') {
241 | echo 'The user is browsing a particular tag';
242 | }
243 | ?>
244 |
245 |
246 | ```
247 |
248 | Sieht sich der User eine bestimmte Seite an, generiert Bludit ein Objekt mit dem Namen `$Page`, die viele Methoden zur Verfügung stellt.
249 | In unserem Beispiel verwenden wir die Methoden `title()` und `content()`. Um die anderen Methoden kennen zu lernen schau dir die folgende Seite an: [Page Object](http://)
250 |
251 | ```
252 |
253 |
254 |
255 |
256 |
257 |
258 | title() ?>
259 |
260 |
261 |
262 |
263 |
264 |
265 |
266 |
267 |
268 |
269 |
270 |
271 |