[XT] Membermap

XF2.2 [XT] Membermap 1.0.2

Keine Rechte zum Download
@Hoffi und @McAtze
Was ist eure Meinung zu diesem Thema: [XT] Membermap
Ich hab das mal in den Issue Tracker gepackt, weil ich denke, da könnte/sollte/müsste man wohl bei - oder?

Zumindest ist der Key im Klartext im Quellcode zu sehen, kann man ihn nicht einschränken... könnte es ohne Budgetbremse teuer werden und selbst mit, zumindest nervig. Oder kann man den Google API Key bedenkenlos auf die Domain als Referrer Beschränken?

@all
Will nicht mal wer ne kurze knackige Anleitung schreiben wie man das Thema APIs sauber löst? :D

Ansonsten find ich so manche Reaktion drüben auf Xenforo.com (vor allem der Typ mit dem Profilbanner Addon) ziemlich daneben und wünsche euch beste Nerven, durch sowas nicht hinzuwerfen. Ich weiß nicht ob ich die Nerven hätte, zumal weils kostenlos ist was da einige schon wieder gar nicht mehr auf dem Radar haben...

@McAtze
Hier schimmelt schon die Kohle vor sich hin... gern per PN ne PayPal Adresse, dann hört das Elend auf. ;) Zum vorbei kommen, biste halt bisl weit weg. :D ;)
 
Ja, der Mouth und so ein paar andere sind schon kräftige "Penetratoren". Ich beruflich bedingt kann ich super ignorieren ohne die Ignorierfunktion zu nutzen.

Aber wie @Hoffi schon schrieb, ist es gar nicht mal so abwägig gerade den Public API Key getrennt zu setzen.
 
Oder kann man den Google API Key bedenkenlos auf die Domain als Referrer Beschränken?
[...]
... wie man an das Thema APIs sauber
das mit dem begrenzen auf die Domain ... hat wohl bei mir die anfänglichen Probleme verursacht. Erst als ich die Domainbegrenzung raus genommen habe, lief alles wie es soll.
Ob ich das nun falsch konfiguriert hatte (wovon ich ausgehe), oder es generell nichtenglischen ist, weiß ich nicht.

Eine kleine Anleitung, was wo einzustellen ist, das wäre auf jeden Fall sehr hilfreich!
Gerade für jemanden, der das nicht täglich macht, oder gar zum ersten Mal (so wie ich) , wären da paar „Einstiegshilfen“ echt genial.

Gruß Chris
 
Eine kleine Anleitung, was wo einzustellen ist, das wäre auf jeden Fall sehr hilfreich!
Gerade für jemanden, der das nicht täglich macht, oder gar zum ersten Mal (so wie ich) , wären da paar „Einstiegshilfen“ echt genial.
Da werde ich wohl mal abschließend ein kleines FAQ zu schreiben.
 
Das XT-Membermap Log. ;)
Es ist im Bereich der Erweiterten Einstellungen und im Debug Modus verfügbar. Wie haben das so eingeschränkt, um die Last im Live Betrieb nicht zu beeinträchtigen.
Unter dem Menupunkt Logs ist dann ein Eintrag zu sehen.
wenn ich mich als User in der Karte eintrage, habe ich zwei Logfiles im ACP.

Lasse ich die Wartungsfunktion zum rebuild der Lat/Long -> habe ich keinen Eintrag im Log!
 
Lasse ich die Wartungsfunktion zum rebuild der Lat/Long -> habe ich keinen Eintrag im Log!
Dann läuft wahrscheinlich auch kein Rebuild durch. Kannst du einfach mal das AddOn hier nochmals runter laden und bei dir hochladen? Bitte dabei auch den Haken setzen das du die Dateien überschreiben willst.

Bildschirmfoto 2021-04-19 um 16.41.28.png
 
Ich hatte die Map gestern schon mal deinstalliert, und neu installiert (allerdings mit der Datei vom Rechner aus).
Jetzt gerade eben habe ich die Datei von hier nochmals geladen, und erneut installiert (mit gesetztem Häkchen).
Dnach das Rebuild laufen lassen ->
mm-rebuild.png

aber an den Eintragungen ändert sich nichts.
Auch im Logfile hat sich nichts getan
 
Kannst du mal in die Datenbank gucken in der Tabell xf_user_profile was da in den Spalten xt_mm_** steht?
Und bitte auch einmal in die Datei /src/addons/XT/Membermap/Job/UserMapData.php kopieren was da drin steht. Hier stimmt doch was nicht.. :smoke:
 
An den Tabellen in der DB hat sich nichts verändert.
Es gibt aktuell zwei Einträge, welche bei Lat/Long einen Wert ungleich 0.0000000 haben.
Ic hab die Tabelle auch extra mal nach xt_mm_lat... sortiert, so dass alle gesetzten Einträge oben stehen.
Diese beiden Einträge sind manuell von mir gespeichert worden:
mm-db.png

