Version Description
- Bugfix: fix issue with Server side share count option
Download this release
Release Info
| Developer | hngu_shareaholic |
| Plugin | |
| Version | 7.6.1.7 |
| Comparing to | |
| See all releases | |
Code changes from version 7.6.1.6 to 7.6.1.7
- public.php +2 -3
- public_js.php +18 -87
- readme.txt +8 -2
- shareaholic.php +3 -3
- templates/script_tag.php +3 -2
- utilities.php +13 -2
public.php
CHANGED
|
@@ -60,10 +60,9 @@ class ShareaholicPublic {
|
|
| 60 |
if (ShareaholicUtilities::has_accepted_terms_of_service() &&
|
| 61 |
ShareaholicUtilities::get_or_create_api_key()) {
|
| 62 |
ShareaholicUtilities::load_template('script_tag', array(
|
| 63 |
-
'shareaholic_url' => Shareaholic::URL,
|
| 64 |
'api_key' => ShareaholicUtilities::get_option('api_key'),
|
| 65 |
-
'
|
| 66 |
-
'
|
| 67 |
));
|
| 68 |
}
|
| 69 |
}
|
| 60 |
if (ShareaholicUtilities::has_accepted_terms_of_service() &&
|
| 61 |
ShareaholicUtilities::get_or_create_api_key()) {
|
| 62 |
ShareaholicUtilities::load_template('script_tag', array(
|
|
|
|
| 63 |
'api_key' => ShareaholicUtilities::get_option('api_key'),
|
| 64 |
+
'base_settings' => ShareaholicPublicJS::get_base_settings(),
|
| 65 |
+
'overrides' => ShareaholicPublicJS::get_overrides()
|
| 66 |
));
|
| 67 |
}
|
| 68 |
}
|
public_js.php
CHANGED
|
@@ -13,108 +13,39 @@
|
|
| 13 |
*/
|
| 14 |
class ShareaholicPublicJS {
|
| 15 |
|
| 16 |
-
/**
|
| 17 |
-
* Gets the page configuration to be used by shareaholic.js
|
| 18 |
-
*
|
| 19 |
-
* This function returns a string representation of the page config object
|
| 20 |
-
* which will be consumed by the shareaholic javascript.
|
| 21 |
-
*
|
| 22 |
-
* @return string The stringified version of the page config
|
| 23 |
-
*/
|
| 24 |
-
public static function get_page_config() {
|
| 25 |
-
$config = self::get_base_settings();
|
| 26 |
-
$config['apps'] = array();
|
| 27 |
-
$functions_map = self::get_function_definitions();
|
| 28 |
-
$share_buttons = self::get_share_buttons_config();
|
| 29 |
-
|
| 30 |
-
// if all the configurations are empty, return an empty JS object
|
| 31 |
-
if(empty($share_buttons)) {
|
| 32 |
-
return '{}';
|
| 33 |
-
}
|
| 34 |
-
|
| 35 |
-
$config['apps']['share_buttons'] = $share_buttons;
|
| 36 |
-
|
| 37 |
-
// Get the json representation of the page configuration
|
| 38 |
-
$json_string = json_encode($config);
|
| 39 |
-
|
| 40 |
-
// Now iterate through the function mapping and do a string replace
|
| 41 |
-
foreach($functions_map as $placeholder => $implementation) {
|
| 42 |
-
$json_string = str_replace('"' . $placeholder . '"', $implementation, $json_string);
|
| 43 |
-
}
|
| 44 |
-
return $json_string;
|
| 45 |
-
}
|
| 46 |
-
|
| 47 |
-
|
| 48 |
/**
|
| 49 |
* Return a base set of settings for the Shareaholic JS or Publisher SDK
|
| 50 |
*/
|
| 51 |
public static function get_base_settings() {
|
| 52 |
-
|
| 53 |
'endpoints' => array(
|
| 54 |
-
'local_recs_url' => admin_url('admin-ajax.php') . '?action=shareaholic_permalink_related'
|
| 55 |
-
'share_counts_url' => admin_url('admin-ajax.php') . '?action=shareaholic_share_counts_api'
|
| 56 |
)
|
| 57 |
);
|
| 58 |
-
}
|
| 59 |
-
|
| 60 |
-
/**
|
| 61 |
-
* Get the share_buttons configuration to be used by Shareaholic.js
|
| 62 |
-
*
|
| 63 |
-
* This function returns an object for the share buttons configuration
|
| 64 |
-
* which will be consumed by Shareaholic.js
|
| 65 |
-
*
|
| 66 |
-
* @return array an associative array of configuration for share buttons
|
| 67 |
-
*/
|
| 68 |
-
public static function get_share_buttons_config() {
|
| 69 |
-
$share_buttons = array();
|
| 70 |
$disable_share_counts_api = ShareaholicUtilities::get_option('disable_internal_share_counts_api');
|
| 71 |
$share_counts_connect_check = ShareaholicUtilities::get_option('share_counts_connect_check');
|
| 72 |
-
|
| 73 |
if (isset($disable_share_counts_api)) {
|
| 74 |
if (isset($share_counts_connect_check) && $share_counts_connect_check == 'SUCCESS' && $disable_share_counts_api != 'on') {
|
| 75 |
-
$
|
| 76 |
}
|
| 77 |
}
|
| 78 |
-
return $share_buttons;
|
| 79 |
-
}
|
| 80 |
|
| 81 |
-
|
| 82 |
-
* Get the mapping of function placeholder to function implementation
|
| 83 |
-
*
|
| 84 |
-
* This function will return a mapping of a function placeholder to
|
| 85 |
-
* the function implementation. This is necessary so that we can send
|
| 86 |
-
* functions along to the JS side since json_encode cannot encode functions
|
| 87 |
-
*
|
| 88 |
-
* @return array an associative array of function placeholder to function implementation
|
| 89 |
-
*/
|
| 90 |
-
public static function get_function_definitions() {
|
| 91 |
-
return array(
|
| 92 |
-
'%get_share_counts%' => self::get_share_counts_function(),
|
| 93 |
-
);
|
| 94 |
}
|
| 95 |
|
| 96 |
-
|
| 97 |
-
|
| 98 |
-
|
| 99 |
-
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
| 104 |
-
function(url, services, cb) {
|
| 105 |
-
Shareaholic.Utils.ajax({
|
| 106 |
-
cache: true,
|
| 107 |
-
cache_ttl: '1 minute',
|
| 108 |
-
url: '$ajax_url',
|
| 109 |
-
data: { action: 'shareaholic_share_counts_api', url: url, services: services },
|
| 110 |
-
success: function(res) {
|
| 111 |
-
if(res && res.data) {
|
| 112 |
-
cb(res.data, true);
|
| 113 |
-
}
|
| 114 |
-
}
|
| 115 |
-
})
|
| 116 |
-
}
|
| 117 |
DOC;
|
| 118 |
-
|
| 119 |
-
|
|
|
|
|
|
|
|
|
|
| 120 |
}
|
| 13 |
*/
|
| 14 |
class ShareaholicPublicJS {
|
| 15 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 16 |
/**
|
| 17 |
* Return a base set of settings for the Shareaholic JS or Publisher SDK
|
| 18 |
*/
|
| 19 |
public static function get_base_settings() {
|
| 20 |
+
$base_settings = array(
|
| 21 |
'endpoints' => array(
|
| 22 |
+
'local_recs_url' => admin_url('admin-ajax.php') . '?action=shareaholic_permalink_related'
|
|
|
|
| 23 |
)
|
| 24 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
$disable_share_counts_api = ShareaholicUtilities::get_option('disable_internal_share_counts_api');
|
| 26 |
$share_counts_connect_check = ShareaholicUtilities::get_option('share_counts_connect_check');
|
| 27 |
+
|
| 28 |
if (isset($disable_share_counts_api)) {
|
| 29 |
if (isset($share_counts_connect_check) && $share_counts_connect_check == 'SUCCESS' && $disable_share_counts_api != 'on') {
|
| 30 |
+
$base_settings['endpoints']['share_counts_url'] = admin_url('admin-ajax.php') . '?action=shareaholic_share_counts_api';
|
| 31 |
}
|
| 32 |
}
|
|
|
|
|
|
|
| 33 |
|
| 34 |
+
return $base_settings;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 35 |
}
|
| 36 |
|
| 37 |
+
public static function get_overrides() {
|
| 38 |
+
$output = '';
|
| 39 |
+
|
| 40 |
+
if (ShareaholicUtilities::get_env() === 'staging') {
|
| 41 |
+
$output = <<< DOC
|
| 42 |
+
shr.setAttribute('data-shr-environment', 'stage');
|
| 43 |
+
shr.setAttribute('data-shr-assetbase', '//cdn-staging-shareaholic.s3.amazonaws.com/v2/');
|
| 44 |
+
shr.src = '//cdn-staging-shareaholic.s3.amazonaws.com/assets/pub/shareaholic.js';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 45 |
DOC;
|
| 46 |
+
}
|
| 47 |
+
|
| 48 |
+
return $output;
|
| 49 |
+
}
|
| 50 |
+
|
| 51 |
}
|
readme.txt
CHANGED
|
@@ -2,8 +2,8 @@
|
|
| 2 |
Contributors: shareaholic
|
| 3 |
Tags: sexybookmarks, shareaholic, shareholic, recommendations, related content, cookie consent, share buttons, email button, social sharing, social bookmarking, share image, image sharing, follow buttons, floated share buttons, analytics, social media, social plugin
|
| 4 |
Requires at least: 3.0
|
| 5 |
-
Tested up to: 4.2.
|
| 6 |
-
Stable tag: 7.6.1.
|
| 7 |
|
| 8 |
The easiest, most effective way to grow your website traffic, effectively engage your audience, monetize, and gain insights for free.
|
| 9 |
|
|
@@ -170,6 +170,9 @@ Please see here: [Usage & Installation Instructions](http://support.shareaholic.
|
|
| 170 |
|
| 171 |
== Changelog ==
|
| 172 |
|
|
|
|
|
|
|
|
|
|
| 173 |
= 7.6.1.6 =
|
| 174 |
* Enhancement: remove analytics option from Advanced Settings page
|
| 175 |
|
|
@@ -1210,6 +1213,9 @@ Please see here: [Usage & Installation Instructions](http://support.shareaholic.
|
|
| 1210 |
|
| 1211 |
== Upgrade Notice ==
|
| 1212 |
|
|
|
|
|
|
|
|
|
|
| 1213 |
= 7.6.1.6 =
|
| 1214 |
* Enhancement: remove analytics option from Advanced Settings page
|
| 1215 |
|
| 2 |
Contributors: shareaholic
|
| 3 |
Tags: sexybookmarks, shareaholic, shareholic, recommendations, related content, cookie consent, share buttons, email button, social sharing, social bookmarking, share image, image sharing, follow buttons, floated share buttons, analytics, social media, social plugin
|
| 4 |
Requires at least: 3.0
|
| 5 |
+
Tested up to: 4.2.2
|
| 6 |
+
Stable tag: 7.6.1.7
|
| 7 |
|
| 8 |
The easiest, most effective way to grow your website traffic, effectively engage your audience, monetize, and gain insights for free.
|
| 9 |
|
| 170 |
|
| 171 |
== Changelog ==
|
| 172 |
|
| 173 |
+
= 7.6.1.7 =
|
| 174 |
+
* Bugfix: fix issue with Server side share count option
|
| 175 |
+
|
| 176 |
= 7.6.1.6 =
|
| 177 |
* Enhancement: remove analytics option from Advanced Settings page
|
| 178 |
|
| 1213 |
|
| 1214 |
== Upgrade Notice ==
|
| 1215 |
|
| 1216 |
+
= 7.6.1.7 =
|
| 1217 |
+
* Bugfix: fix issue with Server side share count option
|
| 1218 |
+
|
| 1219 |
= 7.6.1.6 =
|
| 1220 |
* Enhancement: remove analytics option from Advanced Settings page
|
| 1221 |
|
shareaholic.php
CHANGED
|
@@ -3,14 +3,14 @@
|
|
| 3 |
* The main file!
|
| 4 |
*
|
| 5 |
* @package shareaholic
|
| 6 |
-
* @version 7.6.1.
|
| 7 |
*/
|
| 8 |
|
| 9 |
/*
|
| 10 |
Plugin Name: Shareaholic | share buttons, analytics, related content
|
| 11 |
Plugin URI: https://shareaholic.com/publishers/
|
| 12 |
Description: Whether you want to get people sharing, grow your fans, make money, or know who's reading your content, Shareaholic will help you get it done. See <a href="admin.php?page=shareaholic-settings">configuration panel</a> for more settings.
|
| 13 |
-
Version: 7.6.1.
|
| 14 |
Author: Shareaholic
|
| 15 |
Author URI: https://shareaholic.com
|
| 16 |
Text Domain: shareaholic
|
|
@@ -64,7 +64,7 @@ if (!class_exists('Shareaholic')) {
|
|
| 64 |
const CM_API_URL = 'https://cm-web.shareaholic.com'; // uses static IPs for firewall whitelisting
|
| 65 |
const REC_API_URL = 'http://recommendations.shareaholic.com';
|
| 66 |
|
| 67 |
-
const VERSION = '7.6.1.
|
| 68 |
|
| 69 |
/**
|
| 70 |
* Starts off as false so that ::get_instance() returns
|
| 3 |
* The main file!
|
| 4 |
*
|
| 5 |
* @package shareaholic
|
| 6 |
+
* @version 7.6.1.7
|
| 7 |
*/
|
| 8 |
|
| 9 |
/*
|
| 10 |
Plugin Name: Shareaholic | share buttons, analytics, related content
|
| 11 |
Plugin URI: https://shareaholic.com/publishers/
|
| 12 |
Description: Whether you want to get people sharing, grow your fans, make money, or know who's reading your content, Shareaholic will help you get it done. See <a href="admin.php?page=shareaholic-settings">configuration panel</a> for more settings.
|
| 13 |
+
Version: 7.6.1.7
|
| 14 |
Author: Shareaholic
|
| 15 |
Author URI: https://shareaholic.com
|
| 16 |
Text Domain: shareaholic
|
| 64 |
const CM_API_URL = 'https://cm-web.shareaholic.com'; // uses static IPs for firewall whitelisting
|
| 65 |
const REC_API_URL = 'http://recommendations.shareaholic.com';
|
| 66 |
|
| 67 |
+
const VERSION = '7.6.1.7';
|
| 68 |
|
| 69 |
/**
|
| 70 |
* Starts off as false so that ::get_instance() returns
|
templates/script_tag.php
CHANGED
|
@@ -8,12 +8,13 @@
|
|
| 8 |
shr.setAttribute('data-cfasync', 'false');
|
| 9 |
shr.src = '<?php echo ShareaholicUtilities::asset_url('assets/pub/shareaholic.js') ?>';
|
| 10 |
shr.type = 'text/javascript'; shr.async = 'true';
|
|
|
|
|
|
|
| 11 |
shr.onload = shr.onreadystatechange = function() {
|
| 12 |
var rs = this.readyState;
|
| 13 |
if (rs && rs != 'complete' && rs != 'loaded') return;
|
| 14 |
var site_id = '<?php echo $api_key; ?>';
|
| 15 |
-
|
| 16 |
-
try { Shareaholic.init(site_id, page_config); } catch (e) {}
|
| 17 |
};
|
| 18 |
var s = document.getElementsByTagName('script')[0];
|
| 19 |
s.parentNode.insertBefore(shr, s);
|
| 8 |
shr.setAttribute('data-cfasync', 'false');
|
| 9 |
shr.src = '<?php echo ShareaholicUtilities::asset_url('assets/pub/shareaholic.js') ?>';
|
| 10 |
shr.type = 'text/javascript'; shr.async = 'true';
|
| 11 |
+
<?php echo $overrides; ?>
|
| 12 |
+
|
| 13 |
shr.onload = shr.onreadystatechange = function() {
|
| 14 |
var rs = this.readyState;
|
| 15 |
if (rs && rs != 'complete' && rs != 'loaded') return;
|
| 16 |
var site_id = '<?php echo $api_key; ?>';
|
| 17 |
+
try { Shareaholic.init(site_id); } catch (e) {}
|
|
|
|
| 18 |
};
|
| 19 |
var s = document.getElementsByTagName('script')[0];
|
| 20 |
s.parentNode.insertBefore(shr, s);
|
utilities.php
CHANGED
|
@@ -361,14 +361,25 @@ class ShareaholicUtilities {
|
|
| 361 |
* @return string
|
| 362 |
*/
|
| 363 |
public static function asset_url($asset) {
|
| 364 |
-
|
|
|
|
| 365 |
return "http://spreadaholic.com:8080/" . $asset;
|
| 366 |
-
} elseif (
|
| 367 |
return '//d2062rwknz205x.cloudfront.net/' . $asset;
|
| 368 |
} else {
|
| 369 |
return '//dsms0mj1bbhn4.cloudfront.net/' . $asset;
|
| 370 |
}
|
| 371 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 372 |
|
| 373 |
/**
|
| 374 |
* Returns the appropriate asset path for environment - admin
|
| 361 |
* @return string
|
| 362 |
*/
|
| 363 |
public static function asset_url($asset) {
|
| 364 |
+
$env = self::get_env();
|
| 365 |
+
if ($env === 'development') {
|
| 366 |
return "http://spreadaholic.com:8080/" . $asset;
|
| 367 |
+
} elseif ($env === 'staging') {
|
| 368 |
return '//d2062rwknz205x.cloudfront.net/' . $asset;
|
| 369 |
} else {
|
| 370 |
return '//dsms0mj1bbhn4.cloudfront.net/' . $asset;
|
| 371 |
}
|
| 372 |
}
|
| 373 |
+
|
| 374 |
+
public static function get_env() {
|
| 375 |
+
if (preg_match('/spreadaholic/', Shareaholic::URL)) {
|
| 376 |
+
return 'development';
|
| 377 |
+
} elseif (preg_match('/stageaholic/', Shareaholic::URL)) {
|
| 378 |
+
return 'staging';
|
| 379 |
+
} else {
|
| 380 |
+
return 'production';
|
| 381 |
+
}
|
| 382 |
+
}
|
| 383 |
|
| 384 |
/**
|
| 385 |
* Returns the appropriate asset path for environment - admin
|
