concrete5: Editor (Redactor) ohne Menüleiste

Nachdem ich ein Theme (Thema) für concrete5 gebaut hatte, stellte sich heraus, dass der WYSIWYG-Editor Redactor nicht richtig funktionierte. Zum Beispiel fehlte die Menüleiste und der Dateimanager wurde nicht angezeigt, wenn man eine Datei hochladen wollte. Ich musste ziemlich lange nach einer Lösung suchen.

Da ich kein gelernter Programmierer bin, verstehe ich die Details nicht; aber es ist jedenfalls so, dass concrete5 in der Version 7 mit sogenannten Assets arbeitet. Damit sind CSS- und JavaScript-Dateien gemeint, die typischer Weise gleichzeitig erforderlich sind, um bestimmte Funktionalitäten hinzufügen zu können. Damit zum Beispiel der Redactor-Editor funktionieren kann, müssen bestimmte CSS- und JavaScript-Dateien inkludiert werden. Diese Assets müssen im Theme registriert werden. Zu diesem Zweck wird folgender Code in die Datei application/themes/[theme]/page_theme.php eingetragen:

class PageTheme extends Theme {
	public function registerAssets() {
		$this->requireAsset('redactor');
	}
}

Da auch noch JQuery und der Dateimanager benötigt werden, lautet der gesamte Code:

class PageTheme extends Theme {
	public function registerAssets() {
       	$this->requireAsset('javascript', 'jquery');
		$this->requireAsset('redactor');
		$this->requireAsset('core/file-manager');
	}
}

Nachdem ich das so eingetragen hatte, funktionierten sowohl der Redactor als auch der Dateimanager.

Quellen:
concrete5-Forum
Stack Overflow
concrete5-Dokumentation

Pulse CMS in neuen Händen

Mark und Ulli, die bisher das datenbanklose Content-Management-System Pulse CMS programmiert und vertrieben hatten, haben am 12. Dezember 2015 verkündet, dass sie ihr CMS jetzt an einen neuen Besitzer übergeben haben. Ich hatte vorher schon gelesen, dass sie ihr CMS mitsamt der Domain verkaufen wollten.

Der neue Besitzer ist Michael Frankland, von dem Dropkick CMS stammt. Ich war froh zu hören, dass Mark und Ulli sich für ihn als Käufer entschieden haben, denn sein Dropkick CMS habe ich vor gar nicht langer Zeit entdeckt und bin auch von diesem CMS sehr angetan. Da ich Fragen zu Dropkick hatte, habe ich per E-Mail Kontakt zu ihm aufgenommen und schnell und freundlich Antwort bekommen. Deswegen gehe ich davon aus, dass er auch Pulse gewissenhaft weiter entwickeln und vertreiben wird. Er hat außerdem geäußert, beide Systeme bestehen zu lassen, sie also nicht miteinander verschmelzen zu wollen. Das ist eine gute Entscheidung, denn beide Content-Management-Systeme sind doch recht unterschiedlich.

Da ich neben concrete5 und WordPress neuerdings auch Pulse für Kunden-Websites einsetze, werde ich zukünftig hier im Blog auch immer mal wieder über dieses CMS schreiben.

Concrete5: Vereinfachtes Bloggen in 5.7

Das Bloggen war in concrete5 früher ziemlich umständlich, und auch sonst war die Bedienung des Systems nicht ganz intuitiv. Aber das CMS ist ja im Jahr 2014 von Grund auf neu programmiert worden. Mit den ersten Versionen des Entwicklungszweiges 5.7 war ich äußerst unzufrieden, sie waren – mit Verlaub gesagt – unbrauchbar. Doch die aktuelle Version 5.7.5.1 (Stand: November 2015) ist richtig klasse. Was mir besonders gut gefällt: Endlich kann man auf einfache Weise mit concrete5 bloggen. Klar, auch in 5.6 war ein im Kern eingebautes Blogmodul vorhanden – allerdings war die Handhabung, wie gesagt, alles andere als benutzerfreundlich. Jetzt geht das einfacher. Loggen wir uns ins Backend einer Standardinstallation ein und schauen uns das an!

Im rechten Bereich der oberen Menüleiste klickt man auf das Seitensymbol und dann auf Blogeintrag.

Concrete5: Vereinfachtes Bloggen in 5.7 (Bild 1)
(Aufs Bild klicken zum Vergrößern)

Daraufhin öffnet sich automatisch der Composer und erlaubt es, auf einfache Weise einen Blogartikel zu verfassen. Oben gibt man die Meta-Daten ein, die für die Suchmaschinen von Bedeutung sind: Seitentitel und Beschreibung. Der Seitentitel ist gleichzeitig die Hauptüberschrift des Artikels. Der freundliche URL wird aus dem vergebenen Titel automatisch generiert, aber er lässt sich auch von Hand ändern.

Concrete5: Vereinfachtes Bloggen in 5.7 (Bild 2)
(Aufs Bild klicken zum Vergrößern)

