# A data és a form shortcode

> A {data:…} shortcode használata az ACF Repeater, az ACF Flexible Content, a Views és a Remote Content widgetben, valamint a {form:…} shortcode-ok az Elementor Pro űrlapokhoz.

A Dynamic Shortcodes két családja kifejezetten bonyolultabb adatszerkezetekhez készült: a `data` shortcode a widgetek saját, összetett adatait (egy repeater sorát, egy lekérdezés számlálóit, egy külső API válaszát) adja át a beállításokba, a `form` shortcode pedig az Elementor Pro űrlap mezőit érhetővé teszi. Mindkettő a Dynamic Shortcodes bővítményt igényli (lásd a [Dynamic Shortcodes](https://hub.hellowp.io/hu/plugins/dynamic-content-for-elementor/tokenek-es-shortcode-ok-dynamic-shortcodes/) fejezetet).

## A data shortcode

A `data` shortcode egy „adatelérő”: azt adja vissza, amit az adott widget a saját beállításához biztosít. Nem érhető el mindenhol, csak azokban a funkciókban, amelyek összetett vagy strukturált adatot kezelnek, és ott is csak a megadott beállításmezőkben:

- ACF Repeater widget,
- ACF Flexible Content widget,
- Views widget,
- Remote Content widget.

Az elérhető kulcsok widgetenként mások, ezért a `{data:…}` más beállításban nem ad értéket.

### ACF Repeater widget

A widget **Dynamic HTML** megjelenítési módja a `data` shortcode-hoz készült: saját HTML-t írsz, és abba beépíted az aktuális sor adatait. A shortcode csak ebben a beállításban használható.

| Shortcode | Mit ad vissza |
|---|---|
| `{data:row}` | A teljes sort tömbként. Egy almezőt a `{data:row\|\|almező-neve}` alakkal érsz el, vagy ciklussal végigjárhatod. |
| `{for:item {data:row} {get:item} @sep=', '}` | A sor értékeit egy szövegként, vesszővel elválasztva. Egyszerű kiíráshoz jó. |
| `{data:row-index}` | A sor sorszámát a repeaterben, 1-től indulva. Számozott listához vagy sorszámláláshoz hasznos. |

Példák:

- Egy almező értéke: `{data:row||almező-neve}`
- Vesszővel tagolt kiírás: `{for:item {data:row} {get:item} @sep=', '}`
- Sorszám a tartalom előtt: `Sor {data:row-index}: {data:row-formatted}`

### ACF Flexible Content widget

A Flexible Content widget ugyanígy rendelkezik **Dynamic HTML** móddal, és a `data` shortcode itt is csak ebben a beállításban érhető el.

| Shortcode | Mit ad vissza |
|---|---|
| `{data:row}` | A teljes sort tömbként. Vagy egy almezőt kérsz belőle (`{data:row\|\|almező-neve}`), vagy ciklussal bejárod. |
| `{for:item {data:row} {get:item} @sep=', '}` | A sor értékeit vesszővel elválasztott szövegként. |

A repeaterhez és a flexible contenthez tartozó többi beállítást az [ACF Repeater](https://hub.hellowp.io/hu/plugins/dynamic-content-for-elementor/egyedi-mezok-acf-repeater/) és az [ACF Flexible Content és űrlap](https://hub.hellowp.io/hu/plugins/dynamic-content-for-elementor/egyedi-mezok-acf-flexible-es-urlap/) fejezet írja le.

### Views widget

A Views widget néhány beállításában használhatsz `data` shortcode-ot. Ezek:

| Beállítás | Mire való | Shortcode |
|---|---|---|
| **Group by Field Heading** | A csoportok címsorának dinamikus megadása. | `{data:heading}` a csoport értékéhez, `{data:permalink}` a kifejezés (term) permalinkjéhez |
| **Count Text** | Az elemek vagy oldalak számának egyedi szövege. | `{data:query}`, például `Oldal {data:query\|\|page} \| {data:query\|\|start}-{data:query\|\|end} / {data:query\|\|total}` (aktuális oldal, a látható elemek tartománya, összes elem) |
| **Where Field Sub** | Szűrés egy almező vagy metaadat értéke szerint. | `{data:field}` |
| **Select Rewrite** | Egy mező értékének átírása egyedi szöveggel, az adatbázisbeli érték módosítása nélkül. | `{data:field}` |

A Views widget többi beállítását a [Nézetek](https://hub.hellowp.io/hu/plugins/dynamic-content-for-elementor/dynamic-posts-nezetek/) fejezet tartalmazza.

### Remote Content widget

A Remote Content widget **Dynamic HTML** mezőjében a `data` shortcode a megadott végpontról (endpoint) letöltött adatot adja át. Más beállítás nem támogatja.

- `{data:result}`: a végpont válasza, magától kitöltődik. Az adatnak JSON formátumúnak kell lennie, mint a legtöbb REST API-nál.
- `{data:result|dump}`: a válasz szerkezetének látható kiírása. Az adat felépítésének megismeréséhez és hibakereséshez hasznos.
- `{data:result||kulcs}`: egy elem elérése a dupla függőleges vonallal. A `{data:result||message}` a JSON-objektum `message` mezőjét adja.

**Példa: véletlen kutyakép.** Ha egy végpont ilyen választ ad:

```json
{ "message": "https://images.dog.ceo/breeds/terrier-fox/n02095314_3054.jpg", "status": "success" }
```

akkor a **Dynamic HTML** mezőbe ezt írva a kép minden oldalbetöltéskor a válasz `message` értékéből töltődik be:

```html
<img src="{data:result||message}" />
```

**Példa: lista ciklussal.** Ha a végpont objektumok tömbjét adja (például felhasználók listáját), a `for` shortcode-dal végigjárhatod:

```html
<ul>{for:user {data:result}
  [<li>
    <strong>Név:</strong> {get:user||name}<br>
    <strong>E-mail:</strong> {get:user||email}<br>
    <strong>Város:</strong> {get:user||address||city}<br>
    <strong>Cég:</strong> {get:user||company||name}
  </li>]
}</ul>
```

A szerkezet:

1. A `{for:user {data:result}` indítja a ciklust: a `user` az éppen soron lévő elem neve.
2. A szögletes zárójelek `[…]` közötti sablon ismétlődik minden elemnél. Benne a `{get:user||tulajdonság}` az elem egy tulajdonságát adja, a beágyazott objektumokat több `||` lépéssel éred el (`{get:user||address||city}`).
3. A ciklus magától véget ér, amikor a tömb elfogy.

## A form shortcode

A `form` shortcode-ok az Elementor Pro űrlapok adataihoz adnak hozzáférést. Olyan Dynamic Content for Elementor funkciókban használhatók, amelyek az Elementor Pro űrlapjával dolgoznak.

| Shortcode | Mit ad vissza |
|---|---|
| `{form:mező}` | Egy űrlapmező értékét szövegként. A `mező` az űrlapmező azonosítója (ID). Több választást engedő mezőnél (például jelölőnégyzetek) a kiválasztott értékek vesszővel elválasztva egy szövegben jönnek. |
| `{form:mező@raw}` | A mező eredeti értékét: többszörös választásnál PHP-tömböt (például `['a', 'b', 'c']`), így megmarad a szerkezet. Egyedi feldolgozáshoz vagy haladó adatkezeléshez kell. |
| `{form:all-fields}` | Az űrlap összes mezőjét, az űrlap felépítésének megfelelően formázva. |
| `{form:all-fields@not-empty}` | Mint az előző, de csak a kitöltött mezőket. Összefoglalókhoz jó. |
| `{form:array}` | Az összes mezőt tartalmazó tömböt, amelyet ciklussal bejárhatsz egyedi megjelenítéshez. |

Példák a feltétel (`if`) shortcode-dal:

- Mező megjelenítése, ha nem üres: `{if:{form:mező} {form:mező}}`
- Ha az első mező üres, egy másik mező: `{if:{form:mező} {form:mező} {form:másik-mező}}`
- Ha üres, egyedi szöveg: `{if:{form:mező} {form:mező} 'A mező üres'}`

A `form` shortcode-ok PDF-generálásnál is használhatók (lásd a [Dynamic Shortcodes](https://hub.hellowp.io/hu/plugins/dynamic-content-for-elementor/tokenek-es-shortcode-ok-dynamic-shortcodes/) fejezet PDF-es részét).
