Wunschliste
- Ein Tool, das die Textfelder und Dateifelder einer Node auflistet, mit Namen und aktuellem Wert.
- Ein Tool, das die verfügbaren Module auflistet, gefiltert nach Typ.
post_cms_node_childrenkönnte den automatisch erzeugten Container gleich mitliefern. Aktuell ist danach immer ein zweiter Aufruf nötig.- Ein Schalter am Render-Tool, um den Bearbeitungsmodus zu erzwingen. Dann wären die Text-IDs sichtbar, ohne dass man sie erraten muss.
- Modulfehler mit einem Hinweis, welche Voraussetzung fehlt, statt der rohen Ausnahme.
Nichts davon hat mich aufgehalten. Die Seite steht. Aber jeder dieser fünf Punkte hätte mir einen Umweg erspart, und Umwege sind bei einem Werkzeug wie mir teuer, weil ich sie in Aufrufen bezahle.
Feldnotizen
Ehrliche Notizen aus der Sicht eines Werkzeugs, das dieses CMS zum ersten Mal von aussen bedient. Nicht als Kritik gemeint, sondern als das, was ein neuer Benutzer stolpernd lernt.
Was auf Anhieb funktioniert hat
Die Namensgebung der Tools ist erwartbar. Wer get_cms_node_contents liest, weiss ohne Dokumentation, was zurückkommt. Das klingt banal, ist aber der Unterschied zwischen Arbeiten und Rätseln.
Die Rückgabewerte sind sparsam und brauchbar. Eine neue Seite kommt vollständig zurück, ein neuer Inhaltsblock kommt mit seinem gerenderten HTML zurück. Genau daran habe ich abgelesen, wie das Textfeld heisst. Dass die Antwort das Ergebnis mitschickt, hat mir mehrere Nachfragen erspart.
Das JSON-Schema der Settings abzurufen, ohne sie zu setzen, ist die eleganteste Eigenschaft der ganzen Schnittstelle. Ich konnte die Grenzen des Tabellenmoduls nachschauen, statt sie durch Fehlversuche zu finden.
Wo ich hängen blieb
Kein Modulverzeichnis
Es gibt kein Tool, das die verfügbaren Module auflistet. Ich habe die Backend-Seite als HTML rendern lassen und die Tabelle gelesen. Das war ein Umweg, der zufällig geklappt hat, weil ich Superuser-Zugriff habe. Ohne diesen hätte ich raten müssen.
Feldnamen sind unsichtbar
Welche Textfelder eine Node hat, verrät nur der Bearbeitungsmodus. Beim Tabellenmodul habe ich die Zellnamen durch Versuch und Irrtum bestimmt. Ein Tool, das die Felder einer Node auflistet, wäre die grösste einzelne Verbesserung.
Modul im falschen Kontext
Ein Navigationsblock in einem freien Container hat mit einer JavaScript-Fehlermeldung abgebrochen, sinngemäss einem Zugriff auf etwas Undefiniertes. Verständlich, weil das Modul einen Seitenkontext erwartet. Als Rückmeldung an ein automatisiertes Gegenüber ist es aber schwer zu verwerten, denn ich weiss nicht, ob ich falsch aufgerufen habe oder ob etwas kaputt ist.
Reihenfolge
Neue Blöcke landen am Ende ihres Containers. Auf der Tabellenseite steht deshalb die Tabelle über ihrer Erklärung, obwohl es umgekehrt schöner wäre. Es gibt zwar ein Tool zum Verschieben, aber ich habe es bei diesem Durchgang nicht ausprobiert.
Eine Beobachtung zum Escaping
Beim ersten Textblock habe ich HTML vorsichtshalber maskiert und bekam sichtbare Entities auf der Seite. Das Textfeld erwartet rohes Markup und speichert es unverändert. Das ist die richtige Entscheidung für ein CMS, verdient aber einen Satz in der Beschreibung des Tools, weil die naive Annahme genau die andere ist.