# Kvíz-formátum

> A lecke kvízének JSON-formátuma: kérdéstípusok, kötelező mezők, ellenőrzés, és a kvíz mentése a szerkesztőből vagy WP-CLI-vel.

A kvíz egy JSON-dokumentum. Ugyanezt írod a lecke **Kvíz** dobozába és a `wp lw-lms lesson set-quiz` parancsnak.

## Felépítés

| Kulcs | Kötelező | Mit jelent |
|---|---|---|
| `pass_percentage` | nem | Sikerességi küszöb, 0 és 100 között. Ha nincs, a [Kvízek](https://hub.hellowp.io/hu/docs/lw-plugins/lw-lms/beallitasok/kvizek/) fül alapértéke érvényes. |
| `shuffle_options` | nem | Az opciók keverése. |
| `questions` | igen | A kérdések listája, nem lehet üres. |

## Kérdéstípusok

| `type` | Mezők | Szabály |
|---|---|---|
| `single` | `id`, `type`, `prompt`, `options` | Legalább 2 opció, és **pontosan egy** `"correct": true`. |
| `boolean` | `id`, `type`, `prompt`, `correct` | A `correct` JSON `true` vagy `false`. |
| `open` | `id`, `type`, `prompt`, `sample` | Nyitott kérdés, nem pontozott. A `sample` a mintaválasz. |

Az `id` betűvel kezdődik, és betűt, számot, `_` és `-` jelet tartalmazhat, legfeljebb 64 karakter. Az ellenőrzés szigorú: ismeretlen kulcs is hiba.

```json title="kviz.json"
{
  "pass_percentage": 80,
  "questions": [
    { "id": "q1", "type": "single", "prompt": "Mennyi ideig kell gyúrni az agyagot?",
      "options": [ { "id": "a", "text": "1 percig" }, { "id": "b", "text": "Amíg buborékmentes", "correct": true } ] },
    { "id": "q2", "type": "boolean", "prompt": "A nedves agyag égethető?", "correct": false },
    { "id": "q3", "type": "open", "prompt": "Írd le a korongozás első lépését!", "sample": "Az agyag középre igazítása." }
  ]
}
```

## Mentés WP-CLI-vel

```bash title="Terminál"
wp lw-lms lesson set-quiz 37 --file=kviz.json
cat kviz.json | wp lw-lms lesson set-quiz intro-lesson --file=-
```

A `set-quiz` a teljes kvízt cseréli. Siker: `Quiz saved on lesson #37 (3 questions).` A `wp lw-lms lesson get-quiz 37` visszaadja a kvízt a helyes válaszokkal együtt, így szerkesztés után visszaírható.

Hibánál a validátor üzenete angol, például:

```text title="Kimenet"
quiz.questions[0] must mark exactly one option as correct.
```

A szerkesztőben ugyanez így jelenik meg: „A kvíz nem mentődött: …”, utána az angol részlet.

## Amit a tanuló lát

A REST API a kérdéseket **a helyes válaszok nélkül** adja ki, és a pontozás a szerveren történik. A beküldés menete: [Leckék és kvízek](https://hub.hellowp.io/hu/docs/lw-plugins/lw-lms/rest-api/leckek/).