Rollt man nach unten, erscheint der Texteditor zur Eingabe des Inhalts. Darüber gibt es ein Eingabefeld zur Auswahl eines Beitragsbildes, das in den Blogartikel eingefügt werden soll; das heißt, man gelangt zur Dateiverwaltung, wo man ein bestehendes Bild auswählen kann, oder man lädt dort erst einmal eins hoch.

Über dem Eingabebereich für den Inhalt und das Beitragsbild sieht man noch einen Kasten, der in der deutschen Sprachversion mit Themen betitelt ist – in anderen Blogsystemen wird das oft als Kategorien bezeichnet. So etwas ist nützlich für Blogs, die sich mit verschiedenen Themenbereichen befassen, sodass die Leser die Einträge nach ihren eigenen Interessen filtern können.

Concrete5: Vereinfachtes Bloggen in 5.7 (Bild 3)
(Aufs Bild klicken zum Vergrößern)

Ist man mit dem Erstellen des Artikels fertig, klickt man auf Veröffentlichen, und der Artikel reiht sich an oberster Position auf der Blogartikel-Übersichtsseite in die vorhandenen Beiträge ein.

Wie aktualisiert man concrete5?

Das Content-Management-System concrete5 kann man auf verschiedene Arten aktualisieren. Doch Achtung: ein Upgrade von Version 5.6.x auf 5.7.x ist nicht möglich, da für 5.7 concrete5 von Grund auf und mit einem anderen Framework als vorher neu entwickelt worden ist. In diesem Fall muss man also leider alle Inhalte von Hand übertragen.

Um innerhalb der Major-Version 5.7 von einer auf die andere Minor-Version zu aktualisieren, gibt es verschiedene Möglichkeiten. Die bequemste ist sicherlich, das Update aus dem Dashboard heraus automatisch ablaufen zu lassen. Andere Möglichkeiten sind mit ein bisschen Handarbeit verbunden. Wenn man zum Beispiel Platz auf dem Webserver sparen will, bietet es sich an, das Verzeichnis /concrete mit dem gleichnamigen Verzeichnis der neuen Version zu überschreiben.

Genaue Handlungsanweisungen kann man der Online-Dokumentation (in englischer Sprache) entnehmen.

concrete5: Das z-index-Problem

In concrete5 hatte ich folgendes Problem: Ich hatte zwei Ebenen so übereinander gelegt, dass ein leicht transparenter Bereich einen anderen Bereich überlagerte; in der CSS-Datei hatte ich dem oben liegenden Bereich einen z-index-Wert gegeben; beide Bereiche wurden mit Blöcken (unten Slideshow-Block, oben HTML-Block) befüllt; doch im Dashboard von concrete5 ließ sich nun der Block in der oben liegenden Ebene nicht anklicken, also auch nicht bearbeiten.

Dies ist natürlich ein äußerst rätselhaftes Verhalten. Doch nach einiger Sucherei fand ich die Lösung (wie so oft) im concrete5-Forum. Und zwar darf man keinen z-index größer oder gleich 5 vergeben. Mit einer kleineren Zahl hingegen klappt es.

Das liegt daran (um es concrete5-Insidern zu erklären), dass dem CCM-Highlighter von Seiten der Programmierer der recht kleine Wert von 5 für den z-index gegeben worden ist. Man kann diesen Wert aber durch eine Angabe in der CSS-Datei des eingesetzten Themas (/themes/­[mytheme]/­main.css) überschreiben, wie ebenfalls im Forums-Thread zu lesen ist:
div#ccm-highlighter {z-index:100!important;}.

Das concrete5-Forum ist also wirklich eine Fundgrube für gute Tipps (wenn man der englischen Sprache mächtig ist). Danke schön an die vielen freundlichen Mitglieder für ihre bereitwilligen Hilfestellungen!

concrete5: Format der Seitentitel ändern

In der Standardeinstellung von concrete5 werden die Seitentitel in den Meta-Angaben so generiert, dass der eingegebene Name des Webauftritts und der eigentliche Titel durch einen doppelten Doppelpunkt, also ::, getrennt werden. Wenn man das als unschön empfindet, hat man die Möglichkeit, diese Punkte durch ein anderes Zeichen zu ersetzen. Wie das geht, wird in der concrete5-Dokumentation erklärt.

concrete5: Unable to get permission key for access_user_search_export

Nach dem Update einer concrete5-Installation bei einem Kunden erschien die Fehlermeldung: Unable to get permission key for access_user_search_export. Ob sich aufgrund dieses Fehlers eine Benutzerin nicht am System anmelden konnte oder ob das andere Gründe hatte, war leider im Nachhinein nicht nachvollziehbar. Jedenfalls fand ich die Lösung zur Behebung dieses Fehlers im concrete5-Forum. Es ist ein kleiner Eingriff in die Datenbank nötig.

Warum ich kein Typo3 verwende

