Remove duplicate rules in hooks-and-api.md

- FK naming: keep detail in Gotchas, reference from Reglas importantes
- CmsApi.hook JS: keep callback+Promise in CmsApi section, reference from Cómo Llamar Hooks
- cms_uploads INSERT: keep full example in Uploads desde Hooks, reference from Gotchas

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-26 11:24:56 +00:00
parent 33ea251b34
commit 39661ad0da

View File

@@ -75,11 +75,9 @@ Si `save_module` crea un directorio `modulos/auth_signup/hook.php`, este interce
<p>{{ resultado.message }}</p>
```
**Desde JavaScript:**
**Desde JavaScript:** (ver [CmsApi JS](#cmsapi-javascript--client-side) para callback + Promise)
```js
CmsApi.hook('/hooks/mimodulo/', {param1: 100, param2: 'texto'}, (data) => {
console.log(data.message);
});
CmsApi.hook('/hooks/mimodulo/', {param1: 100, param2: 'texto'}).then(res => console.log(res));
```
**Desde otro Hook PHP:**
@@ -190,7 +188,7 @@ CmsApi::delete('productos',
- Nombres de tabla **sin** prefijo `cms_`
- Primary key siempre es `num`, nunca `id`
- Foreign keys: el nombre es **exactamente** el definido en el schema (`.ini.php`). A veces es `categoria_num`, a veces `categoria`. Siempre consultar el schema antes de asumir
- Foreign keys: consultar siempre el schema (ver [Gotchas de BD](#gotchas-de-base-de-datos))
- Upload fields: no se manejan via insert/update
- Operadores: `=`, `!=`, `>`, `>=`, `<`, `<=`, `LIKE`, `IN`
- **Traducción en PHP:** Usar `t_var()` para todo texto visible al usuario:
@@ -477,12 +475,7 @@ Las tablas `category` generan `name` automáticamente como campo de navegación.
Al crear tablas o campos, usar `menuOrder` / `order` alto (99+) para que aparezcan al final del listado admin sin alterar el orden existente.
### `cms_uploads` tiene esquema diferente
La tabla usa `createdTime` (no `createdDate`). No tiene `createdByUserNum`, `updatedDate`, ni `updatedByUserNum`. Para insertar un upload manualmente:
```php
global $TABLE_PREFIX;
$sql = "INSERT INTO ".$TABLE_PREFIX."uploads (createdTime, tableName, recordNum, fieldName, urlPath, `order`)
VALUES (NOW(), 'productos', $num, 'foto', '$urlPath', $nextOrder)";
```
La tabla usa `createdTime` (no `createdDate`). No tiene `createdByUserNum`, `updatedDate`, ni `updatedByUserNum`. Ver [Uploads desde Hooks](#uploads-desde-hooks) para el ejemplo completo de INSERT.
### Upload fields en PHP
Incluso con una sola imagen, los uploads son arrays: