[XT] Membermap

XF2.x [XT] Membermap 1.0.4.1

Keine Rechte zum Download
Beim aktuellen Testen kann ich noch nicht ganz mitmischen, ich bereite gerade erst mein live xf1.5 in einer xampp-Installation auf, bevor ich dann heute/morgen testweise auf 2.2 migriere und dann als erstes auch die Map teste.
Beim Aufbereiten ging mir auch die Migration der Daten aus CrispinPs Map durch den Kopf.

Wenn ich das richtig sehe, sind die Userdaten für seine Map ausschließlich in einem Custom Field "map_location" gespeichert, der im BLOB in der Datenbank z.B. "12345, Berlin, Deutschland" enthält (ggf. auch genauere Adresse mit Straßen o.ä.).

Dazu bitte zwei Fragen:
  • Wie ziehe ich aus dem BLOB nur dieses Userfeld mit der user_id z.B. per SQL (wenn xf1.5 keine Export-Möglichkeit hat) heraus, um es dann in das Location-Feld dieser großartigen neuen [XT] Membermap zu importieren?
    Dieses Statement liefert mir alle custom_fields in einer Art Array, das nutzt mir nicht viel.

    SELECT user_id, CONVERT( custom_fields USING utf8 ) AS 'map_location' FROM xf_user_profile

  • Klappt das überhaupt, solche Adressen in Euer Feld zu importieren oder muss man die Daten noch aufbereiten / irgendwie "umwandeln"?

Bei etwa 3.000 gepflegten map_locations möchte ich die bei Migration natürlich nicht verlieren.

Danke für jeden Hinweis!
 
Du erinnerst an Dein Posting mit den DAUs..? Noch Fragen?
... du kannst nicht alle retten. :D ;)

Um dem User die weitgehende Selbstbestimmung zu überlassen wo seine Adressdaten angezeigt werden, wäre es m.E. sinnvoll gewesen das als userseitige Einstellung in das Addon einzubauen. Im Nachhinein wäre das natürlich extrem frickelig zu bewerkstelligen, daran hätte man also schon beim Projektieren denken sollen.
Mal langsam... ausgehend vom Default Zustand, ist das Location Feld verfügbar und kann freiwillig ausgefüllt werden mit genau den Angaben die der Nutzer machen möchte.
Bis dahin, wird noch gar nichts in der Map angezeigt.
In der Map landen die Standortdaten erst, wenn der Benutzer AKTIV zugestimmt hat (Opt-In). Von dem Punkt aus, ist schon mal kein Fehler oder gar Datenschutz relevantes Problem erkennbar.

Du hast nun jedoch abseits des Default-Zustandes das Location Feld ausgeblendet, sagst du. Wie genau kann ich mir das vorstellen? Wird das dann generell nicht mit angezeigt? Und wenn es denn nicht mit angezeigt wird, weshalb dann das Drama? So ganz kann ich dir bisher ehrlich gesagt nicht folgen.

Nochmal:
  • Eingabe des Ortes, egal welcher Genauigkeit, ist freiwillig es sei denn der Admin stellt das um
  • Setzen des Häkchens um in der Mitgliederkarte zu erscheinen, ist freiwillig, es sei denn der Admin lässt die Wartungsaufgabe durchlaufen
Das ist für mich quasi doppeltes Opt-In, es sei denn der Admin stellt es anders ein. Wenn er das tut, warum sollte ich dann zuerst eine exakte Adresse abfragen, dann das Adressfeld verbergen und gleichzeitig den Standort über die Karte preisgeben? Spätestens wenn ich rein zoome habe ich den doch dann, egal ob es als Text nun in der Info-Karte steht oder nicht.

Ich würde die Ansicht der Karte für Gäste eh ausschalten. Ich hatte das mal in einem meiner Foren so gelöst, dass ich Gästen einen Screenshot der Map zeigte mit Hinweis auf Nutzbarkeit erst nach Registrierung und somit Gästen zwar zeigte das da ne Karte ist, diese aber erst nach deren Registrierung nutzbar machte. Und wenn einem das immer noch zu offen und zu viel und zu schnell ist...

