EntityReference auf User mithilfe von Views filtern
am 29.08.2014 - 13:47 Uhr in
Hallo miteinander,
ich hab folgendes Problem, ich hab mehrere Benutzer die durch eine entityReference mehreren "Standorten" zu geordnet sind.
(n Benutzer -> ein Standort)
Der Standort ist eine normale Seite eines Inhalttyps.
Jetzt will ich an andere Stelle ein EntityReference Feld haben in der mir nur die Benutzer angezeigt werden die dem gleichen Standort wie der betrachtende Benutzer zu geordnet sind. Das hab ich per Views und dem PHP Filter Modul auch schon gelöst, also in der Preview der View krieg ich nur die Benutzer mit dem selben Standort. In dem EntityReference Autocomplete Feld filtert er aber nichts raus d.h. da sehe ich alle Nutzer. Ich hab zum Test mal meinen eigenen (PHP)Filter gelöscht und nur prüfen lassen ob die uid = 1, also sollte er nur den root anzeigen, hat auch nicht funktioniert.
Hat jemand vielleicht eine Ahnung woran das liegen könnte, bin langsam am verzweifeln.
Vielen Dank schon mal im Voraus
- Anmelden oder Registrieren um Kommentare zu schreiben
Dir fehlen vermutlich
am 29.08.2014 - 21:37 Uhr
Dir fehlen vermutlich Einträge bei Beziehungen. Du muß die Refererenz als Beziehung eintragen, um auf die dadurch verknüpften Inhalte durchzugreifen.
Danke für die schnelle
am 01.09.2014 - 08:33 Uhr
Danke für die schnelle Antwort, damit hab ich nicht so schnell gerechnet. :D
Ich hab jetzt die Beziehung hinzugefügt mit dem selben Ergebnis. Ich bekomme auch keine Fehlermeldung von PHP wenn die Beziehung nicht da ist.
Ich hab grad nochmal weiter getestet mir werden zum Beispiel auch gesperrte Nutzer bei der Auswahl angezeigt obwohl ich den voreingestellten Filter das nur aktive angezeigt werden soll nicht angefasst hab.
Vielleicht machst Du mal
am 01.09.2014 - 08:43 Uhr
Vielleicht machst Du mal einen Screenshot von den Views-Einstellungen und den Einstellungen zum Reference-Feld - das könnte helfen,
Voila Und der php filter
am 01.09.2014 - 08:52 Uhr
Voila
Und der php filter Code:
global $user;
$user_data = user_load($user->uid);
$account = user_load($row->uid);
$acc_wrapper = entity_metadata_wrapper('user', $account);
$user_wrapper = entity_metadata_wrapper('user', $user_data);
if($acc_wrapper->field_standort2->raw() == $user_wrapper->field_standort2->raw()){
return false;
}
return true;
Kann es sein das bei der
am 03.09.2014 - 15:38 Uhr
Kann es sein das bei der Entityreference bei Usern nichts gefiltert wird? Zumindest scheint das bei mir der Fall zu sein…
Hast Du mal geprüft, ob die
am 03.09.2014 - 16:20 Uhr
Hast Du mal geprüft, ob die Variable $row überhaupt so aussieht, wie Du es erwartest? Ich meine mich dunkel zu erinnern, daß ich bei Views immer nur mit $data arbeiten konnte. Da ich aber kein aktuelles Beispiel habe, weiß ich es jetzt nicht sicher.
Ja hab ich gemacht. Ich hab
am 04.09.2014 - 08:52 Uhr
Ja hab ich gemacht. Ich hab mir beide Werte für jede row ausgeben lassen, die haben gepasst. Mir wird ja in der Preview genau das erwartete gezeigt
Was mich viel mehr verwirrt ist das die voreingestellte View für Benutzer genau das gleiche Verhalten zeigt.
Wenn ich jetzt einen Benutzer hab der nicht aktiv ist also gesperrt ist, wird er mir korrekterweise in der Preview nicht angezeigt.
In dem entityreference Autcomplete Field wird er mir trotzdem vorgeschlagen. Fehlermeldung krieg ich bei drupal und im Apache Log keine…
Das ist dann ja ein tiefergehendes Problem, oder?
Gerade eben hab ich noch eine
am 04.09.2014 - 16:29 Uhr
Gerade eben hab ich noch eine Entdeckung gemacht, das ganze funktioniert einwandfrei wenn ich als Feldtyp eine Auswahlliste oder ein Kontrollkästchen nehme. Wenn ich autocomplete als tagsstyle nehme zeigt er mir gar keine Auswahl an.
Also scheint sich views nicht ganz mit dem autocomplete zu verstehen, zumindest bei mir…
Vielleicht hilft das ja jemandem.