What problem does it solve?
Legacy dotCMS custom field templates rely on deprecated Dojo/Dijit APIs and old DotCustomFieldApi short forms that break or behave inconsistently in the modern edit mode. This Skill converts those VTL templates to the modern DotCustomFieldApi with DaisyUI styling while preserving all business logic and server-side Velocity variables.
Core Features & Use Cases
- API Migration: Replaces DotCustomFieldApi.get/set/onChangeField, dojo.ready, dojo.byId, and dijit.byId with the modern getField()-based API including show/hide, enable/disable, and validation state handling.
- Three-File Output Pattern: Produces an unchanged _old.vtl fallback, a fully migrated _new.vtl, and a conditional router file that delegates based on $structures.isNewEditModeEnabled() so legacy and new editors coexist safely.
- DaisyUI Styling: Converts dijit widgets and dojoType attributes into semantic HTML with DaisyUI component classes (btn, input, select, modal) and Tailwind utilities.
- Use Case: A developer pastes a legacy VTL custom field containing dijit.form.TextBox widgets and dojo.ready() callbacks and receives three production-ready files that work in both the legacy Dojo editor and the new Angular-based edit mode.
Quick Start
Migrate this VTL custom field template to the modern DotCustomFieldApi and generate the old, new, and router files for it.