diff options
-rw-r--r-- | askbot/conf/social_sharing.py | 11 | ||||
-rw-r--r-- | askbot/media/js/post.js | 33 | ||||
-rw-r--r-- | askbot/templates/meta/bottom_scripts.html | 3 |
3 files changed, 37 insertions, 10 deletions
diff --git a/askbot/conf/social_sharing.py b/askbot/conf/social_sharing.py index 6f39043a..e57dec28 100644 --- a/askbot/conf/social_sharing.py +++ b/askbot/conf/social_sharing.py @@ -3,7 +3,7 @@ Social sharing settings """ from askbot.conf.settings_wrapper import settings from askbot.conf.super_groups import EXTERNAL_SERVICES -from askbot.deps.livesettings import ConfigurationGroup, BooleanValue +from askbot.deps.livesettings import ConfigurationGroup, BooleanValue, StringValue from django.utils.translation import ugettext_lazy as _ SOCIAL_SHARING = ConfigurationGroup( @@ -22,6 +22,15 @@ settings.register( ) settings.register( + StringValue( + SOCIAL_SHARING, + 'SHARING_SUFFIX_TEXT', + default='', + description=_('Hashtag or suffix to sharing messages') + ) +) + +settings.register( BooleanValue( SOCIAL_SHARING, 'ENABLE_SHARING_TWITTER', diff --git a/askbot/media/js/post.js b/askbot/media/js/post.js index e30a0c88..aa3437cb 100644 --- a/askbot/media/js/post.js +++ b/askbot/media/js/post.js @@ -2073,18 +2073,28 @@ var socialSharing = function(){ var share_page = function(service_name){ if (SERVICE_DATA[service_name]){ var url = SERVICE_DATA[service_name]['url']; + url = url.replace('{TEXT}', TEXT); + url = url.replace('{URL}', URL); + var params = SERVICE_DATA[service_name]['params']; + debugger; + if(!window.open(url, "sharing", params)){ + window.location.href=url; + } + return false; + //@todo: change to some other url shortening service $.ajax({ - async: false, url: "http://json-tinyurl.appspot.com/?&callback=?", dataType: "json", data: {'url':URL}, - success: function(data){ + success: function(data) { url = url.replace('{URL}', data.tinyurl); }, - error: function(data){ + error: function(xhr, opts, error) { + debugger; url = url.replace('{URL}', URL); }, - complete: function(data){ + complete: function(data) { + debugger; url = url.replace('{TEXT}', TEXT); var params = SERVICE_DATA[service_name]['params']; if(!window.open(url, "sharing", params)){ @@ -2098,7 +2108,14 @@ var socialSharing = function(){ return { init: function(){ URL = window.location.href; + var urlBits = URL.split('/'); + URL = urlBits.slice(0, -2).join('/') + '/'; TEXT = escape($('h1 > a').html()); + var hashtag = encodeURIComponent( + askbot['settings']['sharingSuffixText'] + ); + TEXT = TEXT.substr(0, 134 - URL.length - hashtag.length); + TEXT = TEXT + '... ' + hashtag; var fb = $('a.facebook-share') var tw = $('a.twitter-share'); var ln = $('a.linkedin-share'); @@ -2107,10 +2124,10 @@ var socialSharing = function(){ copyAltToTitle(tw); copyAltToTitle(ln); copyAltToTitle(ica); - setupButtonEventHandlers(fb, function(){share_page("facebook")}); - setupButtonEventHandlers(tw, function(){share_page("twitter")}); - setupButtonEventHandlers(ln, function(){share_page("linkedin")}); - setupButtonEventHandlers(ica, function(){share_page("identica")}); + setupButtonEventHandlers(fb, function(){ share_page("facebook") }); + setupButtonEventHandlers(tw, function(){ share_page("twitter") }); + setupButtonEventHandlers(ln, function(){ share_page("linkedin") }); + setupButtonEventHandlers(ica, function(){ share_page("identica") }); } } }(); diff --git a/askbot/templates/meta/bottom_scripts.html b/askbot/templates/meta/bottom_scripts.html index c62f26dc..1a910672 100644 --- a/askbot/templates/meta/bottom_scripts.html +++ b/askbot/templates/meta/bottom_scripts.html @@ -29,7 +29,8 @@ askbot['urls']['ask'] = '{% url "ask" %}'; askbot['urls']['questions'] = '{% url "questions" %}'; askbot['settings']['static_url'] = '{{ settings.STATIC_URL }}'; - askbot['settings']['minSearchWordLength'] = {{settings.MIN_SEARCH_WORD_LENGTH}}; + askbot['settings']['minSearchWordLength'] = {{ settings.MIN_SEARCH_WORD_LENGTH }}; + askbot['settings']['sharingSuffixText'] = '{{ settings.SHARING_SUFFIX_TEXT|escape }}'; </script> <script type="text/javascript" |