Author Topic: Modul MapBaker v1.68 (überarbeitet)  (Read 14712 times)

fischstäbchenbrenner

  • Guest
Re: Modul MapBaker v1.68 (überarbeitet)
« Reply #50 on: November 10, 2014, 12:56:08 PM »
@Ruud
Thanks! I hope it really works, I didnt test it very much.. but I think: we will see.

Offline jacobi22

  • Posts: 5843
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: Modul MapBaker v1.68 (überarbeitet)
« Reply #51 on: November 10, 2014, 12:59:14 PM »
Hier eine Version 1.7

Ein undokumentiertes "Feature":
Legt man eine Code(2) Section an mit Inhalt:
Code: [Select]
include(WB_PATH.'/modules/mapbaker/showmarkertext.code.inc.php');so erscheint eine Liste mit allen Punkten (Beschreibungen). Das kann man zb im Sidebar nutzen.

Ansonsten: An der DB habe ich nichts geschraubt, ich würde einfach das alte Verzeichnis umbenennen und dieses hier hochladen. Kann nichts passieren.

umbenennen nützt ja nicht, wenn man nachher die gleichen Datenbank-Tabellen benutzt  ;-)

eine andere Sache, da mußt du nochmal ran...
die showmarkertext.code .inc.php läuft nur, wenn auf der Seite das Modul läuft. Es nutzt dann wohl einen Wert aus der Settings-Tabelle.

Frage zur  showmarkertext.code .inc.php
könnte ma da nicht einen Link auf die entsprechende Karte setzen?
Wer nicht will, findet Gründe, wer will, findet Wege.

fischstäbchenbrenner

  • Guest
Re: Modul MapBaker v1.68 (überarbeitet)
« Reply #52 on: November 10, 2014, 01:09:49 PM »
An der Datenbank wurde ja auch nichts verändert. Umbenennen meine ich nur, um das "alte" Modul gleich wieder griffbereit zu haben, wenn was klemmt.

include(WB_PATH.'/modules/mapbaker/showmarkertext.code.inc.php');

holt ALLE Datensätze raus. Da in 99% nur eine Section mit MapBaker ist, ist es da egal, welche Section geholt wird.

aber es geht auch:
Code: [Select]
$showsection = 15;
include(WB_PATH.'/modules/mapbaker/showmarkertext.code.inc.php');

Das Feature ist nicht so groß erwähnt, weil es nicht so ganz Narrensicher ist. Wenn man es zb auf anderen Seiten verwendet, muss man sich selbst um die frontend.css kümmern.
Andererseits denke ich: So kleine Extras sind gut zum basteln. Wer sich zb selbst seine Liste der Filialen oder so ausgeben will, hat da schon mal eine gute Basis.
 


Offline jacobi22

  • Posts: 5843
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: Modul MapBaker v1.68 (überarbeitet)
« Reply #53 on: November 10, 2014, 01:19:36 PM »
gemeint war dieser Code ab Zeile 9 in showmarkertext.code .inc.php

Code: [Select]
if($query_settings->numRows() > 0) {
        $set = $query_settings->fetchRow();
        $template_infowindow = $admin->strip_slashes($fetch_settings['template_infowindow']);
}
$fetch_settings ist der Array, den sich das Modul aus der Settingstabelle holt
Du hast deinen Array $set benannt, darum solltest du auch $set['template_infowindow'] verwenden, sonst wird's nix mit der Liste

P.S. in der info.php könnte man die Feautures oben auch noch anpassen
Wer nicht will, findet Gründe, wer will, findet Wege.

fischstäbchenbrenner

  • Guest
Re: Modul MapBaker v1.68 (überarbeitet)
« Reply #54 on: November 10, 2014, 01:34:02 PM »
Upps - warum hab ich das übersehen?
Es hat aber funktioniert... vielleicht weil $template_infowindow noch verfügbar war...

Lassen wirs mal ein bissel liegen. Nachdems nicht dokumentiert ist, fällt es nicht auf, und es kann ja auch irgendwann eine 1.71 geben.

