Modx revo formátumbeállítások. Visszajelzési űrlap a MODX Revo-ról a Formit használatával, szokatlan captcha-val. Mi az a FormIt

21.06.2020 Tippek

A FormIt 3.0 frissítést vezet be az űrlapbeküldések titkosításához használt titkosítási módszerekhez. A 3.0 előtt mcryptet használtak, amit a 3.0-ban openssl váltott fel, mivel az mcrypt a PHP 7.2-től elavulttá vált. A FormIt 3.0-hoz tartozik egy migrációs oldal, amely a kezelőtől érhető el.

A FormIt 2.2.9-től kezdve minden mezőre automatikusan alkalmazzák a html_entities értéket. A HTML-címkék mentésének/tárolásának engedélyezéséhez minden mezőben az allowSpecialChars érvényesítőt kell használnia, amely a nyers HTML-címkéket menti.

A FormIt 1.1.4-es verziójától kezdve minden mezőre automatikusan stripTag kerül alkalmazásra. A HTML-címkék mentésének/tárolásának engedélyezéséhez minden mezőben az allowTags érvényesítőt kell használnia, meghatározva, hogy mely címkék engedélyezettek.

Hogyan kell használni

Egyszerűen helyezze a FormIt kódrészlet hívását abba az erőforrásba, amely a használni kívánt űrlapot tartalmazza. A hasonló elődöktől eltérően (leginkább az eForm a MODX Evolutionben), nem kell az űrlapot Chunk-ba helyezni, és a Chunk-ra hivatkozni a FormIt snippet call: you literally put the snippet call side the form side, you want to feldolgozni. Adja meg a "horgokat" (vagy az ellenőrzés utáni feldolgozási szkripteket) a kódrészlethívásban. Ezután adja hozzá az érvényesítést a &érvényesítés &customValidators paramétereket a kódrészlet címkéjében.

Ha több űrlap van egy oldalon, állítsa be a &submitVar tulajdonsága a Snippet-hívásban az űrlapon belüli űrlapelem nevére (pl. &submitVar=`form1-submit`). Ez azt mondja a FormIt-nek, hogy csak az adott POST-változóval rendelkező űrlapkéréseket dolgozza fel. Több űrlapot kell használni az INPUT type="submit" name="form1-submit" paraméterrel, a gombelemek a jelentések szerint nem működnek.

Elérhető tulajdonságok

Ezek a FormIt hívás elérhető általános tulajdonságai (a horogspecifikus tulajdonságok nélkül):

