Dinamikus felugró ablak SQL-lekérdezéses listázáshoz
Lépésről lépésre: a felhasználó időpontjainak listája a profiloldalon, részletekkel egy dinamikus felugró ablakban SQL-lekérdezés, Dynamic Field és JetPopup segítségével.
Ez az útmutató egy példán mutatja meg, hogyan készíthetsz dinamikus felugró ablakot egy SQL-lekérdezésre épülő listázási sablonhoz. A példában a bejelentkezett felhasználó időpontfoglalásai jelennek meg a profiloldalán. A listában csak néhány adat látszik minden foglalásnál, a gombra kattintva pedig az összes részlet egy felugró ablakban nyílik meg.
Követelmények
Szekció neve “Követelmények”- Elementor (ingyenes változat) vagy a WordPress blokkszerkesztője (Gutenberg)
- A JetEngine telepítve és aktiválva
- A JetPopup bővítmény telepítve és aktiválva
- Időpontfoglaló bővítmény (a példában JetAppointment), a varázslóval beállítva, és néhány foglalással. A foglalásokat az irányítópultról is felvehetsz.
A JetPopup a JetEngine listázási sablonjaiból tud adatot kiolvasni egy dinamikus felugró ablakban, az SQL-lekérdezés forrásából is.
1. Az SQL-lekérdezés létrehozása
Szekció neve “1. Az SQL-lekérdezés létrehozása”-
Nyisd meg a JetEngine → Lekérdezéskészítő oldalt, és kattints az új lekérdezés hozzáadása gombra.
-
Az Általános beállítások szakaszban add meg a lekérdezés nevét, a lekérdezés típusa pedig legyen „SQL/AI Query”.
-
Az Egyedi SQL-lekérdezés (Custom SQL Query) szakasz From table mezőjében válaszd a
jet_appointmentstáblát. -
A Where (query clauses) lapon kattints az új elem hozzáadása gombra, és állítsd be:
- Column:
user_id - Compare: „Equal (=)”
- Value: kattints az érmeoszlop ikonra, és válaszd a „Current User ID” makrót
- Type: „Numeric”
Ez a beállítás leszűri az eredményt: a felhasználó csak a saját foglalásait látja.
- Column:
-
Az Order & Order By lapon az „Add new sorting parameter” gombbal rendezési feltételeket adhatsz meg. Egy lekérdezéshez több is tartozhat.
-
Ha elkészültél, kattints az Add/Update Query gombra.
2. A felugró ablak létrehozása
Szekció neve “2. A felugró ablak létrehozása”- Nyisd meg a JetPopup → Create New Popup oldalt.
- Válaszd a „Block Editor” vagy az „Elementor” tartalomtípust, add meg a nevet, válaszd ki az előbeállítást, és kattints a Create gombra.
- A listázási sablon csak néhány foglalási adatot mutat (a dátumot és a szolgáltatás nevét), a többi adat a felugró ablakban jelenik meg. Helyezz el a szerkesztőoldalon Dynamic Field widgetet vagy blokkot.
- A Source (forrás) legyen „Post/Term/User/Object Data”, az Object Field listában pedig válaszd ki azt az oszlopot, amelynek adatát meg akarod jeleníteni. Annyi Dynamic Fieldet vegyél fel, ahány adatot mutatni akarsz.
- A Customize field output kapcsolóval szöveget fűzhetsz az érték elé és mögé.
- Bizonyos oszlopok értékét csak szűrővel jelenítheted meg helyesen. Kapcsold be a Filter field output kapcsolót:
- dátum és idő megjelenítéséhez válaszd a „Format date” (Dátum formázása) callbacket; enélkül időbélyegként látszik;
- a szolgáltatás vagy a szolgáltató címének megjelenítéséhez válaszd a „Get post titles from IDs” (Bejegyzéscímek lekérése ID-k alapján) callbacket; enélkül a bejegyzés azonosítója látszik.
A blokkszerkesztőben a Dynamic Field blokk beállításai ugyanezek. A callbackek részletes leírását a Dinamikus widgetek és blokkok, a Dynamic Field fejezetben találod.
Elementorban a felugró ablak szerkesztésekor kattints a bal alsó sarokban a Beállítások ikonra, és kapcsold be a Loading content with Ajax és a Force Loading kapcsolót. A blokkszerkesztőben a jobb felső sarokban a JetPopup ikonra kattintva nyílnak meg a beállítások, ott ugyanezt a két kapcsolót kapcsold be.
Végül kattints a Frissítés gombra.
3. A listázási sablon létrehozása
Szekció neve “3. A listázási sablon létrehozása”- Nyisd meg a JetEngine → Listázások/komponensek menüt, és kattints az új elem hozzáadására.
- A Setup Listing Item ablakban a Listing source legyen „Query Builder”, válaszd ki az imént létrehozott lekérdezést, add meg a sablon nevét, és válaszd az „Elementor” vagy a „Blocks (Gutenberg)” megjelenítést. Kattints a Create Listing Item gombra.
- Helyezz el két Dynamic Field widgetet vagy blokkot: az egyikkel a foglalás dátumát, a másikkal a szolgáltatás nevét jelenítsd meg. A Customize field output kapcsolóval szöveget fűzhetsz az értékhez. A Filter field output kapcsolóval és a „Format date”, illetve a „Get post titles from IDs” callbackkel a dátum és a szolgáltatás címe megfelelően jelenik meg.
- Húzz a szerkesztőoldalra egy gombot: az alapértelmezett WordPress-gombot, vagy (csak Elementorban) a JetElements Gomb widgetjét. Stílusozd tetszés szerint.
- Elementorban nyisd meg a Speciális fület, és nyisd ki a JetPopup részt. Az Attached Popup mezőben válaszd ki az imént létrehozott felugró ablakot, a Trigger Type legyen „Click on Button”, és kapcsold be a Jet Engine Listing popup beállítást.
- A blokkszerkesztőben a Speciális részben szintén az Attached Popup mezőben válaszd ki a felugró ablakot, a Trigger Type legyen „Click”, és kapcsold be a JetEngine Listing popup kapcsolót.
- Kattints a Frissítés gombra.
4. A foglalások megjelenítése a profiloldalon
Szekció neve “4. A foglalások megjelenítése a profiloldalon”- Nyisd meg a JetEngine → Profile Builder oldalt, kapcsold be a Single user page kapcsolót, és add meg az egyedi felhasználói oldalt. Kattints a Mentés gombra.
- Nyisd meg az Oldalak menüben a profiloldalt, és szerkeszd Elementorban vagy a blokkszerkesztőben.
- Elementorban húzz az oldalra egy Listing Grid widgetet, a blokkszerkesztőben helyezz el egy Listing Grid blokkot, és válaszd ki az imént létrehozott listázási sablont.
- Kattints a Frissítés gombra.
Ha megnyitod a profiloldalt a webhelyen, a listában minden foglaláshoz tartozik egy gomb. A gombra kattintva megnyílik a dinamikus felugró ablak a foglalás további adataival, és a második elem gombja a második foglalás részleteit mutatja.
Készült: