Skip to content

added social-share-button gem #85

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -60,3 +60,6 @@ gem 'acts-as-taggable-on', '~> 3.4'
# Use debugger
# gem 'debugger', group: [:development, :test]
gem 'rails_12factor', group: :production

#Use Social-Share-Button for sharing to external social sites
gem 'social-share-button', '~>0.2.1'
4 changes: 4 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -138,6 +138,9 @@ GEM
sdoc (0.4.2)
json (~> 1.7, >= 1.7.7)
rdoc (~> 4.0)
social-share-button (0.2.1)
coffee-rails
sass-rails
spring (1.7.2)
sprockets (2.12.4)
hike (~> 1.2)
Expand Down Expand Up @@ -179,6 +182,7 @@ DEPENDENCIES
rspec-rails (~> 3.5)
sass-rails (~> 4.0.3)
sdoc (~> 0.4.0)
social-share-button (~> 0.2.1)
spring
uglifier (>= 1.3.0)

Expand Down
88 changes: 88 additions & 0 deletions app/assets/javascripts/social-share-button.coffee
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
#= require social-share-button

window.SocialShareButton =
openUrl : (url,popup) ->
if popup == "true"
window.open(url,'popup','height=500,width=500')
else
window.open(url)
false

share : (el) ->
site = $(el).data('site')
appkey = $(el).data('appkey') || ''
$parent = $(el).parent()
title = encodeURIComponent($(el).data(site + '-title') || $parent.data('title') || '')
img = encodeURIComponent($parent.data("img") || '')
url = encodeURIComponent($parent.data("url") || '')
via = encodeURIComponent($parent.data("via") || '')
desc = encodeURIComponent($parent.data("desc") || ' ')
popup = encodeURIComponent($parent.data("popup") || 'false')

if url.length == 0
url = encodeURIComponent(location.href)
switch site
when "email"
location.href = "mailto:?to=&subject=#{title}&body=#{url}"
when "weibo"
SocialShareButton.openUrl("http://service.weibo.com/share/share.php?url=#{url}&type=3&pic=#{img}&title=#{title}&appkey=#{appkey}",popup)
when "twitter"
via_str = ''
via_str = "&via=#{via}" if via.length > 0
SocialShareButton.openUrl("https://twitter.com/intent/tweet?url=#{url}&text=#{title}#{via_str}",popup)
when "douban"
SocialShareButton.openUrl("http://shuo.douban.com/!service/share?href=#{url}&name=#{title}&image=#{img}&sel=#{desc}",popup)
when "facebook"
SocialShareButton.openUrl("http://www.facebook.com/sharer.php?u=#{url}",popup)
when "qq"
SocialShareButton.openUrl("http://sns.qzone.qq.com/cgi-bin/qzshare/cgi_qzshare_onekey?url=#{url}&title=#{title}&pics=#{img}&summary=#{desc}&site=#{appkey}", popup)
when "tqq"
SocialShareButton.openUrl("http://share.v.t.qq.com/index.php?c=share&a=index&url=#{url}&title=#{title}&pic=#{img}&appkey=#{appkey}", popup)
when "baidu"
SocialShareButton.openUrl("http://hi.baidu.com/pub/show/share?url=#{url}&title=#{title}&content=#{desc}", popup)
when "kaixin001"
SocialShareButton.openUrl("http://www.kaixin001.com/rest/records.php?url=#{url}&content=#{title}&style=11&pic=#{img}&aid=#{appkey}", popup)
when "renren"
SocialShareButton.openUrl("http://widget.renren.com/dialog/share?resourceUrl=#{url}&srcUrl=#{url}&title=#{title}&pic=#{img}&description=#{desc}", popup)
when "google_plus"
SocialShareButton.openUrl("https://plus.google.com/share?url=#{url}", popup)
when "google_bookmark"
SocialShareButton.openUrl("https://www.google.com/bookmarks/mark?op=edit&output=popup&bkmk=#{url}&title=#{title}", popup)
when "delicious"
SocialShareButton.openUrl("http://www.delicious.com/save?url=#{url}&title=#{title}&jump=yes&pic=#{img}", popup)
when "plurk"
SocialShareButton.openUrl("http://www.plurk.com/?status=#{title}: #{url}&qualifier=shares", popup)
when "pinterest"
SocialShareButton.openUrl("http://www.pinterest.com/pin/create/button/?url=#{url}&media=#{img}&description=#{title}", popup)
when "linkedin"
SocialShareButton.openUrl("https://www.linkedin.com/shareArticle?mini=true&url=#{url}&title=#{title}&summary=#{desc}")
when "tumblr"
get_tumblr_extra = (param) ->
cutom_data = $(el).attr("data-#{param}")
encodeURIComponent(cutom_data) if cutom_data