Warum ich kein Typo3 verwende, ist eigentlich in wenigen Worten erklärt, auch wenn mir Typo3-Freaks wahrscheinlich gern den Kopf abreißen würden: Ich habe weder Zeit noch Lust, mich ein halbes Jahr lang einzuarbeiten, um das System zu verstehen und ein Theme selber erstellen zu können. Und ich möchte ein so unintuitiv bedienbares System auch meinen Kunden nicht zumuten.

Natürlich muss man sich auch mit WordPress und concrete5, meinen Lieblings-Systemen, ein wenig näher befassen, um gut damit arbeiten zu können. Aber wenn man fit in HTML und CSS ist und PHP halbwegs versteht, kann man schon nach einigen Tagen eigene Themes bauen. Es gibt bei beiden Content-Management-Systemen keine Template-Sprache, alles lässt sich mit purem PHP steuern.

Aber, na gut … Warum einfach, wenn es auch umständlich geht! Und die ganzen Typo3-Agenturen können sich auf die Schulter klopfen, so ein kompliziertes Zeug bestens zu verstehen. Und können dem Kunden eine Menge Geld abknöpfen, weil Typo3 ja das absolute Enterprise-CMS ist. Und natürlich ist auch ein Kunde, der einen eher kleinen Webauftritt mit fünf Seiten plus Kontaktformular braucht, mit Typo3 bestens beraten. Jo.

concrete5: Wenn im Composer Eingabefelder fehlen (Teil 2)

Kürzlich hatte ich beschrieben, wie man fehlende Eingabefelder im Composer für die Blogartikel-Texte nachrüsten kann.

Ich hatte geschrieben, dass man sich ins Dashboard einloggt, zu den Seitentypen navigiert und im Seitentyp blog_entry die gewünschten Blöcke als Platzhalter einfügt. Nur leider fehlte eine Winzigkeit: Man muss, während man sich im Bearbeitung­smodus befindet, im Kontextmenü des eingefügten Blocks noch Composer-Einstellungen wählen.

concrete5-block-in-composer-einbinden-1.png

Im daraufhin erscheinenden Bearbeitungs-Fenster setzt man dann ein Häkchen bei Block in Composer einbinden. Erst dann erscheint solch ein Bereich auch im Composer.

concrete5-block-in-composer-einbinden-2.png

Das wirkt zunächst einmal alles ein bisschen umständlich. Es wird aber einleuchtend, wenn man bedenkt, dass sich die in einem Theme (Gestaltungsthema) enthalten Seitenvorlagen sehr flexibel durch den Webentwickler für den Kunden programmieren lassen und somit das System gar nicht wissen kann, welche Block-Platzhalter überhaupt im Composer zur Verfügung gestellt werden sollen und wie der Webentwickler sie genannt hat. Dennoch wäre es sicherlich eine gute Idee, wenn die concrete5-Programmierer die beiden Standard-Platzhalter Main und Blog Post More, falls vorhanden, im Composer auswählbar machen würden oder so was. So steht man als Anwender und/oder Webdesigner nicht wie der Ochs vorm Berg. Und wie man an den Fragen in den Foren erkennen kann, bin ich beileibe nicht der einzige »Ochse«.

concrete5: Wenn im Composer Eingabefelder fehlen

Der Composer im CMS concrete5 ist dafür da, auf besonders einfache Art neue Seiten oder Blogartikel zu erstellen. Andere Möglichkeiten sind, in der Verwaltung den Seitenbaum aufzurufen und dort eine neue Seite anzulegen; oder man geht direkt auf die Seite, zu welcher eine Unterseite erstellt werden soll. Der Composer soll einem diese langen Wege ersparen. Außerdem kann man ganz gut Seiten vorbereiten, ohne sie gleich veröffentlichen zu müssen; anders gesagt, es lassen sich Entwürfe speichern.

Ich muss gestehen, dass ich früher nie verstand, was dieser Composer überhaupt sollte. Aber es wurden bei mir auch nie irgendwelche Editoren oder Eingabebereiche für die zu erstellenden Texte angezeigt.
concrete5-composer-editoren.png

Ich begann zwar bald zu ahnen, dass da vielleicht in den Einstellungen etwas nicht stimmen konnte, ging der Sache aber nicht weiter nach. Kürzlich ließ mir das Thema aber endlich doch keine Ruhe mehr, und ich ging auf die Suche nach einer Lösung. Diese Lösung lautet: Man loggt sich ins Dashboard ein, geht zu Verwaltung > Seiten & Themes > Seitentypen, dort zu Blog Entry > Standards und fügt hier schon einmal Inhaltsblöcke ein. Am besten gibt man kurze Platzhalter-Texte als Hinweise ein.
concrete5-composer-bloecke.png

Quelle: concrete5.org/community/forums/

Nachtrag: Ein letzter Handgriff fehlt noch, wie ich feststellen musste! Er wird in Teil 2 beschrieben.


Torsten Kelsch