# Szűrés kapcsolat metamezője alapján

> SQL-lekérdezések és JetSmartFilters szűrő építése a kapcsolat metamezőjének értéke szerinti szűréshez.

Ha a kapcsolatnak saját metamezője van (például szerep, időpont), az értéke alapján is szűrhetsz. Ehhez két SQL-lekérdezés, egy szűrő és egy listázási elem kell. Szükséges: aktív JetEngine és JetSmartFilters.

## 1. Lekérdezés a szűrő értékeihez

1. Menj a **JetEngine → Lekérdezéskészítő** oldalra, és kattints az **Új hozzáadása** gombra.
2. Adj nevet a lekérdezésnek (leírás is megadható), a típus legyen **SQL/AI lekérdezés**.
3. Az egyéni SQL-lekérdezés részben a forrástábla a `jet_rel_default_meta`: innen jönnek a kapcsolat metamezőinek értékei.
4. Ha a kapcsolatnál bekapcsoltad a **Külön DB-tábla regisztrálása** kapcsolót, a tábla neve más: `jet_rel_<kapcsolat azonosítója>_meta` (például `jet_rel_81_meta`). Ilyenkor azt a táblát válaszd. A kapcsolat azonosítója a szerkesztőoldal címsorában, az URL-ben látszik.
5. Vegyél fel egy feltételt (Where): az oszlop `meta_key`, az összehasonlítás „Equal”, az érték a kapcsolat metamezőjének neve.
6. Ha **nincs** külön DB-tábla, vegyél fel egy második feltételt is: oszlop `rel_id`, „Equal”, érték a kapcsolat azonosítója, a típus **Numeric**.
7. Az előnézetben a `meta_value` oszlop tartalmazza a metamező értékét: ebből épül a szűrő.
8. Mentsd a lekérdezést.

## 2. A szűrő

1. A **Smart Filters → Új hozzáadása** oldalon válaszd a szűrőtípust (a példában **Radio**).
2. Az adatforrás: **JetEngine Query Builder**, és válaszd ki az előző lekérdezést.
3. A **Property to get Value from** és a **Property to get Label from** értéke: `meta_value`.
4. A **Query Variable** is `meta_value`.
5. Mentsd a szűrőt.

## 3. Lekérdezés a listázáshoz

1. Hozz létre egy új **SQL/AI lekérdezés** típusú lekérdezést a **Lekérdezéskészítő**ben.
2. A táblának válaszd ki azt, amelyben a szűrendő kapcsolódó elem tárolódik: CCT-nél a CCT táblája, bejegyzéstípusnál a `posts` tábla.
3. Kapcsold be a **Use Join** kapcsolót. A csatlakozás típusa **Inner Join**, a csatlakoztatott tábla a `jet_rel_default_meta` (külön DB-táblánál az a tábla).
4. A saját tábla oszlopa legyen a kapcsolat azon oldala, amelyet szűrsz: ha a szülő CCT-t szűröd, `parent_object_id`; a másik tábla oszlopa a CCT-nél `_ID`, a `posts` táblánál `ID`.
5. A Where részben vegyél fel egy feltételt: `jet_rel_default_meta.meta_key` „Equal” a kapcsolat metamezőjének neve. Így csak azok az elemek kerülnek be, amelyeknek van értéke ebben a mezőben.
6. Ha bejegyzéstípust szűrsz, vegyél fel még egy feltételt: `posts.post_type` „Equal” a bejegyzéstípus slugja.
7. Mentsd a lekérdezést.

## 4. Listázási elem

1. A **JetEngine → Listázások/komponensek** oldalon kattints az **Új hozzáadása** gombra.
2. A **Listázás forrása** legyen **Lekérdezéskészítő**, a lekérdezés pedig az előző SQL-lekérdezés. Add meg a listázási elem nevét és a nézetet, majd hozd létre.
3. A sablonban a **Dynamic Field** widgettel jeleníthetsz meg adatokat a lekérdezésből. A **Lekérdezés** csoportban lévő mezőket válaszd.
4. A kapcsolat metamezőjének értékét az egyéni objektum mezőjeként, a `meta_value` kulccsal írhatod ki.
5. Mentsd a sablont.

## 5. Az oldal

Tedd az oldalra a szűrőt és a **Listing Grid** elemet, és a Listing Gridben válaszd ki az előző listázási elemet. A frontenden a szűrő egy opciójának kiválasztásakor a lista azokat az elemeket mutatja, amelyeknek a kapcsolati metamezőjében az adott érték van.
