Logo von Mediengestaltung Torsten Kelsch

Concrete5, Version 8: Absenderadresse des Kontaktformulars

Im Jahr 2012 schrieb ich in meinem Artikel concrete5: Absender im Kontaktformular (2), dass standardmäßig die Absenderadresse des Kontaktformulars von concrete5 diejenige des Superadministrators ist. Der dürfte in vielen Fällen ein Webdesign-Dienstleister sein. Natürlich soll der Absender die E-Mail-Adresse des Kunden, nicht die des Dienstleisters sein – also die Adresse des Website-Inhabers. Mein damaliger Lösungsvorschlag hatte sich auf die concrete5-Version 5.6 bezogen. In den aktuellen Achter-Versionen muss man ein wenig anders vorgehen. Hier die Lösung für concrete5 in der Version 8:

Es muss eine PHP-Datei im Ordner application/config erstellt werden mit dem Dateinamen concrete.php, und diese muss folgenden Code beinhalten:

<?php
    return array(
	'email' => array(
	    // The system default sender (Group A)
	    'default' => array(
            'address' => 'info@domain.de',
            'name' => 'Unternehmensname', // this can be left out
        ),
        // The individual senders (Group B)
        // Form block:
        'form_block' => array(
            'address' => 'info@domain.de',
        ),
        // User registration email validation messages
        'validate_registration' => array(
            'address' => 'info@domain.de',
            'name' => 'Unternehmensname', // this can be left out
        ),
        // Forgot password messages
        'forgot_password' => array(
            'address' => 'info@domain.de',
        ),
    ),
);

Die Beispiel-Daten, info@domain.de und Unternehmensname, müssen natürlich durch die echten Daten ersetzt werden. Die Datei kann bei Bedarf weitere Einträge für andere Konfigurationszwecke beinhalten.

Pagekit: Meta-Beschreibung nachrüsten

Bei der Analyse einer bestimmten Website mit Seitwert stellte sich heraus, dass die Meta-Beschreibung (description) fehlte, die relevant für Suchmaschinen ist. Die Website wird mit dem CMS Pagekit betrieben, und seltsamerweise fügt dieses CMS zwar die Beschreibungen, die man im Backend eingibt, als og:description in den Quellcode ein (das Open-Graph-Protokoll ist von Bedeutung für soziale Medien), aber eben nicht als herkömmliche Meta-Beschreibung.

Dieses Manko kann man durch das Plugin Metadesc beheben, das es erst seit März 2017 gibt – es ist also zu dem Zeitpunkt, da ich diesen Blogartikel schreibe, noch sehr neu. Ich habe es erst heute entdeckt und gleich eingebaut – und es funktioniert wunderbärchen.

concrete5: Nicht die Willkommens-Seite nach dem Einloggen anzeigen

Standardmäßig ist das Web-CMS concrete5 so eingestellt, dass der Benutzer nach dem Einloggen ins System auf einer Art Willkommens-Seite landet, dem sogenannten Schreibtisch. Dort erhält man allerlei Informationen rund um concrete5, zum Beispiel, was es für Sonderangebote gibt, welche Erweiterungen gerade im Fokus stehen oder welche Tutorien aktuell angeboten werden.

Willkommen zurück
(Aufs Bild klicken zum Vergrößern)

Wen das alles nervt, der kann concrete5 in der Version 8 sehr einfach so einstellen, dass man auf der Startseite landet oder einer beliebigen anderen (in früheren Versionen musste man eine Konfigurationsdatei ändern). Dazu meldet man sich am System an und navigiert zu System & Einstellungen > Anmeldung & Registrierung > Weiterleitung nach der Anmeldung. Und dort kann man dann eine von drei Möglichkeiten auswählen.

Weiterleitung nach der Anmeldung

Wie gesagt, voreingestellt ist Schreibtisch, und ich stelle gewöhnlich um auf Startseite. Dann sieht man die Startseite des Webauftritts vor sich, da das Dashboard in concrete5 ja kein abstraktes Backend ist, sondern man immer die Seiten in der »echten« Ansicht vor sich sieht.