Dann kann man ja auch noch selbst etwas aktiv werden und dies oder das übers TMS anpassen.


Daher - ich seh bisher noch nicht mal wo das Problem sein soll. Zumal, wie Hoffi schon anmerkte, wenn sich einer in die Map einträgt, und dann jammern will, dass er darin ist... dann: DAU und Sache des Admin diese Dinge seinen Nutzern zu erklären bis die es in der Mehrzahl verstanden haben. Meine Meinung, muss ja nicht die aller anderen sein.


Ehrlich gesagt, das ist fast so ein Quatsch wie mit den Cookie Meldungen. JEDER Depp hätte schon vor der Hinweis-Flut sich vor Cookies schützen können, wenn er gewollt hätte. Aber nein, wir brauchen ein staatlich verordnetes PopUp um theoretisch auch den dümmsten noch zu belehren. Im Endergnis, das wissen wir doch alle, liest sich kein Mensch den Cookie Mist durch. Jeder sucht doch nur nach dem "Mach weg Button". ;)
 
Bei etwa 3.000 gepflegten map_locations möchte ich die bei Migration natürlich nicht verlieren.
Genau das ist einer der Gründe, warum ich zusätzliche location Felder nicht mehr mag. Theoretisch toll, praktisch kanns einem aber dolle auf die Nüsse gehen wenn das Addon baden gegangen ist.

@Triops
Kannst du mir mal nen Datensatz (einen) mit zugehörigem Crispin Location Eintrag zukommen lassen, das kann man sicher hinbekommen, ich hab nur aktuell keine Crispin Daten mehr da, meine aber das Ganze auch schon mal gemacht zu haben, vor längerem.
 
@Triops könntest du bitte hierzu einmal einen neuen Issue (McAtze/-XT-Membermap) erstellen? Dann kann ich mir das mal in Ruhe ansehen. Ich denke da gibt es eine unkomplizierte Lösung.
 
Sehr gut gemacht @otto tatsächlich ein Fehler gefunden.. :D

Gehe mal bitte in das Template xt_mm_autocomplete und tausche das folgende aus:

Alt: key={$xf.options.xtMMGoogleMapsApiKey}

Neu: key={$xf.options.xtMMGoogleMapsJsApiKey}
Zu irgendwas muss n alter Mann ja noch nütze sein... :D

Änderung gemacht, Ergebnis:
upload_2021-4-25_17-50-49.png
upload_2021-4-25_17-55-36.png
Ja, gleich 2x - Konsole war zuvor geleert.

und im ACP:
upload_2021-4-25_17-52-42.png
upload_2021-4-25_17-53-24.png

Template nach Bearbeitung:
upload_2021-4-25_17-51-29.png


Und bei den Protokollen:
upload_2021-4-25_17-58-21.png
Keine Server Fehler-Logs...

Nur mal so - kann das denn funktionieren, wenn die Places API gar nicht im Google Maps JavaScript Key enthalten ist? Dort ist doch nur die Maps JavaScript API drin, dachte ich?
 
Ich muss das mal nachstellen und schauen was hier falsch läuft.. :eek:
 
Hier mische ich auch kurz mit, möchte dabei aber betonen, dass ich lösungsorientiert suche, keinen Stress machen will und einfach dankbar bin, dass es diese Mitgliederkarte nun gibt!

Trotzdem kann ich der obigen Argumentation für ein bestehendes Forum nicht ganz folgen. Vielleicht bin ich aber auch blind :)

Fakten in meinem Forum:
  • 30.000 registrierte Mitglieder. Das native location Feld war nicht Pflicht, jedenfalls nicht immer, "location autocomplete" war nicht für das Feld eingebaut - es gibt also etwa 25.000 locations, teils sehr grob "Deutschland", teils unsinnig "auf der Alm", teils Bundesländer z.B. "NRW" oder "Meckpomm", teils detailliert. Aber dieses Feld wurde nie verwendet, eine Map zu füllen, die User haben also nicht zugestimmt
  • 3.000 registrierte Mitglieder haben sich ab dem Jahr der Map-Existenz (noch im vB) aktiv in eine Karte eingetragen, d.h. impliziert der Darstellung auf der Map zugestimmt. Die allermeisten dieser Adressen sind valide, da das zusätzliche map_location Feld über "location autocomplete" befüllt wurde.