Offline dbs

  • Betatester
  • **
  • Posts: 7977
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Modul MapBaker v1.68 (überarbeitet)
« Reply #55 on: January 24, 2015, 05:38:27 PM »
Hi, MapBaker per Droplet holen macht Probleme?

Wollte den MapBaker unter ein Kontakt-Formular-Abschnitt legen.
Bei Fehleingaben oder Erfolgreichmeldung des Formulars wird ja eine neue Seite gezeigt. Darunter ist dann wieder der MapBaker zu sehen. Um das zu Umgehen wollte ich also per Sectionpicker-Droplet den MapBaker in die Fußzeile vom Kontaktformular laden, weil header und footer nur auf der ersten Seite gezeigt werden. Ergab leider weiße Seite.

Code: [Select]
<?php //bunt
NoticeUndefined variableadmin in /modules/mapbaker/view.php on line 33
Fatal error
Call to a member function strip_slashes() on a non-object in /modules/mapbaker/view.php on line 33

Könnte man da was machen?

Offline jacobi22

  • Posts: 5843
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: Modul MapBaker v1.68 (überarbeitet)
« Reply #56 on: January 24, 2015, 06:01:36 PM »
ersetze
Code: [Select]
$admin->strip_slashes()durch
Code: [Select]
stripslashes()
ist aber sicher 10 x in der view.php, auch weiter unten, Zeilen ab 135
Wer nicht will, findet Gründe, wer will, findet Wege.

Offline dbs

  • Betatester
  • **
  • Posts: 7977
  • Gender: Male
  • tioz4ever
    • WebsiteBaker - jQuery-Plugins - Module - Droplets - Tests
Re: Modul MapBaker v1.68 (überarbeitet)
« Reply #57 on: January 24, 2015, 06:12:01 PM »
17x 
Klasse, passt perfekt, Danke :wink:

Re: Modul MapBaker v1.68 (überarbeitet)
« Reply #58 on: May 08, 2015, 10:14:12 PM »
Hi guys, thanks for the improvements to the module. BTW, release notes for v1.69 and v1.70 are missing from info.php. Could those who've made the changes please update with the notes.

Thanks,
Paul
Westhouse IT - Professional WebsiteBaker developers for hire.

Offline jacobi22

  • Posts: 5843
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: Modul MapBaker v1.68 (überarbeitet)
« Reply #59 on: July 22, 2016, 03:35:35 PM »
Nur zur Info, falls das Modul noch wer benutzt.

in diversen Tests wurde festgestellt, das unter bestimmten Bedingungen an Stelle der Karte ein leerer Screen angezeigt wird. Dies ist z.b. der Fall, wenn im Frontend-Output-Filter die Option "EMailadresse im Text filtern" aktiviert ist. Ursache ist der Javascript-Aufruf im Code, der an Google gesendet wird. Google kann damit nichts anfangen und bricht die Codeerstellung ab. Abhilfe wäre erstmal die Deaktivierung dieser Filterfunktion.

Weiterhin gibt es einen Whitescreen, wenn das Modul in einem https-Projekt läuft. Ursache ist hier die Adresse, an die die Werte gesendet werden. Diese muß dann natürlich auch auf https laufen
Zeile 49 der view.php
Quote
echo '<script type="text/javascript" src="https://www.google.com/jsapi?key='.$gmkey.'"></script>

Danke an hgs für die Testerei und Meldung

Noch eine Info:
Google verlangt seit Juli 2016 für Kartenzugriffe von 25000 pro Tag Geld. Unklar ist, ob diese Zahl pro Karte gilt oder pro Domain. Meine Zugriffe im Projekt mit den meisten Karten beträgt etwa 100 - 120 Benutzer pro Tag bei 10 Karten im Projekt. Eventuell haben andere aber auch noch viel mehr Karten und andere Besucherzahlen. Also bitte mal grob überschlagen, was bei euch so zutrifft.
Abhilfe wäre wohl nur ein Wechsel auf freie Anbieter wie OpenStreetMap usw.
Wer nicht will, findet Gründe, wer will, findet Wege.

fischstäbchenbrenner

  • Guest
