modul-share-buttons.meta

Issues/PRs archive for RpicmsTeam/modul_share_buttons
git clone git://archive.git.mtrnord.blog/RpicmsTeam/modul-share-buttons.meta.git
Log | Files | Refs

commit a649d83276fd355382d91733e899c8a03bc752ee
Author: Phorge Migration <migration@localhost>
Date:   Tue, 21 Jul 2026 18:11:13 +0200

Archive issues/PRs export for RpicmsTeam/modul_share_buttons

Diffstat:
Apulls/1.diff | 1004+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Apulls/1.json | 18++++++++++++++++++
Apulls/1.md | 13+++++++++++++
3 files changed, 1035 insertions(+), 0 deletions(-)

diff --git a/pulls/1.diff b/pulls/1.diff @@ -0,0 +1,1004 @@ +diff --git a/html_header.php b/html_header.php +new file mode 100644 +index 0000000..2f0e482 +--- /dev/null ++++ b/html_header.php +@@ -0,0 +1,20 @@ ++ <script type="text/javascript" src="../../core/libs/theme_engine/jquery/jquery-1.11.2.min.js"></script> ++ <script type="text/javascript" src="../../core/backend/admin/modules/share_buttons/socialshareprivacy/js/jquery.socialshareprivacy.min.js"></script> ++ <script type="text/javascript"> ++ jQuery(document).ready(function($){ ++ if($('#socialshareprivacy').length > 0){ ++ $('#socialshareprivacy').socialSharePrivacy({ ++ services : { ++ facebook : { ++ 'perma_option' : 'on' ++ }, ++ gplus : { ++ } ++ }, ++ "css_path" : "../../core/backend/admin/modules/share_buttons/socialshareprivacy/socialshareprivacy.css", ++ "lang_path" : "../../core/backend/admin/modules/share_buttons/socialshareprivacy/lang/", ++ "language" : "de" ++ }); ++ } ++ }); ++ </script> +\ No newline at end of file +diff --git a/post_footer.php b/post_footer.php +new file mode 100644 +index 0000000..cc2dcaf +--- /dev/null ++++ b/post_footer.php +@@ -0,0 +1 @@ ++<div id="socialshareprivacy"></div> +\ No newline at end of file +diff --git a/socialshareprivacy/images/2-klick-logo.jpg b/socialshareprivacy/images/2-klick-logo.jpg +new file mode 100644 +index 0000000..f7079fc +Binary files /dev/null and b/socialshareprivacy/images/2-klick-logo.jpg differ +diff --git a/socialshareprivacy/images/dummy_facebook.png b/socialshareprivacy/images/dummy_facebook.png +new file mode 100644 +index 0000000..870743d +Binary files /dev/null and b/socialshareprivacy/images/dummy_facebook.png differ +diff --git a/socialshareprivacy/images/dummy_facebook_dark.png b/socialshareprivacy/images/dummy_facebook_dark.png +new file mode 100644 +index 0000000..054baf8 +Binary files /dev/null and b/socialshareprivacy/images/dummy_facebook_dark.png differ +diff --git a/socialshareprivacy/images/dummy_facebook_en.png b/socialshareprivacy/images/dummy_facebook_en.png +new file mode 100644 +index 0000000..bfb0a53 +Binary files /dev/null and b/socialshareprivacy/images/dummy_facebook_en.png differ +diff --git a/socialshareprivacy/images/dummy_facebook_like.png b/socialshareprivacy/images/dummy_facebook_like.png +new file mode 100644 +index 0000000..2c851a2 +Binary files /dev/null and b/socialshareprivacy/images/dummy_facebook_like.png differ +diff --git a/socialshareprivacy/images/dummy_facebook_share_de.png b/socialshareprivacy/images/dummy_facebook_share_de.png +new file mode 100644 +index 0000000..a8e076d +Binary files /dev/null and b/socialshareprivacy/images/dummy_facebook_share_de.png differ +diff --git a/socialshareprivacy/images/dummy_facebook_share_de_dark.png b/socialshareprivacy/images/dummy_facebook_share_de_dark.png +new file mode 100644 +index 0000000..42fc413 +Binary files /dev/null and b/socialshareprivacy/images/dummy_facebook_share_de_dark.png differ +diff --git a/socialshareprivacy/images/dummy_facebook_share_en.png b/socialshareprivacy/images/dummy_facebook_share_en.png +new file mode 100644 +index 0000000..23aafbc +Binary files /dev/null and b/socialshareprivacy/images/dummy_facebook_share_en.png differ +diff --git a/socialshareprivacy/images/dummy_facebook_share_en_dark.png b/socialshareprivacy/images/dummy_facebook_share_en_dark.png +new file mode 100644 +index 0000000..3aea384 +Binary files /dev/null and b/socialshareprivacy/images/dummy_facebook_share_en_dark.png differ +diff --git a/socialshareprivacy/images/dummy_gplus.png b/socialshareprivacy/images/dummy_gplus.png +new file mode 100644 +index 0000000..1708345 +Binary files /dev/null and b/socialshareprivacy/images/dummy_gplus.png differ +diff --git a/socialshareprivacy/images/dummy_gplus_alt.png b/socialshareprivacy/images/dummy_gplus_alt.png +new file mode 100644 +index 0000000..d04e1f4 +Binary files /dev/null and b/socialshareprivacy/images/dummy_gplus_alt.png differ +diff --git a/socialshareprivacy/images/dummy_gplus_dark.png b/socialshareprivacy/images/dummy_gplus_dark.png +new file mode 100644 +index 0000000..6bcade1 +Binary files /dev/null and b/socialshareprivacy/images/dummy_gplus_dark.png differ +diff --git a/socialshareprivacy/images/dummy_twitter.png b/socialshareprivacy/images/dummy_twitter.png +new file mode 100644 +index 0000000..fb18fd6 +Binary files /dev/null and b/socialshareprivacy/images/dummy_twitter.png differ +diff --git a/socialshareprivacy/images/dummy_twitter_dark.png b/socialshareprivacy/images/dummy_twitter_dark.png +new file mode 100644 +index 0000000..24cacee +Binary files /dev/null and b/socialshareprivacy/images/dummy_twitter_dark.png differ +diff --git a/socialshareprivacy/images/facebook_share_de.png b/socialshareprivacy/images/facebook_share_de.png +new file mode 100644 +index 0000000..ab71395 +Binary files /dev/null and b/socialshareprivacy/images/facebook_share_de.png differ +diff --git a/socialshareprivacy/images/facebook_share_de_dark.png b/socialshareprivacy/images/facebook_share_de_dark.png +new file mode 100644 +index 0000000..a960984 +Binary files /dev/null and b/socialshareprivacy/images/facebook_share_de_dark.png differ +diff --git a/socialshareprivacy/images/facebook_share_en.png b/socialshareprivacy/images/facebook_share_en.png +new file mode 100644 +index 0000000..d86cbc6 +Binary files /dev/null and b/socialshareprivacy/images/facebook_share_en.png differ +diff --git a/socialshareprivacy/images/facebook_share_en_dark.png b/socialshareprivacy/images/facebook_share_en_dark.png +new file mode 100644 +index 0000000..5125d83 +Binary files /dev/null and b/socialshareprivacy/images/facebook_share_en_dark.png differ +diff --git a/socialshareprivacy/images/settings.png b/socialshareprivacy/images/settings.png +new file mode 100644 +index 0000000..d21192e +Binary files /dev/null and b/socialshareprivacy/images/settings.png differ +diff --git a/socialshareprivacy/images/settings_dark.png b/socialshareprivacy/images/settings_dark.png +new file mode 100644 +index 0000000..c875670 +Binary files /dev/null and b/socialshareprivacy/images/settings_dark.png differ +diff --git a/socialshareprivacy/images/socialshareprivacy_info.png b/socialshareprivacy/images/socialshareprivacy_info.png +new file mode 100644 +index 0000000..160d420 +Binary files /dev/null and b/socialshareprivacy/images/socialshareprivacy_info.png differ +diff --git a/socialshareprivacy/images/socialshareprivacy_info_dark.png b/socialshareprivacy/images/socialshareprivacy_info_dark.png +new file mode 100644 +index 0000000..2052c76 +Binary files /dev/null and b/socialshareprivacy/images/socialshareprivacy_info_dark.png differ +diff --git a/socialshareprivacy/images/socialshareprivacy_on_off.png b/socialshareprivacy/images/socialshareprivacy_on_off.png +new file mode 100644 +index 0000000..03f4969 +Binary files /dev/null and b/socialshareprivacy/images/socialshareprivacy_on_off.png differ +diff --git a/socialshareprivacy/images/socialshareprivacy_on_off_dark.png b/socialshareprivacy/images/socialshareprivacy_on_off_dark.png +new file mode 100644 +index 0000000..1ade18f +Binary files /dev/null and b/socialshareprivacy/images/socialshareprivacy_on_off_dark.png differ +diff --git a/socialshareprivacy/js/jquery.socialshareprivacy.js b/socialshareprivacy/js/jquery.socialshareprivacy.js +new file mode 100644 +index 0000000..8ad1a1f +--- /dev/null ++++ b/socialshareprivacy/js/jquery.socialshareprivacy.js +@@ -0,0 +1,445 @@ ++/* ++ * jquery.socialshareprivacy.js | 2 Klicks fuer mehr Datenschutz (1.6) ++ * ++ * http://www.heise.de/extras/socialshareprivacy/ ++ * http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html ++ * ++ * Copyright (c) 2011-2014 Hilko Holweg, Sebastian Hilbig, Nicolas Heiringhoff, Juergen Schmidt, ++ * Heise Zeitschriften Verlag GmbH & Co. KG, http://www.heise.de ++ * ++ * is released under the MIT License http://www.opensource.org/licenses/mit-license.php ++ * ++ * Spread the word, link to us if you can. ++ */ ++(function ($) { ++ ++ "use strict"; ++ ++ // ++ // helper functions ++ // ++ ++ // abbreviate at last blank before length and add "\u2026" (horizontal ellipsis) ++ function abbreviateText(text, length) { ++ var abbreviated = decodeURIComponent(text); ++ if (abbreviated.length <= length) { ++ return text; ++ } ++ ++ var lastWhitespaceIndex = abbreviated.substring(0, length - 1).lastIndexOf(' '); ++ abbreviated = encodeURIComponent(abbreviated.substring(0, lastWhitespaceIndex)) + "\u2026"; ++ ++ return abbreviated; ++ } ++ ++ // returns content of <meta name="" content=""> tags or '' if empty/non existant ++ function getMeta(name) { ++ var metaContent = $('meta[name="' + name + '"]').attr('content'); ++ return metaContent || ''; ++ } ++ ++ // create tweet text from content of <meta name="DC.title"> and <meta name="DC.creator"> ++ // fallback to content of <title> tag ++ function getTweetText() { ++ var title = getMeta('DC.title'); ++ var creator = getMeta('DC.creator'); ++ ++ if (title.length > 0 && creator.length > 0) { ++ title += ' - ' + creator; ++ } else { ++ title = $('title').text(); ++ } ++ ++ return encodeURIComponent(title); ++ } ++ ++ // build URI from rel="canonical" or document.location ++ function getURI() { ++ var uri = document.location.href; ++ var canonical = $("link[rel=canonical]").attr("href"); ++ ++ if (canonical && canonical.length > 0) { ++ if (canonical.indexOf("http") < 0) { ++ canonical = document.location.protocol + "//" + document.location.host + canonical; ++ } ++ uri = canonical; ++ } ++ ++ return uri; ++ } ++ ++ function cookieSet(name, value, days, path, domain) { ++ var expires = new Date(); ++ expires.setTime(expires.getTime() + (days * 24 * 60 * 60 * 1000)); ++ document.cookie = name + '=' + value + '; expires=' + expires.toUTCString() + '; path=' + path + '; domain=' + domain; ++ } ++ function cookieDel(name, value, path, domain) { ++ var expires = new Date(); ++ expires.setTime(expires.getTime() - 100); ++ document.cookie = name + '=' + value + '; expires=' + expires.toUTCString() + '; path=' + path + '; domain=' + domain; ++ } ++ ++ // extend jquery with our plugin function ++ $.fn.socialSharePrivacy = function (settings) { ++ var defaults = { ++ 'services' : { ++ 'facebook' : { ++ 'status' : 'on', ++ 'dummy_img' : '../../core/backend/admin/modules/share_buttons/socialshareprivacy/images/dummy_facebook.png', ++ 'perma_option' : 'on', ++ 'referrer_track' : '', ++ 'action' : 'recommend', ++ 'layout' : 'button_count', ++ 'sharer' : { ++ 'status' : 'off', ++ 'dummy_img' : '../../core/backend/admin/modules/share_buttons/socialshareprivacy/images/dummy_facebook_share_de.png', ++ 'img' : '../../core/backend/admin/modules/share_buttons/socialshareprivacy/images/dummy_facebook_share_active_de.png' ++ } ++ }, ++ 'twitter' : { ++ 'status' : 'on', ++ 'dummy_img' : '../../core/backend/admin/modules/share_buttons/socialshareprivacy/images/dummy_twitter.png', ++ 'perma_option' : 'on', ++ 'referrer_track' : '', ++ 'tweet_text' : getTweetText, ++ 'count' : 'horizontal' ++ }, ++ 'gplus' : { ++ 'status' : 'on', ++ 'dummy_img' : '../../core/backend/admin/modules/share_buttons/socialshareprivacy/images/dummy_gplus.png', ++ 'perma_option' : 'on', ++ 'referrer_track' : '', ++ 'size' : 'medium' ++ } ++ }, ++ 'info_link' : 'http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html', ++ 'cookie_path' : '/', ++ 'cookie_domain' : document.location.host, ++ 'cookie_expires' : '365', ++ 'css_path' : '../../core/backend/admin/modules/share_buttons/socialshareprivacy/socialshareprivacy.css', ++ 'uri' : getURI, ++ 'language' : 'de', ++ 'lang_path' : '../../core/backend/admin/modules/share_buttons/socialshareprivacy/lang/', ++ 'skin' : 'light', ++ 'alignment' : 'horizontal', ++ 'switch_alignment' : 'left', ++ 'perma_orientation' : 'down' ++ }; ++ ++ // Standardwerte des Plug-Ins mit den vom User angegebenen Optionen ueberschreiben ++ var options = $.extend(true, defaults, settings); ++ ++ var facebook_on = (options.services.facebook.status === 'on'); ++ var facebook_sharer_on = (options.services.facebook.sharer.status === 'on'); ++ var twitter_on = (options.services.twitter.status === 'on'); ++ var gplus_on = (options.services.gplus.status === 'on'); ++ ++ // check if at least one service is "on" ++ if (!facebook_on && !twitter_on && !gplus_on) { ++ return; ++ } ++ ++ // insert stylesheet into document and prepend target element ++ if (options.css_path.length > 0 && $(window).data('socialshareprivacy_css') != '1') { ++ // IE fix (noetig fuer IE < 9 - wird hier aber fuer alle IE gemacht) ++ if (document.createStyleSheet) { ++ document.createStyleSheet(options.css_path); ++ } ++ else { ++ $('head').append('<link rel="stylesheet" type="text/css" href="' + options.css_path + '" />'); ++ } ++ ++ $(window).data('socialshareprivacy_css','1'); ++ } ++ ++ var language; ++ ++ function loadLangFile() { ++ var d = $.Deferred(); ++ ++ $.getJSON(options.lang_path + options.language+'.lang', function(data) { ++ language = data; ++ d.resolve(); ++ }).fail(function(s){ ++ if(typeof console !== "undefined") { ++ console.log('Error ' + s.status + ' while loading the language file ('+options.lang_path+options.language+'.lang)'); ++ } ++ d.reject(); ++ }); ++ ++ return d.promise(); ++ } ++ ++ return this.each(function () { ++ $('div#socialshareprivacy').each(function(){ ++ var iteration = this; ++ ++ $.when( ++ loadLangFile()) ++ .then( function() { ++ $(iteration).prepend('<ul class="social_share_privacy_area clearfix"></ul>'); ++ var context = $('.social_share_privacy_area', iteration); ++ ++ // Class for dark skinning ++ if(options.skin == 'dark') { ++ $(context).addClass('skin-dark'); ++ } ++ ++ // Class for alignment ++ if(options.alignment == 'vertical') { ++ $(context).addClass('vertical'); ++ ++ if(options.switch_alignment == 'right' && ++ ((facebook_on && options.services.facebook.layout == 'box_count') || (!facebook_on)) && ++ ((twitter_on && options.services.twitter.count == 'vertical') || (!twitter_on)) && ++ ((gplus_on && options.services.gplus.size == 'tall') || (!gplus_on))) { ++ $(context).addClass('switch_right'); ++ } ++ } ++ ++ // canonical uri that will be shared ++ var uri = options.uri; ++ if (typeof uri === 'function') { ++ uri = uri(context); ++ } ++ ++ // ++ // Facebook ++ // ++ if (facebook_on) { ++ var fb_dummy_btn; ++ var fb_code; ++ ++ var fb_height = options.services.facebook.layout == 'box_count' ? '61' : '21'; ++ var fb_width = options.services.facebook.layout == 'box_count' ? '90' : '130'; ++ ++ var fb_enc_uri = encodeURIComponent(uri + options.services.facebook.referrer_track); ++ ++ if (facebook_sharer_on) { ++ fb_dummy_btn = '<img src="' + options.services.facebook.sharer.dummy_img + '" alt="Facebook &quot;Share&quot;-Dummy" class="fb_like_privacy_dummy" />'; ++ fb_code = '<a href="#" onclick="window.open(\'https://www.facebook.com/sharer/sharer.php?u=' + fb_enc_uri + '\', \'facebook-share-dialog\', \'width=626,height=436\'); return false;"><img src="'+options.services.facebook.sharer.img+'" alt="" /></a>'; ++ } ++ else { ++ fb_dummy_btn = '<img src="' + options.services.facebook.dummy_img + '" alt="Facebook &quot;Like&quot;-Dummy" class="fb_like_privacy_dummy" />'; ++ fb_code = '<iframe src="//www.facebook.com/plugins/like.php?locale=' + language.services.facebook.language + '&amp;href=' + fb_enc_uri + '&amp;width=' + fb_width + '&amp;layout=' + options.services.facebook.layout + '&amp;action=' + options.services.facebook.action + '&amp;show_faces=false&amp;share=false&amp;height=' + fb_height + '&amp;colorscheme=' + options.skin + '" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:' + fb_width + 'px; height:' + fb_height + 'px;" allowTransparency="true"></iframe>'; ++ } ++ context.append('<li class="facebook help_info clearfix"><span class="info">' + language.services.facebook.txt_info + '</span><a href="#" class="switch off">' + language.services.facebook.txt_fb_off + '</a><div class="fb_like dummy_btn">' + fb_dummy_btn + '</div></li>'); ++ ++ var $container_fb = $('li.facebook', context); ++ $(context).on('click', 'li.facebook div.fb_like img.fb_like_privacy_dummy,li.facebook .switch', function (e) { ++ e.preventDefault(); ++ if ($container_fb.find('.switch').hasClass('off')) { ++ $container_fb.addClass('info_off'); ++ $container_fb.find('.switch').addClass('on').removeClass('off').html(language.services.facebook.txt_fb_on); ++ $container_fb.find('img.fb_like_privacy_dummy').replaceWith(fb_code); ++ } ++ else { ++ $container_fb.removeClass('info_off'); ++ $container_fb.find('.switch').addClass('off').removeClass('on').html(language.services.facebook.txt_fb_off); ++ $container_fb.find('.fb_like').html(fb_dummy_btn); ++ } ++ }); ++ } ++ ++ // ++ // Twitter ++ // ++ if (twitter_on) { ++ var text = options.services.twitter.tweet_text; ++ if (typeof text === 'function') { ++ text = text(); ++ } ++ // 120 is the max character count left after twitters automatic url shortening with t.co ++ text = abbreviateText(text, '120'); ++ ++ var tw_height = options.services.twitter.count == 'horizontal' ? '25' : '62'; ++ var tw_width = options.services.twitter.count == 'horizontal' ? '130' : '83'; ++ ++ var twitter_enc_uri = encodeURIComponent(uri + options.services.twitter.referrer_track); ++ var twitter_count_url = encodeURIComponent(uri); ++ var twitter_code = '<iframe allowtransparency="true" frameborder="0" scrolling="no" src="//platform.twitter.com/widgets/tweet_button.html?url=' + twitter_enc_uri + '&amp;counturl=' + twitter_count_url + '&amp;text=' + text + '&amp;count=' + options.services.twitter.count + '&amp;lang=' + language.services.twitter.language + '&amp;dnt=true" style="width:' + tw_width + 'px; height:' + tw_height + 'px;"></iframe>'; ++ var twitter_dummy_btn = '<img src="' + options.services.twitter.dummy_img + '" alt="&quot;Tweet this&quot;-Dummy" class="tweet_this_dummy" />'; ++ ++ context.append('<li class="twitter help_info clearfix"><span class="info">' + language.services.twitter.txt_info + '</span><a href="#" class="switch off">' + language.services.twitter.txt_twitter_off + '</a><div class="tweet dummy_btn">' + twitter_dummy_btn + '</div></li>'); ++ ++ var $container_tw = $('li.twitter', context); ++ ++ $(context).on('click', 'li.twitter div.tweet img,li.twitter .switch', function (e) { ++ e.preventDefault(); ++ if ($container_tw.find('.switch').hasClass('off')) { ++ $container_tw.addClass('info_off'); ++ $container_tw.find('.switch').addClass('on').removeClass('off').html(language.services.twitter.txt_twitter_on); ++ $container_tw.find('img.tweet_this_dummy').replaceWith(twitter_code); ++ } ++ else { ++ $container_tw.removeClass('info_off'); ++ $container_tw.find('.switch').addClass('off').removeClass('on').html(language.services.twitter.txt_twitter_off); ++ $container_tw.find('.tweet').html(twitter_dummy_btn); ++ } ++ }); ++ } ++ ++ // ++ // Google+ ++ // ++ if (gplus_on) { ++ // fuer G+ wird die URL nicht encoded, da das zu einem Fehler fuehrt ++ var gplus_uri = uri + options.services.gplus.referrer_track; ++ ++ // we use the Google+ "asynchronous" code, standard code is flaky if inserted into dom after load ++ var gplus_code = '<div class="g-plusone" data-size="' + options.services.gplus.size + '" data-href="' + gplus_uri + '"></div><script type="text/javascript">window.___gcfg = {lang: "' + language.services.gplus.language + '"}; (function() { var po = document.createElement("script"); po.type = "text/javascript"; po.async = true; po.src = "https://apis.google.com/js/platform.js"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(po, s); })(); </script>'; ++ var gplus_dummy_btn = '<img src="' + options.services.gplus.dummy_img + '" alt="&quot;Google+1&quot;-Dummy" class="gplus_one_dummy" />'; ++ ++ context.append('<li class="gplus help_info clearfix"><span class="info">' + language.services.gplus.txt_info + '</span><a href="#" class="switch off">' + language.services.gplus.txt_gplus_off + '</a><div class="gplusone dummy_btn">' + gplus_dummy_btn + '</div></li>'); ++ ++ var $container_gplus = $('li.gplus', context); ++ ++ $(context).on('click', 'li.gplus div.gplusone img,li.gplus .switch', function (e) { ++ e.preventDefault(); ++ if ($container_gplus.find('.switch').hasClass('off')) { ++ $container_gplus.addClass('info_off'); ++ $container_gplus.find('.switch').addClass('on').removeClass('off').html(language.services.gplus.txt_gplus_on); ++ $container_gplus.find('img.gplus_one_dummy').replaceWith(gplus_code); ++ } ++ else { ++ $container_gplus.removeClass('info_off'); ++ $container_gplus.find('.switch').addClass('off').removeClass('on').html(language.services.gplus.txt_gplus_off); ++ $container_gplus.find('.gplusone').html(gplus_dummy_btn); ++ } ++ }); ++ } ++ ++ // ++ // Der Info/Settings-Bereich wird eingebunden ++ // ++ context.append('<li class="settings_info ' + options.perma_orientation + '"><div class="settings_info_menu off perma_option_off"><a href="' + options.info_link + '"><span class="help_info icon"><span class="info">' + language.txt_help + '</span></span></a></div></li>'); ++ ++ // Info-Overlays mit leichter Verzoegerung einblenden ++ $(context).on('mouseenter', '.help_info:not(.info_off)', function () { ++ var $info_wrapper = $(this); ++ var timeout_id = window.setTimeout(function () { $($info_wrapper).addClass('display'); }, 500); ++ $(this).data('timeout_id', timeout_id); ++ }); ++ $(context).on('mouseleave', '.help_info', function () { ++ var timeout_id = $(this).data('timeout_id'); ++ window.clearTimeout(timeout_id); ++ if ($(this).hasClass('display')) { ++ $(this).removeClass('display'); ++ } ++ }); ++ ++ var facebook_perma = (options.services.facebook.perma_option === 'on'); ++ var twitter_perma = (options.services.twitter.perma_option === 'on'); ++ var gplus_perma = (options.services.gplus.perma_option === 'on'); ++ ++ // Menue zum dauerhaften Einblenden der aktiven Dienste via Cookie einbinden ++ if ((facebook_on && facebook_perma) || (twitter_on && twitter_perma) || (gplus_on && gplus_perma)) { ++ ++ // Cookies abrufen ++ var cookie_list = document.cookie.split(';'); ++ var cookies = '{'; ++ var i = 0; ++ for (; i < cookie_list.length; i += 1) { ++ var foo = cookie_list[i].split('='); ++ // Spaces and Quotes getting removed ++ foo[0] = $.trim(foo[0].replace(/"/g, '')); ++ foo[1] = $.trim(foo[1].replace(/"/g, '')); ++ cookies += '"' + foo[0] + '":"' + foo[1] + '"'; ++ if (i < cookie_list.length - 1) { ++ cookies += ','; ++ } ++ } ++ cookies += '}'; ++ cookies = jQuery.parseJSON(cookies); ++ ++ // Container definieren ++ var $container_settings_info = $('li.settings_info', context); ++ ++ // Klasse entfernen, die das i-Icon alleine formatiert, da Perma-Optionen eingeblendet werden ++ $container_settings_info.find('.settings_info_menu').removeClass('perma_option_off'); ++ ++ // Perma-Optionen-Icon (.settings) und Formular (noch versteckt) einbinden ++ $container_settings_info.find('.settings_info_menu').append('<a href="#" class="settings">' + language.settings + '</a><form><fieldset><legend>' + language.settings_perma + '</legend></fieldset></form>'); ++ ++ ++ var random = 'r' + Math.floor(Math.random()*101); ++ ++ // Die Dienste mit <input> und <label>, sowie checked-Status laut Cookie, schreiben ++ var checked = ' checked="checked"'; ++ if (facebook_on && facebook_perma) { ++ var perma_status_facebook = cookies.socialSharePrivacy_facebook === 'perma_on' ? checked : ''; ++ $container_settings_info.find('form fieldset').append( ++ '<input type="checkbox" name="perma_status_facebook" id="' + random + '_perma_status_facebook"' + perma_status_facebook + ' /><label for="'+random+'_perma_status_facebook">' + language.services.facebook.perma_display_name + '</label>' ++ ); ++ } ++ ++ if (twitter_on && twitter_perma) { ++ var perma_status_twitter = cookies.socialSharePrivacy_twitter === 'perma_on' ? checked : ''; ++ $container_settings_info.find('form fieldset').append( ++ '<input type="checkbox" name="perma_status_twitter" id="' + random + '_perma_status_twitter"' + perma_status_twitter + ' /><label for="'+random+'_perma_status_twitter">' + language.services.twitter.perma_display_name + '</label>' ++ ); ++ } ++ ++ if (gplus_on && gplus_perma) { ++ var perma_status_gplus = cookies.socialSharePrivacy_gplus === 'perma_on' ? checked : ''; ++ $container_settings_info.find('form fieldset').append( ++ '<input type="checkbox" name="perma_status_gplus" id="'+random+'_perma_status_gplus"' + perma_status_gplus + ' /><label for="'+random+'_perma_status_gplus">' + language.services.gplus.perma_display_name + '</label>' ++ ); ++ } ++ ++ // Settings-Menue per Tastatur erreichbar machen, die Mouseevents werden getriggert ++ $(context).on('click', 'li.settings_info .settings', function (e) { ++ e.preventDefault(); ++ if($(this).data('keyb') == 'on') { ++ $('li.settings_info', context).trigger('mouseleave'); ++ $(this).data('keyb','off'); ++ } ++ else { ++ $('li.settings_info .settings', context).trigger('mouseenter'); ++ $(this).data('keyb','on'); ++ } ++ }); ++ ++ // Einstellungs-Menue bei mouseover ein-/ausblenden ++ $(context).on('mouseenter', 'li.settings_info .settings', function () { ++ var timeout_id = window.setTimeout(function () { $container_settings_info.find('.settings_info_menu').removeClass('off').addClass('on'); }, 500); ++ $(this).data('timeout_id', timeout_id); ++ }); ++ $(context).on('mouseleave', 'li.settings_info', function () { ++ var timeout_id = $(this).data('timeout_id'); ++ window.clearTimeout(timeout_id); ++ $container_settings_info.find('.settings_info_menu').removeClass('on').addClass('off'); ++ }); ++ ++ // Klick-Interaktion auf <input> um Dienste dauerhaft ein- oder auszuschalten (Cookie wird gesetzt oder geloescht) ++ $(context).on('click', 'li.settings_info fieldset input', function (event) { ++ var click = event.target.id; ++ var service = click.substr(click.lastIndexOf('_') + 1, click.length); ++ var cookie_name = 'socialSharePrivacy_' + service; ++ ++ if ($('#' + event.target.id + ':checked').length) { ++ cookieSet(cookie_name, 'perma_on', options.cookie_expires, options.cookie_path, options.cookie_domain); ++ $('form fieldset label[for=' + click + ']', context).addClass('checked'); ++ } ++ else { ++ cookieDel(cookie_name, 'perma_on', options.cookie_path, options.cookie_domain); ++ $('form fieldset label[for=' + click + ']', context).removeClass('checked'); ++ } ++ }); ++ ++ // Dienste automatisch einbinden, wenn entsprechendes Cookie vorhanden ist ++ if (facebook_on && facebook_perma && cookies.socialSharePrivacy_facebook === 'perma_on') { ++ $('li.facebook .switch', context).click(); ++ } ++ if (twitter_on && twitter_perma && cookies.socialSharePrivacy_twitter === 'perma_on') { ++ $('li.twitter .switch', context).click(); ++ } ++ if (gplus_on && gplus_perma && cookies.socialSharePrivacy_gplus === 'perma_on') { ++ $('li.gplus .switch', context).click(); ++ } ++ } ++ }); // .then() ++ }); ++ }); // this.each(function () ++ }; // $.fn.socialSharePrivacy = function (settings) { ++}(jQuery)); +\ No newline at end of file +diff --git a/socialshareprivacy/js/jquery.socialshareprivacy.min.js b/socialshareprivacy/js/jquery.socialshareprivacy.min.js +new file mode 100644 +index 0000000..883636d +--- /dev/null ++++ b/socialshareprivacy/js/jquery.socialshareprivacy.min.js +@@ -0,0 +1 @@ ++!function(e){"use strict";function t(e,t){var s=decodeURIComponent(e);if(s.length<=t)return e;var a=s.substring(0,t-1).lastIndexOf(" ");return s=encodeURIComponent(s.substring(0,a))+"…"}function s(t){var s=e('meta[name="'+t+'"]').attr("content");return s||""}function a(){var t=s("DC.title"),a=s("DC.creator");return t.length>0&&a.length>0?t+=" - "+a:t=e("title").text(),encodeURIComponent(t)}function i(){var t=document.location.href,s=e("link[rel=canonical]").attr("href");return s&&s.length>0&&(s.indexOf("http")<0&&(s=document.location.protocol+"//"+document.location.host+s),t=s),t}function o(e,t,s,a,i){var o=new Date;o.setTime(o.getTime()+24*s*60*60*1e3),document.cookie=e+"="+t+"; expires="+o.toUTCString()+"; path="+a+"; domain="+i}function r(e,t,s,a){var i=new Date;i.setTime(i.getTime()-100),document.cookie=e+"="+t+"; expires="+i.toUTCString()+"; path="+s+"; domain="+a}e.fn.socialSharePrivacy=function(s){function n(){var t=e.Deferred();return e.getJSON(l.lang_path+l.language+".lang",function(e){u=e,t.resolve()}).fail(function(e){"undefined"!=typeof console&&console.log("Error "+e.status+" while loading the language file ("+l.lang_path+l.language+".lang)"),t.reject()}),t.promise()}var c={services:{facebook:{status:"on",dummy_img:"../../core/backend/admin/modules/share_buttons/socialshareprivacy/images/dummy_facebook.png",perma_option:"on",referrer_track:"",action:"recommend",layout:"button_count",sharer:{status:"off",dummy_img:"../../core/backend/admin/modules/share_buttons/socialshareprivacy/images/dummy_facebook_share_de.png",img:"../../core/backend/admin/modules/share_buttons/socialshareprivacy/images/dummy_facebook_share_active_de.png"}},twitter:{status:"on",dummy_img:"../../core/backend/admin/modules/share_buttons/socialshareprivacy/images/dummy_twitter.png",perma_option:"on",referrer_track:"",tweet_text:a,count:"horizontal"},gplus:{status:"on",dummy_img:"../../core/backend/admin/modules/share_buttons/socialshareprivacy/images/dummy_gplus.png",perma_option:"on",referrer_track:"",size:"medium"}},info_link:"http://www.heise.de/ct/artikel/2-Klicks-fuer-mehr-Datenschutz-1333879.html",cookie_path:"/",cookie_domain:document.location.host,cookie_expires:"365",css_path:"../../core/backend/admin/modules/share_buttons/socialshareprivacy/socialshareprivacy.css",uri:i,language:"de",lang_path:"../../core/backend/admin/modules/share_buttons/socialshareprivacy/lang/",skin:"light",alignment:"horizontal",switch_alignment:"left",perma_orientation:"down"},l=e.extend(!0,c,s),f="on"===l.services.facebook.status,m="on"===l.services.facebook.sharer.status,p="on"===l.services.twitter.status,d="on"===l.services.gplus.status;if(f||p||d){l.css_path.length>0&&"1"!=e(window).data("socialshareprivacy_css")&&(document.createStyleSheet?document.createStyleSheet(l.css_path):e("head").append('<link rel="stylesheet" type="text/css" href="'+l.css_path+'" />'),e(window).data("socialshareprivacy_css","1"));var u;return this.each(function(){e("div#socialshareprivacy").each(function(){var s=this;e.when(n()).then(function(){e(s).prepend('<ul class="social_share_privacy_area clearfix"></ul>');var a=e(".social_share_privacy_area",s);"dark"==l.skin&&e(a).addClass("skin-dark"),"vertical"==l.alignment&&(e(a).addClass("vertical"),"right"==l.switch_alignment&&(f&&"box_count"==l.services.facebook.layout||!f)&&(p&&"vertical"==l.services.twitter.count||!p)&&(d&&"tall"==l.services.gplus.size||!d)&&e(a).addClass("switch_right"));var i=l.uri;if("function"==typeof i&&(i=i(a)),f){var n,c,_="box_count"==l.services.facebook.layout?"61":"21",h="box_count"==l.services.facebook.layout?"90":"130",g=encodeURIComponent(i+l.services.facebook.referrer_track);m?(n='<img src="'+l.services.facebook.sharer.dummy_img+'" alt="Facebook &quot;Share&quot;-Dummy" class="fb_like_privacy_dummy" />',c='<a href="#" onclick="window.open(\'https://www.facebook.com/sharer/sharer.php?u='+g+"', 'facebook-share-dialog', 'width=626,height=436'); return false;\"><img src=\""+l.services.facebook.sharer.img+'" alt="" /></a>'):(n='<img src="'+l.services.facebook.dummy_img+'" alt="Facebook &quot;Like&quot;-Dummy" class="fb_like_privacy_dummy" />',c='<iframe src="//www.facebook.com/plugins/like.php?locale='+u.services.facebook.language+"&amp;href="+g+"&amp;width="+h+"&amp;layout="+l.services.facebook.layout+"&amp;action="+l.services.facebook.action+"&amp;show_faces=false&amp;share=false&amp;height="+_+"&amp;colorscheme="+l.skin+'" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:'+h+"px; height:"+_+'px;" allowTransparency="true"></iframe>'),a.append('<li class="facebook help_info clearfix"><span class="info">'+u.services.facebook.txt_info+'</span><a href="#" class="switch off">'+u.services.facebook.txt_fb_off+'</a><div class="fb_like dummy_btn">'+n+"</div></li>");var v=e("li.facebook",a);e(a).on("click","li.facebook div.fb_like img.fb_like_privacy_dummy,li.facebook .switch",function(e){e.preventDefault(),v.find(".switch").hasClass("off")?(v.addClass("info_off"),v.find(".switch").addClass("on").removeClass("off").html(u.services.facebook.txt_fb_on),v.find("img.fb_like_privacy_dummy").replaceWith(c)):(v.removeClass("info_off"),v.find(".switch").addClass("off").removeClass("on").html(u.services.facebook.txt_fb_off),v.find(".fb_like").html(n))})}if(p){var k=l.services.twitter.tweet_text;"function"==typeof k&&(k=k()),k=t(k,"120");var w="horizontal"==l.services.twitter.count?"25":"62",b="horizontal"==l.services.twitter.count?"130":"83",y=encodeURIComponent(i+l.services.twitter.referrer_track),C=encodeURIComponent(i),x='<iframe allowtransparency="true" frameborder="0" scrolling="no" src="//platform.twitter.com/widgets/tweet_button.html?url='+y+"&amp;counturl="+C+"&amp;text="+k+"&amp;count="+l.services.twitter.count+"&amp;lang="+u.services.twitter.language+'&amp;dnt=true" style="width:'+b+"px; height:"+w+'px;"></iframe>',S='<img src="'+l.services.twitter.dummy_img+'" alt="&quot;Tweet this&quot;-Dummy" class="tweet_this_dummy" />';a.append('<li class="twitter help_info clearfix"><span class="info">'+u.services.twitter.txt_info+'</span><a href="#" class="switch off">'+u.services.twitter.txt_twitter_off+'</a><div class="tweet dummy_btn">'+S+"</div></li>");var D=e("li.twitter",a);e(a).on("click","li.twitter div.tweet img,li.twitter .switch",function(e){e.preventDefault(),D.find(".switch").hasClass("off")?(D.addClass("info_off"),D.find(".switch").addClass("on").removeClass("off").html(u.services.twitter.txt_twitter_on),D.find("img.tweet_this_dummy").replaceWith(x)):(D.removeClass("info_off"),D.find(".switch").addClass("off").removeClass("on").html(u.services.twitter.txt_twitter_off),D.find(".tweet").html(S))})}if(d){var T=i+l.services.gplus.referrer_track,z='<div class="g-plusone" data-size="'+l.services.gplus.size+'" data-href="'+T+'"></div><script type="text/javascript">window.___gcfg = {lang: "'+u.services.gplus.language+'"}; (function() { var po = document.createElement("script"); po.type = "text/javascript"; po.async = true; po.src = "https://apis.google.com/js/platform.js"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(po, s); })(); </script>',q='<img src="'+l.services.gplus.dummy_img+'" alt="&quot;Google+1&quot;-Dummy" class="gplus_one_dummy" />';a.append('<li class="gplus help_info clearfix"><span class="info">'+u.services.gplus.txt_info+'</span><a href="#" class="switch off">'+u.services.gplus.txt_gplus_off+'</a><div class="gplusone dummy_btn">'+q+"</div></li>");var I=e("li.gplus",a);e(a).on("click","li.gplus div.gplusone img,li.gplus .switch",function(e){e.preventDefault(),I.find(".switch").hasClass("off")?(I.addClass("info_off"),I.find(".switch").addClass("on").removeClass("off").html(u.services.gplus.txt_gplus_on),I.find("img.gplus_one_dummy").replaceWith(z)):(I.removeClass("info_off"),I.find(".switch").addClass("off").removeClass("on").html(u.services.gplus.txt_gplus_off),I.find(".gplusone").html(q))})}a.append('<li class="settings_info '+l.perma_orientation+'"><div class="settings_info_menu off perma_option_off"><a href="'+l.info_link+'"><span class="help_info icon"><span class="info">'+u.txt_help+"</span></span></a></div></li>"),e(a).on("mouseenter",".help_info:not(.info_off)",function(){var t=e(this),s=window.setTimeout(function(){e(t).addClass("display")},500);e(this).data("timeout_id",s)}),e(a).on("mouseleave",".help_info",function(){var t=e(this).data("timeout_id");window.clearTimeout(t),e(this).hasClass("display")&&e(this).removeClass("display")});var P="on"===l.services.facebook.perma_option,U="on"===l.services.twitter.perma_option,j="on"===l.services.gplus.perma_option;if(f&&P||p&&U||d&&j){for(var R=document.cookie.split(";"),O="{",N=0;N<R.length;N+=1){var E=R[N].split("=");E[0]=e.trim(E[0].replace(/"/g,"")),E[1]=e.trim(E[1].replace(/"/g,"")),O+='"'+E[0]+'":"'+E[1]+'"',N<R.length-1&&(O+=",")}O+="}",O=jQuery.parseJSON(O);var W=e("li.settings_info",a);W.find(".settings_info_menu").removeClass("perma_option_off"),W.find(".settings_info_menu").append('<a href="#" class="settings">'+u.settings+"</a><form><fieldset><legend>"+u.settings_perma+"</legend></fieldset></form>");var B="r"+Math.floor(101*Math.random()),F=' checked="checked"';if(f&&P){var J="perma_on"===O.socialSharePrivacy_facebook?F:"";W.find("form fieldset").append('<input type="checkbox" name="perma_status_facebook" id="'+B+'_perma_status_facebook"'+J+' /><label for="'+B+'_perma_status_facebook">'+u.services.facebook.perma_display_name+"</label>")}if(p&&U){var M="perma_on"===O.socialSharePrivacy_twitter?F:"";W.find("form fieldset").append('<input type="checkbox" name="perma_status_twitter" id="'+B+'_perma_status_twitter"'+M+' /><label for="'+B+'_perma_status_twitter">'+u.services.twitter.perma_display_name+"</label>")}if(d&&j){var Q="perma_on"===O.socialSharePrivacy_gplus?F:"";W.find("form fieldset").append('<input type="checkbox" name="perma_status_gplus" id="'+B+'_perma_status_gplus"'+Q+' /><label for="'+B+'_perma_status_gplus">'+u.services.gplus.perma_display_name+"</label>")}e(a).on("click","li.settings_info .settings",function(t){t.preventDefault(),"on"==e(this).data("keyb")?(e("li.settings_info",a).trigger("mouseleave"),e(this).data("keyb","off")):(e("li.settings_info .settings",a).trigger("mouseenter"),e(this).data("keyb","on"))}),e(a).on("mouseenter","li.settings_info .settings",function(){var t=window.setTimeout(function(){W.find(".settings_info_menu").removeClass("off").addClass("on")},500);e(this).data("timeout_id",t)}),e(a).on("mouseleave","li.settings_info",function(){var t=e(this).data("timeout_id");window.clearTimeout(t),W.find(".settings_info_menu").removeClass("on").addClass("off")}),e(a).on("click","li.settings_info fieldset input",function(t){var s=t.target.id,i=s.substr(s.lastIndexOf("_")+1,s.length),n="socialSharePrivacy_"+i;e("#"+t.target.id+":checked").length?(o(n,"perma_on",l.cookie_expires,l.cookie_path,l.cookie_domain),e("form fieldset label[for="+s+"]",a).addClass("checked")):(r(n,"perma_on",l.cookie_path,l.cookie_domain),e("form fieldset label[for="+s+"]",a).removeClass("checked"))}),f&&P&&"perma_on"===O.socialSharePrivacy_facebook&&e("li.facebook .switch",a).click(),p&&U&&"perma_on"===O.socialSharePrivacy_twitter&&e("li.twitter .switch",a).click(),d&&j&&"perma_on"===O.socialSharePrivacy_gplus&&e("li.gplus .switch",a).click()}})})})}}}(jQuery); +\ No newline at end of file +diff --git a/socialshareprivacy/lang/de.lang b/socialshareprivacy/lang/de.lang +new file mode 100644 +index 0000000..eff055d +--- /dev/null ++++ b/socialshareprivacy/lang/de.lang +@@ -0,0 +1,29 @@ ++{ ++ "services" : { ++ "facebook" : { ++ "txt_info" : "2 Klicks f&uuml;r mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie k&ouml;nnen Ihre Empfehlung an Facebook senden. Schon beim Aktivieren werden Daten an Dritte &uuml;bertragen &ndash; siehe <em>i</em>.", ++ "txt_fb_off" : "nicht mit Facebook verbunden", ++ "txt_fb_on" : "mit Facebook verbunden", ++ "language" : "de_DE", ++ "perma_display_name" : "Facebook" ++ }, ++ "twitter" : { ++ "txt_info" : "2 Klicks f&uuml;r mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie k&ouml;nnen Ihre Empfehlung an Twitter senden. Schon beim Aktivieren werden Daten an Dritte &uuml;bertragen &ndash; siehe <em>i</em>.", ++ "txt_twitter_off" : "nicht mit Twitter verbunden", ++ "txt_twitter_on" : "mit Twitter verbunden", ++ "language" : "en", ++ "perma_display_name" : "Twitter" ++ }, ++ "gplus" : { ++ "txt_info" : "2 Klicks f&uuml;r mehr Datenschutz: Erst wenn Sie hier klicken, wird der Button aktiv und Sie k&ouml;nnen Ihre Empfehlung an Google+ senden. Schon beim Aktivieren werden Daten an Dritte &uuml;bertragen &ndash; siehe <em>i</em>.", ++ "txt_gplus_off" : "nicht mit Google+ verbunden", ++ "txt_gplus_on" : "mit Google+ verbunden", ++ "language" : "de", ++ "perma_display_name" : "Google+" ++ } ++ }, ++ "language" : "de", ++ "txt_help" : "Wenn Sie diese Felder durch einen Klick aktivieren, werden Informationen an Facebook, Twitter oder Google in die USA &uuml;bertragen und unter Umst&auml;nden auch dort gespeichert. N&auml;heres erfahren Sie durch einen Klick auf das <em>i</em>.", ++ "settings_perma" : "Dauerhaft aktivieren und Daten&uuml;ber&shy;tragung zustimmen:", ++ "settings" : "Einstellungen" ++} +\ No newline at end of file +diff --git a/socialshareprivacy/lang/en.lang b/socialshareprivacy/lang/en.lang +new file mode 100644 +index 0000000..24fa134 +--- /dev/null ++++ b/socialshareprivacy/lang/en.lang +@@ -0,0 +1,29 @@ ++{ ++ "services" : { ++ "facebook" : { ++ "txt_info" : "2 clicks for more privacy: When you click here the button will be activated and you can send your recommendation. As soon as the button is activated data will be send to third party &ndash; for details click on <em>i</em>.", ++ "txt_fb_off" : "not connected to Facebook", ++ "txt_fb_on" : "connected to Facebook", ++ "language" : "en_US", ++ "perma_display_name" : "Facebook" ++ }, ++ "twitter" : { ++ "txt_info" : "2 clicks for more privacy: When you click here the button will be activated and you can send your recommendation. As soon as the button is activated data will be send to third party &ndash; for details click on <em>i</em>", ++ "txt_twitter_off" : "not connected to Twitter", ++ "txt_twitter_on" : "connected to Twitter", ++ "language" : "en", ++ "perma_display_name" : "Twitter" ++ }, ++ "gplus" : { ++ "txt_info" : "2 clicks for more privacy: When you click here the button will be activated and you can send your recommendation. As soon as the button is activated data will be send to third party &ndash; for details click on <em>i</em>", ++ "txt_gplus_off" : "not connected to Google+", ++ "txt_gplus_on" : "connected to Google+", ++ "language" : "en", ++ "perma_display_name" : "Google+" ++ } ++ }, ++ "language" : "en", ++ "txt_help" : "If you activate these buttons with a click informations will be send to Facebook, Twitter or Google in the USA and may be stored there. For details click on <em>i</em>.", ++ "settings_perma" : "Agree permanent activation and data transfer:", ++ "settings" : "settings" ++} +\ No newline at end of file +diff --git a/socialshareprivacy/socialshareprivacy.css b/socialshareprivacy/socialshareprivacy.css +new file mode 100644 +index 0000000..32086ae +--- /dev/null ++++ b/socialshareprivacy/socialshareprivacy.css +@@ -0,0 +1,334 @@ ++.social_share_privacy_area .clearfix::after { ++ content: ""; ++ height: 0; ++ line-height: 0; ++ font-size: 0; ++ visibility: hidden; ++ clear: both; ++ display: block; ++} ++.social_share_privacy_area { ++ clear: both; ++ margin: 20px 0 !important; ++ list-style-type: none; ++ padding: 0 !important; ++ width: auto; ++ height: 25px; ++ display: block; ++ font-family: Arial, sans-serif; ++} ++.social_share_privacy_area.vertical { ++ height: auto; ++} ++.social_share_privacy_area li { ++ margin: 0 !important; ++ padding: 0 !important; ++ height: 21px; ++ float: left; ++} ++.social_share_privacy_area.vertical li { ++ float: none; ++ clear: both; ++ width: 150px; ++ height: auto; ++ margin: 0 0 10px !important; ++} ++.social_share_privacy_area.vertical li.settings_info { ++ height: 24px; ++} ++.social_share_privacy_area.vertical.switch_right li { ++ width: 120px; ++} ++.social_share_privacy_area li .dummy_btn { ++ float: left; ++ margin: 0 0 0 10px; ++ cursor: pointer; ++ padding: 0; ++ height: inherit; ++} ++.social_share_privacy_area.vertical li .dummy_btn { ++ width: 90px; ++} ++.social_share_privacy_area.vertical.switch_right li .dummy_btn { ++ margin-left: 0; ++} ++.social_share_privacy_area li div iframe { ++ overflow: hidden; ++ height: inherit; ++ width: inherit; ++} ++/* Facebook begin */ ++.social_share_privacy_area .facebook { ++ width: 180px; ++ display: inline-block; ++} ++.social_share_privacy_area.vertical .facebook { ++ display: block; ++} ++.social_share_privacy_area .facebook .fb_like iframe { ++ width: 130px; ++} ++/* Facebook end */ ++/* Twitter begin */ ++.social_share_privacy_area .twitter { ++ width: 148px; ++} ++.social_share_privacy_area li div.tweet { ++ width: 100px; ++} ++/* Twitter end */ ++/* Google+ begin */ ++.social_share_privacy_area .gplus { ++ width: 123px; ++} ++.social_share_privacy_area li div.gplusone { ++ width: 75px; ++} ++/* Google+ end */ ++/* Switch begin */ ++.social_share_privacy_area li .switch { ++ text-indent: -9999em; ++ background: transparent url(images/socialshareprivacy_on_off.png) no-repeat 0 0 scroll; ++ width: 23px; ++ height: 12px; ++ overflow: hidden; ++ float: left; ++ margin: 4px 0 0; ++ padding: 0; ++ cursor: pointer; ++} ++.social_share_privacy_area.vertical.switch_right li .switch { ++ float: right; ++} ++.social_share_privacy_area.skin-dark li .switch { ++ background-image: url(images/socialshareprivacy_on_off_dark.png); ++} ++.social_share_privacy_area li .switch.on { ++ background-position: 0 -12px; ++} ++/* Switch end */ ++/* Tooltips begin */ ++.social_share_privacy_area li.help_info { ++ position: relative; ++} ++.social_share_privacy_area li.help_info .info, ++.social_share_privacy_area li .help_info.icon .info { ++ display: none; ++ position: absolute; ++ bottom: 40px; ++ left: 0; ++ width: 290px; ++ padding: 10px 15px; ++ margin: 0; ++ font-size: 12px; ++ line-height: 16px; ++ font-weight: bold; ++ border: 1px solid #ccc; ++ -moz-border-radius: 4px; ++ -webkit-border-radius: 4px; ++ border-radius: 4px; ++ -moz-box-shadow: 0 3px 4px #999; ++ -webkit-box-shadow: 0 3px 4px #999; ++ box-shadow: 0 3px 4px #999; ++ background-color: #fdfbec; ++ color: #000; ++ z-index: 500; ++} ++.social_share_privacy_area li.gplus.help_info .info { ++ left: -60px; ++} ++.social_share_privacy_area li .help_info.icon .info { ++ left: -243px; ++ width: 350px; ++} ++.social_share_privacy_area.vertical li.gplus.help_info .info, ++.social_share_privacy_area.vertical li .help_info.icon .info { ++ left: 0; ++} ++.social_share_privacy_area li.help_info.display .info, ++.social_share_privacy_area li .help_info.icon.display .info { ++ display: block; ++} ++.social_share_privacy_area li.help_info.info_off.display .info { ++ display: none; ++} ++.social_share_privacy_area li .help_info.icon { ++ background: #fff url(images/socialshareprivacy_info.png) no-repeat center center scroll; ++ width: 25px; ++ height: 20px; ++ position: relative; ++ display: inline-block; ++ vertical-align: top; ++ border: 2px solid #e7e3e3; ++ border-right-width: 0; ++ -moz-border-radius: 5px 0 0 5px; ++ -webkit-border-radius: 5px 0 0 5px; ++ border-radius: 5px 0 0 5px; ++ margin: 0; ++ padding: 0; ++} ++.social_share_privacy_area.skin-dark li .help_info.icon { ++ background-image: url(images/socialshareprivacy_info_dark.png),-moz-linear-gradient(top,#6a6767 0,#2d2a2a 100%); ++ background-image: url(images/socialshareprivacy_info_dark.png),-webkit-gradient(linear,center top,center bottom,color-stop(0%,#6a6767),color-stop(100%,#2d2a2a)); ++ background-image: url(images/socialshareprivacy_info_dark.png),-webkit-linear-gradient(top,#6a6767 0,#2d2a2a 100%); ++ background-image: url(images/socialshareprivacy_info_dark.png),-o-linear-gradient(top,#6a6767 0,#2d2a2a 100%); ++ background-image: url(images/socialshareprivacy_info_dark.png),-ms-linear-gradient(top,#6a6767 0,#2d2a2a 100%); ++ background-image: url(images/socialshareprivacy_info_dark.png),linear-gradient(top,#6a6767 0,#2d2a2a 100%); ++ background-image: url(images/socialshareprivacy_info_dark.png); ++ background-color: #4f4c4c; ++ border-color: #7e7e7e; ++} ++.social_share_privacy_area li.settings_info .settings_info_menu.on .help_info.icon { ++ border-top-width: 0; ++ border-left-width: 0; ++} ++.social_share_privacy_area li.settings_info .settings_info_menu.perma_option_off .help_info.icon { ++ border-right-width: 2px; ++ -moz-border-radius: 5px; ++ -webkit-border-radius: 5px; ++ border-radius: 5px; ++} ++/* Tooltips end */ ++/* Settings/Info begin */ ++.social_share_privacy_area li.settings_info { ++ position: relative; ++ top: -2px; ++} ++.social_share_privacy_area.vertical li.settings_info { ++ top: 0; ++} ++.social_share_privacy_area li.settings_info a { ++ text-decoration: none; ++ margin: 0 !important; ++} ++.social_share_privacy_area li.settings_info .settings_info_menu { ++ background-color: #f3f4f5; ++ border: 2px solid #e7e3e3; ++ -moz-border-radius: 5px; ++ -webkit-border-radius: 5px; ++ border-radius: 5px; ++ -moz-box-shadow: 2px 2px 3px #c1c1c1; ++ -webkit-box-shadow: 2px 2px 3px #c1c1c1; ++ box-shadow: 3px 3px 3px #c1c1c1; ++ left: 0; ++ position: absolute; ++ top: 0; ++ width: 135px; ++ z-index: 1000; ++ margin: 0; ++ padding: 0; ++} ++.social_share_privacy_area li.settings_info .settings_info_menu.off { ++ border-width: 0; ++ -moz-box-shadow: none; ++ -webkit-box-shadow: none; ++ box-shadow: none; ++ background-color: transparent; ++} ++.social_share_privacy_area li.settings_info .settings_info_menu.off form { ++ display: none; ++ margin: 0; ++ padding: 0; ++} ++.social_share_privacy_area li.settings_info .settings_info_menu .settings { ++ text-indent: -9999em; ++ display: inline-block; ++ background: #fff url(images/settings.png) no-repeat center center scroll; ++ width: 25px; ++ height: 20px; ++ border: 2px solid #e7e3e3; ++ -moz-border-radius: 0 5px 5px 0; ++ -webkit-border-radius: 0 5px 5px 0; ++ border-radius: 0 5px 5px 0; ++ border-left: 1px solid #ddd; ++ margin: 0; ++ padding: 0; ++} ++.social_share_privacy_area.skin-dark li.settings_info .settings_info_menu .settings { ++ background-image: url(images/settings_dark.png),-moz-linear-gradient(top,#6a6767 0,#2d2a2a 100%); ++ background-image: url(images/settings_dark.png),-webkit-gradient(linear,center top,center bottom,color-stop(0%,#6a6767),color-stop(100%,#2d2a2a)); ++ background-image: url(images/settings_dark.png),-webkit-linear-gradient(top,#6a6767 0,#2d2a2a 100%); ++ background-image: url(images/settings_dark.png),-o-linear-gradient(top,#6a6767 0,#2d2a2a 100%); ++ background-image: url(images/settings_dark.png),-ms-linear-gradient(top,#6a6767 0,#2d2a2a 100%); ++ background-image: url(images/settings_dark.png),linear-gradient(top,#6a6767 0,#2d2a2a 100%); ++ background-image: url(images/settings_dark.png); ++ background-color: #4f4c4c; ++ border-color: #7e7e7e; ++} ++.social_share_privacy_area.skin-dark li.settings_info .settings_info_menu.on { ++ background-color: #4f4c4c; ++ color: #fff; ++ -moz-box-shadow: none; ++ -webkit-box-shadow: none; ++ box-shadow: none; ++} ++.social_share_privacy_area li.settings_info .settings_info_menu.on .settings { ++ border-top-width: 0; ++} ++.social_share_privacy_area li.settings_info .settings_info_menu form fieldset { ++ border-width: 0; ++ margin: 0; ++ padding: 0 10px 10px; ++} ++.social_share_privacy_area li.settings_info .settings_info_menu form fieldset legend { ++ font-size: 11px; ++ font-weight: bold; ++ line-height: 14px; ++ margin: 0; ++ padding: 10px 0; ++ width: 115px; ++} ++.social_share_privacy_area li.settings_info .settings_info_menu form fieldset input { ++ clear: both; ++ float: left; ++ margin: 4px 10px 4px 0; ++ padding: 0; ++} ++.social_share_privacy_area li.settings_info .settings_info_menu form fieldset label { ++ display: inline-block; ++ float: left; ++ font-size: 12px; ++ font-weight: bold; ++ line-height: 24px; ++ -moz-transition: color .5s ease-in; ++ -webkit-transition: color .5s ease-in; ++ transition: color .5s ease-in; ++ margin: 0; ++ padding: 0; ++} ++.social_share_privacy_area li.settings_info .settings_info_menu form fieldset label.checked { ++ color: #090; ++} ++/* Top-Orientation */ ++.social_share_privacy_area li.settings_info.top { ++ ++} ++.social_share_privacy_area li.settings_info.top .settings_info_menu.on { ++ top: auto; ++ bottom: -3px; ++ padding-bottom: 22px; ++} ++.social_share_privacy_area.vertical li.settings_info.top .settings_info_menu.on { ++ bottom: 0; ++} ++.social_share_privacy_area li.settings_info.top .settings_info_menu.on > a { ++ position: absolute; ++ bottom: 0; ++ left: 0; ++} ++.social_share_privacy_area li.settings_info.top .settings_info_menu.on > a .help_info.icon { ++ border-top-width: 2px; ++ border-bottom-width: 0; ++ -webkit-border-radius: 0 0 0 5px; ++ -moz-border-radius: 0 0 0 5px; ++ border-radius: 0 0 0 5px; ++} ++.social_share_privacy_area li.settings_info.top .settings_info_menu.on > a.settings { ++ left: 25px; ++ border-top-width: 2px; ++ border-bottom-width: 0; ++ -webkit-border-radius: 0 5px 0 0; ++ -moz-border-radius: 0 5px 0 0; ++ border-radius: 0 5px 0 0; ++} ++/* Settings/Info end */ +\ No newline at end of file diff --git a/pulls/1.json b/pulls/1.json @@ -0,0 +1,18 @@ +{ + "number": 1, + "title": "V1", + "state": "merged", + "diff_file": "1.diff", + "author": "MTRNord", + "created_at": "2015-01-03T11:33:14Z", + "closed_at": "2015-01-03T11:33:30Z", + "merged_at": "2015-01-03T11:33:30Z", + "base_ref": "master", + "head_ref": "develop", + "labels": [], + "assignees": [], + "requested_reviewers": [], + "body": "", + "comments": [], + "review_comments": [] +} diff --git a/pulls/1.md b/pulls/1.md @@ -0,0 +1,13 @@ +# PR #1 V1 + +- **Status:** merged +- **Author:** @MTRNord +- **Created:** 2015-01-03T11:33:14Z +- **Branch:** develop → master +- **Merged:** 2015-01-03T11:33:30Z +- **Diff:** [1.diff](./1.diff) + +--- + +_No description._ +