Ajax Star Rating System

Статус: Offline
Реєстрація: 04.07.2008
Повідом.: 682
Привет всем.
Пишу свою CMS, есть некоторый раздел в котором есть что то наподобие форума
<td>
Пост
</td>
<td>
Второй пост
</td>
<td>
Старый пост :D
</td>
и тд.
Дело в том что нужно к каждому такому посту прикрепить систему рейтинга.
Вопрос номер адын:
Как его рейтинг прикрутить к посту, например чтобы я зашел и кликнул на него и соответственно значение в рейтинг добавилось, как определить что именно у этого поста такой рейтинг?
Вопрос номер два:
При выдаче всего, как мне соединить мои посты и рейтинги от них :D
Как например идея, в таблицу постов сделать например поле id_reyt, и это поле сделать внешним ключом на id поста?
Система постов вот эту выбрал
Тільки зареєстровані користувачі бачать весь контент у цьому розділі

Буду рад за помощь:клас:
 
и шо таки не ясно?
я не читал ссылку дальше строки

Код:
CREATE TABLE IF NOT EXISTS `star_rating` (
bla bla
) ENGINE=MyISAM DEFAULT [B]CHARSET=latin1[/B];
но вроде б все итак должно быть просто

Как его рейтинг прикрутить к посту, например чтобы я зашел и кликнул на него и соответственно значение в рейтинг добавилось
добавляешь эти свои звездочки внутрь твоей <td> и еще добавляешь какойто элемент в котором выведешь количество баллов для этого поста.
в тд лучше указать хоть какойто айдишник содержащий реальный айди поста что б знать к какому именно посту применяется действие.
у каждой звезды будет например имя содержащее величину голоса(1 2 3 4 5)
дальше, на общий для всех звезд селектор вешаешь обработчик клика.
внутри него например ты возьмешь будет величину голоса из имени звезды и узнаешь айдишник поста из айдишника parent'а этой звезды.
дальше отправляем аяксовый запрос на сервер аля /vote/<post_id>/<vote_value>/

серверную часть здесь я опускаю ибо пхп
и я хз как ты их там будешь считать.

в ответ например получаешь json в котором у тебя обновленное значение итогового голоса поста.
обращаемся обратно к нашей тдшке, и заменяем итоговое значение на свежеполученное значение.

как определить что именно у этого поста такой рейтинг?
При выдаче всего, как мне соединить мои посты и рейтинги от них
мммм. не совсем понимаю вопрос. и непонтно как ты собираешся хранить и считать своя голоса. но я бы просто в модельку поста добавил бы метод аля get_votes() в котором подсчитал количество баллов и в тогда в шаблоне просто выводил бы post.get_votes
это конечно если ты не будешь хранить эти данные как свойства поста.
Как например идея, в таблицу постов сделать например поле id_reyt, и это поле сделать внешним ключом на id поста?
а шо из себя представляет таблица постов? нада хоть немного осветить логику рассчета этих голосов.
 
Спасибо, очень помог.
Теперь есть уже другой вопрос.
Какой фрэймворк можно взять для написания сайта типа
Тільки зареєстровані користувачі бачать весь контент у цьому розділі
??
Как сделать свою собственную pagination???
 
Какой фрэймворк можно взять для написания сайта типа
Тільки зареєстровані користувачі бачать весь контент у цьому розділі
??
какой угодно
Как сделать свою собственную pagination???
смотря какой фремверк выберете. там найдете модуль пейджинации ибудет видно что именно нужно переопределить для "логики" или какие нужно переопределить шаблоны для "представления".
ваще вопрос некорректный. что ваша собственная пейджинация должна уметь делать? как должна выглядеть?
 
Возможно и мой совет пригодится.
Фреймоворки хорошо делают грузины,можно бригадира взять с пейджингом.
 
Например у меня есть 1000 постов...
Ну и например я хочу выводить их по 20 штук на страницу
типо :
первая,2,3,я тут,4,5...последняя.
Как я например если я пишу без фрэймворка написать самому такую штуку.
С чего начать копать? ))
Причем тут грузины? )
 
например, так
currentID = 0
select * from posts p where p.id > currentID limit 20
 
Например у меня есть 1000 постов...
Ну и например я хочу выводить их по 20 штук на страницу
типо :
первая,2,3,я тут,4,5...последняя.

то есть ничего особенного. ну тада будем изобретать велосипед... вечером.



нуяебу.
писал писал. потом посмотрел что я тупо переписал
Тільки зареєстровані користувачі бачать весь контент у цьому розділі

стер)
ну я не вижу просто проблем. нужен класс Paginator который Вам из общей выборки вернет экземпляр класса Page с нужными элементами.
пейдж должен уметь вернуть свои элементы их Вы и будете выводить в шаблоне.
в шаблоне потом достаточно указывать ссылки на эту же страницу и задавать GET параметр ?page=<номер страницы>. относительно этого параметра вы опять берете и получаете другой Page. и дальше все тоже самое.

по минимуму этого будет достаточно.
остальное - набор полезных функций классов Page и Paginator таких как next_page_number(), has_next(), has_previous() и тд. которые помогут Вам легче всем этим хозяйством в шаблоне управлять.
 
Останнє редагування:
Буду краток вот мое задание
Тільки зареєстровані користувачі бачать весь контент у цьому розділі

Если нажмете на кнопку "выборка" то получите 3 заказа (поста)
Так вот если таких постов будут 3 тысячи как мне тогда в этом случае делать pagination?
 
Буду краток вот мое задание
Тільки зареєстровані користувачі бачать весь контент у цьому розділі

Если нажмете на кнопку "выборка" то получите 3 заказа (поста)
Так вот если таких постов будут 3 тысячи как мне тогда в этом случае делать pagination?

для начала почитать про limit/offset в SQL
 
Ради интереса спрошу, на чем бы вы написали такой бы сайт?На каком фрэймворке?языке?
 
Буду краток вот мое задание
Тільки зареєстровані користувачі бачать весь контент у цьому розділі

Если нажмете на кнопку "выборка" то получите 3 заказа (поста)
Так вот если таких постов будут 3 тысячи как мне тогда в этом случае делать pagination?

В чем вопрос? делай пейджы, и выводи по 20 итемов на странице.
 
Назад
Зверху Знизу