rsocialize 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +4 -1
- data/CHANGELOG.md +13 -0
- data/Gemfile +3 -0
- data/README.md +3 -2
- data/lib/div_template.rb +63 -0
- data/lib/example_options.rb +110 -0
- data/lib/generators/rsocialize/install_generator.rb +1 -0
- data/lib/generators/rsocialize/templates/jquery.sharrre-1.3.5.min.js +7 -0
- data/lib/generators/rsocialize/uninstall_generator.rb +2 -2
- data/lib/rsocialize.rb +20 -164
- data/lib/rsocialize/version.rb +1 -1
- data/rsocialize.gemspec +2 -1
- data/spec/spec_helper.rb +3 -2
- metadata +24 -7
- data/lib/generators/rsocialize/templates/jquery.sharrre-1.3.4.min.js +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 24b5f4ca6d4c8a220a936de6166c7d55fa099106
|
4
|
+
data.tar.gz: 4a4b8389ea3765553d2e66c3bed26b1e72eea109
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 615e42ef4dbdd40c39ff7a63dfc8707cd28385d0b7e39915355e5b85e7cc8ffbb5dd69605e2ed812afa0c641f6e7d36b59769fc51fd0d30748c415fe22310719
|
7
|
+
data.tar.gz: 1078f3ea007b03be958d206908ef98b1dfdb25fb83f0ce1485a96183f395ff8823759b86a9d05e6f45de13dc3226e51eb0e22a8f85c16d857203b848fc62cdf0
|
data/.gitignore
CHANGED
data/CHANGELOG.md
ADDED
data/Gemfile
ADDED
data/README.md
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
-
[![Code Climate](https://codeclimate.com/github/treble37/rsocialize
|
1
|
+
[![Code Climate](https://codeclimate.com/github/treble37/rsocialize/badges/gpa.svg)](https://codeclimate.com/github/treble37/rsocialize)
|
2
2
|
|
3
3
|
##Help contribute to the development & maintenance of this gem via GitTip:
|
4
|
-
|
4
|
+
|
5
|
+
[![Gratipay](https://img.shields.io/gratipay/treble37.svg)](https://gratipay.com/treble37/)
|
5
6
|
|
6
7
|
Hey Internet, I make most of my money during the day by working just like everyone else, so seeing a donation really helps motivate me to keep improving this gem. Even if you don't donate, please feel free to leave me feedback / feature requests / issues via the Github issues.
|
7
8
|
|
data/lib/div_template.rb
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
class DivTemplate
|
2
|
+
attr_accessor :options
|
3
|
+
|
4
|
+
def initialize(opts={})
|
5
|
+
@options = {}
|
6
|
+
@options.merge!(opts)
|
7
|
+
end
|
8
|
+
|
9
|
+
end
|
10
|
+
|
11
|
+
class Example1 < DivTemplate
|
12
|
+
def div_str
|
13
|
+
%Q{
|
14
|
+
<div id="example1">
|
15
|
+
<div id="twitter" data-url="#{options[:twitter][:url]}" data-text="#{options[:twitter][:text]}" data-title="#{options[:twitter][:title]}"></div>
|
16
|
+
<div id="facebook" data-url="#{options[:facebook][:url]}" data-text="#{options[:facebook][:text]}" data-title="#{options[:facebook][:title]}"></div>
|
17
|
+
<div id="googleplus" data-url="#{options[:googleplus][:url]}" data-text="#{options[:googleplus][:text]}" data-title="#{options[:googleplus][:title]}"></div>
|
18
|
+
</div>
|
19
|
+
}.html_safe
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
class Example2 < DivTemplate
|
24
|
+
def div_str
|
25
|
+
%Q{
|
26
|
+
<div id="#{options[:div_template]}">
|
27
|
+
<div id="shareme" data-url="#{options[:url]}" data-text="#{options[:text]}"></div>
|
28
|
+
</div>
|
29
|
+
}.html_safe
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
class Example5 < DivTemplate
|
34
|
+
def div_str
|
35
|
+
%Q{
|
36
|
+
<div id="#{options[:div_template]}">
|
37
|
+
<div id="shareme" data-url="#{options[:url]}" data-text="#{options[:text]}"></div>
|
38
|
+
</div>
|
39
|
+
}.html_safe
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
class Example3 < DivTemplate
|
44
|
+
def div_str
|
45
|
+
%Q{
|
46
|
+
<div id="example3">
|
47
|
+
<div id="shareme" data-url="#{options[:url]}" data-text="#{options[:text]}" data-title="#{options[:title]}"></div>
|
48
|
+
</div>
|
49
|
+
}.html_safe
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
class Example6 < DivTemplate
|
54
|
+
def div_str
|
55
|
+
%Q{
|
56
|
+
<div id="example6">
|
57
|
+
<div id="twitter" data-url="#{options[:twitter][:url]}" data-text="#{options[:twitter][:text]}"></div>
|
58
|
+
<div id="facebook" data-url="#{options[:facebook][:url]}" data-text="#{options[:facebook][:text]}"></div>
|
59
|
+
<div id="googleplus" data-url="#{options[:googleplus][:url]}" data-text="#{options[:googleplus][:text]}"></div>
|
60
|
+
</div>
|
61
|
+
}.html_safe
|
62
|
+
end
|
63
|
+
end
|
@@ -0,0 +1,110 @@
|
|
1
|
+
JQUERY_SHARRRE_FILE = "jquery.sharrre-1.3.5.min.js"
|
2
|
+
|
3
|
+
EXAMPLE1_JS_OPTIONS = {
|
4
|
+
:twitter=>{:share=>{:twitter=>true},:enableHover=>false, :enableTracking=>true, :buttons=>{:twitter=>{:via=>'_JulienH'}},:click=>%Q[function(api, options){
|
5
|
+
api.simulateClick();
|
6
|
+
api.openPopup('twitter');} ]
|
7
|
+
},
|
8
|
+
:facebook=>{:share=>{:facebook=>true}, :enableHover=>false, :enableTracking=>true, :click=>%Q[function(api, options){
|
9
|
+
api.simulateClick();
|
10
|
+
api.openPopup('facebook');}
|
11
|
+
]
|
12
|
+
},
|
13
|
+
:googlePlus=>{:share=>{:googlePlus=>true},:enableHover=>false, :enableTracking=>true, :click=>%Q[function(api, options){
|
14
|
+
api.simulateClick();
|
15
|
+
api.openPopup('googlePlus');} ]
|
16
|
+
}
|
17
|
+
}
|
18
|
+
EXAMPLE2_JS_OPTIONS = {
|
19
|
+
shareme: {
|
20
|
+
share: {
|
21
|
+
twitter: true,
|
22
|
+
facebook: true,
|
23
|
+
googlePlus: true
|
24
|
+
},
|
25
|
+
template: %Q{<div class="box"><div class="left">Share</div><div class="middle"><a href="#" class="facebook">f</a><a href="#" class="twitter">t</a><a href="#" class="googleplus">+1</a></div><div class="right">{total}</div></div>},
|
26
|
+
enableHover: false,
|
27
|
+
enableTracking: true,
|
28
|
+
render: %Q[function(api, options){
|
29
|
+
$(api.element).on('click', '.twitter', function() {
|
30
|
+
api.openPopup('twitter');
|
31
|
+
});
|
32
|
+
$(api.element).on('click', '.facebook', function() {
|
33
|
+
api.openPopup('facebook');
|
34
|
+
});
|
35
|
+
$(api.element).on('click', '.googleplus', function() {
|
36
|
+
api.openPopup('googlePlus');
|
37
|
+
});
|
38
|
+
}]
|
39
|
+
}
|
40
|
+
}
|
41
|
+
EXAMPLE3_JS_OPTIONS = {
|
42
|
+
shareme: {
|
43
|
+
share: {
|
44
|
+
googlePlus: true,
|
45
|
+
facebook: true,
|
46
|
+
twitter: true,
|
47
|
+
digg: true,
|
48
|
+
delicious: true
|
49
|
+
},
|
50
|
+
enableTracking: true,
|
51
|
+
buttons: {
|
52
|
+
googlePlus: {size: 'tall'},
|
53
|
+
facebook: {layout: 'box_count'},
|
54
|
+
twitter: {count: 'vertical'},
|
55
|
+
digg: {type: 'DiggMedium'},
|
56
|
+
delicious: {size: 'tall'}
|
57
|
+
},
|
58
|
+
hover: %Q[function(api, options){
|
59
|
+
$(api.element).find('.buttons').show();
|
60
|
+
}],
|
61
|
+
hide: %Q[function(api, options){
|
62
|
+
$(api.element).find('.buttons').hide();
|
63
|
+
}]
|
64
|
+
}
|
65
|
+
}
|
66
|
+
EXAMPLE5_JS_OPTIONS = {
|
67
|
+
shareme: {
|
68
|
+
share: {
|
69
|
+
googlePlus: true,
|
70
|
+
facebook: true,
|
71
|
+
twitter: true,
|
72
|
+
digg: true,
|
73
|
+
delicious: true,
|
74
|
+
stumbleupon: true,
|
75
|
+
linkedin: true,
|
76
|
+
pinterest: true
|
77
|
+
},
|
78
|
+
buttons: {
|
79
|
+
googlePlus: {size: 'tall'},
|
80
|
+
facebook: {layout: 'box_count'},
|
81
|
+
twitter: {count: 'vertical'},
|
82
|
+
digg: {type: 'DiggMedium'},
|
83
|
+
delicious: {size: 'tall'},
|
84
|
+
stumbleupon: {layout: '5'},
|
85
|
+
linkedin: {counter: 'top'},
|
86
|
+
pinterest: {media: 'http://sharrre.com/img/example1.png', description: %Q{$('#shareme').data('text'), layout: 'vertical'}}
|
87
|
+
},
|
88
|
+
enableHover: false,
|
89
|
+
enableCounter: false,
|
90
|
+
enableTracking: true
|
91
|
+
}
|
92
|
+
}
|
93
|
+
|
94
|
+
EXAMPLE6_JS_OPTIONS ={
|
95
|
+
:twitter=>{:share=>{:twitter=>true},:template=>%Q{<a class="box" href="#"><div class="count" href="#">{total}</div><div class="share"><span></span>Tweet</div></a>}, :enableHover=>false, :enableTracking=>true, :buttons =>{ twitter: {via: '_JulienH'}}, :click=>%Q[function(api, options){
|
96
|
+
api.simulateClick();
|
97
|
+
api.openPopup('twitter');}
|
98
|
+
]
|
99
|
+
},
|
100
|
+
:facebook=> {:share=>{:facebook=>true},:template=>%Q{<a class="box" href="#"><div class="count" href="#">{total}</div><div class="share"><span></span>Like</div></a>}, :enableHover=>false, :enableTracking=>true, :click=>%Q[function(api, options){
|
101
|
+
api.simulateClick();
|
102
|
+
api.openPopup('facebook');}
|
103
|
+
]
|
104
|
+
},
|
105
|
+
:googlePlus=>{:share=>{:googlePlus=>true},:template=>%Q{<a class="box" href="#"><div class="count" href="#">{total}</div><div class="share"><span></span>+1</div></a>}, :enableHover=>false, :enableTracking=>true, :click=>%Q[function(api, options){
|
106
|
+
api.simulateClick();
|
107
|
+
api.openPopup('googlePlus');}
|
108
|
+
]
|
109
|
+
}
|
110
|
+
}
|
@@ -16,6 +16,7 @@ module Rsocialize
|
|
16
16
|
copy_file %Q{#{Rsocialize::JQUERY_SHARRRE_FILE}}, %Q{app/assets/javascripts/#{Rsocialize::JQUERY_SHARRRE_FILE}}
|
17
17
|
copy_file 'rsocialize_controller.rb', 'app/lib/rsocialize_controller.rb'
|
18
18
|
directory 'images', 'app/assets/images'
|
19
|
+
copy_file 'images/example6.png'
|
19
20
|
end
|
20
21
|
def modify_css
|
21
22
|
css_path = "app/assets/stylesheets/"+"#{css_layout_name}css.txt"
|
@@ -0,0 +1,7 @@
|
|
1
|
+
/*!
|
2
|
+
* Sharrre.com - Make your sharing widget!
|
3
|
+
* Version: beta 1.3.5
|
4
|
+
* Author: Julien Hany
|
5
|
+
* License: MIT http://en.wikipedia.org/wiki/MIT_License or GPLv2 http://en.wikipedia.org/wiki/GNU_General_Public_License
|
6
|
+
*/
|
7
|
+
;(function(g,i,j,b){var h="sharrre",f={className:"sharrre",share:{googlePlus:false,facebook:false,twitter:false,digg:false,delicious:false,stumbleupon:false,linkedin:false,pinterest:false},shareTotal:0,template:"",title:"",url:j.location.href,text:j.title,urlCurl:"sharrre.php",count:{},total:0,shorterTotal:true,enableHover:true,enableCounter:true,enableTracking:false,hover:function(){},hide:function(){},click:function(){},render:function(){},buttons:{googlePlus:{url:"",urlCount:false,size:"medium",lang:"en-US",annotation:""},facebook:{url:"",urlCount:false,action:"like",layout:"button_count",width:"",send:"false",faces:"false",colorscheme:"",font:"",lang:"en_US"},twitter:{url:"",urlCount:false,count:"horizontal",hashtags:"",via:"",related:"",lang:"en"},digg:{url:"",urlCount:false,type:"DiggCompact"},delicious:{url:"",urlCount:false,size:"medium"},stumbleupon:{url:"",urlCount:false,layout:"1"},linkedin:{url:"",urlCount:false,counter:""},pinterest:{url:"",media:"",description:"",layout:"horizontal"}}},c={googlePlus:"",facebook:"https://graph.facebook.com/fql?q=SELECT%20url,%20normalized_url,%20share_count,%20like_count,%20comment_count,%20total_count,commentsbox_count,%20comments_fbid,%20click_count%20FROM%20link_stat%20WHERE%20url=%27{url}%27&callback=?",twitter:"http://cdn.api.twitter.com/1/urls/count.json?url={url}&callback=?",digg:"http://services.digg.com/2.0/story.getInfo?links={url}&type=javascript&callback=?",delicious:"http://feeds.delicious.com/v2/json/urlinfo/data?url={url}&callback=?",stumbleupon:"",linkedin:"http://www.linkedin.com/countserv/count/share?format=jsonp&url={url}&callback=?",pinterest:"http://api.pinterest.com/v1/urls/count.json?url={url}&callback=?"},l={googlePlus:function(m){var n=m.options.buttons.googlePlus;g(m.element).find(".buttons").append('<div class="button googleplus"><div class="g-plusone" data-size="'+n.size+'" data-href="'+(n.url!==""?n.url:m.options.url)+'" data-annotation="'+n.annotation+'"></div></div>');i.___gcfg={lang:m.options.buttons.googlePlus.lang};var o=0;if(typeof gapi==="undefined"&&o==0){o=1;(function(){var p=j.createElement("script");p.type="text/javascript";p.async=true;p.src="//apis.google.com/js/plusone.js";var q=j.getElementsByTagName("script")[0];q.parentNode.insertBefore(p,q)})()}else{gapi.plusone.go()}},facebook:function(m){var n=m.options.buttons.facebook;g(m.element).find(".buttons").append('<div class="button facebook"><div id="fb-root"></div><div class="fb-like" data-href="'+(n.url!==""?n.url:m.options.url)+'" data-send="'+n.send+'" data-layout="'+n.layout+'" data-width="'+n.width+'" data-show-faces="'+n.faces+'" data-action="'+n.action+'" data-colorscheme="'+n.colorscheme+'" data-font="'+n.font+'" data-via="'+n.via+'"></div></div>');var o=0;if(typeof FB==="undefined"&&o==0){o=1;(function(t,p,u){var r,q=t.getElementsByTagName(p)[0];if(t.getElementById(u)){return}r=t.createElement(p);r.id=u;r.src="//connect.facebook.net/"+n.lang+"/all.js#xfbml=1";q.parentNode.insertBefore(r,q)}(j,"script","facebook-jssdk"))}else{FB.XFBML.parse()}},twitter:function(m){var n=m.options.buttons.twitter;g(m.element).find(".buttons").append('<div class="button twitter"><a href="https://twitter.com/share" class="twitter-share-button" data-url="'+(n.url!==""?n.url:m.options.url)+'" data-count="'+n.count+'" data-text="'+m.options.text+'" data-via="'+n.via+'" data-hashtags="'+n.hashtags+'" data-related="'+n.related+'" data-lang="'+n.lang+'">Tweet</a></div>');var o=0;if(typeof twttr==="undefined"&&o==0){o=1;(function(){var q=j.createElement("script");q.type="text/javascript";q.async=true;q.src="//platform.twitter.com/widgets.js";var p=j.getElementsByTagName("script")[0];p.parentNode.insertBefore(q,p)})()}else{g.ajax({url:"//platform.twitter.com/widgets.js",dataType:"script",cache:true})}},digg:function(m){var n=m.options.buttons.digg;g(m.element).find(".buttons").append('<div class="button digg"><a class="DiggThisButton '+n.type+'" rel="nofollow external" href="http://digg.com/submit?url='+encodeURIComponent((n.url!==""?n.url:m.options.url))+'"></a></div>');var o=0;if(typeof __DBW==="undefined"&&o==0){o=1;(function(){var q=j.createElement("SCRIPT"),p=j.getElementsByTagName("SCRIPT")[0];q.type="text/javascript";q.async=true;q.src="//widgets.digg.com/buttons.js";p.parentNode.insertBefore(q,p)})()}},delicious:function(o){if(o.options.buttons.delicious.size=="tall"){var p="width:50px;",n="height:35px;width:50px;font-size:15px;line-height:35px;",m="height:18px;line-height:18px;margin-top:3px;"}else{var p="width:93px;",n="float:right;padding:0 3px;height:20px;width:26px;line-height:20px;",m="float:left;height:20px;line-height:20px;"}var q=o.shorterTotal(o.options.count.delicious);if(typeof q==="undefined"){q=0}g(o.element).find(".buttons").append('<div class="button delicious"><div style="'+p+'font:12px Arial,Helvetica,sans-serif;cursor:pointer;color:#666666;display:inline-block;float:none;height:20px;line-height:normal;margin:0;padding:0;text-indent:0;vertical-align:baseline;"><div style="'+n+'background-color:#fff;margin-bottom:5px;overflow:hidden;text-align:center;border:1px solid #ccc;border-radius:3px;">'+q+'</div><div style="'+m+'display:block;padding:0;text-align:center;text-decoration:none;width:50px;background-color:#7EACEE;border:1px solid #40679C;border-radius:3px;color:#fff;"><img src="http://www.delicious.com/static/img/delicious.small.gif" height="10" width="10" alt="Delicious" /> Add</div></div></div>');g(o.element).find(".delicious").on("click",function(){o.openPopup("delicious")})},stumbleupon:function(m){var n=m.options.buttons.stumbleupon;g(m.element).find(".buttons").append('<div class="button stumbleupon"><su:badge layout="'+n.layout+'" location="'+(n.url!==""?n.url:m.options.url)+'"></su:badge></div>');var o=0;if(typeof STMBLPN==="undefined"&&o==0){o=1;(function(){var p=j.createElement("script");p.type="text/javascript";p.async=true;p.src="//platform.stumbleupon.com/1/widgets.js";var q=j.getElementsByTagName("script")[0];q.parentNode.insertBefore(p,q)})();s=i.setTimeout(function(){if(typeof STMBLPN!=="undefined"){STMBLPN.processWidgets();clearInterval(s)}},500)}else{STMBLPN.processWidgets()}},linkedin:function(m){var n=m.options.buttons.linkedin;g(m.element).find(".buttons").append('<div class="button linkedin"><script type="in/share" data-url="'+(n.url!==""?n.url:m.options.url)+'" data-counter="'+n.counter+'"><\/script></div>');var o=0;if(typeof i.IN==="undefined"&&o==0){o=1;(function(){var p=j.createElement("script");p.type="text/javascript";p.async=true;p.src="//platform.linkedin.com/in.js";var q=j.getElementsByTagName("script")[0];q.parentNode.insertBefore(p,q)})()}else{i.IN.init()}},pinterest:function(m){var n=m.options.buttons.pinterest;g(m.element).find(".buttons").append('<div class="button pinterest"><a href="http://pinterest.com/pin/create/button/?url='+(n.url!==""?n.url:m.options.url)+"&media="+n.media+"&description="+n.description+'" class="pin-it-button" count-layout="'+n.layout+'">Pin It</a></div>');(function(){var o=j.createElement("script");o.type="text/javascript";o.async=true;o.src="//assets.pinterest.com/js/pinit.js";var p=j.getElementsByTagName("script")[0];p.parentNode.insertBefore(o,p)})()}},d={googlePlus:function(){},facebook:function(){fb=i.setInterval(function(){if(typeof FB!=="undefined"){FB.Event.subscribe("edge.create",function(m){_gaq.push(["_trackSocial","facebook","like",m])});FB.Event.subscribe("edge.remove",function(m){_gaq.push(["_trackSocial","facebook","unlike",m])});FB.Event.subscribe("message.send",function(m){_gaq.push(["_trackSocial","facebook","send",m])});clearInterval(fb)}},1000)},twitter:function(){tw=i.setInterval(function(){if(typeof twttr!=="undefined"){twttr.events.bind("tweet",function(m){if(m){_gaq.push(["_trackSocial","twitter","tweet"])}});clearInterval(tw)}},1000)},digg:function(){},delicious:function(){},stumbleupon:function(){},linkedin:function(){function m(){_gaq.push(["_trackSocial","linkedin","share"])}},pinterest:function(){}},a={googlePlus:function(m){i.open("https://plus.google.com/share?hl="+m.buttons.googlePlus.lang+"&url="+encodeURIComponent((m.buttons.googlePlus.url!==""?m.buttons.googlePlus.url:m.url)),"","toolbar=0, status=0, width=900, height=500")},facebook:function(m){i.open("http://www.facebook.com/sharer/sharer.php?u="+encodeURIComponent((m.buttons.facebook.url!==""?m.buttons.facebook.url:m.url))+"&t="+m.text+"","","toolbar=0, status=0, width=900, height=500")},twitter:function(m){i.open("https://twitter.com/intent/tweet?text="+encodeURIComponent(m.text)+"&url="+encodeURIComponent((m.buttons.twitter.url!==""?m.buttons.twitter.url:m.url))+(m.buttons.twitter.via!==""?"&via="+m.buttons.twitter.via:""),"","toolbar=0, status=0, width=650, height=360")},digg:function(m){i.open("http://digg.com/tools/diggthis/submit?url="+encodeURIComponent((m.buttons.digg.url!==""?m.buttons.digg.url:m.url))+"&title="+m.text+"&related=true&style=true","","toolbar=0, status=0, width=650, height=360")},delicious:function(m){i.open("http://www.delicious.com/save?v=5&noui&jump=close&url="+encodeURIComponent((m.buttons.delicious.url!==""?m.buttons.delicious.url:m.url))+"&title="+m.text,"delicious","toolbar=no,width=550,height=550")},stumbleupon:function(m){i.open("http://www.stumbleupon.com/badge/?url="+encodeURIComponent((m.buttons.delicious.url!==""?m.buttons.delicious.url:m.url)),"stumbleupon","toolbar=no,width=550,height=550")},linkedin:function(m){i.open("https://www.linkedin.com/cws/share?url="+encodeURIComponent((m.buttons.delicious.url!==""?m.buttons.delicious.url:m.url))+"&token=&isFramed=true","linkedin","toolbar=no,width=550,height=550")},pinterest:function(m){i.open("http://pinterest.com/pin/create/button/?url="+encodeURIComponent((m.buttons.pinterest.url!==""?m.buttons.pinterest.url:m.url))+"&media="+encodeURIComponent(m.buttons.pinterest.media)+"&description="+m.buttons.pinterest.description,"pinterest","toolbar=no,width=700,height=300")}};function k(n,m){this.element=n;this.options=g.extend(true,{},f,m);this.options.share=m.share;this._defaults=f;this._name=h;this.init()}k.prototype.init=function(){var m=this;if(this.options.urlCurl!==""){c.googlePlus=this.options.urlCurl+"?url={url}&type=googlePlus";c.stumbleupon=this.options.urlCurl+"?url={url}&type=stumbleupon"}g(this.element).addClass(this.options.className);if(typeof g(this.element).data("title")!=="undefined"){this.options.title=g(this.element).attr("data-title")}if(typeof g(this.element).data("url")!=="undefined"){this.options.url=g(this.element).data("url")}if(typeof g(this.element).data("text")!=="undefined"){this.options.text=g(this.element).data("text")}g.each(this.options.share,function(n,o){if(o===true){m.options.shareTotal++}});if(m.options.enableCounter===true){g.each(this.options.share,function(n,p){if(p===true){try{m.getSocialJson(n)}catch(o){}}})}else{if(m.options.template!==""){this.options.render(this,this.options)}else{this.loadButtons()}}g(this.element).hover(function(){if(g(this).find(".buttons").length===0&&m.options.enableHover===true){m.loadButtons()}m.options.hover(m,m.options)},function(){m.options.hide(m,m.options)});g(this.element).click(function(){m.options.click(m,m.options);return false})};k.prototype.loadButtons=function(){var m=this;g(this.element).append('<div class="buttons"></div>');g.each(m.options.share,function(n,o){if(o==true){l[n](m);if(m.options.enableTracking===true){d[n]()}}})};k.prototype.getSocialJson=function(o){var m=this,p=0,n=c[o].replace("{url}",encodeURIComponent(this.options.url));if(this.options.buttons[o].urlCount===true&&this.options.buttons[o].url!==""){n=c[o].replace("{url}",this.options.buttons[o].url)}if(n!=""&&m.options.urlCurl!==""){g.getJSON(n,function(r){if(typeof r.count!=="undefined"){var q=r.count+"";q=q.replace("\u00c2\u00a0","");p+=parseInt(q,10)}else{if(r.data&&r.data.length>0&&typeof r.data[0].total_count!=="undefined"){p+=parseInt(r.data[0].total_count,10)}else{if(typeof r[0]!=="undefined"){p+=parseInt(r[0].total_posts,10)}else{if(typeof r[0]!=="undefined"){}}}}m.options.count[o]=p;m.options.total+=p;m.renderer();m.rendererPerso()}).error(function(){m.options.count[o]=0;m.rendererPerso()})}else{m.renderer();m.options.count[o]=0;m.rendererPerso()}};k.prototype.rendererPerso=function(){var m=0;for(e in this.options.count){m++}if(m===this.options.shareTotal){this.options.render(this,this.options)}};k.prototype.renderer=function(){var n=this.options.total,m=this.options.template;if(this.options.shorterTotal===true){n=this.shorterTotal(n)}if(m!==""){m=m.replace("{total}",n);g(this.element).html(m)}else{g(this.element).html('<div class="box"><a class="count" href="#">'+n+"</a>"+(this.options.title!==""?'<a class="share" href="#">'+this.options.title+"</a>":"")+"</div>")}};k.prototype.shorterTotal=function(m){if(m>=1000000){m=(m/1000000).toFixed(2)+"M"}else{if(m>=1000){m=(m/1000).toFixed(1)+"k"}}return m};k.prototype.openPopup=function(m){a[m](this.options);if(this.options.enableTracking===true){var n={googlePlus:{site:"Google",action:"+1"},facebook:{site:"facebook",action:"like"},twitter:{site:"twitter",action:"tweet"},digg:{site:"digg",action:"add"},delicious:{site:"delicious",action:"add"},stumbleupon:{site:"stumbleupon",action:"add"},linkedin:{site:"linkedin",action:"share"},pinterest:{site:"pinterest",action:"pin"}};_gaq.push(["_trackSocial",n[m].site,n[m].action])}};k.prototype.simulateClick=function(){var m=g(this.element).html();g(this.element).html(m.replace(this.options.total,this.options.total+1))};k.prototype.update=function(m,n){if(m!==""){this.options.url=m}if(n!==""){this.options.text=n}};g.fn[h]=function(n){var m=arguments;if(n===b||typeof n==="object"){return this.each(function(){if(!g.data(this,"plugin_"+h)){g.data(this,"plugin_"+h,new k(this,n))}})}else{if(typeof n==="string"&&n[0]!=="_"&&n!=="init"){return this.each(function(){var o=g.data(this,"plugin_"+h);if(o instanceof k&&typeof o[n]==="function"){o[n].apply(o,Array.prototype.slice.call(m,1))}})}}}})(jQuery,window,document);
|
@@ -14,11 +14,11 @@ module Rsocialize
|
|
14
14
|
remove_file 'app/assets/stylesheets/rsocialize.css'
|
15
15
|
remove_file %Q{app/assets/javascripts/#{Rsocialize::JQUERY_SHARRRE_FILE}}
|
16
16
|
remove_file 'app/lib/rsocialize_controller.rb'
|
17
|
-
remove_file 'app/assets/images'
|
17
|
+
remove_file 'app/assets/images/example6.png'
|
18
18
|
end
|
19
19
|
def unmodify_routes
|
20
20
|
line = %Q{match '/sharrre' => 'rsocialize#sharrre', via: :get}
|
21
21
|
gsub_file 'config/routes.rb', /(#{Regexp.escape(line)})/mi,''
|
22
22
|
end
|
23
23
|
end #class UninstallGenerator
|
24
|
-
end
|
24
|
+
end
|
data/lib/rsocialize.rb
CHANGED
@@ -1,116 +1,10 @@
|
|
1
1
|
require "rsocialize/version"
|
2
2
|
require "action_view"
|
3
|
+
require 'div_template'
|
4
|
+
require 'example_options'
|
5
|
+
|
3
6
|
module Rsocialize
|
4
7
|
require 'rsocialize/engine' if defined?(Rails)
|
5
|
-
JQUERY_SHARRRE_FILE = "jquery.sharrre-1.3.4.min.js"
|
6
|
-
EXAMPLE1_JS_OPTIONS = {
|
7
|
-
:twitter=>{:share=>{:twitter=>true},:enableHover=>false, :enableTracking=>true, :buttons=>{:twitter=>{:via=>'_JulienH'}},:click=>%Q[function(api, options){
|
8
|
-
api.simulateClick();
|
9
|
-
api.openPopup('twitter');} ]
|
10
|
-
},
|
11
|
-
:facebook=>{:share=>{:facebook=>true}, :enableHover=>false, :enableTracking=>true, :click=>%Q[function(api, options){
|
12
|
-
api.simulateClick();
|
13
|
-
api.openPopup('facebook');}
|
14
|
-
]
|
15
|
-
},
|
16
|
-
:googlePlus=>{:share=>{:googlePlus=>true},:enableHover=>false, :enableTracking=>true, :click=>%Q[function(api, options){
|
17
|
-
api.simulateClick();
|
18
|
-
api.openPopup('googlePlus');} ]
|
19
|
-
}
|
20
|
-
}
|
21
|
-
EXAMPLE2_JS_OPTIONS = {
|
22
|
-
shareme: {
|
23
|
-
share: {
|
24
|
-
twitter: true,
|
25
|
-
facebook: true,
|
26
|
-
googlePlus: true
|
27
|
-
},
|
28
|
-
template: %Q{<div class="box"><div class="left">Share</div><div class="middle"><a href="#" class="facebook">f</a><a href="#" class="twitter">t</a><a href="#" class="googleplus">+1</a></div><div class="right">{total}</div></div>},
|
29
|
-
enableHover: false,
|
30
|
-
enableTracking: true,
|
31
|
-
render: %Q[function(api, options){
|
32
|
-
$(api.element).on('click', '.twitter', function() {
|
33
|
-
api.openPopup('twitter');
|
34
|
-
});
|
35
|
-
$(api.element).on('click', '.facebook', function() {
|
36
|
-
api.openPopup('facebook');
|
37
|
-
});
|
38
|
-
$(api.element).on('click', '.googleplus', function() {
|
39
|
-
api.openPopup('googlePlus');
|
40
|
-
});
|
41
|
-
}]
|
42
|
-
}
|
43
|
-
}
|
44
|
-
EXAMPLE3_JS_OPTIONS = {
|
45
|
-
shareme: {
|
46
|
-
share: {
|
47
|
-
googlePlus: true,
|
48
|
-
facebook: true,
|
49
|
-
twitter: true,
|
50
|
-
digg: true,
|
51
|
-
delicious: true
|
52
|
-
},
|
53
|
-
enableTracking: true,
|
54
|
-
buttons: {
|
55
|
-
googlePlus: {size: 'tall'},
|
56
|
-
facebook: {layout: 'box_count'},
|
57
|
-
twitter: {count: 'vertical'},
|
58
|
-
digg: {type: 'DiggMedium'},
|
59
|
-
delicious: {size: 'tall'}
|
60
|
-
},
|
61
|
-
hover: %Q[function(api, options){
|
62
|
-
$(api.element).find('.buttons').show();
|
63
|
-
}],
|
64
|
-
hide: %Q[function(api, options){
|
65
|
-
$(api.element).find('.buttons').hide();
|
66
|
-
}]
|
67
|
-
}
|
68
|
-
}
|
69
|
-
EXAMPLE5_JS_OPTIONS = {
|
70
|
-
shareme: {
|
71
|
-
share: {
|
72
|
-
googlePlus: true,
|
73
|
-
facebook: true,
|
74
|
-
twitter: true,
|
75
|
-
digg: true,
|
76
|
-
delicious: true,
|
77
|
-
stumbleupon: true,
|
78
|
-
linkedin: true,
|
79
|
-
pinterest: true
|
80
|
-
},
|
81
|
-
buttons: {
|
82
|
-
googlePlus: {size: 'tall'},
|
83
|
-
facebook: {layout: 'box_count'},
|
84
|
-
twitter: {count: 'vertical'},
|
85
|
-
digg: {type: 'DiggMedium'},
|
86
|
-
delicious: {size: 'tall'},
|
87
|
-
stumbleupon: {layout: '5'},
|
88
|
-
linkedin: {counter: 'top'},
|
89
|
-
pinterest: {media: 'http://sharrre.com/img/example1.png', description: %Q{$('#shareme').data('text'), layout: 'vertical'}}
|
90
|
-
},
|
91
|
-
enableHover: false,
|
92
|
-
enableCounter: false,
|
93
|
-
enableTracking: true
|
94
|
-
}
|
95
|
-
}
|
96
|
-
|
97
|
-
EXAMPLE6_JS_OPTIONS ={
|
98
|
-
:twitter=>{:share=>{:twitter=>true},:template=>%Q{<a class="box" href="#"><div class="count" href="#">{total}</div><div class="share"><span></span>Tweet</div></a>}, :enableHover=>false, :enableTracking=>true, :buttons =>{ twitter: {via: '_JulienH'}}, :click=>%Q[function(api, options){
|
99
|
-
api.simulateClick();
|
100
|
-
api.openPopup('twitter');}
|
101
|
-
]
|
102
|
-
},
|
103
|
-
:facebook=> {:share=>{:facebook=>true},:template=>%Q{<a class="box" href="#"><div class="count" href="#">{total}</div><div class="share"><span></span>Like</div></a>}, :enableHover=>false, :enableTracking=>true, :click=>%Q[function(api, options){
|
104
|
-
api.simulateClick();
|
105
|
-
api.openPopup('facebook');}
|
106
|
-
]
|
107
|
-
},
|
108
|
-
:googlePlus=>{:share=>{:googlePlus=>true},:template=>%Q{<a class="box" href="#"><div class="count" href="#">{total}</div><div class="share"><span></span>+1</div></a>}, :enableHover=>false, :enableTracking=>true, :click=>%Q[function(api, options){
|
109
|
-
api.simulateClick();
|
110
|
-
api.openPopup('googlePlus');}
|
111
|
-
]
|
112
|
-
}
|
113
|
-
}
|
114
8
|
def rsocialize_div_tag(div_tag_str="", options={})
|
115
9
|
#options{} :=
|
116
10
|
# url: http://www.example.com/
|
@@ -120,75 +14,35 @@ module Rsocialize
|
|
120
14
|
:twitter=>{:url=>"http://sharrre.com/", :text=>"Make your sharing widget with Sharrre (jQuery Plugin)", :title=>"Tweet"},
|
121
15
|
:div_template=>"example1", :url=>"http://sharrre.com/", :text=>"Make your sharing widget with Sharrre (jQuery Plugin)", :title=>"share this page"}.merge(options)
|
122
16
|
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
div_str = %Q{
|
130
|
-
<div id="example1">
|
131
|
-
<div id="twitter" data-url="#{options[:twitter][:url]}" data-text="#{options[:twitter][:text]}" data-title="#{options[:twitter][:title]}"></div>
|
132
|
-
<div id="facebook" data-url="#{options[:facebook][:url]}" data-text="#{options[:facebook][:text]}" data-title="#{options[:facebook][:title]}"></div>
|
133
|
-
<div id="googleplus" data-url="#{options[:googleplus][:url]}" data-text="#{options[:googleplus][:text]}" data-title="#{options[:googleplus][:title]}"></div>
|
134
|
-
</div>
|
135
|
-
}.html_safe
|
136
|
-
when "example2", "example5"
|
137
|
-
div_str = %Q{
|
138
|
-
<div id="#{options[:div_template]}">
|
139
|
-
<div id="shareme" data-url="#{data_url}" data-text="#{data_text}"></div>
|
140
|
-
</div>
|
141
|
-
}.html_safe
|
142
|
-
when "example3"
|
143
|
-
div_str = %Q{
|
144
|
-
<div id="example3">
|
145
|
-
<div id="shareme" data-url="#{data_url}" data-text="#{data_text}" data-title="#{data_title}"></div>
|
146
|
-
</div>
|
147
|
-
}.html_safe
|
148
|
-
when "example6"
|
149
|
-
div_str = %Q{
|
150
|
-
<div id="example6">
|
151
|
-
<div id="twitter" data-url="#{options[:twitter][:url]}" data-text="#{options[:twitter][:text]}"></div>
|
152
|
-
<div id="facebook" data-url="#{options[:facebook][:url]}" data-text="#{options[:facebook][:text]}"></div>
|
153
|
-
<div id="googleplus" data-url="#{options[:googleplus][:url]}" data-text="#{options[:googleplus][:text]}"></div>
|
154
|
-
</div>
|
155
|
-
}.html_safe
|
156
|
-
else #assume empty or custom
|
157
|
-
if (div_tag_str.empty?) #use template <div>
|
158
|
-
div_str = %Q{
|
17
|
+
div_str = if !(options[:div_template]=~/example[12356]/).nil?
|
18
|
+
klass = options[:div_template].slice(0,1).capitalize + options[:div_template].slice(1..-1)
|
19
|
+
klass.constantize.new(options).div_str
|
20
|
+
elsif div_tag_str.empty? #assume empty or custom
|
21
|
+
#use template <div>
|
22
|
+
%Q{
|
159
23
|
<div id="#{options[:div_template]}">
|
160
|
-
<div id="twitter" data-url="#{
|
161
|
-
<div id="facebook" data-url="#{
|
162
|
-
<div id="googleplus" data-url="#{
|
24
|
+
<div id="twitter" data-url="#{options[:url]}" data-text="#{options[:text]}" data-title="Tweet"></div>
|
25
|
+
<div id="facebook" data-url="#{options[:url]}" data-text="#{options[:text]}" data-title="Like"></div>
|
26
|
+
<div id="googleplus" data-url="#{options[:url]}" data-text="#{options[:text]}" data-title="+1"></div>
|
163
27
|
</div>
|
164
28
|
}.html_safe
|
165
|
-
|
166
|
-
|
167
|
-
end
|
29
|
+
else #use your own <div> classes
|
30
|
+
div_tag_str.html_safe
|
168
31
|
end
|
169
32
|
|
170
33
|
return div_str
|
171
34
|
end
|
35
|
+
|
172
36
|
def rsocialize_js_tag(options={})
|
173
|
-
|
174
|
-
when "example1"
|
175
|
-
options = EXAMPLE1_JS_OPTIONS
|
176
|
-
when "example2"
|
177
|
-
options = EXAMPLE2_JS_OPTIONS
|
178
|
-
when "example3"
|
179
|
-
options = EXAMPLE3_JS_OPTIONS
|
180
|
-
when "example5"
|
181
|
-
options = EXAMPLE5_JS_OPTIONS
|
182
|
-
when "example6"
|
183
|
-
options = EXAMPLE6_JS_OPTIONS
|
184
|
-
end
|
37
|
+
options = Object.const_get(options[:js_template].upcase + "_JS_OPTIONS") if options[:js_template]=~/example\d{1}/
|
185
38
|
options=options.merge(options)
|
186
39
|
|
187
40
|
js_str = "<script>\n".html_safe
|
188
|
-
js_str = js_str+rsocialize_build_js(options).html_safe
|
41
|
+
js_str = js_str + rsocialize_build_js(options).html_safe
|
189
42
|
js_str += "</script>".html_safe
|
190
43
|
return js_str
|
191
44
|
end
|
45
|
+
|
192
46
|
def rsocialize_build_js(options={})
|
193
47
|
@debug_str = ""
|
194
48
|
@js_str = "$(document).ready(function() { "
|
@@ -204,6 +58,7 @@ module Rsocialize
|
|
204
58
|
@js_str = @js_str + "});"
|
205
59
|
return @js_str
|
206
60
|
end
|
61
|
+
|
207
62
|
def recursive_js_build(options, key, button_val)
|
208
63
|
@retval=%Q{#{key.to_s}: }
|
209
64
|
@retval = @retval+"{" if hash_depth(options[key])>0
|
@@ -229,6 +84,7 @@ module Rsocialize
|
|
229
84
|
end
|
230
85
|
return @retval
|
231
86
|
end
|
87
|
+
|
232
88
|
def hash_depth(bhash)
|
233
89
|
#return depth of hash as an integer
|
234
90
|
return 0 if !bhash.is_a?(Hash) #no hash = 0
|
data/lib/rsocialize/version.rb
CHANGED
data/rsocialize.gemspec
CHANGED
@@ -19,8 +19,9 @@ Gem::Specification.new do |gem|
|
|
19
19
|
gem.require_paths = ["lib"]
|
20
20
|
gem.version = Rsocialize::VERSION
|
21
21
|
|
22
|
-
gem.add_development_dependency "rspec",">=
|
22
|
+
gem.add_development_dependency "rspec",">=3.3.0"
|
23
23
|
gem.add_development_dependency "rake",">=0.9.2.2"
|
24
|
+
gem.add_development_dependency "pry", ">=0.10.1"
|
24
25
|
gem.add_runtime_dependency "curb", "~>0.8.2"
|
25
26
|
gem.add_runtime_dependency "activesupport", ">= 3.2.8"
|
26
27
|
gem.add_runtime_dependency "nokogiri", ">= 1.5.5"
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rsocialize
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bruce Park
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2015-09-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 3.3.0
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 3.3.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -38,6 +38,20 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 0.9.2.2
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: pry
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 0.10.1
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.10.1
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: curb
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
@@ -102,10 +116,13 @@ extensions: []
|
|
102
116
|
extra_rdoc_files: []
|
103
117
|
files:
|
104
118
|
- ".gitignore"
|
119
|
+
- CHANGELOG.md
|
120
|
+
- Gemfile
|
105
121
|
- LICENSE
|
106
122
|
- README.md
|
107
123
|
- Rakefile
|
108
|
-
- lib
|
124
|
+
- lib/div_template.rb
|
125
|
+
- lib/example_options.rb
|
109
126
|
- lib/generators/USAGE
|
110
127
|
- lib/generators/rsocialize/install_generator.rb
|
111
128
|
- lib/generators/rsocialize/switch_css_generator.rb
|
@@ -115,7 +132,7 @@ files:
|
|
115
132
|
- lib/generators/rsocialize/templates/example5.css
|
116
133
|
- lib/generators/rsocialize/templates/example6.css
|
117
134
|
- lib/generators/rsocialize/templates/images/example6.png
|
118
|
-
- lib/generators/rsocialize/templates/jquery.sharrre-1.3.
|
135
|
+
- lib/generators/rsocialize/templates/jquery.sharrre-1.3.5.min.js
|
119
136
|
- lib/generators/rsocialize/templates/rsocialize.css
|
120
137
|
- lib/generators/rsocialize/templates/rsocialize_controller.rb
|
121
138
|
- lib/generators/rsocialize/uninstall_generator.rb
|
@@ -144,7 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
144
161
|
version: '0'
|
145
162
|
requirements: []
|
146
163
|
rubyforge_project:
|
147
|
-
rubygems_version: 2.
|
164
|
+
rubygems_version: 2.4.8
|
148
165
|
signing_key:
|
149
166
|
specification_version: 4
|
150
167
|
summary: Provides a simple way to add social media buttons to your rails application. It's
|
@@ -1 +0,0 @@
|
|
1
|
-
(function(t,n,r,i){function h(e,n){this.element=e;this.options=t.extend(true,{},u,n);this.options.share=n.share;this._defaults=u;this._name=o;this.init()}var o="sharrre",u={className:"sharrre",share:{googlePlus:false,facebook:false,twitter:false,digg:false,delicious:false,stumbleupon:false,linkedin:false,pinterest:false},shareTotal:0,template:"",title:"",url:r.location.href,text:r.title,urlCurl:"sharrre",count:{},total:0,shorterTotal:true,enableHover:true,enableCounter:true,enableTracking:false,hover:function(){},hide:function(){},click:function(){},render:function(){},buttons:{googlePlus:{url:"",urlCount:false,size:"medium",lang:"en-US",annotation:""},facebook:{url:"",urlCount:false,action:"like",layout:"button_count",width:"",send:"false",faces:"false",colorscheme:"",font:"",lang:"en_US"},twitter:{url:"",urlCount:false,count:"horizontal",hashtags:"",via:"",related:"",lang:"en"},digg:{url:"",urlCount:false,type:"DiggCompact"},delicious:{url:"",urlCount:false,size:"medium"},stumbleupon:{url:"",urlCount:false,layout:"1"},linkedin:{url:"",urlCount:false,counter:""},pinterest:{url:"",media:"",description:"",layout:"horizontal"}}},a={googlePlus:"",facebook:"https://graph.facebook.com/fql?q=SELECT%20url,%20normalized_url,%20share_count,%20like_count,%20comment_count,%20total_count,commentsbox_count,%20comments_fbid,%20click_count%20FROM%20link_stat%20WHERE%20url=%27{url}%27&callback=?",twitter:"http://cdn.api.twitter.com/1/urls/count.json?url={url}&callback=?",digg:"http://services.digg.com/2.0/story.getInfo?links={url}&type=javascript&callback=?",delicious:"http://feeds.delicious.com/v2/json/urlinfo/data?url={url}&callback=?",stumbleupon:"",linkedin:"http://www.linkedin.com/countserv/count/share?format=jsonp&url={url}&callback=?",pinterest:""},f={googlePlus:function(e){var i=e.options.buttons.googlePlus;t(e.element).find(".buttons").append('<div class="button googleplus"><div class="g-plusone" data-size="'+i.size+'" data-href="'+(i.url!==""?i.url:e.options.url)+'" data-annotation="'+i.annotation+'"></div></div>');n.___gcfg={lang:e.options.buttons.googlePlus.lang};var s=0;if(typeof gapi==="undefined"&&s==0){s=1;(function(){var e=r.createElement("script");e.type="text/javascript";e.async=true;e.src="//apis.google.com/js/plusone.js";var t=r.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})()}else{gapi.plusone.go()}},facebook:function(e){var n=e.options.buttons.facebook;t(e.element).find(".buttons").append('<div class="button facebook"><div id="fb-root"></div><div class="fb-like" data-href="'+(n.url!==""?n.url:e.options.url)+'" data-send="'+n.send+'" data-layout="'+n.layout+'" data-width="'+n.width+'" data-show-faces="'+n.faces+'" data-action="'+n.action+'" data-colorscheme="'+n.colorscheme+'" data-font="'+n.font+'" data-via="'+n.via+'"></div></div>');var i=0;if(typeof FB==="undefined"&&i==0){i=1;(function(e,t,r){var i,s=e.getElementsByTagName(t)[0];if(e.getElementById(r)){return}i=e.createElement(t);i.id=r;i.src="//connect.facebook.net/"+n.lang+"/all.js#xfbml=1";s.parentNode.insertBefore(i,s)})(r,"script","facebook-jssdk")}else{FB.XFBML.parse()}},twitter:function(e){var n=e.options.buttons.twitter;t(e.element).find(".buttons").append('<div class="button twitter"><a href="https://twitter.com/share" class="twitter-share-button" data-url="'+(n.url!==""?n.url:e.options.url)+'" data-count="'+n.count+'" data-text="'+e.options.text+'" data-via="'+n.via+'" data-hashtags="'+n.hashtags+'" data-related="'+n.related+'" data-lang="'+n.lang+'">Tweet</a></div>');var i=0;if(typeof twttr==="undefined"&&i==0){i=1;(function(){var e=r.createElement("script");e.type="text/javascript";e.async=true;e.src="//platform.twitter.com/widgets.js";var t=r.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})()}else{t.ajax({url:"//platform.twitter.com/widgets.js",dataType:"script",cache:true})}},digg:function(e){var n=e.options.buttons.digg;t(e.element).find(".buttons").append('<div class="button digg"><a class="DiggThisButton '+n.type+'" rel="nofollow external" href="http://digg.com/submit?url='+encodeURIComponent(n.url!==""?n.url:e.options.url)+'"></a></div>');var i=0;if(typeof __DBW==="undefined"&&i==0){i=1;(function(){var e=r.createElement("SCRIPT"),t=r.getElementsByTagName("SCRIPT")[0];e.type="text/javascript";e.async=true;e.src="//widgets.digg.com/buttons.js";t.parentNode.insertBefore(e,t)})()}},delicious:function(e){if(e.options.buttons.delicious.size=="tall"){var n="width:50px;",r="height:35px;width:50px;font-size:15px;line-height:35px;",i="height:18px;line-height:18px;margin-top:3px;"}else{var n="width:93px;",r="float:right;padding:0 3px;height:20px;width:26px;line-height:20px;",i="float:left;height:20px;line-height:20px;"}var s=e.shorterTotal(e.options.count.delicious);if(typeof s==="undefined"){s=0}t(e.element).find(".buttons").append('<div class="button delicious"><div style="'+n+'font:12px Arial,Helvetica,sans-serif;cursor:pointer;color:#666666;display:inline-block;float:none;height:20px;line-height:normal;margin:0;padding:0;text-indent:0;vertical-align:baseline;">'+'<div style="'+r+'background-color:#fff;margin-bottom:5px;overflow:hidden;text-align:center;border:1px solid #ccc;border-radius:3px;">'+s+"</div>"+'<div style="'+i+'display:block;padding:0;text-align:center;text-decoration:none;width:50px;background-color:#7EACEE;border:1px solid #40679C;border-radius:3px;color:#fff;">'+'<img src="http://www.delicious.com/static/img/delicious.small.gif" height="10" width="10" alt="Delicious" /> Add</div></div></div>');t(e.element).find(".delicious").on("click",function(){e.openPopup("delicious")})},stumbleupon:function(e){var i=e.options.buttons.stumbleupon;t(e.element).find(".buttons").append('<div class="button stumbleupon"><su:badge layout="'+i.layout+'" location="'+(i.url!==""?i.url:e.options.url)+'"></su:badge></div>');var o=0;if(typeof STMBLPN==="undefined"&&o==0){o=1;(function(){var e=r.createElement("script");e.type="text/javascript";e.async=true;e.src="//platform.stumbleupon.com/1/widgets.js";var t=r.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})();s=n.setTimeout(function(){if(typeof STMBLPN!=="undefined"){STMBLPN.processWidgets();clearInterval(s)}},500)}else{STMBLPN.processWidgets()}},linkedin:function(e){var i=e.options.buttons.linkedin;t(e.element).find(".buttons").append('<div class="button linkedin"><script type="in/share" data-url="'+(i.url!==""?i.url:e.options.url)+'" data-counter="'+i.counter+'"></script></div>');var s=0;if(typeof n.IN==="undefined"&&s==0){s=1;(function(){var e=r.createElement("script");e.type="text/javascript";e.async=true;e.src="//platform.linkedin.com/in.js";var t=r.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})()}else{n.IN.init()}},pinterest:function(e){var n=e.options.buttons.pinterest;t(e.element).find(".buttons").append('<div class="button pinterest"><a href="http://pinterest.com/pin/create/button/?url='+(n.url!==""?n.url:e.options.url)+"&media="+n.media+"&description="+n.description+'" class="pin-it-button" count-layout="'+n.layout+'">Pin It</a></div>');(function(){var e=r.createElement("script");e.type="text/javascript";e.async=true;e.src="//assets.pinterest.com/js/pinit.js";var t=r.getElementsByTagName("script")[0];t.parentNode.insertBefore(e,t)})()}},l={googlePlus:function(){},facebook:function(){fb=n.setInterval(function(){if(typeof FB!=="undefined"){FB.Event.subscribe("edge.create",function(e){_gaq.push(["_trackSocial","facebook","like",e])});FB.Event.subscribe("edge.remove",function(e){_gaq.push(["_trackSocial","facebook","unlike",e])});FB.Event.subscribe("message.send",function(e){_gaq.push(["_trackSocial","facebook","send",e])});clearInterval(fb)}},1e3)},twitter:function(){tw=n.setInterval(function(){if(typeof twttr!=="undefined"){twttr.events.bind("tweet",function(e){if(e){_gaq.push(["_trackSocial","twitter","tweet"])}});clearInterval(tw)}},1e3)},digg:function(){},delicious:function(){},stumbleupon:function(){},linkedin:function(){function e(){_gaq.push(["_trackSocial","linkedin","share"])}},pinterest:function(){}},c={googlePlus:function(e){n.open("https://plus.google.com/share?hl="+e.buttons.googlePlus.lang+"&url="+encodeURIComponent(e.buttons.googlePlus.url!==""?e.buttons.googlePlus.url:e.url),"","toolbar=0, status=0, width=900, height=500")},facebook:function(e){n.open("http://www.facebook.com/sharer/sharer.php?u="+encodeURIComponent(e.buttons.facebook.url!==""?e.buttons.facebook.url:e.url)+"&t="+e.text+"","","toolbar=0, status=0, width=900, height=500")},twitter:function(e){n.open("https://twitter.com/intent/tweet?text="+encodeURIComponent(e.text)+"&url="+encodeURIComponent(e.buttons.twitter.url!==""?e.buttons.twitter.url:e.url)+(e.buttons.twitter.via!==""?"&via="+e.buttons.twitter.via:""),"","toolbar=0, status=0, width=650, height=360")},digg:function(e){n.open("http://digg.com/tools/diggthis/submit?url="+encodeURIComponent(e.buttons.digg.url!==""?e.buttons.digg.url:e.url)+"&title="+e.text+"&related=true&style=true","","toolbar=0, status=0, width=650, height=360")},delicious:function(e){n.open("http://www.delicious.com/save?v=5&noui&jump=close&url="+encodeURIComponent(e.buttons.delicious.url!==""?e.buttons.delicious.url:e.url)+"&title="+e.text,"delicious","toolbar=no,width=550,height=550")},stumbleupon:function(e){n.open("http://www.stumbleupon.com/badge/?url="+encodeURIComponent(e.buttons.delicious.url!==""?e.buttons.delicious.url:e.url),"stumbleupon","toolbar=no,width=550,height=550")},linkedin:function(e){n.open("https://www.linkedin.com/cws/share?url="+encodeURIComponent(e.buttons.delicious.url!==""?e.buttons.delicious.url:e.url)+"&token=&isFramed=true","linkedin","toolbar=no,width=550,height=550")},pinterest:function(e){n.open("http://pinterest.com/pin/create/button/?url="+encodeURIComponent(e.buttons.pinterest.url!==""?e.buttons.pinterest.url:e.url)+"&media="+encodeURIComponent(e.buttons.pinterest.media)+"&description="+e.buttons.pinterest.description,"pinterest","toolbar=no,width=700,height=300")}};h.prototype.init=function(){var e=this;if(this.options.urlCurl!==""){a.googlePlus=this.options.urlCurl+"?url={url}&type=googlePlus";a.stumbleupon=this.options.urlCurl+"?url={url}&type=stumbleupon";a.pinterest=this.options.urlCurl+"?url={url}&type=pinterest"}t(this.element).addClass(this.options.className);if(typeof t(this.element).data("title")!=="undefined"){this.options.title=t(this.element).attr("data-title")}if(typeof t(this.element).data("url")!=="undefined"){this.options.url=t(this.element).data("url")}if(typeof t(this.element).data("text")!=="undefined"){this.options.text=t(this.element).data("text")}t.each(this.options.share,function(t,n){if(n===true){e.options.shareTotal++}});if(e.options.enableCounter===true){t.each(this.options.share,function(t,n){if(n===true){try{e.getSocialJson(t)}catch(r){}}})}else if(e.options.template!==""){this.options.render(this,this.options)}else{this.loadButtons()}t(this.element).hover(function(){if(t(this).find(".buttons").length===0&&e.options.enableHover===true){e.loadButtons()}e.options.hover(e,e.options)},function(){e.options.hide(e,e.options)});t(this.element).click(function(){e.options.click(e,e.options);return false})};h.prototype.loadButtons=function(){var e=this;t(this.element).append('<div class="buttons"></div>');t.each(e.options.share,function(t,n){if(n==true){f[t](e);if(e.options.enableTracking===true){l[t]()}}})};h.prototype.getSocialJson=function(e){var n=this,r=0,i=a[e].replace("{url}",encodeURIComponent(this.options.url));if(this.options.buttons[e].urlCount===true&&this.options.buttons[e].url!==""){i=a[e].replace("{url}",this.options.buttons[e].url)}if(i!=""&&n.options.urlCurl!==""){t.getJSON(i,function(t){if(typeof t.count!=="undefined"){var i=t.count+"";i=i.replace("Â ","");r+=parseInt(i,10)}else if(t.data&&t.data.length>0&&typeof t.data[0].total_count!=="undefined"){r+=parseInt(t.data[0].total_count,10)}else if(typeof t.shares!=="undefined"){r+=parseInt(t.shares,10)}else if(typeof t[0]!=="undefined"){r+=parseInt(t[0].total_posts,10)}else if(typeof t[0]!=="undefined"){}n.options.count[e]=r;n.options.total+=r;n.renderer();n.rendererPerso()}).error(function(){n.options.count[e]=0;n.rendererPerso()})}else{n.renderer();n.options.count[e]=0;n.rendererPerso()}};h.prototype.rendererPerso=function(){var t=0;for(e in this.options.count){t++}if(t===this.options.shareTotal){this.options.render(this,this.options)}};h.prototype.renderer=function(){var e=this.options.total,n=this.options.template;if(this.options.shorterTotal===true){e=this.shorterTotal(e)}if(n!==""){n=n.replace("{total}",e);t(this.element).html(n)}else{t(this.element).html('<div class="box"><a class="count" href="#">'+e+"</a>"+(this.options.title!==""?'<a class="share" href="#">'+this.options.title+"</a>":"")+"</div>")}};h.prototype.shorterTotal=function(e){if(e>=1e6){e=(e/1e6).toFixed(2)+"M"}else if(e>=1e3){e=(e/1e3).toFixed(1)+"k"}return e};h.prototype.openPopup=function(e){c[e](this.options);if(this.options.enableTracking===true){var t={googlePlus:{site:"Google",action:"+1"},facebook:{site:"facebook",action:"like"},twitter:{site:"twitter",action:"tweet"},digg:{site:"digg",action:"add"},delicious:{site:"delicious",action:"add"},stumbleupon:{site:"stumbleupon",action:"add"},linkedin:{site:"linkedin",action:"share"},pinterest:{site:"pinterest",action:"pin"}};_gaq.push(["_trackSocial",t[e].site,t[e].action])}};h.prototype.simulateClick=function(){var e=t(this.element).html();t(this.element).html(e.replace(this.options.total,this.options.total+1))};h.prototype.update=function(e,t){if(e!==""){this.options.url=e}if(t!==""){this.options.text=t}};t.fn[o]=function(e){var n=arguments;if(e===i||typeof e==="object"){return this.each(function(){if(!t.data(this,"plugin_"+o)){t.data(this,"plugin_"+o,new h(this,e))}})}else if(typeof e==="string"&&e[0]!=="_"&&e!=="init"){return this.each(function(){var r=t.data(this,"plugin_"+o);if(r instanceof h&&typeof r[e]==="function"){r[e].apply(r,Array.prototype.slice.call(n,1))}})}}})(jQuery,window,document)
|