Кнопки "Поделится"

Автор kak2z, 23 апреля 2015, 15:22:58

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

kak2z

А давайте поговорим)))
поговорим о социальных кнопках..  я вот нашел такой вот пример в сети, хочу сделать свои кнопки что бы не грузило ничего с удаленных сайтов..
Но вот думаю - как лучше делать, что бы в каждом сообщении были свои кнопки и можно было публиковать в соц сеть любое сообщение.. или достаточно только названия темы и ссылку на сайт?
Как вообще правильно?? Я лично сам никогда не пользовался такими кнопками да и в соцсетях не сижу, не люблю я их..
но вот вопрос как лучше и правильно - хотел бы обсудить)) надо делать все таки) 



<script type="text/javascript">window.jQuery || document.write(unescape('%3Cscript src="http://ajax.googleapis.com/ajax/libs/jquery/1.8/jquery.min.js"%3E%3C/script%3E'))</script>
<script type="text/javascript">


// Все элементы класса .social_share считаем кнопками шаринга
$(document).on('click', '.social_share', function(){
    Share.go(this);
});



Share = {
    /**
     * Показать пользователю диалог шаринга в сооветствии с опциями
     * Метод для использования в inline-js в ссылках
     * При блокировке всплывающего окна подставит нужный адрес и ползволит браузеру перейти по нему
     *
     * @example <a href="" onclick="return share.go(this)">like+</a>
     *
     * @param Object _element - элемент DOM, для которого
     * @param Object _options - опции, все необязательны
     */
    go: function(_element, _options) {
        var
            self = Share,
            options = $.extend(
                {
                    type:       'vk',    // тип соцсети
                    url:        location.href,  // какую ссылку шарим
                    count_url:  location.href,  // для какой ссылки крутим счётчик
                    title:      document.title, // заголовок шаринга
                    image:        'http://kak2z.ru/my_tagimg/img/2015/04/22/b0279.jpg.jpg',             // картинка шаринга
                    text:       'варвапрвап',             // текст шаринга
                },
                $(_element).data(), // Если параметры заданы в data, то читаем их
                _options            // Параметры из вызова метода имеют наивысший приоритет
            );

        if (self.popup(link = self[options.type](options)) === null) {
            // Если не удалось открыть попап
            if ( $(_element).is('a') ) {
                // Если это <a>, то подставляем адрес и просим браузер продолжить переход по ссылке
                $(_element).prop('href', link);
                return true;
            }
            else {
                // Если это не <a>, то пытаемся перейти по адресу
                location.href = link;
                return false;
            }
        }
        else {
            // Попап успешно открыт, просим браузер не продолжать обработку
            return false;
        }
    },

    // ВКонтакте
    vk: function(_options) {
        var options = $.extend({
                url:    location.href,
                title:  document.title,
                image:  '',
                text:   '',
            }, _options);

        return 'http://vkontakte.ru/share.php?'
            + 'url='          + encodeURIComponent(options.url)
            + '&title='       + encodeURIComponent(options.title)
            + '&description=' + encodeURIComponent(options.text)
            + '&image='       + encodeURIComponent(options.image)
            + '&noparse=true';
    },

    // Одноклассники
    ok: function(_options) {
        var options = $.extend({
                url:    location.href,
                text:   '',
            }, _options);

        return 'http://www.odnoklassniki.ru/dk?st.cmd=addShare&st.s=1'
            + '&st.comments=' + encodeURIComponent(options.text)
            + '&st._surl='    + encodeURIComponent(options.url);
    },

    // Facebook
    fb: function(_options) {
        var options = $.extend({
                url:    location.href,
                title:  document.title,
                image:  '',
                text:   '',
            }, _options);

        return 'http://www.facebook.com/sharer.php?s=100'
            + '&p[title]='     + encodeURIComponent(options.title)
            + '&p[summary]='   + encodeURIComponent(options.text)
            + '&p[url]='       + encodeURIComponent(options.url)
            + '&p[images][0]=' + encodeURIComponent(options.image);
    },

    // Живой Журнал
    lj: function(_options) {
        var options = $.extend({
                url:    location.href,
                title:  document.title,
                text:   '',
            }, _options);

        return 'http://livejournal.com/update.bml?'
            + 'subject='        + encodeURIComponent(options.title)
            + '&event='         + encodeURIComponent(options.text + '<br/><a href="' + options.url + '">' + options.title + '</a>')
            + '&transform=1';
    },

    // Твиттер
    tw: function(_options) {
        var options = $.extend({
                url:        location.href,
                count_url:  location.href,
                title:      document.title,
            }, _options);

        return 'http://twitter.com/share?'
            + 'text='      + encodeURIComponent(options.title)
            + '&url='      + encodeURIComponent(options.url)
            + '&counturl=' + encodeURIComponent(options.count_url);
    },

// Google+
    gg: function (_options) {
        var options = $.extend({
            url: location.href         
        }, _options);

        return 'https://plus.google.com/share?url='
            + encodeURIComponent(options.url);
    },

    // Mail.Ru
    mr: function(_options) {
        var options = $.extend({
                url:    location.href,
                title:  document.title,
                image:  '',
                text:   '',
            }, _options);

        return 'http://connect.mail.ru/share?'
            + 'url='          + encodeURIComponent(options.url)
            + '&title='       + encodeURIComponent(options.title)
            + '&description=' + encodeURIComponent(options.text)
            + '&imageurl='    + encodeURIComponent(options.image);
    },

    // Открыть окно шаринга
    popup: function(url) {
        return window.open(url,'','toolbar=0,status=0,scrollbars=1,width=626,height=436');
    }
}



</script>


<p>Поделиться:
    <button class="social_share" data-type="vk">ВКонтакте</button>
    <button class="social_share" data-type="fb">Facebook</button>
    <button class="social_share" data-type="tw">Twitter</button>
    <button class="social_share" data-type="lj">LiveJournal</button>
    <button class="social_share" data-type="ok">Одноклассники</button>
    <button class="social_share" data-type="mr">Mail.Ru</button>
</p>
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

ALINA

Цитата: kak2z от 23 апреля 2015, 15:22:58Как вообще правильно?? Я лично сам никогда не пользовался такими кнопками да и в соцсетях не сижу, не люблю я их..
я тоже не сижу в соцсетях но 2 аккаунта имею по необходимости .Это гугл + и твиттер . Так вот к чему веду . У меня под каждым постом стоят кнопки . Это вариант конечно идеальный что бы  копипастило хотя бы часть сообщения  . Не  знаю как это выглядит в контакте и в одноклассниках  в твиттере и гугле + вот так . Нет , если бы каждый топик имел свое название  может было бы проще .А если одна тема ? Да еще часть поста не захватывает .Не удобно .Приходится в ручную часть текста вписывать .


kak2z

больше года прошло с момента создания топика)))
кто что теперь думает про кнопки "Поделится"?? нужны или нет?)
Если нужно что то исправить, обновить, переставить, настроить, сделать форум заново - пишите в ЛС)

gorbi

У меня работают. Более того, не так давно попросили доделать пошарить в вайбер.