Entries
An Entry is a single instance of a Content Type (e.g., one specific blog post, or the homepage itself).
Automatic CRUD Generation
Pragma CMS embraces the "Data-Driven" philosophy. You do not need to write controllers or forms for your content. The system reads the JSON schema of your Content Type and automatically generates the Admin UI, validates the inputs, sanitizes the data, and maps it to the correct SQL columns.
System Entries Exceptions
While the majority of content relies on the automated CRUD, some foundational entities require specific, manual handling for architectural clarity and performance.
- Pages: Conceptually, a page is an entry (it has a URL, SEO metadata, and publication status). It therefore uses the core
entriesandentries_translationtables for its passport. However, a page also dictates the structural flow of the site.- Custom Logic: To handle this, Pages bypass the automated generator and use a custom-built CRUD controller. This controller simultaneously writes to the core tables and to dedicated
pagesandpages_translationtables, which store page-specific logic (liketemplate_path,page_order, and staticcontent). - Integration: Despite the custom CRUD, saving a page still triggers the standard
ON_ENTRY_SAVEhook, ensuring ecosystem features (like automatic Sitemap XML generation) continue to function transparently.
- Custom Logic: To handle this, Pages bypass the automated generator and use a custom-built CRUD controller. This controller simultaneously writes to the core tables and to dedicated
- Taxonomies & Terms: In Pragma CMS, Taxonomies (e.g., "Blog Categories") and Terms (e.g., "News") are entries. They leverage the
entriesandentries_translationtables to obtain a unique ID and a translatable slug.- Skinny Tables: Instead of generating massive, generic schema tables, they use highly optimized "skinny tables" (
taxonomies,taxonomy_terms, andterm_relationships). These tables are strictly designed to store their specific metadata (like SVG icons, layout configuration, hierarchy rules, and pivot associations with other content objects), avoiding the pollution of standard content tables and keeping SQL JOIN operations blazing fast.
- Skinny Tables: Instead of generating massive, generic schema tables, they use highly optimized "skinny tables" (