Puncte:-1

Câmp personalizat pentru reguli

drapel id

Dezvolt un site Drupal, unde administratorul creează conturi de utilizator. Într-adevăr pentru acest site administratorul creează conturi de utilizator, completează câmpurile cu strictul minim (Nume, Prenume, Mail).

Când utilizatorul se conectează, aș dori ca site-ul să-l oblige să completeze câmpurile rămase din profil.

Pentru asta am vrut să folosesc modulul Reguli, cu:

  • Eveniment: Utilizatorul s-a autentificat
  • Condiție: Valoarea datelor este goală: Câmp personalizat
  • Acțiune: Redirecționare pagină (utilizator/[cont: uid]/editare)

Problema pe care o am este că nu pot accesa câmpurile mele vamale din selectorul de date.

Știe cineva cum să accesez câmpurile mele vamale din Reguli?

drapel fr
Notă: O descriere text a modului în care v-ați configurat regula este inadecvată, deoarece în majoritatea cazurilor omite informații vitale. Un lucru specific care lipsește este dacă valoarea a fost introdusă în selectorul de date sau prin intrare directă - există o diferență URIAȘĂ între „nodul” introdus în selectorul de date și „nodul” introdus în introducerea directă. Vă rugăm să postați pe viitor un export al regulii dvs. atunci când puneți o întrebare sau raportați o problemă - exportul conține informațiile complete necesare pentru a reproduce problema dvs.
drapel fr
Regulile din Drupal 8 nu folosesc jetoane pentru module de token. În schimb, trebuie să utilizați sintaxa Twig. În cazul dvs., destinația de redirecționare ar trebui introdusă ca „/user/{{ account.uid.value }}/edit” folosind intrarea directă.
Puncte:0
drapel fr

Evenimentul „Utilizatorul sa autentificat” pune în context entitatea utilizator pentru utilizatorul care tocmai s-a conectat. Entitatea utilizator în sine nu are câmpuri. Entitatea utilizator cu câmpuri adăugate este cunoscută ca un pachet.

Pentru a expune câmpurile pachetului la reguli, trebuie să utilizați condiția „Entitatea este din pachet”. Această condiție necesită trei intrări:

  1. Entitatea specifică pe care o verificați.În cazul dvs. de utilizare, aceasta ar trebui să fie variabila „cont” selectată folosind selectorul de date.
  2. Tipul de entitate. Acesta ar trebui să fie numele mașinii tipului de entitate selectat în 1), care în cazul dvs. este „utilizator”, introdus cu intrare directă.
  3. Numele mașinii pachetului. Din nou, acesta va fi „utilizator”, introdus cu intrare directă.

Orice condiții sau acțiuni adăugate după această condiție „Entitatea este din pachet” vor avea acum acces la câmpurile de utilizator personalizate.

Pașii de mai sus sunt necesari pentru a expune câmpurile oricărui pachet la Reguli - acest lucru nu este doar pentru entitatea „utilizator”.

Monster971 avatar
drapel id
Mulțumesc frate, a funcționat! Ați avea o modalitate ca utilizatorul să nu aibă acces la nicio altă pagină până când câmpurile nu sunt completate?
drapel fr
Daca te-a ajutat te rog sa accepti raspunsul! Consultați https://stackoverflow.com/help/someone-answers
drapel fr
Pentru a preveni accesul la alte pagini, aș sugera să atribuiți un rol utilizatorilor care au profiluri complet completate. Toți utilizatorii fără acest rol pot fi redirecționați către pagina de profil atunci când se conectează și pot fi împiedicați să acceseze conținut sau orice altceva prin setarea permisiunilor pentru rolul „utilizator autentificat” (care este rolul implicit).

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.