Név Leírás alapértelmezett érték
preHook Milyen szkripteket kell elindítani, ha vannak ilyenek az űrlap betöltése után. Ez lehet a horgok vesszővel elválasztott listája, és ha az első sikertelen, a továbbhaladók nem fognak tüzelni. A hook lehet egy Snippet név is, amely végrehajtja az adott Snippet-et.
renderHooks Milyen szkripteket kell elindítani, ha vannak ilyenek, ha az űrlap betöltődik, a preHook befejeződött, és minden mező és hiba be van állítva. Ez lehet egy vesszővel elválasztott lista, amely az űrlap összes mezőjének manipulálására szolgál, mielőtt minden más csomagokból vagy preHook-okból származó adatok alapján beállna. A hook lehet egy Snippet név is, amely végrehajtja az adott Snippet-et.
horgok Milyen szkripteket kell elindítani, ha vannak ilyenek, miután az űrlap átment az ellenőrzésen. Ez lehet egy vesszővel elválasztott lista, és ha az első sikertelen, a továbbhaladók nem indulnak el. A hook lehet egy Snippet név is, amely végrehajtja az adott Snippet-et.
submitVar Ha be van állítva, akkor nem indul el az űrlapfeldolgozás, ha ez a POST változó nem kerül átadásra. Figyelmeztetés: Szükséges, ha a &store tulajdonságot használja (+ az input="submit"-ben állítsa be a submit var-t!).
érvényesít Az érvényesítendő mezők vesszővel elválasztott listája, minden mezőnévvel: name:validator (pl.: felhasználónév:kötelező, e-mail: kötelező). Az érvényesítők láncba is köthetők, például email:email:required . Ez a tulajdonság több sorban is megadható.
validationErrorMessage Általános hibaüzenet, amelyet helyőrzőre kell beállítani [[!+fi.validation_error_message]], ha az ellenőrzés sikertelen. Tartalmazhat [[+hibákat]], ha az összes hiba listáját szeretné megjeleníteni a tetején. Űrlapérvényesítési hiba történt. Kérjük, ellenőrizze a megadott értékeket.
validationErrorBulkTpl HTML tpl, amely az általános érvényesítési hibaüzenet értékének minden egyes hibájához használatos. [[+hiba]]
errTpl A hibaüzenetek burkoló html-je. Megjegyzés: nem egy darab, csak egyenes HTML. [[+hiba]]
customValidators Az ezen az űrlapon használni kívánt egyéni érvényesítő nevek (részletek) vesszővel elválasztott listája. Ezeket itt kifejezetten fel kell tüntetni, különben nem futnak le.
clearFieldsOnSuccess Ha igaz, akkor törli a mezőket a sikeres űrlapküldésnél, amely nem irányít át. 1
bolt Ha igaz, akkor a gyorsítótárban tárolja az adatokat a FormItRetriever kódrészlet segítségével történő lekérdezéshez. 0
storeTime Ha a "store" értéke igaz, ez megadja, hogy hány másodpercig kell tárolni az űrlap elküldéséből származó adatokat. Alapértelmezés szerint öt perc. 300
bolt helye A store használatakor ez határozza meg, hogy az űrlapot hol tárolja a rendszer az elküldés után. A lehetséges opciók a "gyorsítótár" és a "munkamenet". Alapértelmezés szerint "gyorsítótár". gyorsítótár
helyőrzőPrefix A FormIt által a mezőkhöz beállított összes helyőrzőhöz használandó előtag. Ügyeljen arra, hogy tartalmazza a "." elválasztót az előtagban. fi.
sikerüzenet Ha nem használja az átirányítási horgot, akkor a sikeres elküldés után jelenítse meg ezt a sikerüzenetet.
sikerMessagePlaceholder A helyőrző neve, amelyre a sikerüzenetet be kell állítani. fi.successMessage
redirectTo egy "Köszönöm" oldal oldalazonosítója, ahová az űrlap sikeres elküldése után el lehet küldeni a látogatót, de ez a paraméter CSAK akkor olvasható, ha az &hook listájában szerepel az "átirányítás".
enableFiles Adja meg, hogy engedélyezett-e a fájlok közzététele. A beküldött fájlok egy ideiglenes könyvtárban tárolódnak, hogy megakadályozzák a fájlok elvesztését a többlépcsős űrlapokon. igaz
attachFilesToEmail Az e-mailben feltöltött fájlokat csatolja, az űrlapot enctype="multipart/form-data"-ra kell beállítani igaz

Érvényesítés

Az érvényesítés a FormIt-ben a &validate tulajdonságon keresztül történik, és az űrlap bármelyik mezőjének automatikus ellenőrzésére használható.

A FormIt-ben való érvényesítéssel kapcsolatos további információkért lásd a

Már csak egy oldalunk van, amit még nem készítettünk el. Ez az oldal Kapcsolatok. Itt amellett Elérhetőség az űrlap található Visszacsatolás. A MODx-ben van egy speciális kódrészlet egy ilyen űrlap létrehozásához - eForm. Először nézzük meg, hogy általában miből állhat a visszajelzési űrlap.

1. Először is ez maga az űrlap beviteli mezőkkel név, postázási cím, Üzenettémaés önmagát üzenetek. A spam elleni védelem érdekében adjon hozzá egy captcha-t - egy űrlapot a kód beírásához egy generált képből. Lehetővé kell tenni a bevitt adatok érvényesítését is.

2. A látogató értesítése az üzenet elküldéséről.

3. Az elküldött üzenet formája, amely a postára érkezik.

Hozzon létre egy darabot visszajelzési űrlapsablonnal

Mielőtt a visszajelzési űrlaphoz egy sablont tartalmazó darabot hozna létre, vizsgáljuk meg az űrlapot leíró kódot a sablonunkban. Nyissa meg a fájlt a Notepad++ alkalmazásban contact.html amely a C:/xampp/htdocs/site/www/assets/templates/templatemo_250_chess/ mappában található. Ezek lesznek a sorok 135 tovább 159 inkluzív. Amint látja, ez egy konténer id="contact_form", amely az űrlapunkat tartalmazza. A kód alapján hozzon létre egy új darabot form-tplés adja hozzá a szükséges helyőrzőket:

Visszacsatolás


[+érvényesítési üzenet+]



Email:email:1" />




Írja be ezt a kódot:





