Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Views ›

Umkreissuche um eine Node

Eingetragen von studidani (15)
am 25.07.2011 - 09:54 Uhr in
  • Views
  • Drupal 6.x oder neuer

Hallo,

nach langer und erfolgloser Suche habe ich mich entschlossen hier zu posten.

Ich habe eine Node: Veranstaltung, dieser Node ist genau eine Node (Veranstaltungsort) zugewiesen. Die Node Veranstaltungsort hat eine Location, Geocodiert, PLZ etc.

Nun möchte ich, dass wenn ich eine Node Veranstaltung geöffnet habe, alle Veranstaltungen, welche im Umkreis von 100 km um die Node sind, angezeigt werden.

Ich habe eine View erstellt, welche mir alle Veranstaltungen inkl. GEO-Daten anzeigt, auch wird mir eine Entfernung zur aktuellen Node angezeigt, diese Entfernung kann aber nicht sein. Denn die Entfernung ist immer größer als 5000 km! Und die Orte befinden sich (fast) alle in Deutschland.

Ich hoffe, dass einer einen Tipp für mich hat.

Gruß Daniel

AnhangGröße
bild1.PNG45.89 KB
bild2.PNG21.34 KB
‹ (gelöst) Nur die Nodes des "Erzeugers" anzeigen View mit Editier/Moderationsmöglichkeit ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Du musst einen Filter

Eingetragen von Ionit (1802)
am 25.07.2011 - 10:42 Uhr

Du musst einen Filter einrichten "Ort: Entfernung / Umgebung" - dort wird der Ausgangspunkt angegeben und die Entfernung.

Weiterhin, wenn man Nodes für die Umkreissuche verwendet, muss man als Argument "Global:NULL" verwenden und dort die NID zurückgeben.

Weiterhin verwendest Du als View eine "Page/Seite" - wenn Du diese (über einen Link) aufrufst - wo soll denn der View die NID (Beitrags-ID) herhaben? Der View selbst hat ja überhaupt keine NID und kann somit auch keine korrekte Umkreissuche ausführen da es keinen Ausgangspunkt gibt. Oder gibst Du unter Argumente die NID/Beitrags-ID über "PHP-Code" oder als festen Eintrag zurück? Oder verwendest Du "view_embed_view" zum Einbinden des Views auf einen Node?

Arbeite am besten einige Tutorials zur Umkreissuche durch. Über die Suche findest Du hier im Forum einige.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke für die Antwort

Eingetragen von studidani (15)
am 25.07.2011 - 10:53 Uhr

Filter: Das weiß ich, habe ich im Moment nicht aktiviert, da ich sonst keine Ergebnisse bekomme oder die Entfernung auf 6000 km einstellen muss.

Die NID habe ich im Moment so eingestellt, dass sie über dir URL ausgelesen werden soll (später wird in PHP Code geändert.)

Eigebunden werden soll das ganze später als Block, in der rechten Seitenleiste.

  • Anmelden oder Registrieren um Kommentare zu schreiben

studidani schriebDie NID

Eingetragen von Ionit (1802)
am 25.07.2011 - 11:12 Uhr
studidani schrieb

Die NID habe ich im Moment so eingestellt, dass sie über dir URL ausgelesen werden soll (später wird in PHP Code geändert.)
Eigebunden werden soll das ganze später als Block, in der rechten Seitenleiste.

Jo - aber da Du den View (zum Testen) scheinbar über den eigenen View-Pfad aufrufst, gibt es in der URL keine NID zum auslesen. Es gibt also keinen Ausgangspunkt. Den gibt es erst wenn Du den View in einem Node aufrufst und die korrekten Einstellungen für die Argumente vorgenommen hast oder Du legst (zum Testen) einen "festen Eintrag" an.

Unter "Argumente -> Standardargument zu Verfügung stellen -> Fester Eintrag" kannst Du eine NID angeben um den View zu testen ohne ihn im Node einbinden zu müssen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Habe schon eine feste NID vergeben.

Eingetragen von studidani (15)
am 25.07.2011 - 11:25 Uhr

siehe Anlage.
Oder habe ich da noch ein Schreibfehler drin?

Vielen Dank für die schnellen Antworten.

Gruß Daniel

AnhangGröße
einstellungen1.PNG 206.82 KB
  • Anmelden oder Registrieren um Kommentare zu schreiben