Jetzt habe ich ein Migrierungsproblem :)
  1. Entweder ich werfe die 25.000 location-Felder weg (lösche sie) und migriere nur die 3.000 map_locations dorthin: dann habe ich kein Datenschutz-Problem, nur valide Adressen - aber irgendwas zwischen 22.000 und 25.000 mehr oder weniger informative location-Angaben verloren. Das wäre tatsächlich sehr bedauerlich.
  2. Oder ich migriere/addiere die 3.000 IN die 25.000 Felder und überschreibe die location mit der map-Location. Dann habe ich einen Mix aus ~ 25.000 validen und den anderen Adressen - aber schlimmstenfalls haben 22.000-25.000 User NICHT zugestimmt, auf einer Map zu erscheinen, tuen es aber nun trotzdem. Das halte ich für real echt kritisch.
  3. Oder ich bereinige, wie auch immer, die früheren location-Field-Adressen, irgendwie. D.h. ich müsste wenigstens die Länder herausbekommen oder aus Bundesländern ermitteln, den Rest wegschmeißen (teilweise genaue Adressen - aber nicht für Karte bestimmt, teilweise Schrott) und migriere dann wie in 2. Nur Länder halte ich nicht für kritisch, der Schrott würde verschwinden, sehr viele "gute Adressen" auch, aber ich habe kein Zustimmungsproblem.
  4. Oder es gibt doch weiterhin zwei Felder, das native location und ein map_location. Verwirrt ggf. die User, war bisher aber nicht wirklich problematisch... Aber ob es die sinnvollste Lösung ist, weiß ich auch nicht.

Ich bin unentschlossen. Am liebsten wäre mir vermutlich 3. - aber ich habe keine Lust, 25.000 Adressen manuell zu sichten und bereinigen :D

Ideen?
 
Ich muss das mal nachstellen und schauen was hier falsch läuft.. :eek:
Ich kanns dir grob sagen:

Es funktioniert mit deinem Templatevorschlag, wenn ich den 2. Schlüssel (Google Maps JavaScript API Key) nicht nur mit der Maps JavaScript API ausstatte, sondern zusätzlich mit der Maps Places API.
Letztere war ja eigentlich (dachte ich) bisher beim 1. Schlüssel - dem mit den 3 anderen APIs verortet.

Aber so gehts nun (also mit deinem Template Hack zusammen):

Schlüssel 1:
upload_2021-4-25_18-12-45.png

Schlüssel 2: (geschützter Schlüssel)
upload_2021-4-25_18-13-36.png

Damit funktioniert es, und wenn es so funktionieren solle, dann müsste ich nur die Phrasen anpassen. :D ;)

upload_2021-4-25_18-17-20.png
 
@Triops ich würde eher zu Punkt 1 tendieren. Du sagst es wurden bisher für die Karte aktiv nur das Zusatzfeld genutzt, hierfür hast du auch die Zustimmung. In dem original Feld steht mitunter sehr viel Mist. Aus meiner Sicht macht es eher Sinn das XF Locationfield einmal zu leeren und dann das map_location zu importieren.

@otto Genau das konnte ich nun auch nachstellen. Werde hier auch mal nacharbeiten. :ok:
 
Oder ich migriere/addiere die 3.000 IN die 25.000 Felder und überschreibe die location mit der map-Location. Dann habe ich einen Mix aus ~ 25.000 validen und den anderen Adressen - aber schlimmstenfalls haben 22.000-25.000 User NICHT zugestimmt, auf einer Map zu erscheinen, tuen es aber nun trotzdem. Das halte ich für real echt kritisch.
Das kann nicht passieren, solange du nicht aktiv das Feld xt_mm_show_in_map auf 1 setzt.
Solange der Haken nicht gesetzt ist, kann in Location auch "Der Mond" stehen, völlig egal.
Du musst vom bestehenden Forum die Zustimmung in das show_in_map Feld importieren, und die Location ins Location Feld, rest unberührt lassen. Ist ja wurscht was da drin steht.

