У меня есть эта стартовая система, которая отлично работает.но я хотел бы использовать его на разных сайтах.голосовать за разные статьи ... как адаптировать этот скрипт, чтобы использовать его для разных статей?
для создания таблицы mysql:
CREATE TABLE IF NOT EXISTS `rating` (
`ID` int(11) NOT NULL AUTO_INCREMENT,
`ArticleID` int(11) NOT NULL,
`Vote` int(11) NOT NULL,
`date` datetime NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
rating.php:
<?php
/** CONFIG */
$Server = 'localhost';
$Username = 'root';
$Password = '';
$DB_Name = 'tutorials';
$db = new mysqli($Server, $Username, $Password, $DB_Name);
/** END CONFIG */
function rate($rate, $db, $article_id = 0) {
if(!is_numeric($rate)) return false;
$rate = (int)$rate;
if($rate < 1 || $rate > 5) return false;
$sql = 'INSERT INTO rating(ArticleID, Vote, date)
VALUES(?, ?, NOW())';
$stmt = $db->prepare($sql);
$stmt->bind_param('ii', $article_id, $rate);
$stmt->execute();
$result = $stmt->insert_id;
$stmt->close();
return (bool)$result;
}
function getVotes($db) {
$result = false;
$sql = 'SELECT
SUM(Vote),
COUNT(*)
FROM
rating';
$stmt = $db->prepare($sql);
$stmt->execute();
$stmt->bind_result($rate_sum, $rate_count);
while($stmt->fetch()):
if($rate_count > 0) {
$result = array('RateSum' => $rate_sum,
'RateCount' => $rate_count,
'Rate' => floor($rate_sum/$rate_count));
}
endwhile;
return $result;
}
if(isset($_GET['rating'])) {
$result = rate($_GET['rating'], $db);
}
//$votes = getVotes($db);
//var_dump($votes);
require_once 'rating_template.tpl';
здесь rating_template.tpl:
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8" />
<title>Rating</title>
<style>
.rating{
width:180px;
height:26px;
margin:0 0 20px 0;
padding:0;
list-style:none;
clear:both;
position:relative;
}
ul.rating li {float:left;}
ul.rating a{display:block;background-image:url(star.png);width:24px;height:24px;border:1px solid #ffffff;margin:1px;color:white;text-align:center;text-decoration:none;}
ul.rating a:hover{color:white;background:#469DFA;background-image:url(star_on.png)}
.active{color:white;background:#469DFA;background-image:url(star_on.png) !important;}
</style>
</head>
<body>
<div style="width:180px;margin:0 auto;">
<ul class="rating">
<?php $i = 1; while($i <= 5) : ?>
<?php if(is_array($votes) && $i <= $votes['Rate']): ?>
<li><a href="?rating=<?php echo $i ?>" class="active" title="<?php echo $i ?> Star"><?php $i ?></a></li>
<?php else: ?>
<li><a href="?rating=<?php echo $i ?>" title="<?php echo $i ?> Star"><?php $i ?></a></li>
<?php endif; ?>
<?php ++$i; endwhile; ?>
</ul>
</div>
</body>
</html>