Kategorien
Content Management Systeme Shared Hosting Site Builder Webdesign

GRAV 1.1 CMS – einfach, schnell, komfortabel, elegant

Im Februar letzten Jahres habe ich hier im Blog die Version 0.9 des Open Source Content Management Systems GRAV vorgestellt (GRAV – Ein schnelles, dateibasiertes, einfaches CMS). Letzte Woche ist die Version 1.1 erschienen und es hat sich eine Menge getan.

Eine gute Gelegenheit mal wieder einen Blick auf das Projekt zu werfen.

GRAV Core oder GRAV Core + Admin Plugin

GRAV bietet nun ein Admin Plugin an, das es dir unter anderem erlaubt, deine Seiten im Browser anzulegen und zu verändern. Um die Installation zu erleichtern, wird das populäre Admin Plugin gleich bei der Installation mit angeboten (https://getgrav.org/downloads).

GRAV Download
GRAV Download

Installation

Da es sich bei GRAV um ein dateibasiertes CMS handelt, das keine Datenbank benötigt, gestaltet sich die Installation sehr einfach. Du lädst einfach das gewünschte Paket herunter und entpackst es im Webserver Dokumentenverzeichnis. Das kann lokal beispielsweise das MAMP oder XAMPP /htdocs Verzeichnis sein oder in deinem Webhosting bei Novatrend das /public_html Verzeichnis.

Nach dem Entpacken des Dateipakets, in meinem Fall grav-admin.zip, kannst du das System sofort unter deinem Domainnamen aufrufen. Das Admin Plugin fragt nach Namen, E-Mail und Passwort eines Administrators.

GRAV - Admin - Benutzerkonto anlegen
GRAV – Admin – Benutzerkonto anlegen

Nach diesem „Installationsschritt“ ist GRAV einsatzbereit und du landest im GRAV Dashboard http://domainname/admin.

GRAV - Admin - Dashboard
GRAV – Admin – Dashboard

Um die Administrationsberfläche in einer anderen Sprache zu haben, kannst du in deinem Benutzerprofil einfach die gewünschte Sprache einstellen. Wenn zu deiner E-Mail Adresse auf gravatar.com ein Benutzerbild zugeordnet ist, wird es automatisch angezeigt.

GRAV - Benutzerprofil
GRAV – Benutzerprofil

Inhalte verwalten

Im Bereich Seiten ist bereits eine Seite vordefiniert. Sie enthält Hilfetext im Markdown Format. Der Editor ist umschaltbar zwischen einer Vorschau und dem Markup Text. Bilddateien können einfach in das Formular gezogen werden.

GRAV - Editor
GRAV – Editor

Mehrsprachigkeit

GRAV ist von Haus aus mehrsprachig. Die gewünschten Sprachen können in den Einstellungen mit dem gewünschten Sprachkürzel angegeben werden.

GRAV - Sprachen
GRAV – Sprachen

Nach dieser Einstellung lassen sich Seiten in diesen Sprachen erstellen. Alle Seiten hängen unter einem „Ursprung“. In meinem Fall Deutsch in https://domainname/de, English in /en und Französisch in /fr. Hier habe ich für jede Sprache eine Ursprungsseite angelegt.

GRAV - Seiten
GRAV – Seiten

Im Ergebnis erhalte ich dann automatisch eine Navigation mit Links zu den entsprechenden Sprachen.

08-GRAV-Menu

So in dieser Art kannst du dir Stück für Stück deine Website zusammenstellen.

GRAV Features

Aus der wirklich beeindruckenden Menge an Features hier ein paar Beispiele.

Alles ist dateibasiert

Alle Inhalte liegen in Dateien, auch die Parameter der Benutzer. Hier beispielsweise meine Benutzerdaten in der Datei /grav-admin/user/accounts/hagengraf.yaml

email: hagen@novatrend.ch
fullname: 'Hagen Graf'
title: Administrator
state: enabled
access:
admin:
login: 'true'
super: 'true'
site:
login: 'true'
hashed_password: $2y$10$g24b8JM48YapGjA7JCCQs.8TyKYoFz13h59P9XVCYdQy5LBZs/zH6
language: de

oder die Inhalte der Seiten in /user/pages, hier die französische Seite:

GRAV - Dateibaum
GRAV – Dateibaum

Backup/Restore

Durch das Fehlen einer Datenbank werden das Erstellen von Backups und der Restore Vorgang erheblich vereinfacht. Die Dateien müssen einfach nur kopiert werden!

CLI-Tools

GRAV ist komplett über die Konsole steuerbar. Der Befehl bin/grav list erzeugt eine Liste der verfügbaren Befehle.

$ bin/grav list
Grav CLI Application version 1.1.1
Usage:
command [options] [arguments] Options:
...
Available commands:
backup Creates a backup of the Grav instance
clean Handles cleaning chores for Grav distribution
clear-cache Clears Grav cache
clearcache Clears Grav cache
composer Updates the composer vendor dependencies needed by Grav.
help Displays help for a command
install Installs the dependencies needed by Grav. Optionally can create symbolic links
list Lists commands
new-project Creates a new Grav project with all the dependencies installed
newproject Creates a new Grav project with all the dependencies installed
sandbox Setup of a base Grav system in your webroot, good for development, playing around or starting fresh

Package Manager

Mit dem CLI Paketmanager lassen sich alle verfügbaren Themes und Plugins installieren, aktualisieren und deinstallieren.

Je nach Vorliebe entweder über die Kommandozeile

$ bin/gpm list

oder über das Dashboard im Browser

GRAV - verfügbare Plugins
GRAV – verfügbare Plugins

Es gibt momentan 62 Themes und 118 Plugins!

Schnell und ohne grosse Ansprüche

Um GRAV zu betreiben, brauchst du

  • einen Webserver (Apache, Nginx, LiteSpeed, IIS, Lighly, etc)
  • PHP 5.5.9 oder neuer

… und es ist sehr schnell!

Inhalte

Bei der Inhaltserstellung und Verwaltung sind die folgenden Features bemerkenswert

  • Du kannst in Markdown und/oder HTML schreiben
  • Modulare Seiten sind Seiten, die aus anderen existierenden Seiten erstellt werden. Das ist praktisch für One-Page Formate.
  • Du kannst Custom Fields erstellen
  • Bilddateien werden dynamisch angepasst (Grösse verändern, Formate schneiden, Effekte)
  • Responsive Bilder für hohe Auflösungen, beispielsweise Retina Bildschirme werden unterstützt

Themes

Es gibt viele interessante Ansätze bei den Themes, hier beispielsweise das Card Stack Theme (Demo).

GRAV - Cardstack Theme
GRAV – Cardstack Theme

Fazit

GRAV blüht, wächst und gedeiht und alles, was vor einem Jahr nur über einen Dateieditor möglich war, lässt sich jetzt auch bequem im Browser erledigen. Die hervorragende Dokumentation unter https://learn.getgrav.org lässt kaum Fragen offen.

Links:


tl;dr: GRAV ist ein schnelles, einfach zu bedienendes und erweiterbares Open Source CMS

Save

Kategorien
Content Management Systeme Shared Hosting Webdesign

GRAV, ein schnelles, dateibasiertes, einfaches CMS

Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS

Im Jahr 2004 installierte ich zum ersten Mal Drupal. Die Version 4.x war aktuell und all die hippen Module wie Views und Panels gab es noch nicht. Was mich damals faszinierte, waren die einfachen, klaren Strukturen, die Inhaltstypen, Felder, Berechtigungen, Templates, Ordnerstrukturen. Ich fing sofort an, damit zu „spielen“. Einen ähnlichen Effekt löste Mambo bei mir im Jahr 2002 und PHPNuke im Jahr 1999 aus (und davor Perl, und davor Lego 🙂 ). In den letzten 10 Jahren ist mir im Bereich PHP basierte Open Source CMS nichts über den Weg gelaufen, was einen ähnlichen Aha- und Bastel-Effekt bei mir auslöste und mich dazu brachte sofort eine Website damit zu bauen.

Ende 2014 stolperte ich über GRAV CMS. Es ist dateibasiert und benötigt daher keinen Installationsvorgang im klassischen Sinne. Das Dateipaket wird ausgepackt und die Website ist da! Es gibt Standard-, Listing– und Modulare Seiten, die mit Text und Bildern gefüllt werden können. Es gibt zusätzliche Plugins und Themes. Die Inhalte werden in der Auszeichnungssprache Markdown geschrieben und dann mittels vordefinierten Twig Templates formatiert. Für die Geschwindigkeit wird auf Doctrine Cache zurückgegriffen, für die Wartbarkeit und Erweiterbarkeit auf Pimple (Was ist Pimple?). Der Symfony Event Dispatcher sorgt wie bei Drupal 8 für das Plugin handling und die Symfony Console für ein Kommandozeilen Interface. Bilder werden mit der Gregwar Image Library in einem Aufruf bearbeitet.

Um schnell zu brauchbaren Ergebnissen zu kommen, gibt es ein gute Dokumentation, ein Forum und einen Chat. GRAV ist als persönliches Projekt von Andy Miller, dem Gründer von Rocket Theme, Mitte 2014 gestartet worden. Es steht unter der MIT Lizenz und das Business Modell ist einfach zu verstehen: Jeder kann Erweiterungen schreiben und diese kostenlos anbieten oder verkaufen. Das Team um Andy Miller erstellt und verkauft über Rocket Theme seit 10 Jahren Themes für Joomla, Drupal, WordPress, Magento und PHPbb und hat dabei praktische Erfahrungen aus allen CMS sammeln können sowie Nervenstärke bei den Architektur-Entscheidungen der jeweiligen Projekte erwerben müssen. Beide Faktoren wirken sich positiv pragmatisch auf das GRAV Projekt aus.

In Joomla, Drupal und WordPress gibt es jeweils Einzeldarstellungen (eine Seite) und Listdarstellungen von Inhalten (mehrere angerissene Einzelinhalte auf einer Seite mit weiterlesen Link, o.ä.). Die Einzeldarstellungen sind meist auf eine Komponente (Joomla), ein Modul (Drupal) oder ein Plugin (WordPress) beschränkt. In TYPO3 können die Einzelseitendarstellungen mit zusätzlichen Elementen angereichert werden. Dieses Grundprinzip lässt sich über Erweiterungen verändern, aber das führt nicht unbedingt zu einer übersichtlicheren Struktur. Das Design einer Seite mit Inhalt zu verändern ist dabei kein trivialer Vorgang. Um eine wirklich „runde“ Website mit einem dieser „klassischen“ CMS zu erstellen, benötigt man einiges an Know How und Budget, heute also eher klassisches Agenturgeschäft.

GRAV vereinfacht den Bau von Websites erheblich, verzichtet im Core auf den ganzen Overkill aus Datenbank, Benutzerkonten, und -Berechtigungen und ist dabei natürlich ungemein schnell bei der Seitenausgabe. Es vereint die Vorteile bei der Inhaltsdarstellung aller oben genannten CMS und bricht sie auf das Wesentliche herunter (Einzel-, List- und Modulardarstellung). Das Schreiben von Inhalten in Markdown macht Spass und ist einfach zu erlernen, die Pflege der Texte kann über FTP, GitHub, Dropbox und theorethisch alle Services, auf denen Dateien gehostet werden können, erfolgen.

Ein browserbasierter Administrationsbereich war ursprünglich von Rocket Theme geplant, wurde aber von niemandem implementiert und bisher auch nicht wirklich vermisst. Bei höheren Anforderungen (eCommerce) kann das System abhängig vom eigenen Wissensstand über vordefinierte oder selbst geschriebene Plugins erweitert werden.

Achja, und hier ist meine erste GRAV Website (fimidi.com).

Lassen Sie uns eine kleine Website mit dem GRAV CMS erstellen. Sie können das lokal auf Ihrem PC machen oder direkt auf Ihrem Root-Server. Ich nehme mal gleich den Server.

Installation

Wir arbeiten immer noch mit Ubuntu 14.04 und dem Apache Webserver. Erstellen Sie also zunächst einen vhost (Viele virtuelle Server auf einem Root-Server), entpacken dann GRAV in ihr Dokumentenverzeichnis und rufen Sie es in Ihrem Browser auf. Die aktuellste Version finden Sie auf getgrav.org/downloads.

wget https://github.com/getgrav/grav/releases/download/0.9.15/grav-v0.9.15.zip
unzip grav-v0.9.15.zip

Rufen Sie nun im Browser die entsprechende URL auf und GRAV ist fertig installiert.

GRAV Installation
GRAV Installation
Die Dateien, die sich im Ordner /user befinden, enthalten die Inhalte, Metadaten und Formatierungen Ihrer Website. Wenn Sie Ihre Site lokal mit Inhalt befüllen, so müssen Sie einfach diesen Ordner mit Ihrem Server synchronisieren.

  • user/config/ – Konfiguration Ihrer Website sowie des GRAV Systems
  • user/data/ – Hier können von Plugins bei Bedarf Daten gespeichert werden
  • user/pages/ – die einzelnen Seiten
  • user/plugins/ – die installierten Plugins (Die Plugins error und problem sind Standard)
  • user/themes/ – das Theme Antimatter ist Standard

In der 1.0 Version wird noch der Ordner user/accounts/ hinzukommen.

  • user/accounts/ – Benutzerkonten und Berechtigungen

Konfiguration und Erstellung von Inhalt

Editieren Sie zunächst die Datei user/config/site.yaml

title: serverblogger.ch
author:
  name: Hagen Graf
  email: 'hagen@novatrend.ch'
metadata:
    description: 'Wir zeigen, wozu man Root-Server benutzen kann!'

Die einzige Seite, die vordefiniert ist, ist die Home Seite (user/pages/01.home/default.md). Der Dateiname default.md heisst default, weil es ein Twig-Template mit dem gleichen Namen im Antimatter Theme gibt, über das der Inhalt der Home Seite interpretiert wird (user/themes/antimatter/default.html.twig). Die Endung .md steht für Markdown. So sieht eine einfache Seite aus. Der Titel ist gleichzeitig der Name des Menülinks.

---
title: Startseite
---

# Eine Website mit GRAV
## Die Installation war wirklich einfach

Das hier ist der Text meiner **ersten** Seite
Grav simple page
Grav simple page
Wenn Sie ein Bild auf Ihrer Seite haben wollen, so kopieren Sie es einfach in Ihr Seitenverzeichnis /user/pages/01.home. Hier ein Beispiel:

cd /user/pages/01.home
wget https://farm8.staticflickr.com/7508/15154508894_3338ae7a2b_k.jpg

Editieren Sie die default.md entsprechend, um das Bild anzeigen zu können.

---
title: Startseite
---

# Eine Website mit GRAV
## Die Installation war wirklich einfach

Das hier ist der Text meiner **ersten** Seite
![Maserati](15154508894_3338ae7a2b_k.jpg?resize=400,200)
default.md mit Bild
default.md mit Bild
Probieren Sie ein anderes Twig-Template aus, um ein Gefühl für das Prinzip zu bekommen. Benennen Sie dazu die Datei default.md um in blog.md. Das Ergebnis sieht so aus:
blog.md
blog.md
Das Blog Template macht aus Ihrem Bild automatisch ein Headerbild und verändert die Farbe. Ausserdem taucht noch ein Text Widget auf. Wenn Sie eine zweite Seite haben wollen, erstellen Sie einfach einen Ordner /user/pages/02.seitenname und darunter eine Datei mit dem Namen eines existierenden Templates.

Es gibt für alle Beispielsites (Skeleton) für gängige Anwendungen (z.B. Blog, Shop, One-Page-Site), viele nützliche Plugins und natürlich Themes.

Als ich an diesem Punkt das erste Mal ankam, beschloss ich unsere fimidi Site damit zu bauen 🙂

Wenn es Ihnen genauso geht, hier sind nochmal die momentan wichtigsten Ressourcen (getgrav.org).

Dokumentation, Forum und Chat.

Und nun wünsche ich Ihnen viel Spass und viel Zeit!


tl;dr: Das dateibasierte CMS GRAV macht einfach Spass und Lust auf mehr.