Dann musst du einmal die Locations neu erstellen lassen, damit lat und long erstellt werden. Noch besser wäre es, wenn Lat/Long in den Daten vorliegen, dann kannst du die auch importieren.
 
@Triops ich würde eher zu Punkt 1 tendieren. Du sagst es wurden bisher für die Karte aktiv nur das Zusatzfeld genutzt, hierfür hast du auch die Zustimmung. In dem original Feld steht mitunter sehr viel Mist. Aus meiner Sicht macht es eher Sinn das XF Locationfield einmal zu leeren und dann das map_location zu importieren.

10 Minuten frische Luft brachten mich gleich auf die Lösung!
Ich verschiebe die Inhalte des nativen "location" Felds in ein neues Custom Feld "location_hist" für historisch/Archiv. Damit sind die Angaben nicht verloren, aber auch nicht in der Karte.
Die Werte aus der CrispinP-Map "map_location" importiere ich (nachdem ich die Daten sauber aus dem BLOB bekommen habe) in das native "location" und schwupps, ist die neue [XT] Membermap gefüllt.

Das Optimum aus beidem.

Eine Frage nebenbei: kann man eine Liste (txt, csv, sql, irgendwas) irgendwie durch Google Maps schicken, sodass Google versucht, die Angaben der Zeilen in reale locations umzusetzen?
Ich meine, beim Import der vossimap aus vB wurde das gemacht, um die vossi-Orte in saubere locations zu wandeln.
Dann könnte ich die Inhalte des bisherigen "location" Felds säubern. Schrott weglöschen, mindestens Länder erkennen (z.B. aus "MeckPomm" oder "NRW"), ab und zu sogar Orte ("Neuwied" in > "Neuwied, Deutschland").

Das kann nicht passieren, solange du nicht aktiv das Feld xt_mm_show_in_map auf 1 setzt.
...
Du musst vom bestehenden Forum die Zustimmung in das show_in_map Feld importieren ...

Ah, mit fehlen (noch) Infos: jeder User kann für sich entscheiden, ob er mit einem gefüllten location Feld in der Map erscheinen will?
Das wäre ja großartig!

Edit:
Membermap basierend auf dem XF Locationfield mit OptIn für den Benutzer

Bingo, oder? Klasse!

Dann musst du einmal die Locations neu erstellen lassen, damit lat und long erstellt werden. Noch besser wäre es, wenn Lat/Long in den Daten vorliegen, dann kannst du die auch importieren.

Es gibt zwar "locationla" und "locationln" in den Custom Fields, die sind aber meistens leer. Die kommen vermutlich irgendwie aus dem vossi-Import oder der mopedmap von @localhost, die ich auch mal probiert hatte. Sie scheinen dagegen nicht von Crispin befüllt worden zu sein, lat/long liegen also nicht vor.
 
Ah, mit fehlen (noch) Infos: jeder User kann für sich entscheiden, ob er mit einem gefüllten location Feld in der Map erscheinen will?
Ja, natürlich. Das Addon fügt eine Checkbox hinzu, ob der User auf der Map erscheinen soll. (Siehe Bilder in Übersichts-Tab) Deswegen machen wir das ja, da alle anderen Maps kein OptIn haben. ;)
 
Ich meine in der map_location stehen die Lat/Long drin. Schau mal bitte in die xf_user_profile unter custom_fields. Das müßte auch ein Blob sein und da steht als s:12 map_location und als s:31 die location.

Bildschirmfoto 2021-04-25 um 19.33.35.png
 
Ja, natürlich. Das Addon fügt eine Checkbox hinzu, ob der User auf der Map erscheinen soll. (Siehe Bilder in Übersichts-Tab) Deswegen machen wir das ja, da alle anderen Maps kein OptIn haben. ;)

jup ....:

Edit:
Membermap basierend auf dem XF Locationfield mit OptIn für den Benutzer
Bingo, oder? Klasse!

20 Sekunden später entdeckt. Wer lesen kann ... :D Ihr seid super, ehrlich!

