Well, for this we will use here a little Javascript to achieve the desired:
- First let’s create a variable -
pageUrl
which will contain the link to
URL
- Then we will create a function that will convert large numbers, the
start from
10,000
Shares for - 10 mil
Shares. As well as
for example Stack Overflow does it in several community sites.
(In this example how we will be using the jsFiddle.net
we won’t go
can see this transformation, but if we change the url to -
https://twitter.com/ for example, we will already be able to see this
conversion into action)
- And finally we will get the total number of
likes
and shares
that the URL obtained using - Facebook Graph API, Twitter API
The code for Facebook will look something like in the example below:
Custom counter for Facebook
var pageUrl = "http://jsfiddle.net/";
// Isto converte números a partir de "10,000" para - "10 mil"
function formatCount(count) {
var countK = count / 1000;
if (countK < 1) {
return count;
} else if (countK < 10) {
var countStr = count + "";
return [countStr.substr(0, 1), countStr.substr(1, 3)].join(",");
} else {
return (Math.floor(countK * 10) / 10) + " mil";
}
}
$.ajax({
url: "https://graph.facebook.com/?ids=" + pageUrl,
success: function(data) {
if (data && data[pageUrl] && data[pageUrl].shares) {
$(".share-badge.facebook p").html(formatCount(data[pageUrl].shares));
}
$(".share-overlay").addClass("fb-ready");
},
error: function() { $(".share-overlay").addClass("fb-ready"); }
});
Then just add the HTML that will be something like:
<div class="share-badge facebook">
<a href="https://www.facebook.com/sharer/sharer.php?u=http://jsfiddle.net/" onclick="popUp=window.open(http://www.facebook.com/sharer.php?u=http://jsfiddle.net/, popupwindow, scrollbars=yes,width=800,height=400);popUp.focus();return false">
<div class="socialIcon fbIcon"></div>
</a>
<div class="detalhes">
<span class="socialText">Partilhas do jsFiddle.net no Facebook</span>
<p class="socialCounter">0</p>
</div>
<div class="clear"></div>
</div>
Online example in jsFiddle: http://jsfiddle.net/3Lgrq51o/
Custom counter for Twitter
$.ajax({
url: "https://cdn.api.twitter.com/1/urls/count.json?url=" + pageUrl,
dataType: "jsonp",
success: function(data) {
if (data && data.count) {
$(".share-badge.twitter p").html(formatCount(data.count));
}
$(".share-overlay").addClass("twitter-ready");
},
error: function() { $(".share-overlay").addClass("twitter-ready"); }
});
<div class="share-badge twitter">
<a href="https://twitter.com/share?url=http://jsfiddle.net/&text=&related=vineapp">
<div class="socialIcon TwitterIcon"></div>
</a>
<div class="detalhes">
<span class="socialText">Partilhas do jsFiddle.net no Twitter</span>
<p class="socialCounter">0</p>
</div>
<div class="clear"></div>
</div>
Final jsFiddle example with both codes all together + share codes added: http://jsfiddle.net/9t6xgj04/
JS Code Credits - Redkings