Inhalt der UserMapData.php:
PHP:
<?php

namespace XT\Membermap\Job;

use XF\Job\AbstractRebuildJob;

class UserMapData extends AbstractRebuildJob
{
    protected function getNextIds($start, $batch)
    {
        $db = $this->app->db();

        return $db->fetchAllColumn($db->limit(
            "
                SELECT user_id
                FROM xf_user_profile
                WHERE user_id > ?
                    AND xt_mm_show_on_map = 1
                ORDER BY user_id
            ", $batch
        ), $start);
    }

    protected function rebuildById($id)
    {
        /** @var \XF\Repository\UserProfile $userProfileRepo */
        $userProfileRepo = $this->app->repository('XF:UserProfile');
        $userLocation = $userProfileRepo->fetchUserLocationById($id)->fetchOne();

        //\XF::dump($userLocation);

        if(!empty($userLocation))
        {
            /**
             * @var \XT\Membermap\Service\GoogleApi $googleService
             */
            $googleService = \XF::app()->service('XT\Membermap::GoogleApi');
            $locationData = $googleService->fetchLocationData($userLocation);

            if (!empty($locationData)
                && array_key_exists('latitude', $locationData)
                && array_key_exists('longitude', $locationData)
            )
            {
                $xt_mm_location_lat = $locationData['latitude'];
                $xt_mm_location_long = $locationData['longitude'];

            }
            else
            {
                $xt_mm_location_lat = 0;
                $xt_mm_location_long = 0;
            }

            $this->app->db()->update('xf_user_profile', [
                'xt_mm_location_lat' => $xt_mm_location_lat,
                'xt_mm_location_long' => $xt_mm_location_long
            ], 'user_id = ?', $id);
        }
    }

    protected function getStatusType()
    {
        return \XF::phrase('xt_mm_rebuilding_userMapData');
    }
}

Tante Edit meint ...

Ich hab ja keine Ahnung von den ganzen Zeug, aber:
Code:
if (!empty($locationData)
besagt, dass das rebuild für diese Zelle nicht gemacht wird, wenn sie nicht leer ist?
Wenn dem so ist ... sie ist ja nicht leer!
Es steht ja die "0.00000000" drin.
 
Zuletzt bearbeitet:
Tausche mal bitte die Zeilen...
PHP:
/** @var \XF\Repository\UserProfile $userProfileRepo */
        $userProfileRepo = $this->app->repository('XF:UserProfile');
        $userLocation = $userProfileRepo->fetchUserLocationById($id)->fetchOne();

...hiermit aus.
PHP:
/** @var \XF\Finder\UserProfile $userProfile */
        $userProfile = $this->app->finder('XF:UserProfile')->whereId($id)->fetchOne();
        $userLocation = $userProfile->location;
 
das funktioniert wohl, der Bebuild läuft DEUTLICH langsamer, und in der DB sind auch schon Daten in den beiden Tabellen
 
das funktioniert wohl, der Bebuild läuft DEUTLICH langsamer, und in der DB sind auch schon Daten in den beiden Tabellen
Ja, natürlich läuft er langsamer, weil er nun wirklich die API Abfragt. ;)
Ich denke dein Log bzw. der Request Counter bei Google steigt rasant an.
 
Jupp, ist beides „rasant“ gestiegen.
 
Das ist in der RC3 dann optimierter und resourcenschonender umgesetzt.
 
Hi
bei mir ist nach dem Update die MiniMap doch arg mini :)

und Mitglieder in der Karte werden nur zwei Namen angezeigt vorher waren dort ALLE gelistet.
woran kanns liegen?
Danke.
Gruß Jo
mm.jpg
 
Was hast du denn in den Einstellungen des Statistik Widget eingestellt?
upload_2021-4-19_22-52-4.png

Da steht be dir bestimmt "2"... :D ;)


Wozu die Minikarte dort neben der Membermap?
 
Hi
Ok die zwei waren etwas wenig :) habe dann auch gefunden wo ich es einstellen kann.

nun noch die Minikarte: die wird auch im Profil nicht richtig angezeigt woran kann es liegen? in der Beta hats noch funktioniert.

und zum Schluss hier möchte ich die Ebay und Amazon Werbung nicht:
mm01.jpg
da sollte doch eigentlich das hier wirken:

mm2.jpg


Gruß Jo
 
und zum Schluss hier möchte ich die Ebay und Amazon Werbung nicht:
mm01-jpg.10130

da sollte doch eigentlich das hier wirken:
Nein, du must das Template eintragen. Das wäre dann hier: xt_mm_index
 
nun noch die Minikarte: die wird auch im Profil nicht richtig angezeigt woran kann es liegen? in der Beta hats noch funktioniert.
Hast du mal in der Browser Console geschaut ob es eine Fehlermeldung gibt? Die Minimap neben der Karte kannst du auch über Widgets einstellen.
 
Zurück
Oben