Ich meine in der map_location stehen die Lat/Long drin. Schau mal bitte in die xf_user_profile unter custom_fields. Das müßte auch ein Blob sein und da steht als s:12 map_location und als s:31 die location.

jo:

Es gibt zwar "locationla" und "locationln" in den Custom Fields, die sind aber meistens leer. Die kommen vermutlich irgendwie aus dem vossi-Import oder der mopedmap von @localhost, die ich auch mal probiert hatte. Sie scheinen dagegen nicht von Crispin befüllt worden zu sein, lat/long liegen also nicht vor.

Das erscheint wirklich so. Ein (halbwegs) neuer Datensatz:

Code:
(32109, 'a:13:{s:7:\"wuensche\";s:5:\"keine\";s:8:\"facebook\";s:0:\"\";s:24:\"fgx_block_discussion_prv\";a:0:{}s:3:\"icq\";s:0:\"\";s:4:\"land\";s:0:\"\";s:16:\"lieblingsschoki\";s:6:\"lindor\";s:10:\"locationla\";s:0:\"\";s:10:\"locationln\";s:0:\"\";s:12:\"map_location\";s:24:\"12345, Ort, Deutschland\";s:11:\"einstufung\";s:8:\"suechtig\";s:5:\"skype\";s:0:\"\";s:7:\"twitter\";s:0:\"\";s:19:\"vollstaendiger_name\";s:17:\"Peter Mustermann\";}'),

@otto
Reicht das schon oder brauchst Du mehr Spalten aus der user_profiles Tabelle?
 
Zuletzt bearbeitet:
s:31 ist kein Index, sondern bedeutet: Es folgt ein String mit 31 Zeichen. Es ist somit schlicht das zweite Feld im dem Array.
a:7 bedeutet analog: Array mit 7 Elementen.
Cool, jetzt habe ich das auch mal verstanden.. :smug:
 
Das fällt in den Aufgabenbereich des Administrators des jeweiligen Forums. Dieses Feld hat absolut nichts mit dem AddOn zu tun, abgesehen davon das es deren Daten nutzt. Von daher ist der Einwand schlicht und ergreifend Blödsinn. Ich persönlich empfinde deine Darstellung dazu als Frechheit. :mad:

Geh mal um den Block, Atze.

Wenn die Mitgliederkarte nur für bestimmte Benutzergruppen (z.B. Paid Membership oder manuell geprüfte Mitglieder) sichtbar sein soll, die Mitgliederprofile selbst jedoch für alle anderen, dann ist das nicht unbedingt die Standardkonfiguration der meisten Foren, aber ja, Hoffi, dann macht es einen Unterschied. Natürlich kann man die Ausgabe des Standorts auf der Member card und in den anderen Templates selbst nachträglich mit einem Custom user field und einem entsprechenden Conditional steuern - es wäre am End lediglich bequemer gewesen, wenn das im Addon schon enthalten gewesen wäre. Ihr habt das Addon anders geplant und geschrieben und das ist doch völlig in Ordnung. Ihr werdet euren Grund gehabt haben - und sei es der, so eine Konstellation einfach nicht auf dem Schirm gehabt und deshalb unbeachtet gelassen zu haben. Wenn ihr so eine Funktion also hättet haben wollen, hättet ihr das Addon ergo im Anfangsstadium entsprechend ausgerichtet. So etwas im Nachgang einzubauen wäre, was Zeit und Aufwand anginge, IMO einfach völlig unverhältnismäßig und kann keiner erwarten. Da das aber anscheinend irgendeine Eitelkeit verletzt und für euch eine Frechheit und Blödsinn, frage ich mich momentan, was und wie viel ihr gesoffen habt.. Ich hab überhaupt keinen Grund, euch für das Addon zu kritisieren. Im Gegenteil.

Seis drum..
 
Ich versteh es immer noch nicht... sorry.

Gäste = sehen nix
Gruppe Basis = sieht die Profile, aber nicht die Karte
Gruppe Paid = sieht die Profile und die Karte

Kann gut sein das ich mich gerade etwas anstelle, aber das ginge doch zu machen... So wie es aktuell ist, oder nicht?
 
Zurück
Oben