Benutzer weiterleiten zu

Gefunden habe ich diese Lösung im Forum von concrete5.

concrete5: RSS-Feed eigener Inhalte einrichten

Mit dem CMS concrete5 lassen sich die unterschiedlichsten Webauftritte realisieren. Es bietet auch die Möglichkeit, ein Blog oder einen News-Bereich einzurichten – allerdings ist das meiner Ansicht nach in concrete5 nicht wirklich elegant gelöst und intuitiv genug. Es gibt Add-ons für diesen Zweck, aber auch mit Bordmitteln kriegt man es hin. Gewöhnlich bietet man mit einem Blog oder Neuigkeiten-Bereich auch einen RSS-Feed an, sodass Interessierte anonym die aktuellen Nachrichten abonnieren können. Wie man so einen Feed in concrete5 einrichtet, darum geht es in diesem Beitrag.

Kurz ein paar Sätze zur Erklärung: Ein Weblog ist in aller Regel so strukturiert, dass jeder Artikel eine eigene Seite ist und die Blog-Startseite eine bestimmbare Anzahl aktueller Artikel auflistet. Ein Umwandler ruft nun diese HTML-Seiten auf und baut sie in ein XML-Format um, wodurch die Daten so aufbereitet werden, dass Feed-Leseprogramme die Struktur erkennen und die Inhalte darstellen können. Das Design der Webseite ist in der XML-Datei nicht enthalten, und jeder Feed-Reader gestaltet die Artikel etwas unterschiedlich.

Doch jetzt zur Sache, Schätzchen! Wie setzen wir so etwas in concrete5 um? Nun, wir erstellen erst einmal eine Seite, die als Blog-Startseite dienen soll. Zu dieser Seite können wir schon einmal eine oder zwei Unterseiten als Dummys erstellen und ein bisschen Beispieltext hinein schreiben. Auf die Blog-Startseite kommt nun ein Seitenliste-Block, der die Unterseiten auflisten soll. Es sind etliche Einstellungen vorzunehmen; wichtig in diesem Zusammenhang hier ist, dass bei RSS-Feed anzeigen die Wahlmöglichkeit Ja ausgewählt wird.

Seitenliste-Block: RSS-Feed anzeigen

Nachdem die Seitenliste fertig eingerichtet worden ist, zeigt sich das RSS-Symbol neben der eigentlichen Liste. Benutzer können nun den Feed in ihrem Feed-Reader abonnieren.

Seitenliste-Block: RSS-Symbol

Siehe auch: concrete5-Forum

Kanboard: There is no suitable CSPRNG installed on your system

Kanboard ist eine Projektverwaltungs-Software, die sich am Kanban-Prinzip orientiert. Sie ist Open Source und lässt sich auf dem eigenen Webserver installieren; ein Standard-Hosting-Paket mit PHP und MySQL/MariaDB, PostgreSQL oder SQLite 3 reicht aus.

Nach dem Update von einer ziemlich alten auf eine neue Version wurde meine Kanboard-Installation nicht mehr angezeigt. Statt dessen war die Fehlermeldung zu lesen: There is no suitable CSPRNG installed on your system. Bei meinen Recherchen fand ich heraus, dass es mit den Pfad-Einstellungen zu temporären Dateien oder mit der open_basedir-Restriktion zu tun haben könnte – beides PHP-Konfigurationen. Aber entsprechende Änderungen an den Einstellungen über die Verwaltungsoberfläche meines Webhosters halfen nicht.

Was man tun kann, wird in den FAQ von Kanboard erläutert. Darauf stieß ich, als ich die Dokumentation von Kanboard durchsuchte. Eine der Möglichkeiten besteht darin, die Domain oder Subdomain von PHP 5 auf PHP 7 umzustellen. Und das war die Maßnahme, die bei mir auch funktionierte.

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!