diff --git a/CLAUDE.md b/CLAUDE.md index 8007f15..4c6a970 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -148,7 +148,7 @@ Key workflows: - [docs/modular-system.md](docs/modular-system.md) — Modules, general sections, global variables - [docs/builder-fields.md](docs/builder-fields.md) — Builder field types, Acai attributes, c-form, components - [docs/twig-filters.md](docs/twig-filters.md) — Twig filters reference (get, hook, module, queryDB, etc.) -- [docs/hooks-and-api.md](docs/hooks-and-api.md) — PHP hooks, CmsApi, CocoDB, record creation +- [docs/hooks-and-api.md](docs/hooks-and-api.md) — PHP hooks, CmsApi, CocoDB, record creation, custom CMS plugins (checkPoints) - [docs/css-js-conventions.md](docs/css-js-conventions.md) — CSS/JS/Vue 3, Tailwind, BEM, native components - [docs/quick-reference.md](docs/quick-reference.md) — Cheat sheet: domain rules, field types, filters - [docs/production-patterns.md](docs/production-patterns.md) — Real production patterns (header, zigzag, FAQ, forms) diff --git a/docs/hooks-and-api.md b/docs/hooks-and-api.md index 1a12152..c50e551 100644 --- a/docs/hooks-and-api.md +++ b/docs/hooks-and-api.md @@ -152,6 +152,22 @@ datos correctos y sin error visible). --- +## Plugins CMS personalizados (checkPoints) + +Para entender **cómo despacha el CMS un plugin custom** (no confundir con hooks de módulo), lee primero +`cms/lib/plugins/index.php` **de ese proyecto** — no hace falta explorar el servidor por SSH ni el +código de `web-base`, el contrato completo está ahí: + +- `addPlugins($type, &$var, $fieldtype)` despacha los checkPoints con `include` (no clases/autoload). +- Gating nativo por `adminOnly` + `isAdmin` — un checkPoint puede declararse solo-admin. +- `$var` se pasa **por referencia** — un plugin puede mutar el valor que ven los siguientes. +- Filtros `menuFilter`/`actionFilter` por tabla/action, para que un plugin solo se dispare donde aplica. +- `newFieldType` para registrar tipos de campo nuevos del builder. +- La instalación de un plugin va vía `install.sql` + `schemaPresets` — **no** `schemas/` (ese es el + sistema viejo de `seo_toolkit`, con el `install.php` comentado; no lo repliques). + +--- + ## CmsApi (PHP) API server-side para operaciones de base de datos. Disponible en todos los hooks.