Portfólió felvétele a nyilvános űrlappal
A felhasználók portfóliójának felvétele, szerkesztése és törlése a fiókoldalon CCT-vel, JetFormBuilder-űrlapokkal és JetPopup felugró ablakokkal, és megjelenítése a profiloldalon.
Állásportálon a felhasználók nemcsak önéletrajzot, hanem portfóliót is közzétehetnek. Ez a fejezet azt mutatja be, hogyan vehetik fel, szerkeszthetik és törölhetik a portfóliójukat a fiókoldalon egy nyilvános űrlappal, és hogyan jelenik meg a profiloldalon.
Előfeltételek:
- Elementor (az ingyenes is elég);
- aktív JetEngine, beállított fiókoldallal és egyedi felhasználói oldallal;
- JetFormBuilder bővítmény;
- JetPopup bővítmény a felugró ablakokhoz.
Portfólió egyedi tartalomtípus
Szekció neve “Portfólió egyedi tartalomtípus”A portfóliót külön egyedi tartalomtípusban (CCT) érdemes tárolni. Új CCT új SQL-táblát is létrehoz, így több felhasználó portfóliója sem lassítja a webhelyet.
- A JetEngine → JetEngine → Modulok fülön kapcsold be az Egyedi tartalomtípusok modult.
- Az Egyedi tartalomtípusok menüpontban kattints az Új hozzáadása gombra.
- Az általános beállításoknál a Név kötelező; a Slug és az adatbázistábla neve magától kitöltődik. A többi beállítás igény szerint.
- A Mezők fülön vedd fel az egyedi mezőket. A példában négy mező van: „Munka neve” (szöveg), „Média” (kép, Media típus), „Munka hivatkozása” (szöveg) és „Munka leírása” (Textarea).
- Az Admin oszlopok fülön bekapcsolhatod, mely mezők értékei látsszanak a CCT-elemek háttérbeli listájában.
- Mentsd a CCT-t.
Űrlap az elemek felvételéhez
Szekció neve “Űrlap az elemek felvételéhez”A CCT szerkesztőjében a Create new form gomb nyilvános űrlapot generál az elemek felvételéhez, és átvisz az űrlap szerkesztőjébe. Az űrlap mezői a CCT metamezőivel azonos címkéjűek, nevűek és típusúak.
- Egy mezőt kötelezővé a mellette lévő csillag ikonnal teszel: ha a felhasználó nem tölti ki, az űrlap nem küldhető be.
- Ha az űrlapban Media Field blokk van, a blokk beállításainál a Field fülön kapcsold be az Insert attachment kapcsolót, és a FIELD VALUE igazodjon a metamező beállításához: ha a metamezőnél a „Media ID” értékformátumot választottad, itt az „Attachment ID” kell. Enélkül nem lehet fájlt feltölteni. A User access itt is megadható.
- A JetForm → Post Submit Actions fülön alapból ott van az „Insert/Update Custom Content Type Item” művelet. A ceruza ikonnal nyisd meg a beállításait:
- CONTENT TYPE: a létrehozott „Portfólió” CCT;
- ITEM STATUS: a beküldés után az elem „Draft” vagy „Publish” állapotot kap;
- FIELDS MAP: az űrlapmezők és a CCT-metamezők összerendelése; a beküldéskor ezekkel az értékekkel jön létre az elem;
- DEFAULT SETTINGS: a CCT alapértelmezett mezőinek értékei. Módosítás után kattints az Update gombra.
- Hogy a felhasználó a beküldés után a fiókoldalra jusson, kattints a + New Action gombra, válaszd a „Redirect to Page” műveletet, a ceruza ikonnal nyisd meg, a Redirect to legyen „Static Page”, a Select page pedig „Fiókom”. Update.
- Az űrlapot tovább szerkesztheted, például Heading blokkal szöveget adhatsz hozzá. Végül kattints az Update gombra.
Űrlap az elemek szerkesztéséhez
Szekció neve “Űrlap az elemek szerkesztéséhez”- A JetFormBuilder → Forms oldalon a felvevő űrlapot másold a Duplicate gombbal, és nevezd át.
- Szúrj be egy Hidden Field blokkot: változtasd meg a nevét, a Field Value legyen „Manual Input”.
- A blokk DEFAULT VALUE mezője fölötti ikonnal nyisd meg a Edit Preset ablakot: a Source „Custom Content Type”, a Get Item ID from „Current post”, a CCT-érték „Item ID”. Update.
- A többi, a CCT-mezőket másoló mezőt nem kell módosítani.
- A JetForm → Post Submit Actions fülön a ceruza ikonnal nyisd meg az „Insert/Update Custom Content Type Item” műveletet, és a rejtett mezőhöz válaszd az „Item ID (will update the item)” értéket. Update.
- Nyisd le a Preset Settings szakaszt, kapcsold be a kapcsolót, a SOURCE legyen „Custom Content Type”, a GET ITEM ID FROM pedig „Current Post”. Alatta az űrlapmezők mellett legördülőben kiválaszthatod az összetartozó CCT-metamezőt. Szerkesztéskor a preset az aktuális CCT-elem adataival tölti ki a mezőket, így a felhasználónak nem kell újra beírnia mindent.
- Update.
Felugró ablakok az űrlapokhoz
Szekció neve “Felugró ablakok az űrlapokhoz”A JetPopup segítségével két felugró ablakot készítesz, amelyeket gombokhoz kötsz: egyet a felvételhez, egyet a szerkesztéshez.
- A JetPopup → Create New Popup oldalon a Create a Popup ablakban válaszd ki a tartalom típusát (Elementor vagy blokkszerkesztő), add meg a nevet, válaszd az előbeállítást, és kattints a Create gombra.
- Tedd a szerkesztőbe a JetForm widgetet vagy a Form blokkot, és a Choose Form listában válaszd a felvevő űrlapot. Szabd testre, és Update.
- Készíts egy második felugró ablakot ugyanígy a szerkesztő űrlappal.
- A szerkesztő ablak fogaskerék ikonjával nyisd meg a beállításokat, és kapcsold be a Loading content with Ajax és a Force Loading kapcsolót. Enélkül az űrlap preset nem működik a felugró ablakban.
CCT-lekérdezés
Szekció neve “CCT-lekérdezés”Hogy a profiloldalon csak a lekérdezett felhasználó portfóliója jelenjen meg, egyéni lekérdezés kell.
- A JetEngine → Lekérdezéskészítő oldalon kattints az Új hozzáadása gombra.
- Add meg a lekérdezés nevét, a típus legyen „Custom Content Type Query”.
- A Content Types Query fülön a From Content Type értéke a „Portfólió”. Megadhatod a megjelenített elemek számát, és a Status értéke legyen „Publish”, hogy csak a közzétett elemek jelenjenek meg.
- A Query fülön kattints az Új hozzáadása gombra: a Field „Item Author”, a Compare „Equal (=)”, az érték ikonjával válaszd a „Queried user ID” makrót, a Type pedig „Numeric”.
- Kattints a Lekérdezés hozzáadása/frissítése gombra.
Listázási sablon
Szekció neve “Listázási sablon”- A JetEngine → Listázások/komponensek oldalon kattints az Új elem hozzáadása gombra.
- A Lista forrása legyen „Custom Content Type”, a From content type a „Portfólió”, adj nevet, a nézet legyen Elementor, és kattints a létrehozás gombra.
- Dynamic Image widget: a Source a CCT Media metamezője.
- Dynamic Field widget a névvel: a Source „Post/Term/User/Object Data”, az Object Field a „Munka neve”.
- Még egy Dynamic Field a leírással. Kapcsold be a Filter field output kapcsolót, és a Callback legyen „Trim string by charts or words”, hogy a leírás egy része rejtve maradjon. Ez a callback csak akkor érhető el, ha a JetEngine → JetEngine → Modulok → Külső modulok alatt bekapcsoltad a Trim string callback modult. Itt adod meg a megjelenített szavak vagy karakterek számát.
- Dynamic Link widget a munka hivatkozásával: a metamező a „Munka hivatkozása”.
- Másik Dynamic Link, amellyel a felhasználó törölheti a portfóliót: a Source „Delete current post link”, töltsd ki a Confirm deletion message mezőt, a Redirect after delete mezőbe írd a fiókoldal webcímét, így a törlés után oda érkezik a felhasználó. A felirat módosítható; a példában csak ikon van, a felirat törölve. Kapcsold be az Add Query Arguments kapcsolót, és írd be:
_cct_id=%current_id%. A Field Icon a „Trash”, az Alignment az „End”. - A törlés gomb Advanced fülén a Dynamic Visibility alatt kapcsold be a kapcsolót, a feltételtípus „Show element if condition met”, a feltétel a JetEngine-specifikus „Is Profile Page”, a Profile Page mezőben pedig az a fiók-aloldal, amelyen a felhasználó adatai és a portfóliós rács lesz. Így a törlés gomb csak a fiókoldalon látszik, a profiloldalon nem.
- Szerkesztés gomb: tegyél be Elementor Button vagy JetElements Button widgetet, és szabd testre. Az Advanced fül JetPopup szakaszában az Attached Popup a szerkesztő űrlapot tartalmazó ablak, a Trigger Type „Click On Widget”, és kapcsold be a Jet Engine Listing popup kapcsolót. A Dynamic Visibility a törlés gombéval azonos beállítású: „Show element if condition met”, „Is Profile Page”, ugyanaz az aloldal.
- Frissítés.
A rács a fiókoldalon
Szekció neve “A rács a fiókoldalon”Szerkeszd a fiókoldalnak azt az aloldal-sablonját, amelyik a felhasználó adatait mutatja.
- Tegyél be egy Heading widgetet „Portfólió” szöveggel.
- Tegyél be egy gombot (Elementor Button vagy JetElements Button), amely a felvevő űrlapos ablakot nyitja: Advanced → JetPopup, az Attached Popup a felvevő ablak, a Trigger Type „Click On Widget”.
- Tedd be a Listing Grid widgetet, és válaszd ki a most elkészített listázást. A Dynamic Visibility beállítások miatt a rács a szerkesztőben még nem mutatja a szerkesztő és törlő gombokat, a fiókoldalon viszont látszanak majd.
- A Custom Query fülön kapcsold be a kapcsolót, és a legördülőben válaszd ki a CCT-lekérdezést. Mivel még nincs portfólió, a rács üres.
- Frissítés.
A rács a nyilvános profiloldalon
Szekció neve “A rács a nyilvános profiloldalon”Szerkeszd a profiloldal aloldal-sablonját.
- A belső szekció oszlopába tegyél egy Heading widgetet „Portfólió” szöveggel.
- Tedd be a Listing Grid widgetet a listázással, és a Custom Query fülön kapcsold be az egyéni lekérdezést, válaszd ki a CCT-lekérdezést.
- A belső szekció Advanced fülén a Dynamic Visibility alatt kapcsold be a kapcsolót: a feltételtípus „Show element if condition met”, a feltétel „Query Has Items”, a Query to check mezőben ugyanaz a CCT-lekérdezés. Így a szekció csak akkor látszik, ha a felhasználónak van legalább egy portfóliója.
- Frissítés.
Ellenőrzés
Szekció neve “Ellenőrzés”Nyisd meg a fiókoldalt a nyilvános felületen. A felvevő gombra kattintva megjelenik az űrlap; kitöltés és beküldés után az új elem megjelenik a rácsban. A Szerkesztés gombra kattintva megnyílik a szerkesztő űrlap, a mezők a CCT-elem értékeivel előtöltve; módosítás és beküldés után a változás megjelenik a rácsban. A Törlés gomb megerősítést kér: az OK töröl, a Mégse megtartja az elemet. Törlés után a rács újra üres.
A profiloldalon, amíg a felhasználónak nincs portfóliója, a szekció rejtve marad. Amint a fiókoldalról felvesz egyet, a szekció megjelenik, de a hozzáadás, szerkesztés és törlés gombok a Dynamic Visibility beállítások miatt nem látszanak.
Készült: