justinholtweb / craft-sidepipe
Sidebar fields for Craft CMS — mark a tab in any field layout and its fields move out of the content pane and into the entry sidebar, next to the author, dates and slug.
Package info
github.com/justinholtweb/craft-sidepipe
Type:craft-plugin
pkg:composer/justinholtweb/craft-sidepipe
Requires
- php: ^8.2
- craftcms/cms: ^5.3.0
This package is auto-updated.
Last update: 2026-08-29 14:28:12 UTC
README
Sidebar fields for Craft CMS 5.
Craft's entry editor has two columns and only one of them is yours. The author, the post date, the slug and the status live in the sidebar; every field you define lives in the content pane, however small it is. A one-line "Featured?" lightswitch gets the same acreage as the body copy, and the metadata an author actually reads together is split across two columns for no reason.
Sidepipe lets the field layout say which fields belong in the sidebar. Mark a tab, and its fields come out of the content pane and render with the author and the dates instead — same inputs, same names, same save.
Free. No editions, no licensing code.
Install
composer require justinholtweb/craft-sidepipe php craft plugin/install sidepipe
Nothing else. There is no setup step and no template change.
Use it
Open any field layout designer — an entry type, an asset volume, a category group — and drag the Sidebar element from the UI elements library into a tab. Everything else in that tab now renders in the sidebar.
That's the whole feature. The tab itself disappears from the tab bar once it has nothing left to show, so authors never see an empty "Sidebar" tab.
The Sidebar element's settings
| Setting | What it does |
|---|---|
| Fields to move | Everything in this tab (the default), or Everything below this marker — so one tab can keep some fields in the content pane and send the rest across. |
| Heading | A label above the group in the sidebar. Leave it empty for no heading. |
| Position | Above or below Craft's own author/date/slug block. Defaults to whatever the plugin settings say. |
| Visibility conditions | Craft's own, on the marker. A marker that doesn't apply leaves its fields in the content pane — a condition here chooses a column, it never hides a field. |
Two markers in one tab split it in two: "everything below this marker" stops where the next marker starts, so you can send one group up top and another down the bottom with different headings.
Or just name a tab
If you'd rather not touch the UI elements library, name a tab Sidebar and it pipes with no
marker at all. The list of names that do this is a plugin setting, matched without regard to case
or spacing, so you can add Meta, Options, whatever your team already calls it.
A marker always wins: if a tab has one, its name is ignored.
Settings
Settings → Plugins → Sidepipe.
- Sidebar tab names — tabs that pipe by name.
Sidebarout of the box. - Default position — where a group sits when the marker doesn't say. Above the meta fields by default.
- Show tab names as headings — off by default. A tab called "Sidebar" labelled "Sidebar" tells an author nothing; a marker sets its own heading either way.
- Respect field widths — off by default. Field layouts hand out widths in quarters, which mean little in a 240px column, so piped fields render full width.
- Leave these element types alone — an escape hatch, per element type.
The bottom of the screen lists every field layout that currently pipes something, so you can see at a glance where it's in use.
What can go in the sidebar
Anything that fits. Lightswitches, dropdowns, dates, short text, colour and money fields, link fields, entry and asset relations — all of them read well in a narrow column and are exactly the sort of thing that was cluttering the content pane.
Matrix fields, rich text and big tables work — Sidepipe doesn't stop you — but a 240px column is not where anyone wants to edit them. Sidepipe renders piped fields full width and lets wide content scroll inside its own box rather than dragging the editor sideways, and that's as far as it can help.
UI elements travel with the fields they were grouped with, so a Heading or a Tip inside a piped tab comes across too.
What it doesn't touch
Sidepipe only engages where there is a sidebar to move fields into: the element editor, full page or slideout. Everywhere else it stands down and the layout renders exactly as Craft built it.
- Nested Matrix and content blocks render inline inside another element's form and have no sidebar of their own. A "Sidebar" tab in a nested entry type is left alone in inline (blocks) view; in cards view, where the block opens in its own element editor, it pipes normally.
- Globals, tag groups and the user profile screen have editors of their own that never build a sidebar. A sidebar tab in those layouts stays in the content pane, and the settings screen says so next to the layout rather than letting it look broken.
This is deliberate and it is the safety property the whole plugin rests on: a field is never taken out of a form unless it is being put somewhere.
How it works
Two hooks, and they only ever fire together.
FieldLayout::EVENT_CREATE_FORM— Sidepipe reads the layout, works out which elements are piped, and hands Craft a copy of the tabs without them. The layout's own tabs are never edited.Element::EVENT_DEFINE_SIDEBAR_HTML— the same elements are rendered withformHtml(), the same call Craft would have made, and spliced above or below the element's own meta fields.
Because the inputs are the ones the form would have produced, with the same names and the same delta registration, saving is Craft's own — Sidepipe has no save handler, no table, and no data of its own.
Element conditions and tab conditions are honoured: a piped field whose condition doesn't match is not rendered, same as in the content pane. The marker's own conditions are evaluated before anything is taken out of the form, so a marker that doesn't apply to this element or this user leaves its fields exactly where the layout put them.
Craft only live-refreshes conditional fields in the content pane, so a piped field whose condition changes mid-edit settles on the next page load rather than instantly.
Turning it off
Disabling or uninstalling Sidepipe puts every field back in the content pane with the layout intact. The Sidebar marker is the only thing that disappears — Craft drops layout elements whose plugin is gone — and losing it loses the arrangement and nothing else. Tabs that pipe by name just start rendering normally again.
That is why the marker is a separate layout element rather than a flag on the fields themselves.
Requirements
Craft CMS 5.3+, PHP 8.2+. No dependencies beyond Craft's own, no build step, no outbound requests.
Licence
The Craft License. See LICENSE.md. Sidepipe is free: no editions, no licence key, and no
licensing code in the plugin.