What Is WP Quadratum?
WP Quadratum is a
WordPress plugin to display your last
Foursquare checkin as a map widget in the sidebar or embedded in a post or page, fully authenticated via OAuth 2.0.
What Does It Do?
This plugin allows you to display your last Foursquare checkin as a map widget on the sidebar or embedded via a shortcode in a post or page of your WordPress powered site.
You can configure WP Quadratum to ...
- Associate your WordPress powered site with your Foursquare account using OAuth 2.0, which keeps your personal information safe and secure.
- Choose which map provider you want your checkin shown on; you can choose from:
- HERE Maps
- Google Maps v3
- Bing Maps v7
-
OpenStreetMap from Leaflet
-
OpenStreetMap from OpenLayers
-
OpenStreetMap from MapQuest
- Add your maps API key(s) for your chosen map provider; HERE, Google, Bing and MapQuest maps all require API keys.
- Choose the width and height of the widget and map on the sidebar. The width and height can be specified either as pixels (
px
) or as a percentage.
- Choose the zoom level of the map display.
The
strapline text containing the venue name, venue URL and timestamp of your last Foursquare checkin can be customised via the plugin's filters. See the
Filter Support And Usage section for more information.
The current version of this plugin allows you to associate a single Foursquare account with your WordPress site; associating multiple Foursquare accounts, one per user account is not currently supported.
How Do I Download WP Quadratum?
To download or install WP Quadratum on your WordPress powered site, either search for
WP Quadratum from the WordPress Dashboard or go to plugin’s page on the official
WordPress plugin repository.
If you want to fork the source code of the plugin, you can find it on the plugin’s GitHub page at
https://github.com/vicchi/wp-quadratum.
What's New?
WP Quadratum v1.3.1 was released 09/22/13.
Full Documentation
Installation
- You can install WP Quadratum automatically from the WordPress admin panel. From the Dashboard, navigate to the Plugins / Add New page and search for "WP Quadratum" and click on the "Install Now" link.
- Or you can install WP Quadratum manually. Download the plugin Zip archive and uncompress it. Copy or upload the
wp-quadratum
folder to the wp-content/plugins
folder on your web server.
- Activate the plugin. From the Dashboard, navigate to Plugins and click on the "Activate" link under the entry for WP Quadratum.
- Configure your Foursquare credentials; from the Dashboard, navigate to the Settings / WP Quadratum page or click on the "Settings" link from the Plugins page on the Dashboard.
- To display your Foursquare checkins, WP Quadratum needs to be authorised to access your Foursquare account information; this is a simple, safe and secure 3 step process. WP Quadratum never sees your account login information and cannot store any personally identifiable information.
- Register your WordPress site as a Foursquare application on the Foursquare App Registration page. If you're not currently logged into your Foursquare account, you'll need to login with the Foursquare account whose checkins you want WP Quadratum to display. The Your app name field is a label you want to use to identify this connection to your Foursquare account. The Download / welcome page url is the URL of your Wordpress site. The Redirect URI will be provided for you and will be along the lines of
https://www.yoursite.com/wp-content/plugins/wp-quadratum/includes/wp-quadratum-callback.php
(this is just an example, don't use this URL). Push API Notifications should be set to Disable pushes to this app. All other fields can be left at their default values. Once you have successfully registered your site, you'll be provided with two keys, the Client ID and the Client Secret.
- Copy and paste the supplied Client ID and Client Secret into the respective WP Quadratum setting fields. Click on the "Save Changes" button to preserve them.
- You should now be authorised and ready to go; click on the Connect to Foursquare button.
- Choose your mapping provider. From the Maps tab, select the map provider from the Maps Provider drop down.
- If your chosen mapping provider requires an API key or keys, enter them as requested. If you don't have an API key, each maps provider tab has a link to the provider's site where you can sign up and obtain your API key. Click on the Save Changes button to save your credentials.
- Add and configure a WP Quadratum Widget. From the Dashboard, navigate to Appearance / Widgets and drag the WP Quadratum Widget to your desired widget area.
- You can configure the widget's title, with widget's width and map height in
px
or as a percentage and the map zoom level. Click on the Save button to preserve your changes.
Screenshots
- Installed Plugins: Authentication prompt shown after activating plugin for the first time
- Settings and Options: Foursquare Tab; No Client ID or Client Secret entered or saved
- Settings and Options: Foursquare Tab; Client ID and Client Secret saved
- Foursquare Authentication: Allow or deny plugin access to your Foursquare account
- Settings and Options: Foursquare Tab; Successfully authenticated with Foursquare
- Settings and Options: Maps Tab; HERE Maps configuration
- Settings and Options: Maps Tab; Google Maps v3 configuration
- Settings and Options: Maps Tab; Leaflet Maps configuration
- Settings and Options: Maps Tab; Bing Maps v7 configuration
- Settings and Options: Maps Tab; OpenLayers Maps configuration
- Settings and Options: Maps Tab; MapQuest Open Maps configuration
- Settings and Options: Shortcode Tab; [wp_scs][wp_quadratum][/wp_scs] shortcode enabled
- Settings and Options: Shortcode Tab; [wp_scs][wp_quadratum_locality][/wp_scs] shortcode enabled, no Factual OAuth Key or Secret entered or saved
- Settings and Options: Shortcode Tab; [wp_scs][wp_quadratum_locality][/wp_scs] shortcode enabled, Factual OAuth Key and Secret saved
- Settings and Options: Defaults Tab
- Settings and Options: Colophon Tab
- Appearance: Widgets; Sample widget settings
- Sample Widget: Google v3, HERE and Leaflet maps
- Sample Widget: Bing v7, OpenLayers and MapQuest Open maps
Installed Plugins: Authentication prompt shown after activating plugin for the first time
Settings and Options: Foursquare Tab; No Client ID or Client Secret entered or saved
Settings and Options: Foursquare Tab; Client ID and Client Secret saved
Foursquare Authentication: Allow or deny plugin access to your Foursquare account
Settings and Options: Foursquare Tab; Successfully authenticated with Foursquare
Settings and Options: Maps Tab; HERE Maps configuration
Settings and Options: Maps Tab; Google Maps v3 configuration
Settings and Options: Maps Tab; Leaflet Maps configuration
Settings and Options: Maps Tab; Bing Maps v7 configuration
Settings and Options: Maps Tab; OpenLayers Maps configuration
Settings and Options: Maps Tab; MapQuest Open Maps configuration
Settings and Options: Shortcode Tab; [wp_scs][wp_quadratum][/wp_scs] shortcode enabled
Settings and Options: Shortcode Tab; [wp_scs][wp_quadratum_locality][/wp_scs] shortcode enabled, no Factual OAuth Key or Secret entered or saved
Settings and Options: Shortcode Tab; [wp_scs][wp_quadratum_locality][/wp_scs] shortcode enabled, no Factual OAuth Key or Secret saved
Settings and Options: Defaults Tab
Settings and Options: Colophon Tab
Appearance: Widgets; Sample widget settings
Sample Widget: Google v3, HERE and Leaflet maps
Sample Widget: Bing v7, OpenLayers and MapQuest Open maps
Frequently Asked Questions
How do I get help or support for this plugin?
In short, very easily. But before you read any further, take a look at
Asking For WordPress Plugin Help And Support Without Tears before firing off a question. In order of preference, you can ask a question on the
WordPress support forum; this is by far the best way so that other users can follow the conversation. You can ask me a question on Twitter; I'm
@vicchi. Or you can drop me an email instead. I can't promise to answer your question but I do promise to answer and do my best to help.
Is there a web site for this plugin?
Absolutely, it's the page you're reading, the
WP Quadratum home page which always contains the latest information. There's also the official
WordPress plugin repository page and the
source for the plugin is on GitHub as well.
I have multiple authors on my site; can I have a widget for each author's Foursquare account?
In the current version, no. In the current version, you can link a single Foursquare account with your WordPress site (multi-site or network sites may work, assuming each site is for a single user but I haven't tested this). The plugin is currently designed to support a WordPress site which is used for a personal blog (in other words, exactly the way my site is set up). Future versions of the plugin
may support this if people ask for this feature (assuming anyone apart from myself actually
uses it!).
Can I change the format of the strapline that appears under the checkin map?
Yes. The
wp_quadratum_strapline
filter is for just this purpose. The filter is passed the default strapline as well as the URL to the Foursquare venue checked in at, the name of the venue and the date and time of the checkin as a UNIX timestamp. See the
Filter Support And Usage section for more information.
I want to amend/hack/augment this plugin; can I do the same?
Totally; this plugin is licensed under the GNU General Public License v2 (GPLV2). See
https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt for the full license terms.
Where does the name WP Quadratum come from?
WP Quadratum is named after both the Latin words
quattor, meaning
four and
quadratum, meaning
square.
Shortcode Support And Usage
WP Quadratum supports two shortcodes and three shortcode aliases;
[wp_scs][wp_quadratum_map][/wp_scs]
to expand the shortcode in a post or page and replace it with the checkin map and
[wp_scs][wp_quadratum_locality][/wp_scs]
to allow you to embed aspects of your last checkin in a post or page.
[wp_scs][wp_quadratum_map][/wp_scs]
Adding this shortcode to the content of a post or page as content, expands the shortcode and replaces it with a checkin map.
The shortcode also supports multiple
attributes which allow you to customise the way in which the shortcode is expanded into the checkin map:
- the
width
attribute
- the
width_units
attribute
- the
height
attribute
- the
height_units
attribute
- the
zoom
attribute
The "width" Attribute
The
width
attribute, in conjunction with the
height
attribute specifies the width of the map to be inserted into a post or page. If omitted, the map width defaults to a value of
300
.
The "width_units" Attribute
The
width_units
attribute, specifies how the value specified in the
width
attribute should be interpreted. Valid values for this attribute as
px
and
%
, denoting that the
width
attribute should be interpreted in pixels or as a percentage respectively. If omitted, this attribute defaults to a value of
px
.
The "height" Attribute
The
height
attribute, in conjunction with the
width
attribute specifies the height of the map to be inserted into a post or page. If omitted, the map height defaults to a value of
300
.
The "height_units" Attribute
The
height_units
attribute, specifies how the value specified in the
height
attribute should be interpreted. Valid values for this attribute as
px
and
%
, denoting that the
height
attribute should be interpreted in pixels or as a percentage respectively. If omitted, this attribute defaults to a value of
px
.
The "zoom" Attribute
The
zoom
attribute specifies the zoom level to be used when displaying the checkin map. If omitted, the zoom level defaults to a value of
16
which is roughly analogous to a neighbourhood zoom.
[wp_scs][wp_quadratum][/wp_scs]
The
[wp_scs][wp_quadratum][/wp_scs]
shortcode is an alias for the
[wp_scs][wp_quadratum_map][/wp_scs]
shortcode and has the same functionality.
[wp_scs][wpq_map][/wp_scs]
The
[wp_scs][wpq_map][/wp_scs]
shortcode is an alias for the
[wp_scs][wp_quadratum_map][/wp_scs]
shortcode and has the same functionality.
[wp_scs][wp_quadratum_locality][/wp_scs]
Adding this shortcode to the content of a post or page, expands the shortcode and replaces it with information about your last Foursquare checkin. The information to be displayed is selected by the shortcode's
type
attribute, which allows you to select the venue name, address, region, postal code, coordinates, timezone or timezone offset.
By default, the
[wp_scs][wp_quadratum_locality][/wp_scs]
shortcode and the
[wp_scs][wpq_locality][/wp_scs]
alias are disabled. This is because not all Foursquare venues contain the full scope of locality elements that the shortcode supports (the minimum requirements for a Foursquare venue are name, category and coordinates). To backfill any missing venue elements, WP Quadratum uses a
reverse geocoding service from
Factual to supply the missing information.
To enable the
[wp_scs][wp_quadratum_locality][/wp_scs]
shortcode, from the Dashboard navigate to
Settings / WP Quadratum and click on the
Shortcodes tab. Select the
Enable Locality Shortcode Usage checkbox and the
Factual OAuth Settings meta-box will appear. You'll then need to sign up for a
Factual API key after which you'll be given an
OAuth Key and
OAuth Secret. Copy and paste these into the
Factual OAuth text fields and click on
Save Shortcode Settings. You'll now be able to use the
[wp_scs][wp_quadratum_locality][/wp_scs]
shortcode or its alias.
The "type" Attribute
The
type
attribute specifies the element of your last Foursquare checkin that is to be displayed in a post or page and can take one of the following values:
-
venue
- the name of the last Foursquare venue you checked into.
-
address
- the street address of the venue; not including the region, locality or postal code.
-
region
- the region of the venue; the geographic context of the region will vary from country to country but is roughly analogous to the venue's city.
-
postcode
- the postal code of the venue, if the country or region supports postal codes.
-
coordinates
- the geographic coordinates of the venue, in the form latitude,longitude.
-
timezone
- the timezone name of the time of the checkin, such as Europe/London
.
-
tzoffset
- the offset from GMT of the time of the checkin, in the form GMT[-+]hours, such as GMT-1 or GMT+2.
-
locality
- the locality of the venue; the geographic context of the locality will vary according to country, but is roughly analogous to the town or neighbourhood.
If the
type
attribute is not supplied, or if the value of this attribute is not one of the above values,
type="locality"
will be assumed. The shortcode's replacement value can be modified via the plugin's
wp_quadratum_locality
filter; see the
Filter Support and Usagesection for more information.
[wp_scs][wpq_locality][/wp_scs]
The
[wp_scs][wpq_locality][/wp_scs]
shortcode is an alias for the
[wp_scs][wp_quadratum_locality][/wp_scs]
shortcode and has the same functionality.
Filter Support And Usage
WP Quadratum supports three filters, which are described in more detail below. The plugin's filters allow you to:
- change the descriptive text that appears immediately below the map when displayed via the plugin's widget or shortcode.
- gain access to the checkin metadata that is returned from the Foursquare API
- change the output of the [wp_scs][wp_quadratum_locality][/wp_scs]` shortcode
wp_quadratum_checkin
Allow a filter hook function to gain access to the checkin metadata that is returned from the Foursquare API and which is used to build the checkin map and strapline. It's important to note that the implementation of this filter isn't strictly a WordPress filter per se. The user defined hook function is passed only the checkin metadata. Any changes made to the metadata will not be reflected in the output of the plugin's or shortcode's map, nor will any return value from the hook function be honoured by the plugin. The filter will be called before the
wp_quadratum_strapline
filter, if used, allowing you to store the checkin contents and use them within the
wp_quadratum_strapline
filter hook.
The contents of the checkin data this filter can access are a
Checkin Response
object, which is documented on the
Foursquare Developer Site.
Example: Store the contents of the Foursquare checkin that the plugin will be to display the checkin map
[php]
$last_checkin = null;
add_filter('wp_quadratum_checkin', store_last_checkin, 10, 1);
function store_last_checkin($checkin) {
$last_checkin = $checkin;
}
[/php]
wp_quadratum_strapline
Applied to the strapline that is displayed via the plugin's widget or shortcode. The strapline is the text that appears immediately below the checkin map.
Example: Change the date and time formatting in the strapline
[php]
add_filter('wp_quadratum_strapline', 'format_strapline', 10, 2);
function format_strapline($content, $params) {
// $params = array (
// 'venue-url' => '4Sq venue url for checkin',
// 'venue-name' => 'checkin venue name',
// 'checked-in-at' => 'timestamp of checkin'
// );
$strapline = '<h5>Last seen at <a href="' . $params['venue-url'] . '" target="_blank">' . $params['venue-name'] . '</a> on ' . date('l jS of F Y h:i:s A', $params['checked-in-at']) . '</h5>';
return $strapline;
}
[/php]
wp_quadratum_locality
Applied to the replacement content of the
[wp_scs][wp_quadratum_locality][/wp_scs]
shortcode immediately before the shortcode is replaced. The filter's hook function is passed two arguments; the shortcode's value and corresponding
type
attribute.
Example: Wrap each invocation of the [wp_scs][wp_quadratum_locality][/wp_scs]
shortcode in a div
whose class includes the attribute type
[php]
add_filter('wp_quadratum_locality', 'format_locality', 10, 2);
function format_locality($value, $type) {
$class = 'wp-quadratum-locality-' . $type;
return '<div class="' . $class . '>' . $value . '</div>';
}
[/php]
What's Changed?
The current version is 1.3.1 (2013.11.22)
v1.3.1
- Released: 2013.11.22
- Added: Caching of last good response from the Foursquare API, allowing the plugin to operate if the API is temporarily down.
- Added: New locality shortcodes,
[wp_scs][wp_quadratum_locality][/wp_scs]
(and [wp_scs][wpq_locality][/wp_scs]
as an alias) to allow the last checkin's venue name, address, region, postal code, coordinates, timezone and/or timezone offset to be embedded in posts or pages.
- Added: New checkin map shortcodes,
[wp_scs][wp_quadratum_map][/wp_scs]
and [wp_scs][wpq_map][/wp_scs]
as aliases for the plugin's [wp_scs][wp_quadratum][/wp_scs]
shortcode.
- Added: Ability for the plugin's shortcodes to be made configurable, on and off.
- Added: Ability to backfill the response of the Foursquare API, via Factual's reverse geocoder, to cope with cases when a Foursquare venue doesn't have a complete set of metadata attributes to be used in conjunction with the locality shortcodes.
- Added: New filter,
wp_quadratum_locality
, to filter and amend the output of the [wp_quadratum_locality]
shortcode.
- Fixed: Detect and trap an invalid or empty response from the Foursquare API, preventing numerous PHP warnings from polluting a post or page.
- Other: Fully compatible with WordPress v3.7 "Basie".
v1.3.0
- Released: 2013.08.23
- Added: Support for HERE, Leaflet, MapQuest Open and Bing maps.
- Added: All maps API JS now loads in the page footer to speed up overall page loading times.
- Added: Support for a new filter,
wp_quadratum_checkin
giving full access to all the Foursquare checkin metadata that the Foursquare API returns.
- Added: Support for specifying the height and width of the map as a percentage as well as in px.
- Fixed: Update the admin 'Foursquare' tab to use the new app registration URL. Adjust the help text to reflect the new app registration layout on
foursquare.com/developers/register
.
- Fixed: Updated Mapstraction support to pull JS code from
mapstraction.com
rather than github.com/mapstraction/mxn
to work around new GitHub content serving policies.
- Removed: Support for filtering out private checkins; the Foursquare API no longer supports this.
- Removed: Support for the CloudMade maps API; this has now been superseded by Leaflet maps.
- Removed: Support for the Nokia maps API; this has now been superseded by HERE maps.
- Removed: Support for authenticating Nokia maps via WP Nokia Auth; Nokia maps are now superseded by HERE maps.
- Removed: Support for the
Widget ID
field from the plugin's widget; the plugin now uses the WordPress assigned widget instance.
- Other: Transitioned to
WP_Mapstraction
from WP_MXNHelper
.
v1.2.0
- Released: 2012.11.06
- Added: Support for the
wp_quadratum_strapline
filter.
- Added: Enqueue non-minified versions of the plugin's CSS and JS files if
WP_DEBUG
or WPQUADRATUM_DEBUG
are defined.
- Other: Updated to latest versions of
WP_PluginBase
and WP_MXNHelper
.
- Other: Moved all submodule classes/libraries from the plugin's root directory to
/includes
.
v1.1.0
- Released: 2012.07.01
- Added: Support for Nokia, CloudMade, Google and OpenLayers maps via Mapstraction
- Added: Split plugin settings and options into Foursquare, Maps, Defaults and Colophon tabs
- Added:
[wp_scs][wp_quadratum][/wp_scs]
shortcode to allow a checkin map to be embedded in posts and pages.
- Fixed: Support for Internet Explorer compatibility for Nokia Maps.
v1.0.2
- Summary: Minor fixes to widget HTML structure
- Fixed: Non W3C/HTML4 compliant widget code which caused the map not to be displayed when viewed with Internet Explorer
v1.0.1
- Summary: Minor fixes to PHP base class.
- Fixed: An issue with an old version of
WP_PluginBase
, the PHP class which WP Quadratum extends.
v1.0
- First version of WP Quadratum released