Releases: marblecms/admin
v1.4
What's new in v1.4
Plugin API
- New
MarbleAdminfacade for building installable Marble plugins without touching core addNavItem— inject items into existing admin dropdowns (Content / Structure / Users / System)addTopNavSection— register a new top-level nav dropdown (e.g. "Shop")addAsset— inject CSS/JS into every admin pageaddCkEditorPlugin— register CKEditor 4 external plugins and toolbar buttons- System → Plugins: searchable plugin marketplace backed by Packagist (
type: marble-plugin) with verified/featured badges from the community registry
Two-Factor Authentication
- TOTP-based 2FA for admin users (compatible with any Authenticator app)
- Enable/disable from the user profile with QR code setup flow
- Backup codes generated on enable, one-time use
- Login automatically redirects to 2FA challenge when enabled
AI Writing Assistant
- "AI Assist" button in the CKEditor toolbar on all rich text fields
- Supports OpenAI (GPT-4o) and Anthropic (Claude) — configure in System → Configuration
- Sends current editor content as context; inserts clean HTML output directly into the editor
Laravel Events
Marble now fires standard Laravel events you can listen to from any ServiceProvider:
| Event | Fired when |
|---|---|
Marble\Admin\Events\ItemSaved |
Field values saved (includes changed fields diff) |
Marble\Admin\Events\ItemPublished |
Item status set to published |
Marble\Admin\Events\ItemTrashed |
Item soft-deleted |
Marble\Admin\Events\PortalUserRegistered |
Portal user registers |
Marble\Admin\Events\PortalUserLoggedIn |
Portal user logs in |
Marble\Admin\Events\MarbleFormSubmitted |
Contact form submitted |
Other
- System → Packages: Export and Import merged into a single tabbed page
BlueprintInstallerhelper for idempotent blueprint + field setup in plugin install commands- Laravel 13 support
v1.3
Traffic Analytics
Built-in first-party page view tracking — no third-party scripts. Enable with MARBLE_TRAFFIC_TRACKING=true. Each item gets a Traffic tab with a D3.js bar chart, session counts, and a referrer flow graph. Site-wide top-pages table in Admin → Traffic.
Collaboration: Comments & Tasks
Every item now has a Collaboration tab. Leave review comments, create tasks with assignees and due dates, and mark them done. Assigned users receive an email notification. Open tasks assigned to the logged-in user appear in a new "My Tasks" box on the dashboard.
A/B Testing: Conversion Tracking
ItemVariant now tracks conversions_a and conversions_b. Fire a conversion from JavaScript with MarbleAB.convert().
URL Alias Site Boundary
Aliases can no longer resolve items outside the current site's content tree — closing a potential cross-site content leak in multi-site setups.
Leaner MarbleSeeder
MarbleSeeder is now a minimal bootstrap (system blueprints, root item, site, admin user). Demo content has been moved out — extend it in your own application for a clean separation.
v1.2
What's New
A/B Testing
Create a Variant B for any item. Configure the traffic split, edit variant field values, and track impression counts per bucket. Visitors are bucketed via a 30-day cookie — templates require no changes.
Content Bundles
Group multiple items and publish them atomically in one click. Pre-publish status and revision snapshots are recorded for every item, enabling a full rollback if anything goes wrong after publish.
Media Blueprints
Assign a Blueprint to a MIME type pattern to attach structured metadata to uploaded media files — captions, alt text, photographer credits, or any custom fields. Field values are accessible via $media->field('alt_text').
Smart Crops
Define named crop presets (e.g. hero, thumbnail) with fixed dimensions. $media->crop('hero') returns a focal-point-aware cover-crop URL. Crop previews shown in the media field editor.
Item Subscriptions
Watch any item from the sidebar. Subscribers receive in-app notifications when the item is saved, its status changes, or it moves through a workflow step. Watched items appear on the dashboard.
Content Relations Graph
Click Relations Graph in the item sidebar for a D3.js force-directed graph showing the item's full connection map: parent, children, outgoing field relations, incoming references, and mount points.
Inline Children
Enable Inline Children on a blueprint to edit child items as collapsible accordion panels directly in the parent item editor — no page navigation needed.
Field History
Every field has a history button. Slide through all saved values with timestamps and the editor who made each change. Restore any previous value in one click.
Dashboard Improvements
- Watched Items box for subscribed content
- Workflow Deadlines widget for items approaching or past their step deadline
- Upcoming Scheduled widget for items with future publish/expire dates
UI Improvements
- Collapsible sidebar boxes with global localStorage persistence across all items
- Standardised save/cancel button layout across all admin views
- A/B Test sidebar widget with visual split bar, impression stats, and pause/resume
- Bootstrap modals restyled globally to match the field history floating card aesthetic
- A/B colour scheme aligned to the admin's blue/green palette
Migrations
7 new migrations included. Run after updating:
php artisan migrate