ajustes
This commit is contained in:
14
CLAUDE.md
14
CLAUDE.md
@@ -48,6 +48,16 @@ Visual components that the site builder uses. Each module is a self-contained un
|
|||||||
|
|
||||||
See [docs/modular-system.md](docs/modular-system.md) for detailed rules.
|
See [docs/modular-system.md](docs/modular-system.md) for detailed rules.
|
||||||
|
|
||||||
|
### Pages
|
||||||
|
Every record with an `enlace` field is a page. Pages are either **Builder** (modular) or **Standard**:
|
||||||
|
|
||||||
|
- **Builder**: `controlador` = `cms/lib/plugins/builder_saas/controlador.php` — content via modules
|
||||||
|
- **Standard**: `controlador` = `cms/lib/plugins/builder_saas/controlador_tabla.php` — content in record fields
|
||||||
|
|
||||||
|
**Critical**: Never change `enlace` or `controlador` of existing pages unless explicitly asked.
|
||||||
|
|
||||||
|
See [docs/pages-and-records.md](docs/pages-and-records.md) for full details.
|
||||||
|
|
||||||
### General Sections
|
### General Sections
|
||||||
Database-backed templates (headers, footers, record views) that use the `thisrecord` variable to access record fields. They use the same Twig + Acai attribute engine as modules.
|
Database-backed templates (headers, footers, record views) that use the `thisrecord` variable to access record fields. They use the same Twig + Acai attribute engine as modules.
|
||||||
|
|
||||||
@@ -102,7 +112,8 @@ Do NOT modify web-base files — they are shared across all projects.
|
|||||||
7. Upload fields are arrays — access with `[0].urlPath`
|
7. Upload fields are arrays — access with `[0].urlPath`
|
||||||
8. Tailwind CSS as primary styling, custom CSS scoped with BEM when needed
|
8. Tailwind CSS as primary styling, custom CSS scoped with BEM when needed
|
||||||
9. Twig concatenation uses `~` operator: `'value=' ~ variable`
|
9. Twig concatenation uses `~` operator: `'value=' ~ variable`
|
||||||
10. `enlace` (link) fields already include slashes
|
10. `enlace` (link) fields already include slashes — **NEVER modify an existing enlace** unless explicitly asked
|
||||||
|
11. **NEVER modify the `controlador` field** of existing records — it defines whether a page is Builder or Standard
|
||||||
|
|
||||||
## MCP Tools
|
## MCP Tools
|
||||||
|
|
||||||
@@ -127,4 +138,5 @@ Key workflows:
|
|||||||
- [docs/production-patterns.md](docs/production-patterns.md) — Real production patterns (header, zigzag, FAQ, forms)
|
- [docs/production-patterns.md](docs/production-patterns.md) — Real production patterns (header, zigzag, FAQ, forms)
|
||||||
- [docs/vue-builder-rules.md](docs/vue-builder-rules.md) — CMS-VUE rules (tabs, colorpicker, components)
|
- [docs/vue-builder-rules.md](docs/vue-builder-rules.md) — CMS-VUE rules (tabs, colorpicker, components)
|
||||||
- [docs/vue-builder-examples.md](docs/vue-builder-examples.md) — Vue builder examples (Banner Slideshow, etc.)
|
- [docs/vue-builder-examples.md](docs/vue-builder-examples.md) — Vue builder examples (Banner Slideshow, etc.)
|
||||||
|
- [docs/pages-and-records.md](docs/pages-and-records.md) — Page types (Builder vs Standard), sections, visibility, critical rules
|
||||||
- [docs/mcp-tools-reference.md](docs/mcp-tools-reference.md) — MCP tools reference, available tools, workflows
|
- [docs/mcp-tools-reference.md](docs/mcp-tools-reference.md) — MCP tools reference, available tools, workflows
|
||||||
|
|||||||
104
docs/pages-and-records.md
Normal file
104
docs/pages-and-records.md
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
# Pages & Records Guide
|
||||||
|
|
||||||
|
## Page Types
|
||||||
|
|
||||||
|
Every CMS record that has an `enlace` (URL) field is a **page**. Pages come in two types determined by the `controlador` field:
|
||||||
|
|
||||||
|
### Builder (Modular) Pages
|
||||||
|
- `controlador` = `cms/lib/plugins/builder_saas/controlador.php`
|
||||||
|
- Content is built from **modules** (drag & drop components)
|
||||||
|
- The `builder` field contains a JSON array of module instances
|
||||||
|
- Use MCP tools: `add_module_to_record`, `set_module_config_vars`, etc.
|
||||||
|
- The page template renders modules in order from the builder JSON
|
||||||
|
|
||||||
|
### Standard Pages
|
||||||
|
- `controlador` = `cms/lib/plugins/builder_saas/controlador_tabla.php`
|
||||||
|
- Content lives directly in the record fields (`content`, `titulo_alternativo`, etc.)
|
||||||
|
- The `content` field is HTML (wysiwyg)
|
||||||
|
- Use `create_or_update_record` to edit content directly
|
||||||
|
- No modules involved
|
||||||
|
|
||||||
|
### How to determine page type
|
||||||
|
**Always check the `controlador` field** of the record:
|
||||||
|
- Contains `controlador.php` (without `_tabla`) → **Builder**
|
||||||
|
- Contains `controlador_tabla.php` → **Standard**
|
||||||
|
|
||||||
|
## Table Types (Sections)
|
||||||
|
|
||||||
|
Tables with pages are called **sections**. There are two section types defined by `menuType` in the schema:
|
||||||
|
|
||||||
|
### Category (`menuType = "category"`)
|
||||||
|
- **Hierarchical** — pages have parent/child relationships
|
||||||
|
- Fields: `parentNum`, `depth`, `globalOrder`, `lineage`, `siblingOrder`
|
||||||
|
- Example: `apartados` (main site pages)
|
||||||
|
- Uses `visible_en_el_menu` field for menu visibility
|
||||||
|
- Ordered by `globalOrder`
|
||||||
|
|
||||||
|
### Multi (`menuType = "multi"`)
|
||||||
|
- **Flat list** — no hierarchy
|
||||||
|
- Uses `dragSortOrder` for ordering
|
||||||
|
- Example: `blog`, `travesias`
|
||||||
|
- Typically uses `visible` field (not `visible_en_el_menu`)
|
||||||
|
|
||||||
|
## Critical Rules for Pages
|
||||||
|
|
||||||
|
### NEVER change the `enlace` field
|
||||||
|
Unless the user explicitly asks to change a page URL, **never modify the `enlace` field**. Changing it breaks existing links, SEO, and navigation. The enlace is set when the page is created and should remain stable.
|
||||||
|
|
||||||
|
### NEVER change the `controlador` field
|
||||||
|
The controlador defines whether the page is Builder or Standard. Changing it breaks the page rendering. Only set it during page creation.
|
||||||
|
|
||||||
|
### Visibility fields
|
||||||
|
- `apartados` and other category tables use: `visible_en_el_menu` (1 = visible, 0 = hidden)
|
||||||
|
- `blog`, `travesias` and other multi tables use: `visible` (1 = visible, 0 = hidden)
|
||||||
|
- Always check which field the table has before toggling visibility
|
||||||
|
|
||||||
|
### Name/Title fields
|
||||||
|
- Some tables use `name` (e.g. `apartados`)
|
||||||
|
- Others use `title` (e.g. `blog`, `travesias`)
|
||||||
|
- Check the schema to know which one to use
|
||||||
|
|
||||||
|
## Working with Builder Pages
|
||||||
|
|
||||||
|
### Adding content to a new Builder page
|
||||||
|
1. List available modules: `list_available_modules`
|
||||||
|
2. Add modules: `add_module_to_record` (one at a time, in order)
|
||||||
|
3. Configure each module: `set_module_config_vars` with content
|
||||||
|
4. Add images if needed: `upload_record_image` or `generate_image`
|
||||||
|
|
||||||
|
### Editing an existing Builder page
|
||||||
|
1. List current modules: `list_page_modules`
|
||||||
|
2. Get module vars: `get_module_config_vars`
|
||||||
|
3. Update vars: `set_module_config_vars`
|
||||||
|
4. Or edit the module template: edit `index-base.tpl` → `compile_module`
|
||||||
|
|
||||||
|
## Working with Standard Pages
|
||||||
|
|
||||||
|
### Adding content to a Standard page
|
||||||
|
Use `create_or_update_record` to set:
|
||||||
|
- `content` — HTML content (main body)
|
||||||
|
- `titulo_alternativo` — alternative title shown on the page
|
||||||
|
- `titulo_de_pagina` — browser tab title (SEO)
|
||||||
|
- `metatag_descripcion` — meta description (SEO)
|
||||||
|
|
||||||
|
### Example: Update a standard page
|
||||||
|
```
|
||||||
|
create_or_update_record with:
|
||||||
|
tableName: "apartados"
|
||||||
|
recordNum: "87"
|
||||||
|
fields:
|
||||||
|
content: "<h2>Our Services</h2><p>We offer...</p>"
|
||||||
|
titulo_de_pagina: "Services | My Site"
|
||||||
|
metatag_descripcion: "Discover our services..."
|
||||||
|
```
|
||||||
|
|
||||||
|
## The `apartados` Table (Special)
|
||||||
|
|
||||||
|
The `apartados` table is the main pages table in most Acai sites. Key characteristics:
|
||||||
|
- `menuType = "category"` — hierarchical with parent/child
|
||||||
|
- `parentNum` — the num of the parent page (0 = root level)
|
||||||
|
- `depth` — nesting level (0 = root, 1 = child, 2 = grandchild)
|
||||||
|
- `globalOrder` — display order across the entire tree
|
||||||
|
- `visible_en_el_menu` — whether the page shows in the navigation menu
|
||||||
|
- `breadcrumb` — auto-generated breadcrumb path
|
||||||
|
- Pages can be either Builder or Standard (check `controlador` field per record)
|
||||||
Reference in New Issue
Block a user