๐งฉ 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
Line Tracking
Quickly trace compiled code back to its source โ down to the exact JCB entity and location.
What Is Line Tracking?
Line Tracking in JCB is a compiler-side feature that embeds comment-based metadata into generated PHP and layout files. These comments identify the origin of each compiled line or block โ whether it came from a view, layout, field, snippet, or template inside JCB.
It acts like a source map for your component: if youโre inspecting compiled output in your IDE or troubleshooting a bug, youโll know exactly which JCB entity produced each part of the code.
Line Tracking makes debugging, customization, and round-trip edits dramatically easier, especially in complex components with dozens of views or reusable blocks.
Key Features
- ๐ Source-to-Output Mapping: Each significant block of compiled code includes a comment that references the originating entity (e.g.
view:admin.article.item
,field:title
,layout:form-default
). - ๐ง Context-Aware Comments: The format of the comment includes the component, context (admin/site), type (view, layout, etc.), and entity name.
- ๐ Automatically Injected During Compile: No manual work is needed. JCB adds tracking comments during each build automatically.
- ๐ IDE-Friendly & Readable: Comments appear in PHP, XML, and HTML files in a developer-friendly format that wonโt break the code:
// [JCB] From: layout.site.article.item.default
<!-- [JCB] Generated from: field:publish_up -->
- ๐งพ Supports Nested and Shared Logic: Tracks line origin even if the code was injected via a shared layout, snippet, or reusable field.
- ๐งฌ Works with Custom Code Blocks: Line tracking wraps around custom code insertions as well โ helping you identify where your own snippets were injected.
- ๐ Boosts Training and Team Collaboration: Developers unfamiliar with the blueprint structure can trace output back to its blueprint definition โ accelerating onboarding and edits.
Use Cases
- Open a compiled model and see which view or field generated the save logic
- Locate a generated layout block and find the responsible JCB template or snippet
- Identify which shared field injected a specific database rule
- Debug a misrendered field by locating its source in the GUI
- Train new developers by letting them trace output to configuration in the backend
How to Use
No action is needed to enable Line Tracking โ itโs built into the compile process.
- Open any compiled
.php
,.xml
,.ini
, or.html
file. - Scroll through the code and look for comments like:
// [JCB] From: view.admin.orders.list
<!-- [JCB] Generated from: layout.site.product.item -->
- Use these references to locate the entity inside JCB (e.g. Views โ Admin โ Orders โ List).
๐ง Pro Tip: Combine Line Tracking with Insert/Replace tags for traceable custom overrides that persist across compiles.
Conclusion
Line Tracking gives you eyes inside the compiler. With every build, JCB leaves behind helpful breadcrumbs in your code, making debugging, auditing, and hand-editing not just possible โ but safe and understandable. Whether youโre working solo or in a team, this feature keeps your component code traceable, teachable, and transparent.