Re: Modul MapBaker v1.68 (überarbeitet)
« Reply #60 on: August 16, 2016, 11:13:24 AM »
Hallo
Das Modul funktioniert bei mir nicht mehr - scheinbar unterstützt Google die alte V2 Schnittstelle nicht mehr.

Hat sich jemand damit befasst, wie man die API V3  reinbekommt?

Offline hgs

  • Betatester
  • **
  • Posts: 1110
    • EFG MG
Re: Modul MapBaker v1.68 (überarbeitet)
« Reply #61 on: August 16, 2016, 12:02:27 PM »
Was passiert wen du die API leer läßt?

Hab die angepasste Version für https unter PHP7 und SP7 ohne Probleme am laufen
Bei mir ist das Feld:
Google Maps API - Schlüssel
(ist kein Schlüssel vorhanden, bitte leer lassen):
leer.
LG Harald

"Fange nie an, aufzuhören - höre nie auf, anzufangen." Marcus Tullius Cicero (106-43 v.Chr.)

Offline jacobi22

  • Posts: 5843
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: Modul MapBaker v1.68 (überarbeitet)
« Reply #62 on: August 16, 2016, 12:38:33 PM »
Das Modul funktioniert ohne  den Google API-Key, was nicht mehr geht, ist die Schlüsselabfrage bei vorhandenem Schlüssel, die hat Google schon vor ein paar Jahren angekündigt und jetzt zum Sommer abgeschaltet.

Mit API3 ist das so eine Sache. Es ist wohl problemlos möglich, eine einfache, simple Karte einzubinden, fängt man aber an, extra Funktionen einzubinden, wie Kartendesign oder Markerkennzeichnung, werden das ganz schnell, ganz viele unübersichtliche Einstellmöglichkeit en, die jeder über den Map-Konfigurator besser und in allen Möglichkeiten konfigurieren kann, um den gelieferten Code dann über eine Code²-Sektion zu zeigen. Ich habe wohl eine Version mit etwa 15 Einstellungen, abe rallein dafür muß man schon einmal die komplette Bildhöhe runterscrollen  :roll:
Aus meiner Sicht wäre es unsinnig, jetzt ein Modul umzurüsten, und darin nur 1% der möglichen Einstellungen einzubauen. Alle einzubauen, ist unmöglich und bei jeder, die man weg läßt, wird sich einer finden, der genau diese Funktion braucht. Hier mal ein kleiner Einblick in diese neuen Möglichkeiten -> https://developers.google.com/maps/documentation/javascript/tutorial

Zur Entscheidung trägt bei, das Google ab Juli 2016 Geld verlangt für Kartenaufrufe ab 25000 pro Tag. Ich gehe davon aus, das diese Grenze leise Stück für Stück nach unten verschoben wird und dann wird der kleine CMS-Benutzer etwas anderes verwenden. Um die Einfachheit des Moduls beizubehalten, werde ich wohl den Kartenanbieter wechseln und auf Open Source gehen. Hab mich aber noch nicht damit beschäftigt, ob und wie die derzeitigen Möglichkeiten umzusetzen wären.
Wer nicht will, findet Gründe, wer will, findet Wege.

fischstäbchenbrenner

  • Guest
Re: Modul MapBaker v1.68 (überarbeitet)
« Reply #63 on: August 16, 2016, 02:43:54 PM »
Keine Ahnung, warum es nicht läuft...
Hier das Problemkind:
http://www.alpor.at/obsolet/vor-ort-service.php
Die Karte ist kurz sichtbar, dann kommt eine Fehlermeldung.
In der Javascriptkonsole hab ich:
common.js:48 Uncaught RangeError: Maximum call stack size exceeded
Laut diverser Quellen kommt das, wenn Zahlen nicht also solche angegeben sind. Das scheint aber nicht die Ursache zu sein.

Ich habs jetzt auch wo anders installiert, da ist das gleiche. Das Modul hab ich nicht verändert, auch keinen Schlüssel angegeben.

