Troubleshooting
Each of these has a specific cause. None of them needs guesswork.
The page shows {legs:prices:render} as text
Nothing matched that handle, so Craft left the tag alone — deliberately, because a tag you can see is a tag you can fix, while a vanished table looks like an empty page. Check the handle in Legs → Tables; a renamed table takes its old handle with it. If the table is in the trash, restoring it may give it a suffixed handle, since something else may have taken the name.
There is no Table button in CKEditor
Toolbar items are per field. Open the field's settings and drag the Table button into the toolbar. If it is not in the list of available buttons at all, check that craftcms/ckeditor is 5.0 or later — older, DLL-based versions are deliberately left alone rather than half-supported, and embeds have to be typed there.
The Redactor button is missing
Legs adds itself to every Redactor config that does not declare a plugins list of its own. If yours does, add legs to it.
The table renders but nothing sorts
Three things to check, in order:
- Sortable is on in the table's options.
registerJsis on in the settings — with it off, no runtime is loaded.- Your layout actually calls
{{ head() }}and{{ endBody() }}. Legs registers its assets while the table renders, and Craft has nowhere to put them otherwise.
A column sorts in the wrong order
Legs sniffs each column's type from its values. A column mixing 12 and 12 units is text, and sorts as text. Set the column's sort as explicitly if you know better — or make the values consistent, which is usually the real fix.
Numbers in a column are ignored by SUM
The formula evaluator reads numbers out of formatting, but a cell has to contain one. —, n/a and an empty cell all contribute nothing rather than breaking the sum. If a whole column sums to zero, check that Evaluate formulas is on — without it, the cell renders as the text you typed.
A query table is not updating
Rebuilds are queued on a 30-second debounce, so a stalled queue looks exactly like a stale table — check Utilities → Queue Manager first. Then check that refreshOnElementSave is on, and that the element type you are saving matches the table's. Refresh now on the table rebuilds immediately and tells you the row count, which distinguishes “the query returns nothing” from “the rebuild never ran”.
XLSX import says PhpSpreadsheet is missing
It is a suggested dependency, not a required one. composer require phpoffice/phpspreadsheet and the option appears.
Editing the plugin's CSS or JS does nothing
Craft serves published copies of plugin assets. php craft clear-caches/cp-resources after editing anything under the plugin's web/assets, or you will debug stale files for an hour.
A table looks different on one site
It is probably translated. Open it, look at Content in the sidebar — Translated per site means each site has its own grid, and the note underneath says which one you are editing. Switching it back to The same on all sites copies the grid you are looking at over the others.
Still stuck
Open an issue on GitHub with the table's export (--format=json) attached. It contains the grid, the options and the merges, which is almost always enough to reproduce something.