Puncte:0

Cum să creați o vizualizare care să arate Utilizatorii care au marcat ȘI sunt semnalați de utilizatorul curent

drapel nl

Încerc să afișez o listă de utilizatori care au semnalat utilizatorul curent și sunt semnalați de utilizatorul actual. Deci o semnalizare în două sensuri.

Am încercat să folosesc diferite relații și argumente în vederi, dar nu reușesc să obțin combinația corectă. Orice sfaturi? Mulțumiri!

Iată configurația vederilor mele din instrucțiunile lui @pkros, așa cum a fost solicitat.

Vedeți Prezentare generală

Vedeți Relația

Vedeți filtrul contextual

De asemenea, iată un screencast rapid care arată problema în acțiune... https://drive.google.com/file/d/1MOXKZSq_cjPRv6moim1a5ikKeeD8mjY9/view?usp=sharing

Puncte:0
drapel mx

Iată cum puteți face acest lucru cu Views:

  1. Creați vizualizări utilizator, câmpul nume de utilizator este de obicei deja acolo, îl puteți păstra pentru moment

  2. Adăugați relația cu steag și setați-o la Includeți numai conținutul semnalat, numele dvs. de steag specific și Orice utilizator

  3. Adăugați câmpul ID-ul de utilizator de la Semnalizarea Categorie (nu categoria de utilizator)

    Acum ar trebui să vedeți lista tuturor „conexiunilor” semnalate. Câmpul de nume de utilizator arată care utilizator a fost semnalat, iar câmpul de semnalizare utilizator arată cine l-a semnalat.

  4. Acum adăugați ID-ul de utilizator Filtrul contextual din Utilizator Categorie și configurați-o:
    Când valoarea filtrului NU este disponibilă
    Furnizați valoarea implicită
    ID utilizator de la utilizatorul conectat
    Când valoarea filtrului ESTE disponibilă sau este furnizată o valoare implicită
    Specificați criteriile de validare
    ID-ul de utilizator
    ID unic
    Ajustați toate celelalte opțiuni la nevoile dvs.

    Aceasta arată doar „conexiunile” care sunt făcute față de utilizatorul curent.

  5. Eliminați câmpul nume de utilizator deoarece nu mai aveți nevoie de el, deoarece arată întotdeauna utilizatorul curent.

Ceea ce a mai rămas este câmpul utilizator din contextul de semnalizare care arată cine a semnalat utilizatorul curent, în timp ce, în același timp, acel utilizator a fost semnalat de utilizatorul curent.

drapel nl
Am parcurs pașii tăi, dar rezultatul listei arată numai utilizatorii care au semnalat utilizatorul curent (chiar dacă utilizatorul actual nu i-a semnalat). Vă întrebați dacă nu există un alt pas care ne lipsește?
drapel mx
Ești sigur că ai configurat corect relația? Cu „Orice utilizator”?
drapel nl
Da, așa este configurat. Dacă am utilizatorul curent, anulează semnalizarea unui utilizator care a semnalat deja utilizatorul actual... acel utilizator încă apare în vizualizarea de mai sus. L-ai testat?
drapel mx
Da, am un exemplu care a funcționat, am scris răspunsul pe baza lui.
drapel mx
Puteți adăuga configurația în întrebare, astfel încât să văd, poate pot observa diferența?
drapel nl
Bună @pkros, am inclus configurația vederilor mele în întrebare. Am încercat chiar și o instalare complet nouă a Drupal cu instrucțiunile tale. Încă se confruntă cu problema menționată mai sus. Se afișează numai utilizatorii care au semnalat utilizatorul curent. Nu contează cine a semnalat utilizatorul actual. Alte sfaturi? Mulțumiri!
drapel mx
Puteți include capturi de ecran ale configurației tale Views? Exportul brut nu este foarte ușor de citit și nu îl pot importa, deoarece depinde de structura dvs. specială din afara Views. Reduceți fereastra și măriți fontul dacă este necesar atunci când faceți capturi de ecran pentru a le face mai ușor de citit și pentru a evita mult spațiu liber.
drapel nl
Bine, au fost adăugate capturi de ecran. De asemenea, a inclus un scurt videoclip pentru a arăta utilizatorului actual care anulează semnalarea utilizatorului asociat și ieșirea nu se schimbă. Mulțumiri!
drapel nl
@pkros Mai multe feedback? Apreciez ajutorul tau.
drapel mx
Ah, a căzut prin crăpături, voi încerca să-l storc în această săptămână
drapel nl
@pkros, am vrut doar să urmăresc, dacă mai aveai un sfat. O problemă atât de frustrantă din partea mea :). Mulțumiri!
drapel mx
Am făcut upgrade la D9 și mai am ceva de parcurs, apoi trebuie să descopăr exemplul ca să pot compara cu al tău. Nu îl găsesc ATM-ul, trebuie să fie într-o copie de rezervă. O sa-l caut maine.
drapel nl
Succes la actualizările D9. Multumesc din nou!
drapel mx
Mi-am găsit exemplul și se pare că nu funcționează așa cum mă așteptam. Poate am o combinație de urmărire reciprocă prin steaguri care m-au făcut să cred că se afișează corect. Acum, când mă gândesc la asta, este ciudat că am crezut că funcționează, nu există niciun loc unde două direcții de semnalizare să fie comparate/potrivite. Cred că s-ar putea rezolva cu ajutorul View Field View, deoarece acest modul permite interogări de imbricare, dar nu am încercat încă, am dat în aer site-ul încercând să fac upgrade la compozitor...
drapel mx
Utilizați vizualizarea existentă ca bază. Creați un nou afișaj pentru a fi folosit ca câmp Vizualizări, îl creați la fel ca vizualizările existente, numai filtrul contextual poate avea nevoie de ajustări. Cred că ați putea controla rândul care apare cu filtru contextual în câmpul încorporat, pentru a exclude persoanele care nu au steagul mergând în direcția opusă. Sau poate fi necesar să rescrieți un câmp în vizualizarea de bază pentru a-l exclude dacă câmpul încorporat este gol, ceva de genul acesta. Dacă voi remedia site-ul în curând, îl voi încerca și voi posta un alt răspuns.
Puncte:0
drapel cn

Steagurile sunt unidirecționale, așa că nu puteți avea o „semnalizare în două sensuri”.

În Drupal 8/9, un steag are întotdeauna o entitate țintă.

Deci, dacă utilizatorul A semnalează utilizatorul B și utilizatorul B semnalează utilizatorul A, aveți două indicatoare:

  • Steagul utilizatorului A al utilizatorului B
  • Steagul utilizatorului B al utilizatorului A

Nu mă pot gândi la o modalitate bună de a face acest lucru în Views fără cod personalizat.

O alternativă ar fi ceva de genul Steagul prietenului modul, care implementează funcționalitatea „friending” (sau funcționalitatea Tinder de glisare reciprocă pentru a se potrivi).

După ce am implementat o funcționalitate ca aceasta înainte în Drupal 7, în Drupal 8/9, aș lua în considerare scrierea codului în _flagging_insert() cârlig care verifică când un utilizator semnalează alt utilizator și determină dacă utilizatorul marcat l-a semnalat pe utilizatorul semnalizat. Dacă da, creați o entitate (ar putea fi un nod cu referințe de entitate la ambii utilizatori sau o entitate personalizată dacă doriți să fiți elegant) de tip Prietene sau Meci sau orice altceva, apoi sortați potrivirile astfel în Vizualizări. Bineînțeles, dacă utilizatorii pot anula semnalizarea reciprocă și pot întrerupe potrivirea, trebuie să adăugați cod pentru a sprijini și acest caz.

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.