Offline jacobi22

  • Posts: 5843
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: Modul MapBaker v1.68 (überarbeitet)
« Reply #64 on: August 16, 2016, 06:37:07 PM »
Maximum call stack size exceeded bedeuted, das eine Funktion eine Funktion aufruft, die eine Funktion aufruft, welche wieder eine Funktion aufruft, irgendwann ist die Verschachtelung dann zu viel und das Ding dreht sich im Kreis.

Habe eben ein paar Projekte von mir durchgeschaut, da laufen noch alle Karten, z.b. hier -> http://www.lssa-online.de/pages/de/unsere-mitglieder/benneckenstein/benneckenstein-karte.php
PHP ist dort noch 5.3.29, sollte aber keine Rolle spielen, mein lokales Backup läuft unter PHP 7.0.9

Eine Sache, die du mal prüfen könntest... in den Marker-Daten dürfen keine Sachen sein, die nachher durch einen Filter laufen, insbesondere der EMailfilter hat sich hier als Problemstelle heraus kristalisiert. Es ist aber nicht der Filter selbst, sondern die ganze Technologie mit den Karten.
Der EMail-Filter soll ja die Mailadresse verschlüsseln mit javascript(AB2Deftghjz%6) oder so. Damit kann Google aber nichts anfangen und die Ausgabe scheitert, es wird kein Code zurück geliefert.
Für einen Test ggf den Filter (wenn aktiviert) deaktivieren und die Karte neu aufrufen

P.S.: hab mal die Quellcodes verglichen, EMail hast du nicht drin in der Beschreibung. Was aber auffällt - die Werte für Latitude und Longitude der Karte passen nicht zur Marker-Position, die Karte hat Lat = 25.000, Long = 20.000, der Marker hat Lat = 10.000, Long = 20.000
Das die Karte für ein, zwei Sekunden angezeigt wird, deutet ebenfalls drauf hin, das es eher ein Markerproblem ist
Wer nicht will, findet Gründe, wer will, findet Wege.

Offline Ruud

  • Posts: 3649
  • Gender: Male
  • Do not use PM for help! Please use the forum!
    • Dev4Me - Professional WebsiteBaker Development
Re: Modul MapBaker v1.68 (überarbeitet)
« Reply #65 on: August 16, 2016, 10:58:42 PM »
The same strange problem..
One website with a good working map with 57 markers.

Exactly the same website (development copy) does not function. Same template, same javascript, same markers..
Also in the backend, selecting a new marker in the map is not functioning.

The map is drawn for half a second, then a screen saying "Oops..."
The (firefox) console says: "Too much recursion"

It is driving me crazy..

Offline hgs

  • Betatester
  • **
  • Posts: 1110
    • EFG MG
Re: Modul MapBaker v1.68 (überarbeitet)
« Reply #66 on: August 17, 2016, 07:45:42 AM »
Sehr komisch
https://schulung.auszeit-mg.de/pages/home/hauskreise.php
PHP 7.0.8 mit WB 2.8.3 + SP7
und läuft.
Hoffe wir finden den Fehler
LG Harald

"Fange nie an, aufzuhören - höre nie auf, anzufangen." Marcus Tullius Cicero (106-43 v.Chr.)

Offline Ruud

  • Posts: 3649
  • Gender: Male
  • Do not use PM for help! Please use the forum!
    • Dev4Me - Professional WebsiteBaker Development
