User reference D7 - hogyan?

szt képe

D7-ben vagyunk. Olyan megoldást szeretnék, hogy egy tartalomtípusban ki lehessen választani több usert (több, mint 1000 user van, szóval valami autocomplet cucc kell), de ne a user name alapján tudjon választani a user, hanem egy másik user field alapján menjen a keresés.
Ezeket próbáltam:
-> entityreference + entityreference_view_widget (ezekkel majdnem sikerült)
-> relation (ez túl bonyolultnak tűnik ehhez a kérdéshez, ezzel nem sikerült)
-> references (ez a klasszikus régi user_reference almodul, de csak a user name field alapján keres, meg a uid-t mutatja)
Ti hogy csináljátok, elsősorban kattintósan, esetleg screencastosan :)
De bonyolultabb megoldások is érdekelnének.
Köszi!

Drupal verzió: 
szantog képe

Nálam eddig az entityreference volt a standard, de most már a relation felé húz az eszem. Az entityreferencel mi volt a gond?
A viewba amúgy valamilyen módon bele kell tolni az uid-t, mert különben nem fogja tudni userhez kapcsolni. Ez alól kivétel a username és talán az email, mert ezek egyediek.

1
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

nevergone képe

Nekem egyelőre a Relation elég nehézkesnek tűnik, a komoly hasznát abban látom, hogy a kapcsolat lehet kétirányú is, illetve definiálhatunk kapcsolat-típusokat és a kapcsolatokhoz mezőkkel plusz információkat rendelhetünk.
Nekem átlagos felhasználásra (pl. tartalomhoz rendeljünk hozzá egy másikat a szerkesztő felületen) még mindig az Entity Reference tűnik nyerőbbnek.

0
0
szt képe

Igen, én is az entityreference-et preferálnám.
A bajom itt kezdődik vele:
Autocomplet widgetet kell használnom a kiválasztáshoz, mert kb. 1000 user közül kell szelektálni.
Sajnos a szokásos user name mezőben egy id-hez hasonló egyedi adat van, amit a userek nem ismernek, ezért az emberek neve egy újabb user fieldben van tárolva. Na ezekben kellene, hogy az autocomplet keressen.
Gyárilag így néz ki felvitelkor egy user az entityreference autocomplet mezőjében, hogy:

"01-1234 (543)" [azaz: name (uid)]

én meg így szeretném:

"Kovács Józsi (01-1234)" [azaz: field_name (name)]

vagy ez is jó lenne:

"Kovács Józsi" [azaz: field_name]

Szóval a lényeg a Kovács Józsi :)

Az biztos, hogy a field_name mezőm nem unique.
Lehet valahogy az autocompletben nem egyedi mezőben keresni?

0
0
szantog képe

Nem tűnik egyszerűnek.. A helyzet az, hogy az autocomplete mint olyan, az csak egy buta textfield, amire rá van ültetve egy ajaxos kereső. Amikor valamilyen referencet tárolsz, akkor valójában a id-t kell eltárolni. Ezért kerül bele Node Title [nid] formában az adat, mert feldolgozáskor parseolja az utolsó [] közötti számot, és azt tárolja el.

Az optimális igazából az lenne: Egy olyan form element type, hogy autocomplete, amely igazából egy hidden mezőként jelenik meg a htmlben, mellette a textfield kvázi csak megjelenítésre, nem adattovábbításra való. Igenám, de itt jön a furcsaság, az textfieldbe egy menu callback által visszaadott jsonból kerül az érték, és az is nyilván hülyén néz ki, hogy a kereséskor ott van benne az id, amikor rákattint, a text mezőbe csak a szöveg, a hidden részbe meg az id kerülne.
Valszeg valami ajax vuduval ezt is el lehet érni, de abban a részében nem nagyon vagyok otthon.

Ez volt a core részét érintő gondolatmenet, ám elvileg ezt form_alterből is le lehet vezényelni #ajax paraméter használatával. De arra továbbra sem látok megoldást, hogy lehetne kicsalni a json eredményből az id-t az érték kiválasztásakor..

0
0

----
Rájöttem, miért kérdezek olyan ritkán a drupal.hu-n. Amíg szedem össze az infokat a kérdéshez, mindig rájövök a megoldásra.

szt képe

Akkor ez rögös út...
Végülis az autocomplet nem feltétel, csak nem láttam hirtelen más userfriendly kiválasztást.
Szóval hogy a beviteli űrlapon valahogy egy views-zal meg lehetne szűrni a kiválasztandó entityket...
Először bevallom azt hittem erre kész megoldások vannak, mert ez szinte mindig így van a usereknél, hogy a username az valami krixkrax, és egy másik mezőben van az igazi név, és az nem mindig egyértelmű, hogy tudom, hogy mi a user username-je (jó, egy párat tudok fejből: szangog, pp, aboros, snufkin, csg stb. :))))

0
0
pp képe

Már csak azért is rögös lesz az az út, mert két-három-sok Szabó János közül hogyan választja majd ki a felhasználód, hogy melyik az a Szabó János? :)

pp

0
0
szt képe

Jogos, ezért zárójelben a username azért ott lenne.
Szóval az lenne a lényeg, hogy elsődlegesen a humán név alapján lehetne keresni, aztán az uid helyett lenne zárójelben a username, és úgy már egyedi lesz a találat.

0
0
szt képe

Keresem a lehetőségeket: a kompromisszumkézség jegyében megelegégednék azzal is, ha a zárójeles uid eltűnne.
Tehát csak a user name maradna a kereséskor az autocomplet mezőben.
Ezt konkrétan meg tudná valaki mondani, hogyan?
Köszi!

0
0
szt képe

Megoldottam a Chosen modullal.
Igaz, hogy nem igazi autocomplet megoldás, mert ehhez sima select-es field kellett, és abból lehet felhasználóbarát módon választani, akár több elemet is. De kinézetre olyan, mint az autocomplet, és ez a lényeg :)
2000 elemem van, de mivel ez csak admin oldalon kell, ezért most nem gond a hosszú lista.

0
0
snufkin képe

en is az entity reference-t hasznalom ilyesmire, relation szerintem kicsit overkill (bar oszinten szolva nem ismerem annyira).

0
0