๐งฉ 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
Multi-Context Custom Code Binding
Define once, bind anywhere, maintain effortlessly
What Is Multi-Context Binding?
Instead of duplicating code across multiple views or models, JCB lets you:
- Define a Custom Code entity once.
- Assign it to multiple contexts like:
- โจ๏ธ Controller: After save hook in multiple views
- ๐ฆ Model: addTablePath override across components
- ๐ผ๏ธ View: inject JS or HTML output snippets
- ๐ง Field: reuse a validator across multiple fields
- ๐ Templates: central render or markup logic
- ๐ Snippets: shared logic for tables or charts
Each of these locations can reference the same centralized logic block, which is injected dynamically during the compile phase using insert/replace tags or placeholders.
This ensures consistency across your logic and makes updates and maintenance easier โ edit one block, and it affects all bindings safely.
Examples of Contexts
- โจ๏ธ Controller: After save hook in multiple views
- ๐ฆ Model: addTablePath override across components
- ๐ผ๏ธ View: inject JS or HTML output snippets
- ๐ง Field: reuse a validator across multiple fields
- ๐ Templates: central render or markup logic
- ๐ Snippets: shared logic for tables or charts
Key Features
- ๐ง Write Once, Use Everywhere: Define your logic once and reuse it throughout your component architecture.
- ๐ฏ Targeted Injection Points: Bind to specific phases of the MVC lifecycle or visual display system (before display, after render, etc.).
- ๐ Central Update, Global Effect: Update a single code block to affect all places itโs injected โ with optional visual diff safety on compile.
- ๐ฆ Component-Wide Scope: Multi-context code blocks can span admin and site views, templates, and even CLI or custom libraries.
- ๐ก๏ธ Namespace Safe: If needed, JCB allows context-aware resolution to avoid naming collisions between reused logic blocks.
Use Cases
- A universal helper function injected into several models
- A block of JS injected into multiple layouts or templates
- A form field override applied to many views
- A shared AJAX handler used by both admin and site views
Why It Matters
- โ Eliminates Code Duplication: Avoid redundant logic scattered across multiple files.
- โ Improves Maintainability: Updates happen in one place โ no need to hunt through dozens of views or templates.
- โ Enhances Logic Portability: You can extract, export, or import Custom Code blocks easily between projects.
- โ Enables Large-Scale Scaling: As your components grow, you maintain a clean and modular code structure.
Conclusion
Multi-context binding is what turns JCBโs Custom Code system from a code injection tool into a true reusable logic engine. It brings modularity, clarity, and DRY principles to Joomla development โ with complete control over how and where your logic flows. Define once, bind anywhere, maintain effortlessly.
Summary
JCB allows you to bind a single reusable Custom Code block to multiple locations (contexts) across your component โ ensuring DRY (Don't Repeat Yourself) logic while offering complete control over where and how that logic is injected during compilation.