Sieht korrekt aus (den

Eingetragen von Ionit (1802)
am 25.07.2011 - 11:31 Uhr

Sieht korrekt aus (den Validator würde ich, fürs Testen, aber mal weglassen)!

Funktioniert es denn damit?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Habe beides schon (mit und

Eingetragen von studidani (15)
am 25.07.2011 - 11:35 Uhr

Habe beides schon (mit und ohne Validator) getestet, geht beides nicht.
Als Argument habe ich Global:NULL gewählt.

Gruß Daniel

  • Anmelden oder Registrieren um Kommentare zu schreiben

Sorry - aber aus der

Eingetragen von Ionit (1802)
am 25.07.2011 - 11:53 Uhr

Sorry - aber aus der Entfernung kann ich nichts weiter dazu sagen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

So, ich habe noch etwas

Eingetragen von studidani (15)
am 25.07.2011 - 15:07 Uhr

So, ich habe noch etwas weiter gesucht.

Ich kann bei Distance/Proximity unter Location to use nur Node location auswählen. Das wäre aber die Location, welche ich direkt in der Node eingebe. Die Coordinaten für die Location befinden sich ja in der Node Veranstaltungsort, dies kann ich aber nicht auswählen.
Gibt es hier die Möglichkeit, dass man stattt Node location die Verlinkung zur Location aufrufen kann?

Gruß Daniel

AnhangGröße
bild3.PNG 25.29 KB
  • Anmelden oder Registrieren um Kommentare zu schreiben

Nochmal zum Verständnis.Du

Eingetragen von Ionit (1802)
am 25.07.2011 - 15:27 Uhr

Nochmal zum Verständnis.

Du hast "Inhaltstyp: Veranstaltung" UND "Inhatstyp: Veranstaltungsort" - Richtig?

Nun möchtest Du einen View-Block auf einem Node vom "Inhaltstyp: Veranstaltung" anzeigen lassen?

In diesem Block sollen Nodes vom "Inhatstyp: Veranstaltungsort" angezeigt werden und zwar im "Umkreis" relativ zum Node "Inhaltstyp: Veranstaltung"?

Korrekt?

Falls ja - benötigst Du keine "Relationship" bzw. Beziehung denn der VIew zeigt "ganz normal" Nodes vom Typ "Veranstaltungsort" an (das stellst Du über "Filter" ein). Die Umkreissuche wird also auch ohne Relationship ausgeführt denn der Ursprungsort wird über die NID (vom Typ "Veranstaltung") festgelegt. Dass die NID vom Typ "Veranstaltung" kommt, ist unerheblich.

Die Relationship/Beziehung musst Du also komplett löschen denn Du darfst sie nicht auf die Felder anwenden (weil es nicht notwendig ist). Daher kommt höchstwahrscheinlich auch die falsche Entfernungsangabe.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Zitat: Du hast "Inhaltstyp:

Eingetragen von studidani (15)
am 25.07.2011 - 17:56 Uhr
Zitat:

Du hast "Inhaltstyp: Veranstaltung" UND "Inhatstyp: Veranstaltungsort" - Richtig?

--> RICHTIG

Und von Veranstatlung wird auf genau ein Veranstaltungsort referenziert.

Und ich möchte einen View-Block um eine Veranstaltung machen, es sollen alle Veranstaltungen, welche sich um den Veranstaltungsort befinden, angezeigt werden.

Lösche ich alle Beziehungen, geht überhautp nichts mehr.
Wenn ich die Geokoordinaten eines Veranstaltungsort angebe (als Static latitude/longitude), wird alles alles korrekt angezeigt. Gebe ich dort aber nun 0 ein, so bekomme ich das gleiche Ergebnis wie mit den langen km Angaben (mehr als 5000 km etc.)

Das heißt dann für mich, dass er sich einfach nicht die Geokoordinaten von Veranstaltungsort holt. Sondern die Geokoordinaten der Node Veranstaltung (da sind aber keine) Da über ein CCK-Feld auf die Node Veranstaltungsort referenziert wird.
Wie kann ich denn mit Hilfe von PHP code for latitude, longitude: mir die Daten holen? Hast du mir da einen Tipp?

So ähnlich wie das hier:

return array('latitude' => $_SESSION['smart_ip']['location']['latitude'],
'longitude' => $_SESSION['smart_ip']['location']['longitude']);

VIELEN DANK für die bisherigen Tipps und deine Geduld

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ich habe die Lat/lon noch nie

Eingetragen von Ionit (1802)
am 25.07.2011 - 23:17 Uhr

Ich habe die Lat/lon noch nie per PHP-Code übergeben - deswegen habe ich hier auch keinen funktionierenden Code den ich Dir als Beispiel nennen könnte. Ich weiß daher auch nicht wie man das schreiben müsste. Und ich bin mir auch nicht sicher ob Du das überhaupt so machen musst.

Ich muss auch sagen, dass ich Probleme habe Deinen Gedankengängen zu folgen. In Deinem Eingansgposting war für mich z.B. nicht ersichtlich, dass Du Referenzierst. Somit waren meine darauf folgenden Anmerkungen völlig falsch.

Wenn Du bei Dir die Veranstaltungen im Umkreis zum Veranstaltungsort anzeigen lassen willst, dann darf nicht nur der Veranstaltungsort einen Location haben sondern die Veranstaltung muss auch eine haben. Das ist bei Dir, wenn ich das richtig verstehe, nicht der Fall. Somit wirst Du keine funktioniernde Umkreissuche hinbekommen.

Du verwendest bei Dir unter "Beziehungen" ein Feld welches "Node Location:Reference" heißt. Durch selbst suchen habe ich gesehen, dass Du dafür das Modul "Node Location Relationship" verwendest (das hast Du aauch nirgends erwähnt). Du versuchst mit "Node Location Relationship" die Location vom "Ort" zur "Veranstaltung" zu übertragen. Warum Du der Veranstaltung nicht gleich eigene Location-infos verpasst, ist für mich schleierhaft.

Zu "Node Location:Reference" habe ich das gefunden http://drupal.org/node/468474 (das hast Du aber sicher selbst schon durchgearbeitet oder?).

Ich kenne das Modul "Node Location:Reference" leider nicht und bei mir häufen sich auch die Fragezeichen sodass ich gerade verwirrt hoch zehn bin - ich kann Dir daher leider nicht weiterhelfen.

Erstelle doch mal ein Issue auf http://drupal.org/project/issues/nodelocation_relationship?status=All&ca... - vielleicht kann Dir da jemand bei Deinem problem helfen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Die Lösung

Eingetragen von studidani (15)
am 26.07.2011 - 15:28 Uhr

So erst mal Danke für die viele Zeit die du investiert hast.

Habe es nun wie folgt gelöst.

Bei Entfernung (Distance / Proximity) habe ich: User PHP code to determine latiude/longitude gewählt.

Folgendes habe ich dann bei PHP-Code eingegeben:

$node = node_load(arg(1));
$node_id = $node->nid;

Und hier ganz wichtig, und das hat mich aufgehalten, dies Funktioniert NICHT im VIEW-Editor, läuft aber dann, wenn man sich die Node anschaut! Möchte man es testen dann hilft z.B. dass man hier etwas durch testet und mit hlife von DSM ausgibt.

$testvar (arg(1));
drupal_set_message('<pre>'. var_export($testvar , 1) . '</pre>');

Mit Hilfe der NodeID habe ich dann einen SQL-Befehl genommen, der mir die Geokoordinaten aus der DB holt.

Zitat:

Erstelle doch mal ein Issue auf http://drupal.org/project/issues/nodelocation_relationship?status=All&ca... - vielleicht kann Dir da jemand bei Deinem problem helfen.

Da ist schon ein ISSU angelegt ;-)
Aber im Endeffekt habe ich es ohne dieses Modul gelöst.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • Rolle erstellen nicht zu finden
  • Medien und andere Daten mit Feeds von Drupal 7 auf Drupal 10 migrieren
  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
Weiter

Neue Kommentare

  • Rollen
    vor 1 Tag 4 Stunden
  • Inzwischen sind wir bei
    vor 1 Woche 4 Tagen
  • Migrieren von D7 auf D8/ D10/ D11
    vor 1 Woche 5 Tagen
  • melde mich mal wieder, da ich
    vor 9 Wochen 2 Tagen
  • Hey danke
    vor 9 Wochen 3 Tagen
  • Update: jetzt gibt's ein
    vor 9 Wochen 4 Tagen
  • Hallo, im Prinzip habe ich
    vor 10 Wochen 1 Tag
  • Da scheint die Terminologie
    vor 10 Wochen 1 Tag
  • Kannst doch auch alles direkt
    vor 10 Wochen 6 Tagen
  • In der entsprechenden View
    vor 10 Wochen 6 Tagen

Statistik

Beiträge im Forum: 250237
Registrierte User: 20464

Neue User:

  • ocvk2810
  • marouane.blel
  • capilclinic

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 23 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association