Социалка

G

Gemini_13

Гость
Kex, я не гуру, но имхо, что нет. отследить отправку на трекере можно, но нельзя отследить опубликовал ли юзер потом эту новость или просто сразу же закрыл окно. ВК, как и Фейсбук, не дают обратной инфы на сколько знаю
 

dimka3210

Легенда
Kex, я не гуру, но имхо, что нет. отследить отправку на трекере можно, но нельзя отследить опубликовал ли юзер потом эту новость или просто сразу же закрыл окно. ВК, как и Фейсбук, не дают обратной инфы на сколько знаю
Зачем же так.
Давай просто проксировать через какой-то свой файл.
 

Вложения

  • pr.png
    pr.png
    5.8 KB · Просмотры: 78
G

Gemini_13

Гость
открывать ВК в своей странице? ем-м.. ну не знаю, я бы стремался будучи юзером. мало ли что эта страничка фиксирует
 

dimka3210

Легенда
открывать ВК в своей странице? ем-м.. ну не знаю, я бы стремался будучи юзером. мало ли что эта страничка фиксирует
Почему открыть? Сначала переходим в наш файл, он апает нам бонус, а потом мы попадаем на страничку в вк.
 
G

Gemini_13

Гость
а.. так не, не козырно. получается человеку достаточно зайти на страницу проверки "новости" перед отправкой на стену, как у него уже будет апнут бонус. юзер дальше не отправляет новость на стену, но сохраняет свой бонус. если делать такую фичу, то только с проверкой, что новость отправлена на стену и на ней находится. если без этого, то получается самый простой механизм шаровой накрутки бонусов без какой-либо отдачи трекеру
 

Kex

Пользователь
Но как то ведь должно быть можно все это сделать, встречал в инете интернет магазины, которые дают скидку на товар при вышеописанных действиях (от туда сопсно у меня и мысль родилась), им то не выгодно пальцем в него тыкать, они бы теряли реальные деньги, а не виртуальные бонусы, значит как то проверяют все таки размещено на стене или нет...
И еще мне кажется, что не так то и много юрезов просекут, что нет проверки разместили они чего или нет, вполне может прокатить и без проверки, а те потери на продвинутых юзерах думаю можно пережить.
 

Basilevs

Пользователь
Обновление

main.css
Код:
/* ---------------------------------- *
    Social
* ---------------------------------- */
#soc-container          { position: relative; }
.soc-buttons            { position: absolute; right: -3px; bottom: -6px; }
.soc-buttons span      { background-image: url(../images/soc_sprite.png); display: inline-block;
                                                    opacity: .40; width: 18px; height: 18px; margin-right: 4px; }
.soc-buttons span:hover { opacity: 1; cursor: pointer; }

viewtopic.tpl
PHP:
<table class="topic" id="topic_main" cellpadding="0" cellspacing="0">
<tr>
<th class="thHead td1">{L_AUTHOR}
<img src="{SPACER}" class="spacer t-spacer" alt="" />
</th>
<th class="thHead td2"><div id="soc-container" data-share_url="{SITE_URL}{U_VIEW_TOPIC}" data-share_title="{TOPIC_TITLE}">{L_MESSAGE}</div></div>
</th>
</tr>

main.js
PHP:
$(function(){
    BB.build_share_buttons();
 
    // Setup ajax-loading box
    $("#ajax-loading").ajaxStart(function(){
        $("#ajax-error").hide();
        $(this).show();
        ajax.setStatusBoxPosition($(this));
    });
    $("#ajax-loading").ajaxStop(function(){ $(this).hide(); });
 
    // Setup ajax-error box
    $("#ajax-error").ajaxError(function(req, xml){
        var status = xml.status;
        var text = xml.statusText;
        if (status == 200) {
            status = '';
            text = 'invalid data format';
        }
        $(this).html(
            "Ajax error in: <i>"+ ajax.url +"</i><br /><b>"+ status +" "+ text +"</b>"
        ).show();
        ajax.setStatusBoxPosition($(this));
    });
 
    // Bind ajax events
    $('var.ajax-params').each(function(){
        var params = $.evalJSON( $(this).html() );
        params.event = params.event || 'dblclick';
        ajax.params[params.id] = params;
        $("#"+params.id).bind(params.event, ajax.callInitFn);
        if (params.event == 'click' || params.event == 'dblclick') {
            $("#"+params.id).addClass('editable-container');
        }
    });
});
 
BB.build_share_buttons = function ()
{
    if ( !$('#soc-container').length ) {
        return;
    }
    var socials = {};
    socials['Facebook']    = [  0, 'http://www.facebook.com/sharer.php?u={URL}&t={TITLE}'];
    socials['Twitter']    = [-18, 'http://twitter.com/share?url={URL}&text={TITLE}'];
    socials['Вконтакте']  = [-36, 'http://vkontakte.ru/share.php?url={URL}'];
    socials['LiveJournal'] = [-54, 'http://www.livejournal.com/update.bml?event={URL}&subject={TITLE}'];
    socials['Google +1']  = [-72, 'https://plus.google.com/share?url={URL}'];
 
    var $container  = $('#soc-container');
    var $buttons    = $('<div class="soc-buttons"></div>');
    var share_url  = encodeURIComponent( $container.data('share_url') );
    var share_title = encodeURIComponent( $container.data('share_title') );
 
    $.each(socials, function(soc_name,params){
        var btn_title  = 'Опубликовать ссылку в '+ soc_name;
        var bg_position = params[0] +'px';
        var soc_url    = params[1].replace('{URL}', share_url).replace('{TITLE}', share_title);
        $('<span></span>')
            .attr('title', btn_title)
            .css('background-position', bg_position)
            .click(function(){
                window.open(soc_url, '_blank', 'width=800,height=550,top=50,left=100,location=yes,scrollbars=yes');
            })
            .appendTo($buttons);
    });
    $buttons.appendTo($container);
}

page_header.tpl сразу после строчки с jquery.pack.js
PHP:
<script type="text/javascript">
window.BB = {};
window.encURL = encodeURIComponent;
</script>
 
Сверху