Нужен код системы оценки лайков/дизлайков в стиле Youtube?

Я пытаюсь создать рейтинговую систему, очень похожую на «палец вверх/вниз» на Youtube. Собственно, я надеялся добиться того же. Но из того, что я понял отсюда: http://code.google.com/apis/youtube/2.0/developers_guide_protocol.html#Ratings

Youtube использует API для управления всеми рейтингами. Поэтому я ищу информацию и помощь о том, как настроить ту же систему, что и YT. По сути, я хочу иметь функцию «Мне нравится / не нравится» для каждой страницы, которая нравится определенному объекту на этой странице - точно так же, как «нравится / не нравится» связано с видео на каждой странице. Желательно также один для комментариев. Вся помощь очень и очень приветствуется. От исходных кодов для уже готовых систем (я довольно много искал в Google, но так и не нашел подобной системы рейтинга с открытым исходным кодом) до помощи и информации о том, как я могу настроить рейтинговую систему на базе API.


person user1108267    schedule 20.12.2011    source источник


Ответы (2)


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

TABLE likes {
   user_id
   video_id
}

TABLE dislikes {
  user_id
  video_id
}

Обе таблицы связывают пользователя с видео.

person Peter O.    schedule 20.12.2011

Я бы посоветовал иметь базу данных со всеми видео и комментариями, в которой есть поле для лайков и дизлайков. затем вы можете обновить базу данных с помощью событий щелчка javascript, чтобы выполнить вызовы ajax для увеличения счетчика. вы можете использовать jquery, и код будет таким же простым, как:

$('#up_button').click(function(){
    var id = $(this).attr('thisid');
    $.ajax({ type: 'POST',
        url: 'AJAX/Handler/Upvote',
        data: { video_id: id },
        dataType: 'html',
        success: function (data) { alert('success'); },
        error: function (xhr, err) { alert('Error:\n\nreadyState: " + xhr.readyState + "\nstatus: " + xhr.status + "\nresponseText: " + xhr.responseText); }
    });
});
person Chris Brickhouse    schedule 20.12.2011
comment
@ Питер О. Прежде всего, спасибо за ответ. Итак, подведем итог: очень важно создать базу данных для видео и комментариев, а затем иметь таблицы для лайков и антипатий, чтобы я мог связать пользователя с видео. И как мне построить оттуда? - person user1108267; 20.12.2011
comment
сделайте таблицу для пользователей, таблицу для комментариев и таблицу для пользователей. есть поля для лайков и дизлайков в видео и комментариях. - person Chris Brickhouse; 21.12.2011