Fent una recerca tipus star rating system php ajax he trobat una eina força interessant per afegir un sistema de votació en una web de manera ràpida i fàcil. Molts dels exemples trobats eren incomplerts, o no tenien la part de codi del servidor, o implicaven crear bases de dades, o eren molt feixucs, etc, però el ColorRating ho soluciona tot molt còmodament i és el que més m’ha agradat. Només cal incloure uns fitxers i afegir tantes votacions com es vulguin amb una simple instrucció, i no cal ni preocupar-se de crear una base de dades per portar un control de les votacions ja que la porta incorporada. Com ja no es pot trobar a la web del seu autor, Jack Moore, i cal descarregar-lo d’algun mirror en deixaré aquí una còpia… ;-)
Implementar-lo en una pàgina és molt fàcil i ràpid de fer:
1. Descarregar aquest fitxer i descomprimir-lo on s’hagi d’emprar.
2. A la pàgina html on es vulguin afegir votacions, tenir-la com .php i en el head afegir:
<link rel="stylesheet" type="text/css" href="rating/rating.css" media="screen"/> <script type="text/javascript" src="rating/rating.js"></script> <?php include('rating/rating.php'); ?>
(també cal haver inclòs el jquery)
3. Per a cada votació que es vulgui tenir dins el nostre html, afegir:
<php rating_form("idvot1"); ?>
(canviant idvot1 per diferents ids per distingir tantes coses a votar com es vulguin afegir)
4. Personalitzar
Només caldria ajustar una mica el css per ubicar-lo a la nostra pàgina segons ens convingui.
5. Notes
Cal que al servidor on s’executi hi hagi instal·lat el PDO i l’extensió sqlite, o canviar els accessos a una altra base de dades de la nostra conveniència.
Per exemple, al php.ini d’un XAMPP:
extension=php_pdo_sqlite.dll
6. Demo
<div class="llista"> <h3>A tres tintes</h3> <div class="mostra"> <a class="amplia" href="anc_vidreres_01b.png"> <img src="anc_vidreres_01b.png" alt="ANC 01b" /> </a> <?php rating_form("anc01b"); ?> </div> <div class="mostra"> <a class="amplia" href="anc_vidreres_02b.png"> <img src="anc_vidreres_02b.png" alt="ANC 02b" /> </a> <?php rating_form("anc02b"); ?> </div> </div>