Re: Modul MapBaker v1.68 (überarbeitet)
« Reply #67 on: August 17, 2016, 10:45:23 AM »
I found an article where google explains that newly created apps without the API key are not accepted anymore. This is effective from June 22, 2016.
Older implementations will keep working (for ever).
Quote from: Google
We no longer support keyless access (any request that doesn't include an API key). Future product updates are only available for requests made with an API key. API keys allow us to contact developers when required and help us identify misbehaving implementations.
Quote from: Google
Existing applications have been grandfathered based on their current usage to ensure that they continue to function both now and in the future.
http://googlegeodevelopers.blogspot.nl/2016/06/building-for-scale-updates-to-google.html

I did a quick test with the page on my development server by changing the domain name to the domain of the working version and now the page that gave the error suddenly works fine.

Next I created an API key (type = Browser key) for my development domain, added it to the "problem website" and after a few minutes it started working.

Get the key here: https://developers.google.com/maps/documentation/javascript/get-api-key

Offline jacobi22

  • Posts: 5843
  • Gender: Male
  • Support also via PM or EMail
    • Jacobi22
Re: Modul MapBaker v1.68 (überarbeitet)
« Reply #68 on: August 18, 2016, 03:29:40 PM »
in der Hoffnung, den Fehler reproduzieren zu können, hab ich mal etwas ausgiebiger getestet. Zwei Modulversion in der gleichen WB-Installation mit WB 2.8.3 SP7 und PHP 7.0.9, die Module unterscheiden sich durch die neue Moduleschnittstelle und Nutzung von Twig-Templates. Verballert hab ich 2 Gb für Karten-reloads  :roll:
Zwei Sektion auf der gleichen Seite, eine läuft, die andere liefert ein "Hoppla...". Gleiche Fehlermeldung wie bei euch, lass ich beide Sektionen einzeln laufen, gehts ohne Probleme. Wenn ich mir die Fehlermeldung im Detail anschaue, ist es der Moment, wo er die Marker-Icons auf der Karte positionieren soll, vielleicht auch da, wo die Marker-Icon-Größe bestimmt wird. Diese Datei selber wird bei Google auf dem Server eingebunden, als Ergebnis bekommt man dann einen Javascript-Code mit der kompletten Karte inkl aller Marker und Texte zurück, die dann nur noch im DIV = map dargestellt werden muß. Das Modul selbst liefert nur die Daten, die man aus der DB holt und hinschickt. Von Google gibt es drei Hinweise oder besser-Infos-, die sich auf die Einstellung der API2 beziehen, aber auch auf funktionierenden Karten zu sehen sind.

Bekannt ist, das ein Mix zwischen https-Projekten mit dem aktuellen http-Links im Modul nicht oder nicht immer funktionieren. Hier geht es um die Links zum Google-Script in der view.php, der settings und der modify_marker, wo eben die Karten dargestellt werden. Alles, was derzeit http ist (auch die Adressen der Icons) müßten auf https umgestellt werden. Genau bei diesen Icons vermute ich auch das Problem, mit einer leeren oder ungültigen Adresse würde ich lokal einen Fehler bekommen, da diese Datei aber durch Google läuf, hat man keine Chance, da ranzukommen oder es zu umgehen. Selber probiert hat ich das noch nicht, nach zwei Tage war gestern die Luft raus. Theoretisch müßt man mal die ganzen Markeradressen durchtesten. Natürlich ist genau der, der bei Chio gesetzt wurde, auch unter der Adresse erreichbar.

Ich hab für mich mal auf API3 umgestellt. Man muß praktisch alles, was wir an Google liefern, auf die neuen Funktionsschreibwei sen ändern. Ich hab wohl ein Grundprinzip, das mir Karte und Marker darstellt, aber es ist eigentlich unmöglich, die tausend möglichen Einstellungen der API3 auch nur im Ansatz einzubauen. Möchte ich z.b. ein Umkreis zeichnen und diesen Einfärben (z.b. Lieferbereich einer Pizzabude), geht das derzeit nur über eine Codeänderung in der view.php. Die Geschichte mit KML bzw KMZ hab ich da noch garnicht probiert

Noch nicht probiert ist der Tip von Ruud, einfach mal den API3-Code an Stelle des APi2-Codes einzufügen

hier mal der neue Codeaufruf hardcoded in der view eingefügt, kann aber sein, das damit garnichts mehr geht, weil ja die API3 aufgerufen wird und wohl mit den Funktionen nichts mehr anfangen kann

Quote
<script async defer
      src="https://maps.googleapis.com/maps/api/js?key=HERE_YOUR_API3_KEY&callback=initMap">
    </script>

und hier, wenn man den Code über die Settings einliest

Code: [Select]
<script async defer
      src="https://maps.googleapis.com/maps/api/js?key='.$gmkey.'&callback=initMap">
    </script>></script>

vielleicht einfach mal probieren
Wer nicht will, findet Gründe, wer will, findet Wege.

 

postern-length