Ahol [+érvényesítési üzenet+]- Felelős a kitöltési hibaüzenetek megjelenítéséért az űrlap beküldésekor.
action="[~[*id*]~]- azt jelzi, hogy az oldal, amelyen a kódrészletet meghívják, az űrlapkezelő lesz. A [~[*id*]~] helyett a MODx az aktuális dokumentum URL-jét fogja helyettesíteni.
megadja az űrlap azonosítóját, amelyet a kódrészlet meghívásakor adunk meg.
címke hozzáférési kulcs- beállítja az űrlapelemekhez való hozzáférést gyorsbillentyűk segítségével.
eform="E-mail cím:email:1"- írja le a beviteli mezőt postázási cím, megadja a beviteli típust, és kötelezővé teszi ezt a mezőt. A paraméter kitöltésének sablonja általában a következő: eform="[mező leírása]:[bemeneti adattípus]:[kötelező-e a mező]:[beviteli hibaüzenet]:[beviteli érvényesítési szabály]" . De csak három értékre van szükségünk. Ehhez a paraméterhez hasonlóan az eform="Name::1" is kitöltésre kerül.
[+verimageurl+] felelős a captcha megjelenítéséért.

Hozzon létre egy darabot, amely értesíti a látogatót az üzenet elküldéséről

Hozzon létre egy darabot köszönöm-tpl

Köszönjük, hogy felhasználta a weboldalunkon található visszajelzési űrlapot.

Üzenetét a lehető legrövidebb időn belül megvizsgáljuk, és ha választ igényel, azt biztosan megkapja.


Elküldött információ:



  • A neved:[+szerző+]

  • Az email címed:[+e-mail+]

  • Üzenet szövege:[+szöveg+]

Hozzon létre egy darabot az elküldött üzenet űrlapjával

Hozzon létre egy darabot jelentés-tplés a következő kódot írja be a tartalmába:

Ezt az üzenetet egy [+szerző+] nevű látogató küldte a visszajelzési űrlap segítségével.






Név:[+szerző+]
Email::[+e-mail+]
Üzenet:[+szöveg+]

Ebben a darabban, akárcsak az előzőben, a felhasználó által beírt összes információ a [+szerző+] formátumú helyőrzőkkel kerül továbbításra. Ebben az esetben az egyes helyőrzők neve megegyezik a visszajelzési űrlap megfelelő mezőjének "name" attribútumának értékével (name="author", name="email" name="text").

Hozzon létre egy darabot a visszajelzési űrlap felhívásával

Hozzon létre egy darabot névvel formaés tedd oda a szerkezetet:

[!eform? &formid=`Küldés` &tpl=`form-tpl` &to=` [e-mail védett],[e-mail védett],[e-mail védett]` &mailselector=`otdel` &report=`report-tpl` &thankyou=`thank-tpl` &vericode=`1` &subject=`Üzenet a webhelyemről`!]

