[gelöst] Views Sortierung nach Location (User Location + Node Location)

am 27.01.2014 - 07:07 Uhr in
Hallo
Ich habe gerade einen "Location" node-view erstellt.
In meinen Nodes hat der User die Möglichkeit die Adresse seines eigenen Shops einzutragen. Dazu verwende ich Node Locations (Location Modul).
Jeder User muß bei der Registrierung seine eigene "private Adresse" angeben (User Locations > Location Modul) .
Ich würde jetzt gerne den Location View mit sämtichen Shops so ausgeben, dass der User die Shops in seiner Nähe zuerst sieht.
Unter Sort criteria gibt es zwar die "Location: Distance / Proximity" Sortierung und auch die anderen Location Felder zur Auswahl.
Aber es ist mir noch schleierhaft ob und wie ich hier eine Verbindung von der User Location zur Node Location aufbauen kann.
Weiß jemand ob dies mit den Location Sortierungsoptionen möglich ist, oder brauche ich für mein Vorhaben ein anderes/weiters Modul?
Anhang | Größe |
---|---|
sort.jpg | 34.46 KB |
sort2.jpg | 13.75 KB |
- Anmelden oder Registrieren um Kommentare zu schreiben
erstelle einen eigenen view
am 27.01.2014 - 09:20 Uhr
erstelle einen eigenen view dort kannst du bei location proximity filter angeben, was als grundlage genommen werden soll: userlocation oder die eingabe der filter
danke erstmal..habe die
am 28.01.2014 - 20:24 Uhr
danke erstmal..
habe die filter unter views mal in allen variationen durchprobiert.
Ich habe für jeden Testuser eine eigene Location im jeweiligen Profil angegeben.
Aber die Entfernung zu den Locationnodes ist bei jeden User gleich weit.
Hier ein paar Screenshots von meinen derzeitigen Einstellungen..
Vieweinstellungen:
So sieht der ausgegebene View aus:

.. das sind die dazugehörigen Vieweinstellung:

Unter Filter criteria habe ich folgendes Feld aktiviert:

(User Latitude.. ist die derzeitige Einstellung, aber habe auch die anderen Optionen durch)
vollständigkeitshalber noch die..
.. Inhaltstypeinstellungen (Location-Node):
.. Profil Locationeinstellungen:
Damit das bei Nodes
am 28.01.2014 - 23:20 Uhr
Damit das bei Nodes funktioniert (ein Node ist keine User!!!), wählst du unter "Advanced" -> "Contextual filters" -> "Global: Null"
Dort dann "Provide default value" -> "Content-ID from URL"
Wenn die Ausgangs-Location in einem Node ist, musst Du unter "Filter criteria" folgendes Feld aktivieren
Distance / Proximity
Nodes Lat/Lon from views nid argument
Node ID argument to use : Global:NULL
Location to use: dein Location-CCK-Field oder "Node Location"
Ich hatte vorher bereits
am 29.01.2014 - 13:20 Uhr
Ich hatte vorher bereits diese Anleitung befolgt, bekam aber nachdem ich unter "Contextual filters" - "Node ID argument to use : Global:NULL" aktiviert habe ein paar obskure Fehlermeldungen..
Diese zB.:
Notice: Undefined index: body in ctools_custom_content_type_render() (line 180 of /..... sites/all/modules/ctools/plugins/content_types/custom/custom.inc).
Felder wurden gar keine angezeigt.

