Jump to Content

Objective HTML

Archives 12/2012

Postmaster v1.2

Postmaster was released to the public in July after a rather long development period. We really did a lot of research on the existing products and services available before we actually built anything. We had almost a dozen different clients asking for various needs that couldn't be met with any existing add-on. Postmaster transformed substantially during that time. Initially Postmaster didn't even include any email services. Thankfully one developer (Eric Lamb) was brutally honest enough to say he didn't "get it". So back to the drawing board we went several different times. Each time we added a deeper level of abstraction and overall understanding of the problem.

After much deliberation and a 6 month private beta period, Postmaster was released in July 2012. The adoption to rate to Postmaster was initially slow. Likely to the fact email is a competitive marketplace and Postmaster's features are so robust and abstract, it's hard to put a label on it. Fortunately, over the past couple months things have really started to pick up and people realizing the true potential of Postmaster.

While we believe v1.1 is the most robust and extendible email add-on for ExpressionEngine, it still really lacked the grand vision we have always had for it. The greatest strength to v1.1 was that it could do so much with channel entries, actually ended up being the greatest weakness. While the channel entries stuff is great, being able to send an email for any action is what really should have been the default.

So after a huge amount of development Postmaster v1.2 is now available. It includes 16 major new features, 2 dozen bug fixes, and an unlimited amount of new possibilities. If Postmaster wasn't before, it's definitely the definitive email notification add-on for ExpressionEngine.

New Features

  • Send Emails for Anything

    With the all-new Hooks API, you can send an email for any hook within ExpressionEngine. Developers can even provide advanced integration and pass custom variables. New hooks are being added all the time, with 10 hooks to start.

  • MSM Compatibility

    MSM users can finally rejoice, Postmaster is now fully compatible with Multi Site Manager.

  • 2 New Email Services

    The Services API has been improved, along with the release of two great new email services: Mandrill and Mailgun.

  • Override System Emails

    Postmaster now has very detailed documentation outlining the new and existing API's. Front-end and backend developers will both benefit from taking a look.

  • Developer API's

    Postmaster has always been built for developer as well as clients. The robust API's that make Postmaster so great are now available to the public. Using Postmaster in your application as a foundation will save you a time and money.

  • All New Documentation

    Postmaster now has very detailed documentation outlining the new and existing API's. Front-end and backend developers will both benefit from taking a look.

Now compatible with...

We realize two of the other major e-commerce offerings aren't available. This is not a bias and not intentional. We will be working to get other add-ons included as quick as we can.

Purchase Devot:ee

Google Maps Proxy for ExpressionEngine

One of the original unforseen pain points of Google Maps for ExpressionEngine was using it with shared and cloud hosting environments. Providers like Rackspace that use the same shared IP's were unreliable as a result of constantly being over Google API limit. Unless you had a valid SSL - and force people to use it - there was no reliable solution for these shared hosts.

So the obvious and immediate solution was to extend the core libraries to create a proxy that deferred requests away from the cloud to a server (objectivehtml.com) that could handle them. Obviously recreating everything from scratch would be timeconsuming and introduce a whole list of new bugs. Or by extending the core API's, the proxy could reususe the existing libraries (and cache) to work hand-in-hand with Google Maps for ExpressionEngine. That's exactly what happened, and has been that way since last February (2012) - and has worked well. The downside was that it was hosted only on Objective HTML and couldn't be installed anywhere else - people were just expected to use the API to roll their own and deal with it themselves.

After several user requests and a short server outage that took down a very high-profile site, it was time to release an official solution to the public. Objective HTML is thrilled to announce the first official expansion pack to Google Maps for ExpressionEngine: Google Maps Proxy.

Google Maps Proxy is a robust solution to quickly setup your own proxy server to handle your own requests - all within ExpressionEngine. Simply create a template, install the tag, and edit the Google Maps config file on the site you want to use the proxy. The process really couldn't be any easier.

The best part is we are treating this as a developer utility. Even though each license is still only good for a single domain, can still serve as many of your client sites as you can handle without going over Google's API limit. So if you 10 sites that all use shared hosting that need to use Google Maps for ExpressionEngine, you would only need 1 proxy and therefor only need one license. If you find that your are going over the API limit, simply setup a new proxy on a new IP to handle the requests. The great thing about Google Maps Proxy is that if you are serving 10 domains, they all use the same cache. We really do everything we can to help you get the most out of your limited number of requests.

