Зовсім недавно мене попросили підшукати який-небудь скрипт рейтингу з двома кнопками + або -, thumb up / thumb down (дві руки). Думаючи, що завдання зовсім вже проста я став шукати схожі скрипти в пошукових системах. Серед вимог до скрипту було захист по IP і легка інтеграція.
Серед рішень в мережі мені траплялися або занадто прості, навіть без прикладу та захисту по IP, або дуже складні і наворочені. Але, хороший і задовольняє всім вимогам скрипт, знайти так і не вдалося. Інтернет наповнений купою рішень для зоряного рейтингу (зірочки), але от з двома кнопками - на жаль. Так, є приголомшливе рішення для WordPress, але переробляти мені його зовсім не хотілося. У підсумку я знайшов дійсно хороше і добре рішення рейтингу, але воно виявилося платним. Витративши 2-3 години на пошуки (Це дійсно було так довго. Пошуковики знаходять начебто хороші рішення судячи по заголовках, але відкривши сайти розумієш що тебе обдурили.).
Так ось, витративши 2-3 години на пошуки рішення я забив і вирішив написати свій рейтинг. За одне і допоможу іншим, адже не тільки мені може стати в нагоді такий вид рейтингу.
Часу було мало, тому я назбирав купу різних скриптів рейтингів. Розколупав їх, розклав на шматочки, а потім став збирати.
Я чітко був упевнений:
- На виході повинен вийде простий і легкий рейтинг
- Захист по IP
- Легка інтеграція (викликав функцію, вліпив ID поста і все)
- Буду використовувати jQuery. Простіше і надійніше
- Легка зміна картинок від плюсиков до пальців вгору і т.д.
Після деякого часу рейтинг був готовий, вийшло 8 файлів:
- base.php - коннект до бази і дані для нього
- index.php - все зібране воєдино як приклад підключення (демка)
- rateaction.php - обробник подій рейтингу
- rating.php - висновок самого рейтингу на сторінку
- jquery.js - фреймворк jQuery
- script.js - наш скрипт з функціями для роботи з рейтингом
- style.css - стилі оформлення
- thumb.php - картинки
Наведу лістинг файлу index.php (нижче можна і демку подивитися і скрипт скачати в архіві):
У функції callrating три параметра. Перший параметр, обов'язковий - id вашого поста або статті, він унікальний повинен бути для кожного матеріалу. Другий параметр - клас картинок в CSS (за замовчуванням він плюс / мінус). Третій параметр для рейтингу, де можна ставити тільки + або "мені подобається", просто напишіть текст або вставте пропуск - мінус не з'явиться.
Тепер приведу лістинг файлу rateaction.php, який обробляє дані надходять до нього після натискання на кнопки голосування:
Власне код зовсім простий.
Картинка виглядає ось так, це CSS спрайт:
CSS код виглядає наступним чином:
В архіві до речі є файл dump.sql - це дамп бази mysql. І не забудьте в файлі base.php прописати свої дані з'єднання з базою. Загалом користуйтеся скільки завгодно, використовуйте де завгодно і міняйте як завгодно, сподіваюся стане в нагоді. І ще один момент, якщо ви використовуєте кешування в PHP. то не забудьте очищати кеш поточної сторінки під час голосування.
(Visited 2 423 times, 5 visits today)
Можливо вас зацікавить:
Рейтинг буває різний, каму че подобається ... Тільки з цим згоден ...
Але для кнопки (форми) використовувати цілу бібліотеку від jquery + mysql ось це занадто ...
Я написав свій багато розуму нетреба з 6 зірками:
Тут з усього потрібно Mysql, 1 картинка, php, html, css НЕ отлічіш і вага всього скрипта близько 4Кб, спробувати і без mysql на txt вийшло трохи більше 7кб ...
Cпрашивается на біса потрібна бібліотека jQ.
jQuery потрібна штука але якщо так її використовувати.
Або у Вас не хватка розуму або Ви недоучка + любитель завалювати свої проекти зайвою вагою. (Не грамотний підхід до свого творіння).
Хлопців ось я поставив скрипт дуже все чудово.
У мене на радіо-сайті виводяться поточні пісні і люди яким подобається пісенька її лайкають, але мені потрібно вивести всі лайки з назвами пісень на одну сторінку. Тобто якщо наприклад за Аллу Пугачову проголосувало 50 чоловік мені потрібно щоб на окремій сторінці скрипта так і виводилося Алла Пугачова - 50 голосів. Підкажіть як це організувати кодом)) я не встромляють в м'язі нічого! )
Ти прості запросто можеш вивести всю інфу на сайті приблизно це так буде:
mysql_query ( 'Select * FROM datbase'); // vyvodiw vse zapisi.
a v php obycnhym cyklom obrabatyvajew zapros
Може ще десь треба прописати? і як? підкажіть мені плиз!
Так само є непонятки з приводу файлі BASE.php
як його міняти?
так:
Плиз, плиз плиз. чекають відповідь!
Розміщую файли в кореневій папці все працює. А якщо розміщую в папку reting (наприклад), то при натисканні на «подобатися» або «не подобається» переносить на головну сторінку (((Підкажіть в яких файлах що підправити потрібно?
Підкажіть будь ласка! Як на даному прикладі реалізувати наступне. При повторному натисканні на лайк значення в таблиці повертається, а якщо натиснути на лайк а потім на діслайк значення діслайка збільшиться а значення лайка повернеться.
Ви не могли б допомогти реалізувати те-ж саме, але не +/-, а з 10 зірочками! ось на цьому: "antenna.io/demo/jquery-bar-rating/examples/», але конкретно з тим рейтингом де «Current rating: 5.6».