# REST és abilities

> A ZenAdmin beállításainak REST-végpontja, az LW Site Manager melletti három ability, és ami nincs: konstans és saját szűrő.

## Beállítások REST-végpontja

A beállítás-oldal is ezt használja. Csak adminisztrátor (`manage_options`).

| Végpont | Metódus | Mit csinál |
|---|---|---|
| `/wp-json/lw-zenadmin/v1/admin/settings` | GET | A négy kapcsoló és a három lista (csoportokkal; elemenként `id`, `title`, `visible`, `protected`). |
| `/wp-json/lw-zenadmin/v1/admin/settings` | POST | Részleges mentés. Ha bármelyik mező hibás, semmi nem mentődik. |

A POST törzse: `{"options": {kulcs: bool}, "widgets": {id: bool}, "menus": {slug: bool}, "adminbar": {id: bool}}`. Bármelyik rész elhagyható. A `true` = látható.

```bash title="Lekérdezés"
curl -u "admin:xxxx xxxx xxxx xxxx xxxx xxxx" \
  https://pelda.hu/wp-json/lw-zenadmin/v1/admin/settings
```

```bash title="Menükezelő bekapcsolása és az Eszközök menü elrejtése"
curl -u "admin:xxxx xxxx xxxx xxxx xxxx xxxx" -X POST \
  -H "Content-Type: application/json" \
  -d '{"options":{"menu_enabled":true},"menus":{"tools.php":false}}' \
  https://pelda.hu/wp-json/lw-zenadmin/v1/admin/settings
```

Az elemnek már felderítettnek kell lennie, különben „Ismeretlen elem” hibát kapsz. Ha a menükezelő eddig ki volt kapcsolva, a fenti kérés elbukik, mert a lista még üres: előbb kapcsold be a kezelőt, nyiss meg egy admin oldalt, és csak utána küldd a listát.

Hibák: `400` „Néhány beállítás érvénytelen. Semmi nem lett elmentve.”, mezőnkénti üzenettel (pl. „Ismeretlen beállítás.”, „Csak igaz vagy hamis lehet.”, „Ismeretlen elem: „…”.”, „„…” védett, nem rejthető el.”). 64 KB fölötti törzsnél `413` „A kérés túl nagy.”

## Abilities (az LW Site Manager mellett)

Ha az [LW Site Manager](https://hub.hellowp.io/hu/docs/lw-plugins/) is aktív, a ZenAdmin három képességet regisztrál „ZenAdmin” kategóriában. MCP-n keresztül is elérhetők. Csak adminisztrátor.

| Ability | Mit csinál | Bemenet |
|---|---|---|
| `lw-zenadmin/get-options` | A négy kapcsoló állapota | nincs |
| `lw-zenadmin/set-options` | A négy kapcsoló írása; ismeretlen kulcsot kihagy | `{"options": {"adminbar_enabled": true}}` |
| `lw-zenadmin/list-widgets` | A felderített widgetek csoporttal és láthatósággal | nincs |

A menük és az admin sáv láthatóságára nincs ability.

A WordPress Abilities REST-felületén hívhatók: `/wp-json/wp-abilities/v1/abilities/<név>/run`, olvasáshoz GET, íráshoz POST `{"input": {...}}` törzzsel.

```bash title="Widgetek listázása"
curl -u "admin:xxxx xxxx xxxx xxxx xxxx xxxx" \
  "https://pelda.hu/wp-json/wp-abilities/v1/abilities/lw-zenadmin/list-widgets/run"
```

## Konstansok és szűrők

- `wp-config.php`-ban megadható konstans nincs.
- ZenAdmin-specifikus szűrő vagy akció nincs.
- Ha egy saját értesítést a helyén akarsz tartani, adj neki `lw-notice` CSS-osztályt: ahhoz a gyűjtő nem nyúl.
- A közös LW Plugins áttekintő oldalnak két szűrője van: `lw_plugins_hub_registry` (a bővítménylista módosítása) és `lw_plugins_hub_candidates` (belső: több LW-bővítmény közül a legújabb rajzolja ki az oldalt).
