├── .gitignore ├── pages ├── api │ ├── index.md │ ├── introduction │ │ └── index.md │ ├── create-edit-delete-content │ │ └── index.md │ └── read-content │ │ └── index.md ├── plugins │ ├── index.md │ ├── after-creation │ │ └── index.md │ ├── benutzerdefinierte-hooks │ │ └── index.md │ ├── hooks │ │ └── index.md │ └── grundlagen │ │ └── index.md ├── snippets │ ├── index.md │ ├── verwandte-inhalte │ │ └── index.md │ └── plugins │ │ └── index.md ├── themes │ ├── index.md │ ├── grundlagen │ │ └── index.md │ ├── example-my-first-theme │ │ └── index.md │ ├── helper-for-themes │ │ └── index.md │ └── example-my-second-theme │ │ └── index.md ├── developers │ ├── index.md │ ├── site-object │ │ └── index.md │ ├── url-object │ │ └── index.txt │ └── page-object │ │ └── index.txt ├── entwickler │ ├── index.md │ ├── fehlersuche │ │ └── index.md │ ├── verzeichnisstruktur │ │ └── index.md │ └── variablen │ │ └── index.md ├── inhalt │ ├── index.md │ ├── editor-wechseln │ │ └── index.md │ ├── weiterlesen-link │ │ └── index.md │ ├── bild-hochladen-und-einfuegen │ │ └── index.md │ ├── neuen-inhalt-erstellen │ │ └── index.md │ ├── veroeffentlichung-planen │ │ └── index.md │ └── benutzerdefinierte-felder │ │ └── index.md ├── sicherheit │ ├── index.md │ ├── url-des-administrations-bereiches-anpassen │ │ └── index.md │ ├── admin-user-deaktivieren │ │ └── index.md │ ├── brute-force-schutz │ │ └── index.md │ └── passwort-wiederherstellen │ │ └── index.md ├── sprachen │ ├── index.md │ ├── theme-uebersetzen │ │ └── index.md │ └── plugin-uebersetzen │ │ └── index.md ├── erste-schritte │ ├── index.md │ ├── themes │ │ └── index.md │ ├── plugins │ │ └── index.md │ ├── upgrade │ │ └── index.md │ ├── voraussetzungen │ │ └── index.md │ ├── einfuehrung │ │ └── index.md │ └── installation │ │ └── index.md ├── verschiedenes │ ├── index.md │ └── plugin-oder-theme-zu-repositories-hinzufuegen │ │ └── index.md ├── webservers │ ├── hiawatha │ │ └── index.md │ └── nginx │ │ └── index.md ├── bludit-pro │ └── index.md └── advanced │ └── installation-on-gnu-linux │ └── index.md ├── README.md └── LICENSE /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /pages/api/index.md: -------------------------------------------------------------------------------- 1 | # API 2 | 3 | -------------------------------------------------------------------------------- /pages/plugins/index.md: -------------------------------------------------------------------------------- 1 | # Plugins 2 | 3 | -------------------------------------------------------------------------------- /pages/snippets/index.md: -------------------------------------------------------------------------------- 1 | # Snippets 2 | 3 | -------------------------------------------------------------------------------- /pages/themes/index.md: -------------------------------------------------------------------------------- 1 | # Themes 2 | 3 | -------------------------------------------------------------------------------- /pages/developers/index.md: -------------------------------------------------------------------------------- 1 | # Developers 2 | 3 | -------------------------------------------------------------------------------- /pages/entwickler/index.md: -------------------------------------------------------------------------------- 1 | # Entwickler 2 | 3 | -------------------------------------------------------------------------------- /pages/inhalt/index.md: -------------------------------------------------------------------------------- 1 | # Inhalt 2 | 3 | 4 | -------------------------------------------------------------------------------- /pages/sicherheit/index.md: -------------------------------------------------------------------------------- 1 | # Sicherheit 2 | 3 | -------------------------------------------------------------------------------- /pages/sprachen/index.md: -------------------------------------------------------------------------------- 1 | # Sprachen 2 | 3 | 4 | -------------------------------------------------------------------------------- /pages/erste-schritte/index.md: -------------------------------------------------------------------------------- 1 | # Erste Schritte 2 | 3 | 4 | -------------------------------------------------------------------------------- /pages/verschiedenes/index.md: -------------------------------------------------------------------------------- 1 | # Verschiedenes 2 | 3 | 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Bludit Documentation - German Version 2 | Here you can find all the documentation about Bludit in German. 3 | 4 | This documentation is in sync with the website https://docs.bludit.com/en/ 5 | 6 | -------------------------------------------------------------------------------- /pages/webservers/hiawatha/index.md: -------------------------------------------------------------------------------- 1 | # Hiawatha 2 | 3 | 4 | 5 | Bludit suppors Hiawatha webserver, you can use the following rewrite rule: 6 | 7 | ``` 8 | UrlToolkit { 9 | ToolkitID = bludit 10 | RequestURI exists Return 11 | Match [^?]*(\?.*)? Rewrite /index.php$1 12 | } 13 | ``` 14 | -------------------------------------------------------------------------------- /pages/entwickler/fehlersuche/index.md: -------------------------------------------------------------------------------- 1 | # Fehlersuche 2 | 3 | 4 | Der Debug-Modus von Bludit kann in der Datei `init.php` im Verzeichnis `/bl-kernel/boot` aktiviert werden. Dazu muss Folgendes geändert werden (Zeile 11): 5 | 6 | `define('DEBUG_MODE', TRUE);` 7 | 8 | statt 9 | 10 | `define('DEBUG_MODE', FALSE);` 11 | 12 | Fehlermeldungen werden in der Datei `debug.txt` im Verzeichnis `/bl-content` gespeichert. 13 | -------------------------------------------------------------------------------- /pages/sicherheit/url-des-administrations-bereiches-anpassen/index.md: -------------------------------------------------------------------------------- 1 | # URL des Administrations-Bereiches anpassen 2 | 3 | 4 | Standardmäßig ist der Administrations-Bereich von Bludit über den Kontext `/admin/` erreichbar. 5 | 6 | Die können Sie ändern, indem Sie die Datei `/bl-kernel/boot/variables.php` bearbeiten. Ändern Sie die Konstante `ADMIN_URI_FILTER` entsprechend Ihrer eigenen Anforderung. 7 | 8 |
define('ADMIN_URI_FILTER', 'admin');
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 | ![Read more link](https://df6m0u2ovo2fu.cloudfront.net/images/documentation-english/read-more-link.png) 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 |
19 |
Video tutorial
20 | Youtube 21 |
22 | 23 |
24 |
Anmerkung
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 | ![How to upload an insert an image](https://df6m0u2ovo2fu.cloudfront.net/images/documentation-english/how-to-upload-and-insert-an-image.png) 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 | ![How to create new contente](https://df6m0u2ovo2fu.cloudfront.net/images/documentation-english/how-to-create-new-content.png) 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 | ![How to schedule a page](https://df6m0u2ovo2fu.cloudfront.net/images/documentation-english/scheduled-page.png) 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 |
26 | -------------------------------------------------------------------------------- /pages/plugins/hooks/index.md: -------------------------------------------------------------------------------- 1 | # Hooks 2 | 3 | --- 4 | Bludit unterstützt verschiedene Hooks (Einhängepunkte), mit denen das System selbst und die Themes erweitert werden können. 5 | 6 | | Hooks | Verwendung | Bemerkungen | 7 | | ------------------------------|-----------------------|-----------------------------------------------| 8 | | siteHead | Theme | | 9 | | siteBodyBegin | Theme | | 10 | | siteBodyEnd | Theme | | 11 | | siteSidebar | Theme | | 12 | | beforeSiteLoad | Theme | | 13 | | afterSiteLoad | Theme | | 14 | | pageBegin | Theme | | 15 | | pageEnd | Theme | | 16 | | adminHead | Admin-Theme | | 17 | | adminBodyBegin | Admin-Theme | | 18 | | adminBodyEnd | Admin-Theme | | 19 | | adminSidebar | Admin-Theme | | 20 | | beforeAdminLoad | Core | | 21 | | afterAdminLoad | Core | | 22 | | beforeRulesLoad | Core | | 23 | | afterFormSave | Core | | 24 | | afterPageCreate | Core | | 25 | | afterPageModify | Core | | 26 | | afterPageDelete | Core | | 27 | | loginHead | Core | | 28 | | loginBodyBegin | Core | | 29 | | loginBodyEnd | Core | | 30 | 31 |
32 |
Hinweis
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 |

16 | private $dbFields = array(
17 |     'minutesBlocked'=>5,
18 |     'numberFailuresAllowed'=>10,
19 |     'blackList'=>array()
20 | );
21 | 
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 |

Entwicklung

22 | Entwicklerplattform und Fehlermeldungen. 23 | * [GitHub](https://github.com/bludit/bludit) 24 | 25 |

Unterstützung

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 |
{
27 | 	"author": "Bludit",
28 | 	"email": "",
29 | 	"website": "https://themes.bludit.com",
30 | 	"version": "2.0",
31 | 	"releaseDate": "2017-10-10",
32 | 	"license": "MIT",
33 | 	"compatible": "2.0",
34 | 	"notes": ""
35 | }
36 | 37 | ## Name und Beschreibung 38 | Der Name und die Beschreibung des Themes befinden sich in der JSON Datei `languages/en.json`. 39 |
{
40 | 	"theme-data":
41 | 	{
42 | 		"name": "Hello World",
43 | 		"description": "My new theme"
44 | 	}
45 | }
46 | 47 |
48 |
Beispiele
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 |
{
37 | 	"author": "Bludit",
38 | 	"email": "",
39 | 	"website": "https://plugins.bludit.com",
40 | 	"version": "2.0",
41 | 	"releaseDate": "2017-10-10",
42 | 	"license": "MIT",
43 | 	"compatible": "2.0",
44 | 	"notes": ""
45 | }
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 | 
40 | 41 | Get current post filter. 42 |
$filter = $Uri->filters('post');
43 | echo $filter;
44 | 45 | Get current page filter. 46 |
$filter = $Uri->filters('page');
47 | echo $filter;
48 | 49 | Get current tag filter. 50 |
$filter = $Uri->filters('tag');
51 | echo $filter;
52 | 53 | Check if the user is browsing an invalid page. 54 |
$notFound = $Uri->notFound();
55 | 
56 | if($notFound) {
57 | 	echo 'Page not found. 404.';
58 | }
59 | 60 | Get current navigator page number. 61 |
echo $Url->pageNumber();
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 |
{
54 | 	"author": "Bludit",
55 | 	"email": "",
56 | 	"website": "",
57 | 	"version": "1.0",
58 | 	"releaseDate": "2017-10-10",
59 | 	"license": "MIT",
60 | 	"compatible": "2.0",
61 | 	"notes": ""
62 | }
63 | 
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 | ![How to create a Pull Request 1](https://df6m0u2ovo2fu.cloudfront.net/images/documentation-english/how-to-pull-request-1.png) 40 | 41 | ### Schritt 2: Die URL des Quell-Repositories hinzufügen 42 | ![How to create a Pull Request 2](https://df6m0u2ovo2fu.cloudfront.net/images/documentation-english/how-to-pull-request-2.png) 43 | 44 | ### Schritt 3: Titel und Beschreibung des Themes oder Plugins vervollständigen 45 | ![How to create a Pull Request 3](https://df6m0u2ovo2fu.cloudfront.net/images/documentation-english/how-to-pull-request-3.png) 46 | 47 | ### Schritt 4: Auf den Button klicken um einen Pull Request zu erzeugen 48 | ![How to create a Pull Request 4](https://df6m0u2ovo2fu.cloudfront.net/images/documentation-english/how-to-pull-request-4.png) 49 | 50 | ### Schritt 5: Titel und Beschreibung prüfen und auf den Button "Create pull request" klicken 51 | ![How to create a Pull Request 5](https://df6m0u2ovo2fu.cloudfront.net/images/documentation-english/how-to-pull-request-5.png) 52 | 53 | ### Schritt 6: Erledigt! 54 | ![How to create a Pull Request 6](https://df6m0u2ovo2fu.cloudfront.net/images/documentation-english/how-to-pull-request-6.png) 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 |
$tags = $Page->tagsArray();
 33 | foreach($tags as $tag) {
 34 |   echo $tag;
 35 | }
 36 | 
37 | 38 | Print page position. 39 |
echo $Page->position();
40 | 41 | Print page username. 42 |
echo $Page->username();
43 | 44 | Print author of the page. 45 |
echo $Page->author();
46 | 47 | Get created date in unix time stamp and format it. 48 |
$time = $Page->unixTimeCreated();
 49 | 
 50 | // Format time
 51 | echo date('Y-m-d', $time);
 52 | 
53 | 54 | Print created page date, according to locale settings and format settings. 55 |
echo $Page->dateCreated();
56 | 57 | Print last modified date, according to locale settings and format settings. 58 |
echo $Page->dateModified();
59 | 60 | Print the time ago. 61 |
echo $Page->timeago();
62 | 63 | Get slug url. 64 |
$slug = $Page->slug();
65 | 66 | Get page key. 67 |
$key = $Page->key();
68 | 69 | Get page permalink. This is the absolute link of the page. 70 |
$permalink = $Page->permalink();
71 | 72 | Get page parent key. If the page does't have a parent then return FALSE. 73 |
$parentKey = $Page->parentKey();
 74 | if($parentKey!==false) {
 75 |   echo 'The page have a parent';
 76 | }
 77 | else {
 78 |   echo 'The page have not a parent';
 79 | }
 80 | 
81 | 82 | Get children of the page. 83 |
$children = $Page->children();
 84 | forech($children as $childKey) {
 85 | 	echo 'The child key is '.$childKey;
 86 | }
 87 | 
88 | 89 | Get page status, this method returns TRUE if the page is published, FALSE otherwise. 90 |
if( $Page->published() ) {
 91 | 	echo 'Page published';
 92 | }
 93 | else {
 94 | 	echo 'Page draft';
 95 | }
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 |
foreach($pages as $page)
107 | {
108 | 	echo $page->title();
109 | }
110 | 
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 |
foreach($posts as $post)
130 | {
131 | 	echo $post->title();
132 | }
133 | 
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 | <?php echo $Site->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 | <?php echo $Site->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 | <?php echo $Site->title() ?> 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 |

title() ?>

225 | 226 | whereAmI()=='home') { 228 | foreach ($pages as $Page) { 229 | echo '

'.$Page->title().'

'; 230 | echo '
'.$Page->content().'
'; 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 | <?php echo $Site->title() ?> 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 |

title() ?>

272 | 273 | whereAmI()=='home') { 275 | foreach ($pages as $Page) { 276 | echo '

'.$Page->title().'

'; 277 | echo '
'.$Page->content().'
'; 278 | echo '
'; 279 | } 280 | } 281 | elseif ($Url->whereAmI()=='page') { 282 | echo '

'.$Page->title().'

'; 283 | echo '
'.$Page->content().'
'; 284 | } 285 | elseif ($Url->whereAmI()=='category') { 286 | echo 'The user is browsing a particular category'; 287 | } 288 | elseif ($Url->whereAmI()=='tag') { 289 | echo 'The user is browsing a particular tag'; 290 | } 291 | ?> 292 | 293 | 294 | ``` 295 | 296 | ### 3.6. Plugin Unterstützung für die Hooks 'site body begins' und 'site body ends' 297 | Um unser Theme fertigzustellen fügen wir noch die Funktionen für Plugins hinzu. 298 | 299 | ``` 300 | 301 | 302 | 303 | 304 | 305 | 306 | <?php echo $Site->title() ?> 307 | 308 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 |

title() ?>

323 | 324 | whereAmI()=='home') { 326 | foreach ($pages as $Page) { 327 | echo '

'.$Page->title().'

'; 328 | echo '
'.$Page->content().'
'; 329 | echo '
'; 330 | } 331 | } 332 | elseif ($Url->whereAmI()=='page') { 333 | echo '

'.$Page->title().'

'; 334 | echo '
'.$Page->content().'
'; 335 | } 336 | elseif ($Url->whereAmI()=='category') { 337 | echo 'The user is browsing a particular category'; 338 | } 339 | elseif ($Url->whereAmI()=='tag') { 340 | echo 'The user is browsing a particular tag'; 341 | } 342 | ?> 343 | 344 | 345 | 346 | 347 | 348 | 349 | ``` 350 | 351 |
352 |
Beispiele
353 | Wir haben ein Github-Repository mit Beispielen, welches du unter folgendem Link findest: Bludit Theme Beispiele. 354 |
355 | --------------------------------------------------------------------------------