Ahol &formid=`Küldés''- az űrlapazonosító, amelyet a form-tpl darabban adtunk meg
&tpl=`form-tpl`- sablon a visszajelzési űrlaphoz
&to=` [e-mail védett],[e-mail védett],[e-mail védett]` - E-mail cím az információk küldéséhez
&mailselector=`részleg`- beállítja a paraméterben vesszővel (,) elválasztott címek listájából egyetlen cím kiválasztásához használandó űrlapmezőt &nak nek. Esetünkben ez egy legördülő lista.

Ennek eredményeként ez a csonk a következő HTML-kódot fogja tartalmazni:

AjaxForm kódrészlethívást tartalmazó kód létrehozása

Megnyitjuk az erőforrást használó sablont, és beírjuk a kódot, amely mindezt elvégzi.

[[!AjaxForm? &form=`tpl.AjaxForm` &snippet=`FormIt` &hooks=`FormItSaveForm,email` &emailSubject=`Tesztüzenet` &emailTo=` [e-mail védett]`&emailFrom=` [e-mail védett]` &emailTpl=`tpl.email` &validate=`name:minLength=^2^,email:email:required,message:minLength=^10^` &validationErrorMessage=`Az űrlap hibákat tartalmaz!` &successMessage=`Üzenet sikeresen elküldve` ] ]

Elemezzük a főbb paramétereket:

  • &form – az űrlapot tartalmazó csonkért felelős (tpl.AjaxForm).
  • &kódrészlet – az űrlapot feldolgozó részlet (FormIt).
  • &hooks – akasztók, amelyeket a FormIt kódrészlet az űrlap sikeres érvényesítése után hajt végre (1 - FormItSaveForm , 2 - email). A horgok olyan szkriptek, amelyek az űrlap érvényesítése után futnak le. Vesszővel vannak elválasztva, és egymás után futnak. Ha az egyikben hiba lép fel, a többi nem indul el. Ebben az oktatóanyagban 2 horgot fogunk használni. A FormItSaveForm hook az űrlap adatbázisba mentésére szolgál. Az e-mail hook az űrlapadatok e-mailbe küldésére szolgál.
  • Az &emailSubject , &emailTo , &emailFrom , &emailTpl olyan paraméterek, amelyek értékeit az e-mail hook használja. Az e-mail tárgyának (&emailSubject), küldési címének (&emailTo), feladójának (&emailFrom) és e-mail sablonjának (&emailTpl) megadására szolgálnak.
  • Az &validate egy paraméter, amelynek értéke alapján az űrlap érvényesítésre kerül. A paraméter értéke az elemek vesszővel elválasztott listája. Minden elem az űrlapelem nevéből (ellenőrizendő) és a szabályból (a rá vonatkozó követelményekből) áll, kettősponttal elválasztva. Például a name:minLength=^2^ érvényesítő ellenőrzi, hogy a névmező tartalmaz-e legalább 2 karaktert. Az email:email:required érvényesítő ellenőrzi, hogy a levélmező tartalmaz-e e-mail címet. Az érvényesítők létrehozásának alapvető szabályai a "FormIt Validators" oldalon találhatók.
  • &validationErrorMessage – Az üzenetet tartalmazza, amely akkor jelenik meg, ha az űrlap hibákat tartalmaz.
  • &successMessage – az üzenet, amelyet a felhasználó látni fog, ha az üzenet sikeresen elküldésre került.

Már csak egy darab tpl.email létrehozása van hátra, amely tartalmazza az e-mail sablont.

Üzenet

Feladó: [[+név]]

E-mail: [[+e-mail]]

Telefon: [[+telefon]]

Üzenet: [[+üzenet]]

MODX – Chunk tpl.email

Figyelem: A helyőrzők az űrlapmezők értékeinek megjelenítésére szolgálnak.

A visszajelzési űrlap bemutatása

A következő képek segítségével bemutatjuk a főbb pontokat, amikor az oldalon található visszajelzési űrlappal dolgozunk.


MODX – Érvénytelen kapcsolatfelvételi űrlap



Szinte minden kereskedelmi oldal rendelkezik kapcsolatfelvételi oldallal, amely egy kapcsolatfelvételi űrlapot tartalmaz, amelyen keresztül a felhasználók írhatnak az oldal adminisztrációjának. Ma megnézzük, hogyan lehet gyorsan létrehozni egy kapcsolatfelvételi űrlapot. A visszajelzési űrlapot a csomag segítségével fogjuk megvalósítani formátum kapcsolódik a csomaghoz Ajax forma, telepítse őket, ha még nincs telepítve.

Visszajelzési űrlap létrehozása a MODX Revo-ról személyes adatok feldolgozásának engedéllyel a 2006. július 27-én kelt 152-FZ „A személyes adatokról” törvény szerint.

Először is létrehozunk egy darabot, amelyben maga az űrlap kerül tárolásra, legyen ez a „kontakt-forma” darab, és belehelyezzük a kódot alapforma, Főleg bootstrap segítségével készítek oldalakat, ezért a standard sablont kicsit módosítva veszem, a statikus kódja így lesz:

Felhasználói Szerződés

A megjelenésed más lesz, ahogy a formám a projekthez készült, css stílusok Nem látom értelmét a posztolásnak.

A többi nyomtatványt itt tekintheti meg getbootstrap.com/css/#forms

És most alakítsuk át a kódot dinamikussá, figyelembe véve a szintaxist formátumés Ajax forma, a következőket kapjuk.

[[+fi.error.name]]
[[+fi.error.email]]
[[+fi.error.pfone]]
[[+fi.error.message]]

A jelölőnégyzet bejelölésével hozzájárulok személyes adataim feldolgozásához a 2006. július 27-én kelt, „A személyes adatokról” szóló 152-FZ törvény értelmében, és elfogadom a Felhasználói Szerződés feltételeit.

[[+fi.success:is=`1`:then=`
[[+fi.successMessage]]
`]] [[+fi.validation_error:is=`1`:then=`
[[+fi.validation_error_message]]
`]]

Most hozzunk létre egy másik darabot, amely egy betűt alkot, nevezzük tpl-kontakt-formnak a következő tartalommal:

Név: [[+név]]

E-mail: [[+e-mail]]

Telefon: [[+pfone]]

Üzenet: [[+üzenet]]

Nos, a megfelelő helyen kezdett levonni egy következtetést:

[[!AjaxForm? &snippet=`FormIt` &form=`kontact-form` &emailTpl=`tpl-kontact-form` &hooks=`spam,email` &emailSubject=`Üzenet a következő webhelyről: [[++site_url]]` &emailTo=` [e-mail védett]` &validate=`name:required,email:required` &validationErrorMessage=`Az űrlap hibákat tartalmaz!` &successMessage=`Az üzenet sikeresen elküldve!` ]]

Ne felejtse el megváltoztatni az értéket emailTo a postájára.

Alkatrész dokumentáció:

  1. FormItdocs.modx.com/extras/revo/formit
  2. Ajax formadocs.modx.pro/components/ajaxform

Lényegében ennyi!