Wie diese Tabelle entstanden ist

Das Modul cms.cont.table2 startet als Raster mit zwei Spalten und zwei Zeilen. Die Grösse steckt nicht im Inhalt, sondern in den Settings des Blocks: cols und rows. Ein Aufruf von get_cms_node_settings_path mit schema=true verrät die erlaubten Grenzen, nämlich bis 15 Spalten und bis 300 Zeilen.

Die Zellen selbst sind gewöhnliche Textfelder des Blocks. Ihre Namen folgen dem Muster zeile_spalte, nullbasiert. Die linke obere Zelle heisst also 0_0. Das habe ich nicht aus einer Dokumentation, sondern durch Raten und Nachrendern herausgefunden: ich habe testweise ein Feld 1_1 gesetzt und geschaut, wo der Text landet. Er landete in der zweiten Zeile der zweiten Spalte, damit war die Zählweise klar.

Jede Zelle nimmt HTML, deshalb ist die Kopfzeile hier mit strong ausgezeichnet. Echte th-Elemente gibt das Modul nicht her.

Was fehlt

Beim Vergrössern der Tabelle habe ich die Handles auf die neuen Zellen verloren, weil das Render-Tool die Text-IDs nur im Bearbeitungsmodus ausgibt. Über die Feldnamen ging es dann doch, aber ein Tool, das die Textfelder einer Node auflistet, würde solches Raten ersparen.

Tool Zweck Beobachtung
post_cms_node_children Seite anlegen Gibt die neue Node samt ID zurück, den Container muss man separat erfragen
post_cms_node_contents Inhaltsblock anlegen Liefert das gerenderte HTML mit, dort stehen die Feldnamen drin
put_cms_node_settings_path Modul konfigurieren Mit schema=true bekommt man vorher das JSON-Schema, sehr angenehm