๐งฉ Architecture & Core Logic
- Super Powers
- Joomla Powers
- Compile Native Components, Plugins & Modules
- Multi-Version Support
- Conditional Logic Injection
- Reusable Admin Views
- Dynamic GET Builder
- Round-Trip Code Integration
- Custom Admin Views
- Site Views
- Dynamic Dashboards
- Model Linking Between Views
- Shared Field Reuse Across Views
- Drag & Drop Field Mapping
- Dynamic Field Visibility
- Independent Packaging
๐ Joomla CMS Integration
๐งฑ Custom Code System (Powerful Dual Feature)
๐ Field Type System
๐ Snippets, Templates, Layouts, Libraries
- Snippets Reusable Html Blocks
- Layouts Reusable Php Render Templates
- Templates Page Level Views Linked To Custom Admin Site Views
- Libraries JS CSS Assets Linked To UI
- CDN Local Toggle For Library Delivery
- Media Folder Injection With Override Support
- Repository Push Pull Reset Workflow
- Init Snippets Layouts Templates Via Gui
๐ฆ Packages
๐งฉ Architecture & Core Logic
๐ File & Code Management
๐ง Code Reuse & Blueprints
๐ Joomla CMS Integration
๐จ Visual GUI & UX
๐ Internationalization
๐ฆ Packaging & Distribution
โ๏ธ Compiler Engine Features
๐งฑ Custom Code System
๐ Field Type System
๐ Dynamic GET (Visual SQL Engine)
๐ Snippets, Templates, Layouts, Libraries
๐ Documentation & Metadata
๐ Analytics & Insights
๐งฉ Architecture & Core Logic
- Super Powers
- Joomla Powers
- Compile Native Components, Plugins & Modules
- Multi-Version Support
- Conditional Logic Injection
- Reusable Admin Views
- Dynamic GET Builder
- Round-Trip Code Integration
- Custom Admin Views
- Site Views
- Dynamic Dashboards
- Model Linking Between Views
- Shared Field Reuse Across Views
- Drag & Drop Field Mapping
- Dynamic Field Visibility
- Independent Packaging
๐ Joomla CMS Integration
- Token Integration
- ACL Per View, Field, Item
- Field-Based Joomla Config Generation
- Support For Joomla Categories/Tags/Custom Fields
- CLI-Ready Components
- Joomla Update Server Integration
- Version-Aware Language String Compilation
- Remote Publishing to Custom Repo Update Streams
๐ Field Type System
- Field Types Define Templates And Data Types
- Gui Defined Rules Required Unique Nullable
- Save Get Hooks Per Field
- Database Schema Auto Generated From Field Settings
- Per Display Field Rendering Config List Edit
- Create Dynamic Models With Modals Selectors
- Conditional Js And Css Per Field
๐ Snippets, Templates, Layouts, Libraries
- Snippets Reusable Html Blocks
- Layouts Reusable Php Render Templates
- Templates Page Level Views Linked To Custom Admin Site Views
- Libraries JS CSS Assets Linked To UI
- CDN Local Toggle For Library Delivery
- Media Folder Injection With Override Support
- Repository Push Pull Reset Workflow
- Init Snippets Layouts Templates Via Gui
Smart Template Merging
Update custom templates without overwriting your changes โ merge intelligently and maintain control.
What Is Smart Template Merging?
Smart Template Merging in JCB allows you to update templates, layouts, or snippets across projects while preserving your custom modifications. When JCB detects that a template used in your component has changed (e.g., in a newer blueprint version or updated from Git), it intelligently merges the new changes with your existing logic.
Instead of blindly overwriting or forcing you to manually diff changes, Smart Merging ensures that reusable elements โ like Layouts, Snippets, Templates, and Library assets โ stay in sync without data loss.
This feature is essential for teams or users working with shared templates, community blueprints, or versioned component boilerplates.
Key Features
- ๐ง Merge-Aware Updating:
When a linked template, layout, or snippet is updated:
- JCB checks for changes since your last use
- Presents differences and potential merge paths
- Merges logic if possible or flags conflicts for review
- ๐ Supported Entities:
Smart merging works with:
- Snippets (HTML, JS, PHP)
- Layouts and Templates
- File Templates
- Linked Custom Code blocks
- Shared Admin View Templates
- ๐งช Conflict Awareness:
If a conflict is detected:
- Review both versions
- Choose to merge, override, or keep your version
- ๐ Preserves Round-Trip Tags: Insert/Replace tags and dynamic placeholders remain untouched for safe rebuilds.
- ๐ง Manual or Automatic Control:
- Manual (default): review before accepting
- Automatic: apply when safe (no conflicts)
- Git-based: sync templates via Git, then merge
- ๐ Template Versioning: Templates can include internal version markers or changelogs for auditing and tracking.
- ๐ค Ideal for Shared Blueprints: Upgrade demo components or imported packages without losing custom logic.
Use Cases
- ๐งฉ Updating a layout used in multiple components (e.g., a Bootstrap 5 card view)
- ๐ Pulling in template improvements from Git or the JCB community repo
- ๐ฅ Working in a team where shared templates evolve over time
- ๐ Applying UI fixes or enhancements without rebuilding the whole component
- ๐ Keeping your custom logic while benefiting from upstream changes
How to Use Smart Template Merging
- Link reusable templates, snippets, or layouts to your component.
- If a new version is pulled in (via Git, JSON, or blueprint import), JCB checks for changes.
- During editing or build:
- JCB notifies you if the source template has changed
- Shows diffs between your version and the update
- Review and resolve:
- Apply the new version
- Keep your existing version
- Merge changes manually
- Compile the component. The updated, merged template is included.
๐ง Tip: Use version numbers (e.g., // v1.0.1
) in template comments to help track and manage changes over time.
Conclusion
Smart Template Merging bridges the gap between reuse and flexibility. Whether you're maintaining your own boilerplates or collaborating with others, it gives you the confidence to adopt improvements without breaking your customizations. Stay in sync โ without starting over.