Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) jQuery Как засчитать просмотр страницы через модальное окно?

Как засчитать просмотр страницы через модальное окно?


     21.04.2014    jQuery, Общие вопросы по PHP, Хаки    2420

вопрос
Добрый день!
Подскажите пожалуйста, как организовать зачисление просмотра страницы в краткой новости открыв в модальном окне информацию с полной новости? Есть наглядный пример сайт Rutube.ru
При нажатии на выбранную новость открывается модальное окно с видео и тут сразу же данной новости присваивается +1 к просмотру. В строке появляется полная ссылка новости.
Вот картинка для наглядности:
Как засчитать просмотр страницы через модальное окно?

Я использую плагин ArcticModal но вот не пойму, как сделать чтобы зачислился просмотр и в строке появлялась ссылка полной новости.
Вот что у меня получилось:
Как засчитать просмотр страницы через модальное окно?

Помогите пожалуйста!

Ответил: DreamFix


Чтобы изменить текущую ссылку без перезагрузки страницы, можно использовать такой метод:

var stateParameters = { foo: "bar" };
history.pushState(stateParameters, "", "/video/4op3opo4o5opoi567oi693209892");

Комментарии пользователей (11)

monach
46 | 13

monach - 22 апреля 2014 11:34 - Юзер

Ребята хоть бы написали что-то.Это уже 2-й мой вопрос на который не реагируете.

rocksmart
64

307 | 115

rocksmart - 22 апреля 2014 15:08 - Юзер

дай html код модального окна

dimavdv
9

192 | 33

dimavdv - 22 апреля 2014 15:29 - Юзер

Мне тоже очень интересен ответ на данный вопрос)

monach
46 | 13

monach - 22 апреля 2014 15:45 - Юзер

Вот функция вызова

<script>
$('#popupwindow{news-id}').click(function() {
$('#popupcontentwindow{news-id}').arcticmodal({});
});
</script>

HTML код:

<span id="#popupwindow{news-id}" onclick="$('#popupcontentwindow{news-id}').arcticmodal()" title="Смотреть сейчас"></span>
      <div style="display:none;">
       <div class="popupwindow-modal" id="popupcontentwindow{news-id}">
        <div class="arcticmodal-close"></div>
         <iframe src="http://vk.com/video_ext.php?oid[xfvalue_video]" width="720" height="400" frameborder="0"></iframe>
          <article>
            [xfgiven_treiler]<strong class="title-strong">"[xfvalue_treiler]"</strong>[/xfgiven_treiler]  <a href="{full-link}" class="popupfull-link">{title}</a>
             <div class="info-use">
              <i><span class="views" title="Всего просмотров">{views}</span></i>
              <i><span class="comments" title="Всего комментариев">{comments-num}</span></i>
             [full-link] перейти на страницу видео[/full-link]
            </div>
         </article>
        </div>
       </div>
rocksmart,

monach
46 | 13

monach - 22 апреля 2014 15:59 - Юзер

Я нашел решение как выводить полную новость через ajax.Прикрутил как бы все работает нормально.Но вот тоже,как сделать чтобы когда окно открылось засчитался просмотр и в строке появлялась полная ссылка новости и при закрытии окна исчезала.
Возможно с этим кодом будет проще разобраться:
$(document).ready(function(){
    $('[data-post]').click(function(){
        ShowLoading('Загрузка публикации');
        $.ajax({
            type:'POST',
            url:dle_root+'engine/ajax/fullstory.php',
            data:{id:$(this).data('post'),template:$(this).data('tpl'),time:$(this).data('debug')},
            dataType:'xml',
            success:function(xml){
                HideLoading();
                $('#af,#af_layer').remove();
                $(xml).find('result').each(
                    function(){
                        $('body').append("<div id=\"af\"></div><div id=\"af_layer\" onclick=\"$('#af').dialog('close');$('#af,#af_layer').remove();\"></div>");
                        $('#af').dialog({
                            title:$(this).find('title').text(),
                            autoOpen:true,
                            draggable:true,
                            zIndex:900,
                            width:666,
                            height:500,
                            buttons:[{
                                text:'Закрыть',click:function(){
                                    $('#af,#af_layer').remove();
                                    $(this).dialog("close");
                                }
                            }],
                            close:function(event,ui){
                                $('#af,#af_layer').remove();
                            }
                        });
                        $('.ui-dialog-buttonset').html('<div class="af_rate">'+$(this).find('rate').text()+'</div><div class="af_debug">'+$(this).find('time').text()+'</div><a href="'+$(this).find('link').text()+'" class="af_more">Подробнее</a>');
                        $('.ui-dialog').css({position:'fixed',top:$(window).height()/1.6-330});
                        $('#af').html($(this).find('full').text());
                    }
                );
            },
            error:function(){
                ShowLoading('Ошибка AJAX запроса');
                setTimeout(HideLoading,3000);
            }
        }); return false;
    });
});

monach
46 | 13

monach - 22 апреля 2014 20:33 - Юзер

Ребята есть кто помочь может?

monach
46 | 13

monach - 23 апреля 2014 12:34 - Юзер

Всем привет! Уважаемые друзья!Прошу вас от всей души помогите пожалуйста решить задачку.

monach
46 | 13

monach - 24 апреля 2014 13:48 - Юзер

Друзья есть кто может помочь?

monach
46 | 13

monach - 2 мая 2014 16:01 - Юзер

Всем привет! Ребята есть кто может по этому вопросу помочь?

monach
46 | 13

monach - 7 мая 2014 13:26 - Юзер

Привет всем!Есть кто может что-то посоветовать по этому поводу?

vitnet
218

2171 | 930

vitnet - 7 мая 2014 13:53 - Эксперт

В файле engine/ajax/fullstory.php нужно добавить SQL запрос
if( $config['cache_count'] ) $db->query( "INSERT INTO " . PREFIX . "_views (news_id) VALUES ('ID вашей новости')" );
else $db->query( "UPDATE " . PREFIX . "_post_extras SET news_read=news_read+1 WHERE news_id='ID вашей новости'" );

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы