A new Extension, “Geo Location Service” is now available for download. Comments and feedback can be left here but if you discover any issues, please post it on the issue tracker.

So here’s my first public extension. I wrote this some time ago for use in some of our commercial projects and have finally got around to finishing a version for public consumption.

Geo Location Service

The Geo Location Service extension uses Symphony’s services API to provide the following location parameters:

  • Country
  • Region
  • City
  • Latitude
  • Longitude

What is the Symphony services API? A set of tools designed to extend Symphony’s functionality via webservices. It’s nothing but a proposal and an example service (this one) at this stage, so don’t get too excited :)

This extension is used in the wild by BBC News and Save the Children amongst others… it is robust and performs extremely well under load.

Use of the extension is currently limited to 100 lookups per domain per hour. This is because 1. I have no idea what take up with be and 2. the extensive backend system costs money to maintain. We will grant extended/commercial access on a case by case basis - drop us a line for more information.


  1. Upload the ‘geolocation_service’ folder in this archive to your Symphony ‘extensions’ folder
  2. Enable it by selecting “Geo Location Service”, choose Enable from the with-selected menu, then click Apply


  1. Add “Geo Location Service” Data source to your page
  2. You will notice a geolocation element in your page XML. This will contain eight populated elements and an empty error if successful, or eight blank elements and a populated error if not


Data Source attached to a page and working

Data Source attached to a page and erroring

Parameter key

  1. “ID” is the lookup number for the associated request
  2. “Lookups” referes to the number of looks you have made within the last hour
  3. “Remaining” tells you how many you have left
  4. “Country” is the country that the page-requesting user is in
  5. “Region” is the region that the page-requesting user is in
  6. “City” is the city that the page-requesting user is in
  7. “Latitude” is the current latitiude of the page-requesting user
  8. “Longitude” is the current longitude of the page-requesting user
  9. “Error” provides information in the event of an error or a lookup overrun

Nice Joseph! Thanks for posting!

We’re using the Symphony services API for Geo location for the new Symphony website and is much #win.

Here’s a quick targeted map by way of a demo:

Great extension!

@Joseph: It’s offline.

I guess we have a jester around here, since this is not the first time I have seen this special Symphony error pop up. I’d appreciate if the jester told us about this Symphony vulnerability.

Works for me… Nice work, Joseph.

Great work, Joseph. Please don’t sell it to those “dating” advertisement companies, they might provide me with girls who actually live in my city. May I ask how you can map locations so accurately or do you consider this proprietary knowledge?

@michael-e: what error are you seeing? Can you send me a screenshot?

@carsten: that information is commercially sensitive at the moment, but may not remain so. Needless to say, we’ve spent a long time compiling the database.

@Joseph: Screenshot done. But I couldn’t find any email address on your website.

Ah sorry: joseph.denne AT

@Joseph: Here is the Symphony error I see:

loadXML(): Input is not proper UTF-8, indicate encoding ! Bytes: 0xFC 0x6E 0x63 0x68 in Entity, line: 10

I did some research. I tunneled through another server and everything worked with this IP address (well, not really fine, because my location was not found – but I could see the map of Germany!). But if I use my own internet connection (and IP), I get the error.

Could it be that the extension has problems with German umlaut characters? (I am located in Munich, which is “München” in German.)

BTW: Same problem on your Save the Children website!

Nice catch - thanks! Will feed this back to the team here. Your note regarding characters would seem to make sense and should be easy to fix.

Seems that I have a talent to make (or see) things break…

I just uploaded the folder. renamed it to ‘geolocation_service’ but nothing is showing up in Symphony?? Sounds awesome though. ;)

Screen shot 2010-03-05 at 12.24.22 AM.png

Looks like a README bug. Try renaming the folder geoloc.

@dallas - you shouldn’t need to manually rename any folder for any extension in general. in this case, make sure you are uploading the actual “geolocation_service” folder from the archive. (haven’t tried this extension myself, so i can’t say what you’re looking at, but this is just from my past experiences with symphony)

renaming to geoloc worked. Thanks Nick.

Could you guys provide me with some additional information about the Geo Location API?

It appeared to be very accurate when I tasted it after the release. Could I get some information about how accurate it is compared to other services, for example?

Create an account or sign in to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details