Bejegyzések frissítése a weboldalról űrlappal
Szerkesztőűrlap egy bejegyzés adatainak módosításához a weboldalról: Profilkészítő aloldal, listázás Edit gombbal, űrlapmezők minden meta mező típushoz, Insert/Update Post művelet és előbeállítások.
A látogató (bejelentkezett felhasználó) a weboldalról, űrlappal módosíthatja egy bejegyzés adatait. Ez az alap WordPress-bejegyzésekkel és egyéni bejegyzéstípusokkal is működik. A fejezet az „Események” bejegyzéstípus szerkesztőűrlapját építi fel, a Profilkészítő fiókoldalának aloldalán. Az űrlapot bármelyik statikus oldalra is teheted.
Követelmény: a JetFormBuilder bővítmény, vagy a JetEngine bekapcsolt Űrlapok (régi) modullal és beállított Profilkészítővel. A JetFormBuilder a jobb választás, a JetEngine űrlapkészítője régi. Mindkét módszert leírjuk.
1. Aloldal a Profilkészítőben
Szekció neve “1. Aloldal a Profilkészítőben”- Nyisd meg a JetEngine → Profile Builder → Account Page oldalt, és hozz létre egy új aloldalt a szerkesztőűrlapnak.
- Adj neki címet és azonosítót (slug-ot).
- Kapcsold be a Hide from menu kapcsolót, hogy az aloldal ne jelenjen meg a profilmenüben. Az URL-en így is elérhető marad.
Az űrlapot később helyezed el az aloldalon. A Profilkészítőről a Profilkészítő áttekintése és a Profilkészítő beállítása fejezetben olvashatsz.
2. A listázás
Szekció neve “2. A listázás”A látogató a bejegyzések listájában az „Edit Post” gombbal jut az űrlaphoz.
- Ha még nincs, készíts listázási sablont az egyéni bejegyzéstípushoz, amelynek bejegyzéseit szerkeszteni lehet.
- A sablonba tedd be a Dynamic Link widgetet. A link Source (forrás) értéke legyen Profile Page, és add meg az előbb létrehozott aloldalt.
- Adj neki feliratot, például „Edit Event”.
- Kapcsold be az Add Query Arguments kapcsolót, és a mezőbe írd be:
_post_id=%current_id%A _post_id az URL-paraméter neve, a %current_id% makró pedig dinamikusan az aktuális bejegyzés azonosítóját adja. A link megnyomása után az URL-ben ott lesz a szerkesztendő bejegyzés azonosítója, ezt olvassa majd ki az űrlap.
- Mentsd a sablont.
A listát bármelyik oldalra elhelyezheted. A példában egy „My Events” aloldal tartalmazza: ehhez készíts oldalsablont (Elementor → Saját sablonok), tedd bele a Listing Grid widgetet, válaszd ki a listázási sablont, és a Query Builderrel jeleníts meg csak az aktuális felhasználó által szerzett bejegyzéseket.
3. Az űrlap JetFormBuilderben
Szekció neve “3. Az űrlap JetFormBuilderben”A JetFormBuilder → Forms → Add New menüben hozz létre új űrlapot.
Rejtett mező
Szekció neve “Rejtett mező”Vegyél fel egy Hidden Field blokkot. A Field Value értéke legyen URL Query Variable, a Query Variable Key mezőbe pedig írd be: _post_id. Így a mező kiolvassa a szerkesztett bejegyzés azonosítóját az URL-ből. Ha az űrlapot a bejegyzés saját oldalára teszed, a Field Value legyen Current Post ID.
Text, WYSIWYG és Textarea mezők
Szekció neve “Text, WYSIWYG és Textarea mezők”A Text, Textarea és WYSIWYG meta mezők szerkesztéséhez használj ugyanilyen típusú mezőket. A példában a bejegyzés címéhez egy Text mező, az esemény leírásához (WYSIWYG típusú meta mező) egy WYSIWYG mező tartozik. A Field Label és Form Field Name kötelező, a többi beállítás opcionális.
Checkbox, Radio és Select mezők
Szekció neve “Checkbox, Radio és Select mezők”A többválasztós meta mezők (Checkbox, Radio, Select) szerkesztéséhez használd a megfelelő űrlapmezőt.
A Checkbox meta mező beállításai között kapcsold be a Save as array kapcsolót. Ha ezt korábban nem tetted, kapcsold be, és mentsd újra az összes bejegyzést: szerkeszd a bejegyzést, vedd ki és add vissza a jelölést a meta mezőben, és kattints a Frissítés gombra.
A Checkbox mező beállításai: Fill Options From = Generate Dynamically, Generator Function = Get values list from JetEngine field options, a Field Name mezőbe pedig a Checkbox meta mező neve kerül. Így a mező a meta mező lehetőségeiből generálja a sajátját.
A taxonómia frissítéséhez egy Select mező kell: a Fill Options From értéke Terms, és válaszd ki a taxonómiát. Taxonómiához Radio, Checkbox és Select mező is használható.
Date, Time és Datetime mezők
Szekció neve “Date, Time és Datetime mezők”A Date, Time és Datetime meta mezőkhöz a megfelelő űrlapmezőket használd. A példában két Date meta mező van (kezdés és befejezés), ezért két Date mezőt veszel fel.
A legfontosabb: a Date mezőnél kapcsold be az Is Timestamp kapcsolót, és a Date meta mezőnél a Save as timestamp kapcsolót is. Ha ez utóbbit a bejegyzések létrehozása előtt nem kapcsoltad be, kapcsold be, és mentsd újra a bejegyzéseket (válaszd ki újra a dátumot, és kattints a Frissítés gombra). Datetime mezőnél is be kell kapcsolni az Is Timestamp kapcsolót, a Time mezőnél nincs ilyen beállítás.
Beállíthatod, hogy a választható dátumok egy adott naptól induljanak. Az Starting from Date mezőbe az aktuális dátumhoz írd be (a jeleket is másold):
'%CT::CurrentDate|toDate%'Time mezőnél az aktuális időponttól:
'%CT::CurrentDate|toTime%'Datetime mezőnél az aktuális dátumtól és időtől:
'%CT::CurrentDate|toDateTime%'Media mező
Szekció neve “Media mező”A bejegyzés kiemelt képének frissítéséhez használj Media Field blokkot.
- User Access: bármi, kivéve az Any user (incl. Guest) értéket, mert a vendég nem szerkeszthet bejegyzést és nem tölthet fel a médiatárba.
- Insert attachment: ha be van kapcsolva, a feltöltött fájl a médiatárba is bekerül. Csak bejelentkezett felhasználóknál működik.
- Field Value: a kiemelt kép azonosítóként tárolódik, ezért válaszd az Attachment ID értéket. Média meta mezőnél az űrlapmező értékének egyeznie kell a meta mező Value format beállításával. Ha például a Gallery meta mező formátuma Media URL, az űrlapmezőnél az Attachment URL kell.
- Maximum Allowed Files to Upload: Gallery meta mező frissítéséhez egynél több fájlt engedélyezz.
- Maximum Size in MB: egy fájl legnagyobb mérete.
- Allowed MIME Types: a feltölthető fájlformátumok.
A Media mezővel a Media és a Gallery meta mező is frissíthető.
Repeater mező
Szekció neve “Repeater mező”Az ismétlő (Repeater) meta mező frissítéséhez Repeater Field blokk kell, amelybe ugyanolyan típusú mezőket teszel, mint az ismétlő meta mező belsejében. Ha az „event-addresses” ismétlő meta mezőben egyetlen „event-address” Text mező van, a Repeater blokkba egy Text blokkot teszel. A Repeater blokk Form Field Name értéke az ismétlő meta mező neve (event-addresses), a Text blokk neve pedig a belső mező neve (event-address).
Insert/Update Post művelet
Szekció neve “Insert/Update Post művelet”- A jobb oldali JetForm fülön a Post Submit Actions szakaszban kattints a New Action gombra, és válaszd az Insert/Update Post műveletet. A ceruza gombbal szerkesztheted.
- Válaszd ki a Post Type értékét („Events”) és a bejegyzés állapotát.
- A Fields Map részben rendeld az űrlapmezőket a bejegyzés tulajdonságaihoz. Először a
post_idmezőt a Post ID (will update the post) tulajdonsághoz.
Ha a post_id mezőt nem rendeled ehhez, az űrlap beküldése új bejegyzést hoz létre a meglévő frissítése helyett.
- Rendeld a többi mezőt is a tulajdonságokhoz. A meta mezőknél a Post Meta tulajdonság alatti mezőbe írd be a meta mező nevét.
- Kattints az Update gombra.
Előbeállítások (Preset Settings)
Szekció neve “Előbeállítások (Preset Settings)”A JetForm fülön, a Preset Settings szakaszban kapcsold be az előbeállításokat, hogy az űrlap mezői a bejegyzés meglévő értékeivel töltődjenek ki, és a felhasználó csak a módosítandó adatokat írja át.
- Source: Post.
- Get Post ID From: URL Query Variable, a Query Variable Name pedig
_post_id. - Ha az űrlap a bejegyzés saját oldalán van, a Get Post ID From értéke Current Post.
Ezután rendeld hozzá az összes mezőt ugyanúgy, mint az Insert/Update Post műveletnél.
Üzenetek és közzététel
Szekció neve “Üzenetek és közzététel”A General Messages Settings szakaszban szerkesztheted a beküldés után megjelenő üzeneteket. Végül tedd közzé az űrlapot.
Elhelyezés Elementorban
Szekció neve “Elhelyezés Elementorban”- Az Elementor → Templates → Saved Templates oldalon hozz létre új sablont, amelyet később az „Edit Event” aloldalhoz rendelsz.
- Tedd a sablonba a JetForm widgetet, és válaszd ki az űrlapot. A Style fülön formázd a mezőket.
- Mentsd a sablont, majd a JetEngine → Profile Builder → Account Page oldalon rendeld hozzá az aloldalhoz.
3b. Az űrlap a JetEngine régi űrlapkészítőjében
Szekció neve “3b. Az űrlap a JetEngine régi űrlapkészítőjében”Ha a Űrlapok (régi) modult használod, a JetEngine → Űrlapok menüben hozz létre új űrlapot. A lépések ugyanazok, a nevek kicsit eltérnek.
- Hidden mező: a Field Value értéke URL Query Variable, a Query variable key értéke
_post_id. Bejegyzés saját oldalán a Current Post ID használható. - Text, Textarea, WYSIWYG: ugyanolyan típusú mezők. A Name csak latin kisbetűt, számot és a „-” vagy „_” jelet tartalmazhatja, szóköz nem lehet benne, különben űrlaphibák keletkeznek.
- Checkbox, Radio, Select: a Checkbox meta mezőn a Save as array kapcsolót be kell kapcsolni, és az űrlapban a Checkboxes mező a Generate Dynamically forrást használja a Get values list from JetEngine field options függvénnyel. A taxonómiához Terms forrású Select kell.
- Date, Time, Datetime: ugyanaz, mint fent: Is Timestamp az űrlapmezőn, Save as timestamp a meta mezőn.
- Media: User access nem lehet az Any user (incl. Guest), az Insert attachment bekapcsolt, és a Field value az Attachment ID (vagy a meta mező formátumának megfelelő). Meg kell adni a legnagyobb fájlszámot, méretet és a MIME-típusokat.
- Repeater: a Repeatable Fields Group Start és Repeatable Fields Group End mezők közé teszed a belső mezőket. A kezdő mező neve az ismétlő meta mező neve, a belső mezőé a belső meta mező neve.
- Insert/Update Post: a Beküldés utáni műveletek / értesítések beállításai szakaszban az Értesítés hozzáadása gombbal vedd fel. A Fields Map első sora a
post_idmező a Post ID (will update the post) tulajdonsággal. A végén a Módosítások alkalmazása gombra kattints. - Üzenetek: az Üzenetek beállításai szakaszban szerkeszthetők (lásd Űrlapüzenetek).
- Előbeállítások: kapcsold be a Pre-set form field values jelölőnégyzetet. A Source értéke Post, a Get post ID from értéke URL Query Variable, a Query variable name értéke
_post_id(bejegyzés saját oldalán Current Post). Utána rendeld hozzá a mezőket. - Elhelyezés: Elementor-sablonban a Form widgetet használd, a Profile Builder aloldalhoz rendeld a sablont.
Működés közben
Szekció neve “Működés közben”Nyisd meg azt az oldalt, ahol a bejegyzések listája van, és kattints az „Edit Post” gombra. Az előbeállítások miatt az űrlap mezői a bejegyzés adataival töltődnek ki. Módosítsd a mezőket, és küldd be az űrlapot: a bejegyzés frissül.
Készült: