Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

Customising the CMS /

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

Google Geocoding in Backend


Go to End


3 Posts   2134 Views

Avatar
eddieconnecti

Community Member, 26 Posts

9 February 2010 at 9:12pm

Hello! I am asking myself if is possible to create my own formfields? Problem is: I created a class called "Location" which extends ModelAdmin. There are two fields Latitude and Longitude. Now I would like to show a map below the form, where I can move the marker to a specific position. Aftere that the coordinates can be copied into langitude and longitude textfield.
I first started doing this with my own javascript file, using jquery to detect the form and adding the map and functions. But this failed, since it gets no document.ready event because the model is loaded after the page is loaded. Maybe there is an event I can use too, but it is not perfect. I better would use my own formfield, like so:

new GeocodingField( [mapname], [name of Latitude field in form], [name of Longitude field in form], [google api key] )

I had a look at the label field, since this field does not have any database action. But I need a better understanding of whats going on inside the class and I need to know, if this is a recommended way to solve this problem?

Maybe there is a better way and I don´t see it at the moment? Thanks for your help!

Avatar
Willr

Forum Moderator, 5523 Posts

10 February 2010 at 11:24am

Hello! I am asking myself if is possible to create my own formfields?

Yes you're free to create your own formfields. The main function on a FormField subclass that you need to have is a Field(). This returns the HTML of the form field. An example of kinda what you want with the map is a module - googlemapselectionfield which is a form field which allows you to select a point. http://open.silverstripe.org/browser/modules/googlemapselectionfield/trunk/code might be useful

Avatar
eddieconnecti

Community Member, 26 Posts

10 February 2010 at 11:42am

Wow! Thtas just great! I will try it and give you feedback.

Thanks you so much for your help Willr!