tumblr_params = ->
path = get_tumblr_extra('type') || 'link'

params = switch path
when 'text'
title = get_tumblr_extra('title') || title
"title=#{title}"
when 'photo'
title = get_tumblr_extra('caption') || title
source = get_tumblr_extra('source') || img
"caption=#{title}&source=#{source}"
when 'quote'
quote = get_tumblr_extra('quote') || title
source = get_tumblr_extra('source') || ''
"quote=#{quote}&source=#{source}"
else # actually, it's a link clause
title = get_tumblr_extra('title') || title
url = get_tumblr_extra('url') || url
"name=#{title}&url=#{url}"


"/#{path}?#{params}"

SocialShareButton.openUrl("http://www.tumblr.com/share#{tumblr_params()}", popup)
false
1 change: 1 addition & 0 deletions app/assets/stylesheets/application.scss
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
*
*= require_tree .
*= require_self
*= require social-share-button
*/

// Include this here so the bootstrap variables that it contains are set before
Expand Down
1 change: 1 addition & 0 deletions app/views/resources/index.html.erb
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,7 @@
</div>
<div class="panel-data">
<div class="date"><%= format_date(resource.date) %></div>
<%= social_share_button_tag(resource.title, :url => resource.url) %>
<div class="likes">
<%= button_to like_path(resource.id), method: :post, class: "heart #{empty_or_full_heart(resource)}" do %>
<span><%= resource.likes %></span>
Expand Down
3 changes: 3 additions & 0 deletions config/initializers/social_share_button.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
SocialShareButton.configure do |config|
config.allow_sites = %w(twitter facebook linkedin google_plus email)
end
20 changes: 20 additions & 0 deletions config/locales/social_share_button.en.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
en:
social_share_button:
share_to: Share to %{name}
weibo: Sina Weibo
twitter: Twitter
facebook: Facebook
douban: Douban
qq: Qzone
tqq: Tqq
delicious: Delicious
baidu: Baidu.com
kaixin001: Kaixin001.com
renren: Renren.com
google_plus: Google+
google_bookmark: Google Bookmark
tumblr: Tumblr
plurk: Plurk
pinterest: Pinterest
email: Email
linkedin: Linkedin
22 changes: 22 additions & 0 deletions config/locales/social_share_button.zh-CN.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
'zh-CN':
social_share_button:
share_to: 分享到 %{name}
weibo: 新浪微博
twitter: Twitter
facebook: Facebook
douban: 豆瓣
qq: QQ空间
tqq: 腾讯微博
delicious: Delicious
baidu: 百度收藏
kaixin001: 开心网
renren: 人人网
google_plus: Google+
google_bookmark: Google 收藏
tumblr: Tumblr
plurk: Plurk
pinterest: Pinterest
email: Email
linkedin: Linkedin


21 changes: 21 additions & 0 deletions config/locales/social_share_button.zh-TW.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
'zh-TW':
social_share_button:
share_to: 分享到 %{name}
weibo: 新浪微博
twitter: Twitter
facebook: Facebook
douban: 豆瓣
qq: QQ空間
tqq: 腾讯微博
delicious: Delicious
baidu: 百度收藏
kaixin001: 開心網
renren: 人人網
google_plus: Google+
google_bookmark: Google 收藏
tumblr: Tumblr
plurk: 噗浪
pinterest: Pinterest
email: Email
linkedin: Linkedin