Logo von Mediengestaltung Torsten Kelsch

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.

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.

concrete5: Datum von Blogartikeln

Das CMS concrete5 speichert in der Datenbank die Angabe, wann ein Blogartikel erstellt wurde. Das dem Blogbesucher angezeigte Datum lässt sich allerdings ändern – und nach diesen öffentlichen Daten wird die Artikelliste auch sortiert, falls man eine chronologische Sortierung im Seitenlisten-Block eingestellt hat.
c5-blogartikel-datum.png

Wie aber lässt sich im Seitentyp blog_entry.php einstellen, dass eben diese Datumsangabe angezeigt werden soll? Indem man die Methode getCollectionDatePublic statt getCollectionDateAdded benutzt, etwa folgendermaßen:

<?php
    global $u;
    echo t(
        '%1$s',	
        $c->getCollectionDatePublic(DATE_APP_GENERIC_MDY_FULL) 
    );
?>

Quelle: concrete5.org/community/forums/

concrete5: Menü-Icons in TinyMCE fehlen

Neulich hatte ich nach einer frischen Installation von concrete5 das Problem, dass dem WYSIWYG-Editor TinyMCE im Content-Block die Menü-Icons fehlten. Auch früher schon einmal hatte ich das erlebt, und in Foren kann man lesen, dass es auch anderen Leuten bisweilen so geht. Dieses Phänomen ist ein bisschen mysteriös, denn es tritt anscheinend sporadisch auf, ohne erklärbare Ursache.

In meinem Fall könnte es daran gelegen haben, dass ich beim Upload der concrete5-Dateien ziemliche Verbindungs-Probleme zum FTP-Server des Kunden gehabt hatte und möglicherweise nicht alle Dateien korrekt hochgeladen worden waren. Nachdem ich die Ordner concrete/js und concrete/blocks gelöscht und neu hochgeladen hatte und außerdem das Verzeichnis files/cache geleert hatte, war wieder alles normal.

Diese Menüleiste fehlte.
(Aufs Bild klicken zum Vergrößern)

TinyMCE in concrete5: CSS anpassen

In einem älteren Artikel hatte ich erklärt, wie man die Schriftgröße des WYSIWYG-Editors TinyMCE in concrete5 anpassen kann, da ich die Schrift in der Standardeinstellung zu klein finde. In jenem alten Tipp wurde die Schriftgröße generell für alle Themes geändert.

Einfacher und schneller ist es jedoch, die Schriftgröße des Editors nur für das aktive Theme anzupassen. Denn der Standardfall dürfte sein, dass man ein einziges Mal ein Gestaltungsthema erstellt und das Erscheinungsbild seiner Website nicht wie die Unterwäsche wechselt. Für diesen Zweck kann man zusätzlich zur Datei main.css eine weitere Stildatei erstellen, nämlich typography.css. Und selbst wenn nach ein paar Jahren die Website neu gestaltet werden muss, kann man diese Datei ja einfach in das neue Theme-Verzeichnis übertragen.

Natürlich lassen sich neben der Schriftgröße auch andere Einstellungen über diese CSS-Datei beeinflussen – in einem schon recht alten, englischsprachigen Blogartikel des concrete5-Kenners Remo Laubacher geht es eher darum, die Textfarbe der Überschriften im Editor gleich aussehen zu lassen wie auf der Website.

Neuigkeiten in concrete5 abschalten

Jene Neuigkeiten in concrete5, genannt Newsflow oder Welcome Screen, welche nach dem Einloggen ins Backend erscheinen – sie können ganz schön nerven. Oder vielleicht möchte man nicht, dass sie auf Systemen, die man für Kunden eingerichtet hat, sichtbar werden. Wie auch immer: dieser Nachrichtenfluss lässt sich abschalten, und zwar über die Kon­fi­gu­rations­datei.

In die Datei config/site.php gibt man folgende Zeile ein:
define('ENABLE_NEWSFLOW_OVERLAY', False);

Quelle:
olliephillips, www.concrete5.org/[…]/disable-welcome-screen/

concrete5: Verlorenes Passwort in der lokalen Testumgebung

Es passiert immer mal wieder und es passiert wohl jedem mal (da schließe ich jedenfalls von mir auf die Allgemeinheit): man verliert oder vergisst ein Passwort und kommt nicht mehr ins entsprechende System hinein. Wie fast alle Content-Management-Systeme bietet auch concrete5 die Möglichkeit, sich einen Link per E-Mail zuschicken zu lassen, mit Hilfe dessen man ein neues Passwort eingeben kann.

Im Falle einer lokalen Installation auf einem Windows-Computer wird das nicht klappen, es sei denn, man hätte einen lokalen Mailserver installiert. Es gibt für diesen Fall verschiedene Lösungen. Als die einfachste erscheint mir die folgende:

1. Das Passwort-»Salz« (Erklärung siehe Wikipedia), das in der Datei [concrete5-Verzeichnis]/config/site.php steht, kopieren.
2. Mit einem Datenbank-Bearbeitungs-Programm (zum Beispiel HeidiSQL oder MySQL-Front) die in MySQL integrierte MD5-Funktion eingeben und als Query absenden:
UPDATE Users SET uPassword = md5('password:salt')
WHERE uName = 'username';

Für password setzt man das gewünschte neue Passwort ein, salt ist eben die Salt-Zeichenfolge aus site.php und username der Name des Benutzers, für den man das vergessene Passwort erneuern will. Das wird natürlich in aller Regel der Superadmin sein.

Danke an okhayat!
http://www.concrete5.org/community/forums/usage/local_install_lost_password/

concrete5: Absender im Kontaktformular (3)

Im gestrigen Artikel schrieb ich, wie man die standardmäßig vergebene Absenderadresse im Kontaktformular ändern kann.
Um den Absender auch für diejenigen Mitteilungen zu ändern, die zum Beispiel bei Registrierungen oder vergessenen Passwörtern übersendet werden, empfiehlt sich folgender Code, den man auch wieder in die Datei [root]/config/site.php einträgt (Beispielangaben bitte durch die echten ersetzen):

define('EMAIL_DEFAULT_FROM_ADDRESS', 'noreply@example.com');
define('EMAIL_DEFAULT_FROM_NAME', 'Maria Musterfrau');

Quellen:
www.concrete5.org/[…]/change-concrete5-noreplyyourdomain-com/
www.concrete5.org/[…]/change-email-for-user-registration/
Danke an alle, die ihre Lösungen im Forum veröffentlicht haben!

concrete5: Absender im Kontaktformular (2)

In einem älteren Artikel hatte ich eine Lösung vorgeschlagen zu einem Problem mit dem Form-Block, mit dem man Kontaktformulare erstellen kann. Standardmäßig wird nämlich immer die E-Mail-Adresse des Superbenutzers als Absenderadresse der Anfragen angegeben. Dies führt manchmal zu Verwunderung und Misstrauen bei den Kunden.

Meine damalige Lösung erforderte Eingriffe in den Block und war umständlich und unelegant. Aber man lernt ja immer dazu, und jetzt kann ich eine bessere Lösung präsentieren:

Fügen Sie eine einzige Codezeile zu [root]/config/site.php hinzu (»example« muss natürlich durch die echten Angaben ersetzt werden):
define('FORM_BLOCK_SENDER_EMAIL','example@example.com');

Danke an Ekko!
http://www.concrete5.org/community/forums/usage/concrete5-forms/#349698