Wenn ich unter more gehe und "Fail basic validation if any argument is given" aktiviere funktioniert die Anzeige wieder.
Keine Ahnung was da falsch läuft..
Die restlichen Einstellungen habe ich so durchgeführt wie du es oben beschrieben hast.
Die Distance Werte wurden jedoch weiterhin nicht oder fehlerhaft angezeigt.
Mein Fehler war wohl auch, dass ich keine Lat/Lon Daten unter den "User - Location" Daten ausgefühlt hatte.
Ich dachte zuerst die PLZ ist ausreichend damit die Entfernung berechnet werden kann.. (?)
Brauche ich die Lat/Lon Daten unbedingt in der Node/ - und User - Location oder würden auch die restlichen Locationfelder genügen ?
Der km Wert einer Location scheint bereits zu stimmen..
Die restlichen sind aber noch immer falsch..
Vermute mal meine derzeitigen Einstellungen für das "Location: Distance / Proximity (Distance / Proximity)" Feld unter "Fields" wird auch noch nicht stimmen (?)
..werde noch etwas herumtesten..
Nochmal zum Verständnis! Der
am 29.01.2014 - 13:18 Uhr
Nochmal zum Verständnis! Der View soll wo angezeigt werden? Auf einem Node oder im User-Profil?
Es soll ein (Table) - View -
am 29.01.2014 - 13:28 Uhr
Es soll ein (Table) - View - mit den 100 naheliegensten Locations angezeigt werden.
Dieser View wäre der wichtige.
Also zB.: eine eigene Page mit dem Pfad /locations-umgebung..
.. wenn geht ohne Taxonomie zu verwenden..
Nicht ganz so wichtig die Entfernung auch unter zb.: node/1 anzeigen lassen..
Im Userprofil brauche ich keine distance Werte.
Dann musst Du also die
am 29.01.2014 - 13:43 Uhr
Dann musst Du also die User-ID (des Betrachters) laden und die User-Location (des Betrachters) als Ausgangspunkt verwenden damit die Shop-Nodes (in der Nähe) auf dem Pfad /locations-umgebung angezeigt werden.
Ich nutze nur Node-Location und kann daher mit User-Location nicht testen aber du musst dann entweder über Contextual filters -> Global: NULL und "PHP Code" oder über "Filter criteria" -> Distance / Proximity -> Use PHP Code to determin lat/lon und "user_load" zuerst die lat/lons aus dem User-Object laden und returnen .... das wäre dann der Ausgangspunkt.
Bitte mal testen ....
du mußt zum einen alle daten
am 29.01.2014 - 14:03 Uhr
du mußt zum einen alle daten der zips in die tabelle laden. dann ein view mit proximity filter; dort userlocation ("Länge / Breite für Benutzer (leer, wenn nicht gesetzt)") als grundlage nehmen; sortierung nach entfernung. das sollte doch gehen, oder?!
Mein Content View scheint nun
am 30.01.2014 - 23:08 Uhr
Mein Content View scheint nun auch ohne Filter zu funktionieren.
Die Entfernung (Luftlinie in km) zwischen der jeweiligen User-Location und den Node Locations wird jetzt richtig angezeigt, was ich ausgiebig getestet habe.
Die Sortierung "näheste zuerst" funktioniert auch.
Der Knackpunkt ist wohl, dass man in der Nodelocation die Latitude/Longitude - Daten eingeben muß., wogegen es beim User ausreicht wenn der nur seine PLZ eingibt.
Also etwas seltsam da dieses Modul für User und Nodelocation verschiedene Spielregeln hat. Aber es kann auch sein, dass ich in den Location - Grundeinstellungen etwas übersehen habe. (?)
Ob die Einstellungen auch noch funktionieren, wenn ich die CCK - Location Feldern arbeite habe ich noch nicht versucht.
Meine Einstellungen:
Content View:

Proximity Feld unter Fields:

einzelene Location Node Daten:

Location Grundeinstellungen:

User - Location Felder des jeweiligen Benutzers:

Die Latitude/Longitude in den Nodes habe ich vorerst noch händisch eingegeben :).
Weiß jemand wie ich diese am besten automatisch holen kann. Die zig Module zum Thema Location überfordern einen auf den ersten Blick..
du mußt zum einen alle daten der zips in die tabelle laden. dann ein view mit proximity filter; dort userlocation ("Länge / Breite für Benutzer (leer, wenn nicht gesetzt)") als grundlage nehmen; sortierung nach entfernung. das sollte doch gehen, oder?!
Welche Daten meinst du genau?
Danke für eure Hilfe! Bin Werde für meine weiteren gewünschten Location Funktionen einen neuen Thread starten.
[gelöst]