MODX are o caracteristică interesantă - puteți schimba aspectul formularului de editare a resurselor aproape în orice mod doriți. Mai mult, puteți face diferite formulare pentru diferite grupuri de utilizatori și chiar pentru diferite resurse. Puteți selecta diferite profiluri de formular pentru o anumită resursă, în funcție de șablonul, părintele sau alte proprietăți.
Și pentru asta nu trebuie să scriem o singură linie de cod!
Să vedem ce poți face, de exemplu, cu formularele:
Mai întâi, să eliminăm elementele inutile din meniul de sus într-un singur element general - „Dezvoltator”. Pentru a face acest lucru, accesați secțiunea „Sistem” -> „Acțiuni”, creați un nou element de meniu în rădăcină și trageți acolo toate elementele inutile:
Apoi, accesați secțiunea „Securitate” -> „Setări formular” și creați un profil nou, de exemplu, „Manager de conținut”. Apoi faceți clic dreapta pe el și selectați „Editare”, accesați fila „Grupuri de utilizatori” și adăugați un grup căruia i se vor aplica noile reguli.
Apoi creăm un nou set de reguli. Există două tipuri de ele - unul pentru forma de creare a unei resurse, al doilea - pentru forma de editare (creare și, respectiv, actualizare). Pot exista mai multe dintre aceste reguli - cel puțin o regulă pentru fiecare resursă.
După ce regula a fost creată, veți vedea pagina de setări - există trei file: Informații set de reguli, Regiuni, Câmpuri suplimentare.
Prima filă listează câmpurile standard de resurse. Ele pot fi dezactivate sau redenumite. Regiunile sunt file ale unei resurse. Puteți crea o nouă regiune și plasați acolo niște parametri TV, apoi resursa îi va avea nu în fila „Câmpuri suplimentare”, ci într-o filă nouă - pe care o specificați. Aici puteți dezactiva filele standard, de exemplu, „Grupuri de resurse”.
Pe a treia filă indicați locația unui anumit parametru TV.
Am făcut o mică foaie de cheat pe regiuni standard:
Deci, să eliminăm imediat toate filele pentru utilizator, cu excepția primei. Debifați regiunile: modx-page-settings, modx-panel-resource-tv, modx-resource-access-permissions. În continuare, din câmpurile standard vom lăsa doar pagetitle și alias. Scoatem casetele de selectare din restul. Specificați un nume nou pentru câmpul pentru titlul paginii: „Titlul știrilor” și alias: „Adresa paginii”.
După aceasta, accesați fila „Câmpuri suplimentare” și indicați că parametrii TV ar trebui să fie într-una sau alta zonă a formularului (în conformitate cu foaia de cheat).
Tot ce rămâne este să indicați pentru ce resurse se aplică această regulă - în elementul „Șablon” indicăm la ce resurse cu ce șabloane trebuie aplicată regula. Dacă regula este pentru toate șabloanele, atunci nu specificăm nimic. Și mai sunt două elemente: „Câmp limită” și „Valoare limită”. Puteți specifica alte câmpuri aici.
Să subliniem că această regulă se aplică resurselor situate în „Știri” - în elementul „Câmp de limitare” scriem mamă, iar în „Valoare limită” id-ul resursei „Știri”, de exemplu, 22 .
FormIt 3.0 introduce o actualizare a metodelor de criptare utilizate pentru criptarea trimiterilor de formulare. Înainte de 3.0 a fost folosit mcrypt, care în 3.0 este înlocuit cu openssl, deoarece mcrypt a fost depreciat începând cu PHP 7.2. FormIt 3.0 vine cu o pagină de migrare care este accesibilă de la manager.
Începând cu FormIt 2.2.9, toate câmpurile vor avea automat aplicate html_entities. Pentru a permite salvarea/stocarea etichetelor HTML, va trebui să utilizați validatorul allowSpecialChars pe fiecare câmp, care ar trebui să salveze etichete HTML brute.
Începând cu FormIt 1.1.4, toate câmpurile vor avea automat aplicate stripTags. Pentru a permite salvarea/stocarea etichetelor HTML, va trebui să utilizați validatorul allowTags pe fiecare câmp, care stipulează ce etichete sunt permise.
Cum se utilizează
Pur și simplu plasați apelul de fragment FormIt în Resursa care conține formularul pe care doriți să îl utilizați. Spre deosebire de predecesori similari (în special eForm în MODX Evolution), nu puneți formularul într-un Chunk și nu faceți referire la Chunk în apelul de fragment FormIt: puneți literalmente apelul de fragment de-a lungul laturii formularului pe care doriți să îl proceseze. Specificați „cârligele” (sau scripturile de procesare post-validare) în apelul fragmentului. Apoi adăugați validarea prin intermediul &validaşi &CustomValidators parametrii din eticheta snippet.
Dacă aveți mai multe formulare pe o pagină, setați &submitVar proprietatea din apelul Snippet la un nume al unui element de formular din formular (adică &submitVar=`form1-submit`). Acest lucru îi spune FormIt să proceseze numai cererile de formular cu acea variabilă POST. Ar trebui folosite mai multe formulare cu INPUT type="submit" name="form1-submit", elementele butoanelor au fost raportate că nu funcționează.
Proprietăți disponibile
Acestea sunt proprietățile generale disponibile pentru apelul FormIt (fără a include proprietățile specifice cârligului):
Nume | Descriere | Valoare implicită |
---|---|---|
precârlige | Ce scripturi să declanșeze, dacă există, odată ce formularul se încarcă. Aceasta poate fi o listă de cârlige separate prin virgulă, iar dacă prima eșuează, cele care urmează nu se vor declanșa. Un cârlig poate fi, de asemenea, un nume de fragment care va executa acel fragment. | |
renderHooks | Ce scripturi să declanșeze, dacă există, odată ce formularul se încarcă, preHook-urile sunt terminate și toate câmpurile și erorile au fost setate. Aceasta poate fi o listă separată prin virgulă de utilizat pentru manipularea tuturor câmpurilor din formular înainte ca totul să fie setat pe baza datelor date din alte pachete sau preHooks. Un cârlig poate fi, de asemenea, un nume de fragment care va executa acel fragment. | |
cârlige | Ce scripturi să declanșeze, dacă există, după ce formularul trece validarea. Aceasta poate fi o listă separată prin virgulă, iar dacă prima eșuează, cele care urmează nu se vor declanșa. Un cârlig poate fi, de asemenea, un nume de fragment care va executa acel fragment. | |
submitVar | Dacă este setată, nu va începe procesarea formularului dacă această variabilă POST nu este trecută. Observație: Este necesar dacă utilizați proprietatea &store (+ setați submit var în input="submit"!). | |
valida | O listă de câmpuri separate prin virgulă de validat, cu numele fiecărui câmp ca nume:validator (de exemplu: nume de utilizator:obligatoriu, e-mail:obligatoriu). Validatorii pot fi, de asemenea, înlănțuiți, cum ar fi email:email:required . Această proprietate poate fi specificată pe mai multe linii. | |
validationErrorMessage | Un mesaj de eroare general de setat la un substituent [[!+fi.validation_error_message]] dacă validarea eșuează. Poate conține [[+erori]] dacă doriți să afișați o listă cu toate erorile în partea de sus. | A apărut o eroare de validare a formularului. Vă rugăm să verificați valorile pe care le-ați introdus. |
validationErrorBulkTpl | HTML tpl care este utilizat pentru fiecare eroare individuală din valoarea mesajului de eroare de validare generică. | [[+eroare]] |
errTpl | Wrapper-ul html pentru mesajele de eroare. Notă: nu o bucată, doar HTML direct. | [[+eroare]] |
customValidators | O listă separată prin virgulă de nume de validator personalizat (fragmente) pe care intenționați să le utilizați în acest formular. Acestea trebuie menționate în mod explicit aici, altfel nu vor fi executate. | |
clearFieldsOnSuccess | Dacă este adevărat, va șterge câmpurile dintr-un formular trimis cu succes, care nu redirecționează. | 1 |
magazin | Dacă este adevărat, va stoca datele în cache pentru extragere folosind fragmentul FormItRetriever. | 0 |
storeTime | Dacă „stocare” este setat la adevărat, aceasta specifică numărul de secunde pentru stocarea datelor de la trimiterea formularului. Implicit la cinci minute. | 300 |
Locația magazinului | Când utilizați magazin, aceasta definește locul în care este stocat formularul după trimitere. Opțiunile posibile sunt „cache” și „session”. Setarea implicită este „cache”. | cache |
substituentPrefix | Prefixul de utilizat pentru toți substituenții setați de FormIt pentru câmpuri. Asigurați-vă că includeți „.” separator în prefixul dvs. | fi. |
succesMessage | Dacă nu utilizați cârligul de redirecționare, afișați acest mesaj de succes după o trimitere cu succes. | |
successMessagePlaceholder | Numele substituentului la care să setați mesajul de succes. | fi.successMessage |
redirectTo | ID de pagină al unei pagini „Mulțumesc”, unde vizitatorul poate fi trimis după trimiterea cu succes a formularului, dar acest parametru este citit NUMAI dacă includeți „redirecționare” în lista de &hooks. | |
allowFiles | Specificați dacă fișierele pot fi postate. Fișierele trimise sunt stocate într-un director temporar pentru a preveni pierderea fișierelor în forme cu mai mulți pași. | adevărat |
atașați fișiere la e-mail | Atașează fișierele încărcate în e-mail, formularul trebuie setat ca enctype="multipart/form-data" | adevărat |
Validare
Validarea în FormSe face prin proprietatea &validate și poate fi folosită pentru a gestiona automat validarea pe oricare dintre câmpurile din formular.
Pentru mai multe informații despre validarea în FormIt, consultați
06-08-2014 22:30:00 3886 Comentarii ollserg & MaxWeb pentru tine
DESPRE Creăm foarte rapid un formular de feedback pe un site care rulează CMF MODX revo folosind pachetul FormIt.
Nu voi descrie în detaliu procesul de instalare a pachetelor pe MODX revo în această postare datorită simplității sale și a cantității mari de material pe acest subiect pe Internet. Permiteți-mi doar să vă reamintesc succesiunea de acțiuni:
<Система> - <Управление пакетами> - <Загрузить дополнения> - <Поиск>(intra - FormIt)
N presa<Загрузить>si apoi<Установить>
D Apoi, să creăm o nouă bucată și să o numim
CU creați o bucată sendEmailTpl Acesta descrie ce informații să trimiteți prin e-mail și introduceți codul acolo:
Din:
Telefon:
Mesaj:
Aici:
- numele expeditorului
- numărul de telefon al expeditorului
- e-mailul expeditorului
- un mesaj scris de expeditor pe site
DÎn continuare, vom crea o pagină cu un mesaj despre trimiterea cu succes și mulțumiri pentru faptul că utilizatorul a trimis un mesaj prin formularul de feedback.
De exemplu:
Vă mulțumim că ați trimis scrisoarea dvs.!
Scrisoarea ta a fost trimisă cu succes.
Specialistul nostru vă va răspunde în cel mai scurt timp posibil.
Nși configurați o redirecționare pentru această pagină după ID-ul acesteia.
Nu uităm să modificăm valoarea parametrului &redirectTo=`178` în locul unde este numit fragmentul FormIt (în codul chunk
răspuns
ollserg a răspuns vineri, 17.04.2015 - 11:07
ACEST COD FORMULAR DE FEEDBACK NU POATE FUNCIONA!
Aceasta nu este o adaptare! Ați eliminat toate funcționalitățile! Recitiți articolul cu atenție și veți înțelege.
Aici am descris totul în detaliu, dar dacă tot nu merge, ne puteți contacta prin formularul de „comandă” de pe acest site.
răspuns
Denis a raspuns Luni, 20.04.2015 - 17:56
FEREASTRĂ POP-UP FORMIT
Multumesc! mi-am dat seama!
Aveți o lecție despre cum să faceți astfel încât, atunci când faceți clic pe butonul „trimite”, mesajul despre trimiterea cu succes să apară într-o fereastră pop-up, și nu pe o pagină nouă?
răspuns
ollserg a răspuns joi, 23.04.2015 - 14:56
FEREASTRĂ MODALĂ
Folosiți-l ca pop-up pe site-ul dvs. Există multe metode de implementare, un exemplu:
Deschide fereastra 1
Aici puteți plasa orice text, imagini sau videoclipuri!
Ei bine, CSS-ul pentru acest cod.
răspuns
Alexey a răspuns duminica, 31.05.2015 - 16:09
FEREASTRĂ MODALĂ
trebuie scris în șablonul html, dar valoarea lui #win1 este necunoscută? Ar trebui sa intreb undeva?
Multumesc.
răspuns
Alexey a răspuns duminica, 31.05.2015 - 16:17
FEREASTRĂ MODALĂ
Vă rugăm să clarificați, unde ar trebui să fie scris parametrul #win1 din fragmentul de formular, astfel încât în șablonul html linkul să înțeleagă ce anume trebuie numit? Poate am înțeles greșit ceva, dar linia
trebuie scris în șablonul html, dar valoarea lui win1 este necunoscută? Ar trebui sa intreb undeva?
Sunt familiarizat cu modx doar de 3 zile, vă rog, ca tot ce este descris mai sus, explicați-l într-un mod simplu.
Multumesc.
răspuns
ollserg a răspuns Luni, 01.06.2015 - 12:28
CODUL HTML AL FERESTEI MODALE
Salut, oaspete!
răspuns
Alex a răspuns marți, 07.07.2015 - 10:18
FĂRĂ SCRISOARE
Al tău a funcționat, a sosit scrisoarea.
Am schimbat câmpurile cu cele de care era nevoie și, vai, scrisoarea a încetat să mai vină.
aici este codul
răspuns
ollserg a răspuns miercuri, 08.07.2015 - 13:09
Q!FORMIT? DESCRĂȚI TEXTUL ȘI EMAILUL
În!FormIt? aveți nevoie de o descriere a tipului - &validate=`email:email:required,text:required:stripTags`
răspuns
Victor a răspuns Luni, 19.10.2015 - 14:03
SUBIECTUL MESAJULUI ÎN FORMULARUL DE FEEDBACK
Bună ziua.
Folosesc „&emailSubject=`Scrisoare de pe site https://site/” - scrisoarea nu este trimisă, formularul revine în starea în care există o eroare în câmp.
.
Este clar că nu înțelege codarea chirilică, dar unde să caute?
Te rog spune-mi ce ar putea fi. cauza.
Multumesc.
răspuns
ollserg a răspuns marți, 20.10.2015 - 22:47
VERSIUNI APACHE SI PHP
Primul lucru la care cred că ar trebui să acordați atenție în cazul dvs. este versiunile de Apache și PHP de pe serverul dvs.
răspuns
AlexP a raspuns joi, 29.10.2015 - 14:15
LOCATOR
Substituentul este tăiat..
Am vrut să fac „Numele tău” în interiorul intrării și să stilizez css. Dar din anumite motive, codul după value="" placeholder="Numele tău) este tăiat" - обрезается!}
Multumesc
răspuns
ollserg a răspuns joi, 29.10.2015 - 20:01
TOATE CSS-urile CONECTATE TREBUIE VERIFICATE
Tăierea „substituentului” are loc tocmai din cauza aspectului
răspuns
Roman a raspuns vineri, 27.11.2015 - 13:43
FORMA SI PROBLEME
Există un mare dezavantaj pentru Fornit sau documentația sa. Aici am o fereastră pop-up frumoasă de feedback, dar nu este creată de un document separat, ci apare folosind jquery! Deci Formit nu funcționează cu el.. Și nu îmi pot da seama cum să-l configurez! Poate ai întâlnit ceva asemănător.
răspuns
ollserg a răspuns mar, 01.12.2015 - 23:23
UTILIZARE AJAXFORM PENTRU FEEDBACK POPUP
FormIt nu știe cum să creeze ajax din cutie... Pentru el, i.e. FormIt trebuie scris ca un add-on... sau folosit AjaxForm, care va fi cea mai bună soluție pentru feedback pop-up.
răspuns
andreev888 a răspuns sâmbătă, 12.05.2015 - 22:26
CEVA NU ESTE OK
Oameni buni, spuneți-mi, instrucțiunile par a fi cele mai accesibile dintre toate cele pe care le-am văzut, am făcut totul conform instrucțiunilor, dar nu văd deloc formularul pe site... nici un cârlig, nici un virgulă... Pur și simplu nu apare... Unde pot să mă uit?
răspuns
ollserg a răspuns duminică, 12.06.2015 - 23:37
MODX REVOLUTION - ȘTERGE CACHE
Și dacă în Meniu - Website și Actualizare site (Șterge cache-ul site-ului web) Acesta este primul lucru care îmi vine în minte. Ei bine, totul este simplu, recitiți postarea o dată sau de două ori și veți reuși!!!
răspuns
Evil a răspuns vineri, 18.12.2015 - 07:00
FURIE
Te-ai săturat să copiezi aceleași articole! Vino cu ceva al tău sau măcar schimbă codul din articol!
răspuns
ollserg a răspuns vineri, 18.12.2015 - 14:28
CITITORII AU ÎNCERCAT DEJA SĂ SCHIMBA CODUL ACESTUI FORMULAR
Au avut întrebări legate de inoperabilitatea acestui cod.
O puteți citi în comentariile de mai sus.
O altă întrebare este că mulți (nu există statistici exacte) copiază și lipesc fără grija codul acestui articol pe site-urile lor web, fără măcar să-l citească cu atenție. Am copiat în mod deliberat codul formularului de feedback de pe site-ul meu și am indicat în articol locurile din cod care trebuie schimbate în al meu. Și câte scrisori de pe site-uri web au fost trimise pe e-mailul meu până când am corectat adresa din cod?! Nu erau sute, ci doar zeci.
răspuns
svbel a răspuns joi, 02.06.2016 - 10:11
EROARE LA TRIMITEREA E-MAILULUI
Ce înseamnă mesajul „A apărut o eroare la încercarea de a trimite e-mail. Funcția de e-mail nu poate fi pornită.”?
răspuns
ollserg a răspuns joi, 02.06.2016 - 10:54
FUNCȚIA DE MAIL NU POATE FI PORNITĂ.
Pot fi multe motive. Uită-te la jurnalele, domeniul de e-mail și e-mailul specificate în FormIt există și funcționează normal?
Pune o întrebare asistenței furnizorului tău de găzduire. În general, nu există un răspuns clar la întrebarea dvs.
răspuns
Denis a raspuns miercuri, 15.06.2016 - 15:53
SCRISOARELE NU VIN ÎN EMAIL
Bună ziua Am facut un formular dupa descrierea ta, totul merge, se trece pe pagina de multumire, dar nu ajunge nimic pe email.
Site găzduit. În teorie, totul este normal în cod
Spune-mi, care este problema? Multumesc!
răspuns
ollserg a răspuns vineri, 17.06.2016 - 12:17
FORMULARUL DE FEEDBACK MODX ESTE 100% CORECT. URMEAZĂ INSTRUCȚIUNILE.
Vă rugăm să citiți cu atenție articolul. Atenție la bucată
Analiza codului, mergând de sus în jos:
&hooks - se adauga aici diverse hook-uri, inclusiv personalizate: in cazul nostru, 2 standard: span - protectie anti-spam simpla si email - obligatoriu, pentru trimiterea datelor la o cutie postala. Despre restul cârligelor vorbesc suficient de detaliat în videoclip.
&emailTpl - o bucată cu designul unei scrisori, are următorul cod:
De la: [[+nume]]
Telefon: [[+telefon]]
E-mail: [[+email]]
Mesaj: [[+message]]
&emailTo - adresa de e-mail la care sunt trimise formularele, în acest caz se specifică setarea de sistem (cheia) ++emailsender
&emailSubject - subiectul e-mailului trimis
&validare - specificăm câmpuri obligatorii de completat și adesea câmpuri de protejat împotriva spamului
&successMessage - mesaj după trimiterea cu succes
Nu voi analiza codul formularului dacă sunteți interesat, vizionați videoclipul și citiți documentația: docs.modx.com/extras/revo/formit;
Atașarea fișierelor la un formular
Pentru a putea atașa și trimite atașamente, trebuie să scrieți în eticheta formularului
Enctype="multipart/form-data"
și, în consecință, adăugați câmpuri pentru atașarea unui fișier
Procesarea casetelor de selectare și a opțiunilor
Forme multiple pe o singură pagină
Doar scrieți în apelurile fiecărui formular
&submitVar=`numele formularului în engleză`
Fiecare formă are propriul nume.
Combaterea spamului
Orice ai spune, cu siguranță vei întâlni spam - cel mai eficient mod de a-l combate este, poți încerca și tu.