Parametri formata Modx revo. Obrazac za povratne informacije o MODX Revo koristeći Formit s neobičnom captcha. Što je FormIt
FormIt 3.0 uvodi ažuriranje metoda enkripcije koje se koriste za šifriranje podnošenja obrasca. Prije 3.0 korišten je mcrypt, koji je u 3.0 zamijenjen s openssl, zbog toga što je mcrypt zastario od PHP 7.2. FormIt 3.0 dolazi sa stranicom za migraciju kojoj se može pristupiti iz upravitelja.
Od FormIt 2.2.9, sva će polja automatski imati primijenjene html_entitete. Kako biste omogućili spremanje/pohranu HTML oznaka, morat ćete koristiti validator allowSpecialChars na svakom polju, koji bi trebao spremati neobrađene html oznake.
Od FormIt 1.1.4, sva će polja automatski imati stripTagove. Kako biste omogućili spremanje/pohranjivanje HTML oznaka, morat ćete koristiti validator allowTags na svakom polju, određujući koje su oznake dopuštene.
Kako koristiti
Jednostavno postavite poziv FormIt isječka u Resurs koji sadrži obrazac koji želite koristiti. Za razliku od sličnih prethodnika (najviše eForm u MODX Evolution), ne stavljate obrazac u Chunk i ne referencirate Chunk u FormIt pozivu isječka: doslovno stavljate poziv isječka uz obrazac koji želite da obradi. Odredite "kuke" (ili skripte za obradu nakon provjere) u pozivu isječka. Zatim dodajte potvrdu putem &potvrdi i &customValidators parametri u oznaci isječka.
Ako imate više obrazaca na stranici, postavite &podnesiVar svojstvo na vašem Isječku poziva na naziv elementa obrasca unutar obrasca (tj. &submitVar=`form1-submit`). Ovo govori FormIt-u da obrađuje samo zahtjeve obrasca s tom POST varijablom. Trebalo bi koristiti više obrazaca s INPUT type="submit" name="form1-submit", elementi gumba prijavljeni su da ne rade.
Dostupna svojstva
Ovo su dostupna opća svojstva za FormIt poziv (ne uključujući svojstva specifična za kuku):
Ime | Opis | Zadana vrijednost |
---|---|---|
preHooks | Koje skripte aktivirati, ako ih ima, nakon što se obrazac učita. Ovo može biti popis kuka odvojenih zarezima, a ako prva ne uspije, one koje slijede neće se aktivirati. Hook također može biti naziv isječka koji će izvršiti taj isječak. | |
renderHooks | Koje skripte pokrenuti, ako ih ima, nakon što se obrazac učita, preHookovi su gotovi i sva polja i pogreške su postavljene. Ovo može biti popis odvojen zarezima koji se koristi za manipuliranje svim poljima obrasca prije nego što se sve postavi na temelju danih podataka iz drugih paketa ili preHookova. Hook također može biti naziv isječka koji će izvršiti taj isječak. | |
udice | Koje skripte aktivirati, ako ih ima, nakon što obrazac prođe provjeru valjanosti. Ovo može biti popis odijeljen zarezima, a ako prvi ne uspije, naredni se neće pokrenuti. Hook također može biti naziv isječka koji će izvršiti taj isječak. | |
submitVar | Ako je postavljeno, neće započeti obrada obrasca ako se ova POST varijabla ne proslijedi. Napomena: potrebno ako koristite &store svojstvo (+ postavite submit var u input="submit"!). | |
potvrditi | Popis polja za provjeru odvojenih zarezima, sa svakim nazivom polja kao name:validator (npr.: korisničko ime:obavezno,e-pošta:obavezno). Validatori također mogu biti lančani, poput email:email:required. Ovo se svojstvo može navesti u više redaka. | |
validationErrorMessage | Opća poruka o pogrešci koja se postavlja na rezervirano mjesto [[!+fi.validation_error_message]] ako provjera valjanosti ne uspije. Može sadržavati [[+greške]] ako želite prikazati popis svih grešaka na vrhu. | Došlo je do pogreške pri provjeri valjanosti obrasca. Provjerite vrijednosti koje ste unijeli. |
validationErrorBulkTpl | HTML tpl koji se koristi za svaku pojedinačnu pogrešku u generičkoj vrijednosti poruke o pogrešci valjanosti. | [[+greška]] |
pogreškaTpl | Omotač html za poruke o grešci. Napomena: ne dio, samo čisti HTML. | [[+greška]] |
customValidators | Popis prilagođenih naziva validatora (isječaka) odvojenih zarezima koje planirate koristiti u ovom obrascu. Moraju biti izričito navedeni ovdje ili se neće pokrenuti. | |
clearFieldsOnSuccess | Ako je istina, obrisati će polja na uspješnom slanju obrasca koji ne preusmjerava. | 1 |
trgovina | Ako je istina, pohranit će podatke u predmemoriju za dohvaćanje pomoću isječka FormItRetriever. | 0 |
storeTime | Ako je "pohrana" postavljena na istinito, ovo određuje broj sekundi za pohranjivanje podataka iz slanja obrasca. Zadano je pet minuta. | 300 |
storeLocation | Kada koristite pohranu, ovo definira gdje se obrazac pohranjuje nakon podnošenja. Moguće opcije su "cache" i "session". Zadana postavka je "cache". | predmemorija |
placeholderPrefix | Prefiks koji se koristi za sva rezervirana mjesta koja postavlja FormIt za polja. Obavezno uključite "." separator u vašem prefiksu. | fi. |
uspjehPoruka | Ako ne koristite kuku za preusmjeravanje, prikažite ovu poruku o uspjehu nakon uspješnog podnošenja. | |
successMessagePlaceholder | Naziv rezerviranog mjesta za postavljanje poruke o uspjehu. | fi.successMessage |
preusmjeritiNa | ID stranice stranice "Hvala" na koju se posjetitelj može poslati nakon uspješnog slanja obrasca, ali ovaj se parametar čita SAMO ako uključite "preusmjeravanje" na popisu &priključaka. | |
dopustiDatoteke | Navedite je li dopušteno objavljivanje datoteka. Podnesene datoteke pohranjuju se u privremeni direktorij kako bi se spriječilo da se datoteke izgube u obrascima s više koraka. | pravi |
priloži datoteke e-pošti | Prilaže učitane datoteke u e-poštu, obrazac treba postaviti kao enctype="multipart/form-data" | pravi |
Validacija
Provjera valjanosti u FormIt-u obavlja se putem svojstva &validate i može se koristiti za automatsku provjeru valjanosti bilo kojeg polja u vašem obrascu.
Za više informacija o provjeri valjanosti u FormIt-u, pogledajte
Ostala nam je još samo jedna stranica koju još nismo uredili. Ovo je stranica Kontakti. Ovdje imamo pored kontakt informacije obrazac će se nalaziti Povratne informacije. U MODx-u postoji poseban isječak za izradu takvog obrasca - eForm. Prvo pogledajmo od čega se obrazac za povratne informacije može sastojati.
1. Prije svega, ovo je sama forma s poljima za unos Ime, poštanska adresa, Teme poruka i sebe samog Poruke. Za zaštitu od spama trebali biste dodati captcha - obrazac za unos koda iz generirane slike. Također je potrebno omogućiti provjeru točnosti unesenih podataka.
2. Obavještavanje posjetitelja o slanju poruke.
3. Obrazac poslane poruke koja će biti poslana e-poštom.
Stvorite dio s predloškom obrasca za povratne informacije
Prije stvaranja dijela s predloškom za obrazac za povratne informacije, proučimo kôd koji opisuje ovaj obrazac u našem predlošku. Otvorite datoteku u Notepad++ kontakt.html koji se nalazi u mapi C:/xampp/htdocs/site/www/assets/templates/templatemo_250_chess/. Ovo će biti linije sa 135 Po 159 uključivo. Kao što vidite, ovo je spremnik sa id="kontaktni_obrazac", gdje se nalazi naš obrazac. Koristeći ovaj kod kao osnovu, stvaramo novi komad oblik-tpl i dodajte rezervirana mjesta koja su nam potrebna:
Povratne informacije
[+poruka o potvrdi+]
Generiranje koda koji sadrži poziv isječka AjaxForm
Otvaramo predložak koji će koristiti resurs i upisujemo kod koji će sve to implementirati.
[[!AjaxForm? &form=`tpl.AjaxForm` &snippet=`FormIt` &hooks=`FormItSaveForm,email` &emailSubject=`Testna poruka` &emailTo=` [e-mail zaštićen]` &emailFrom=` [e-mail zaštićen]` &emailTpl=`tpl.email` &validate=`name:minLength=^2^,email:email:required,message:minLength=^10^` &validationErrorMessage=`Obrazac sadrži greške!` &successMessage=`Poruka je uspješno poslana` ] ]
Pogledajmo glavne parametre:
- &forma – odgovorna je za chunk koji sadrži formu (tpl.AjaxForm).
- &nippet - isječak koji obrađuje obrazac (FormIt).
- &hooks – zakačke koje će FormIt isječak izvršiti nakon uspješne provjere valjanosti obrasca (1 - FormItSaveForm, 2 - e-pošta). Zakačke su skripte koje se pokreću nakon što obrazac prođe provjeru valjanosti. Navedeni su odvojeni zarezima i pokreću se jedan za drugim. Ako se dogodi greška u jednom od njih, ostali se ne pokreću. U ovom vodiču koristit ćemo 2 kuke. FormItSaveForm kuka dizajnirana je za spremanje obrasca u bazu podataka. Priključak za e-poštu dizajniran je za slanje podataka obrasca putem e-pošte.
- &emailSubject, &emailTo, &emailFrom, &emailTpl – parametri čije vrijednosti koristi kuka za e-poštu. Namijenjeni su označavanju predmeta pisma (&emailSubject), adrese slanja (&emailTo), zaglavlja From (&emailFrom) i predloška pisma (&emailTpl).
- &validate – parametar na temelju čije se vrijednosti validira obrazac. Vrijednost parametra je popis elemenata odvojenih zarezima. Svaki element sastoji se od naziva elementa obrasca (koji je potrebno označiti) i pravila (zahtjeva za njega), odvojenih dvotočkom. Na primjer, validator name:minLength=^2^ provjerava sadrži li polje imena najmanje 2 znaka. Validator email:email:required provjerava sadrži li polje e-pošte adresu e-pošte. Osnovna pravila za izradu validatora mogu se pronaći na stranici "FormIt Validators".
- &validationErrorMessage - sadrži poruku koja će biti prikazana ako obrazac sadrži pogreške.
- &successMessage - poruka koju će korisnik vidjeti ako je poruka uspješno poslana.
Sve što preostaje je stvoriti chunk tpl.email koji će sadržavati predložak pisma.
Poruka
Od: [[+name]]
E-mail: [[+email]]
Telefon: [[+telefon]]
Poruka: [[+poruka]]
MODX - Chunk tpl.e-mailPažnja: Za prikaz vrijednosti polja obrasca koriste se rezervirana mjesta.
Demonstracija funkcioniranja obrasca za povratne informacije
Pokazat ćemo glavne točke pri radu s obrascem za povratne informacije na stranici pomoću sljedećih slika.
MODX - obrazac za povratne informacije nije potvrđen
Gotovo sve komercijalne stranice imaju kontakt stranicu, koja sadrži kontakt formu putem koje korisnici mogu pisati administraciji stranice. Danas ćemo pogledati kako brzo stvoriti Kontakt obrazac. Implementirat ćemo obrazac za povratne informacije pomoću paketa Formit u kombinaciji s paketom AjaxForm, instalirajte ih ako ih nemate instalirane.
Izrada obrasca za povratne informacije na MODX Revo s dopuštenjem za obradu osobnih podataka u skladu sa Zakonom br. 152-FZ „O osobnim podacima” od 27. srpnja 2006.
Prije svega, kreiramo chunk u koji će biti pohranjen sam obrazac, neka to bude chunk “contact-form” i u njega smjestimo kod standardna forma, web stranice uglavnom izrađujem koristeći bootstrap, pa ću standardni predložak malo izmijeniti, njegov će statički kod biti ovakav:
Vaš izgled bit će drugačiji jer je moj oblik stiliziran prema projektu, css stilovi Ne vidim smisao objavljivanja.
Ovdje možete vidjeti ostale obrasce getbootstrap.com/css/#forms
Sada pretvorimo kod u dinamički, uzimajući u obzir sintaksu Formit I AjaxForm, dobivamo sljedeće.
Kreirajmo sada još jedan dio koji će generirati pismo, nazovimo ga tpl-kontaktni obrazac sa sljedećim sadržajem:
Ime: [[+ime]]
Email: [[+email]]
Telefon: [[+pfone]]
Poruka: [[+poruka]]
Pa, postalo je moguće izvući zaključak na pravom mjestu:
[[!AjaxForm? &snippet=`FormIt` &form=`kontact-form` &emailTpl=`tpl-kontact-form` &hooks=`spam,email` &emailSubject=`Poruka sa stranice [[++site_url]]` &emailTo=` [e-mail zaštićen]` &validate=`name:required,email:required` &validationErrorMessage=`Obrazac sadrži pogreške!` &successMessage=`Poruka je uspješno poslana!` ]]
Ne zaboravite promijeniti vrijednost emailTo na svoju e-poštu.
Dokumentacija komponente:
- FormIt — docs.modx.com/extras/revo/formit
- AjaxForm — docs.modx.pro/components/ajaxform
To je u biti to!