So while this isn't something everyone will need, it's definitely something that will be your best friend when you find your host's IP over Google limit from another site. Google Maps for ExpressionEngine continues to be the premium mapping solution for ExpressionEngine - and Google Maps Proxy just showcases the power of the underlying API's.


Google Maps for ExpressionEngine v3.1

2012 has been a great year for Objective HTML. We have released three commercial ExpressionEngine add-ons, and one for free. The amount of possitive feedback has been overwhelming and just reassures that we are moving in the right direction. Add-ons continue to sell well, and we attract more people with each update, so the future looks greats. Objective HTML wouldn't even exist if it weren't for the ExpressionEngine community, so a huge thanks to everyone and all your continued support. You guys are truly awesome.

It has been 6 months since the last public release of Google Maps for ExpressionEngine - with almost a full year since the first public release (January 2012). Since then, it's really grown into its own and has become a very popular and well received add-on. As a result of the increased usaged and popularity, we have received a wide range of feedback, feature requests, and even some criticisms (which we welcome). Some of which came in the form of bug fixes and maintenance updates, but the majority of the requests were fairly more involved. People kept proposing complex problems imposed by their clients ever growing need to get more out of their website - which from an engineering perspective couldn't get any better. And with Google Maps for ExpressionEngine just reaching maturity, these requests were not taken lightly.

So without further ado, we would like to introduce the next major installment of Google Maps for ExressionEngine - v3.1. With over six months of development, 19 new features, and 21 bug fixes, this is the premium mapping add-on for ExressionEngine. It's simply unmatched by any other mapping add-on.

.CSV Import Utility


The top request by far was to give clients a flexible utility to convert arbitrary datasets (.csv's) into channel entries after being geocoded with a valid latitude and longitude. Every client's .csv file is drastically different, so there are close to 2 dozen new settings to precisely configure each schema to fit each file's unique format. You can define as many schemas as needed, which can be saved and used at any time in the future. Clients should never need to alter a schema to import data, rather simply select the file and run the importer.

Managing a large dataset can be cumbersome, especially since no dataset stays perfect forever. Google Maps for ExpressionEngine helps validate your data and keep a log of invalid entries, so can pricesely pinpoint invalid entries with very little time involved. You can even monitor your import in real-time with a progress bar, estimated time to finish, import and error counts, and much more. You can even start and stop the importer if you need to finish it later. There are no data limits, PHP timeouts, or gimmicks, it just works. We put and enourmous amount of R&D to deliver what we believe to be the best import and geocode utility available for any CMS.

Note, the importer has been tested against 40k+ entries without fail, but each situation is unique. Your results could vary.

Marker Clusters

Marker Clusters

Another highly requested feature was marker clustering. Overlapping pins in large datasets can make the map unusable, and tax browser resources resulting in slow performance. MarkerClusterer v3a> is used to improve the performance and help the legibility of large datasets. It's fantastic library and available to its entirety in Google Maps for ExpressionEngine v3.1. Best of all, it works with both the fieldtype and marker tags – meaning you can easily upgrade any template and get marker clusters in just a few seconds.

Search Multiple Locations

Another complicated problem users had was searching entries that has two (or more) sets of coordinates associated with them. For example, entries with an origin and destination need to be searched from both locations all within the same query. The search in v3.1 has extremely solid performance, and just inerates on the existing API to preserve backwards compatibility – it really couldn't be any easier.

Better Static Maps

Static Maps

One of the most overlooked features is the static maps API. It's been available since the beginning, but there was always a disconnect with how to use it. So to make better use of the API and hopefully draw more attention and uses to it, there is a new fieldtype tag. You can convert any* map from any entry into a static map. Static maps can be cached and served locally to display maps that would otherwise cause you to go over Google's API limit. Static maps can really add a delightful touch to any site displaying maps and locations.

{your_map_field:static_map width="400" height="300"}

*Complex maps aren't supported due to character limits of URL's in HTTP requests. Really complicated shapes or routes that exceed this character limit will fail to display. Most maps should display just fine.

So Much More

This is only the tip of the iceberg. There are 19 new features and 20 bugs fixes. Some big and some small, but there is definitely something to benefit everyone in this release. For more detailed release notes, visit the changelog.


This version has been a longtime in the making and we are very happy (and thankful) to see it released. There are hundreds of hours involved, so we hope that you enjoy it as much as we did building. It doesn't stop here, there is a lot in store for the future. But, we require feedback, comments, suggestions, and requests to build great software. Please send those all requests to .(JavaScript must be enabled to view this email address) or on Twitter @objectivehtml. And of course, the contact form on the bottom of the page is always open which feeds into the support channel.

Additional Resources