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
Szekció neve “1. Lekérdezés a szűrő értékeihez”- Menj a JetEngine → Lekérdezéskészítő oldalra, és kattints az Új hozzáadása gombra.
- Adj nevet a lekérdezésnek (leírás is megadható), a típus legyen SQL/AI lekérdezés.
- 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. - 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áuljet_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. - 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. - 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. - Az előnézetben a
meta_valueoszlop tartalmazza a metamező értékét: ebből épül a szűrő. - Mentsd a lekérdezést.
2. A szűrő
Szekció neve “2. A szűrő”- A Smart Filters → Új hozzáadása oldalon válaszd a szűrőtípust (a példában Radio).
- Az adatforrás: JetEngine Query Builder, és válaszd ki az előző lekérdezést.
- A Property to get Value from és a Property to get Label from értéke:
meta_value. - A Query Variable is
meta_value. - Mentsd a szűrőt.
3. Lekérdezés a listázáshoz
Szekció neve “3. Lekérdezés a listázáshoz”- Hozz létre egy új SQL/AI lekérdezés típusú lekérdezést a Lekérdezéskészítőben.
- 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
poststábla. - 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). - 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, apoststáblánálID. - 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. - Ha bejegyzéstípust szűrsz, vegyél fel még egy feltételt:
posts.post_type„Equal” a bejegyzéstípus slugja. - Mentsd a lekérdezést.
4. Listázási elem
Szekció neve “4. Listázási elem”- A JetEngine → Listázások/komponensek oldalon kattints az Új hozzáadása gombra.
- 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.
- 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.
- A kapcsolat metamezőjének értékét az egyéni objektum mezőjeként, a
meta_valuekulccsal írhatod ki. - Mentsd a sablont.
5. Az oldal
Szekció neve “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.
Készült: