numeric_score: PDO compatibility

This commit is contained in:
Josh Sutinen 2011-02-22 17:24:00 -05:00
parent 57972632e4
commit 0661f95fbb

40
contrib/numeric_score/main.php Normal file → Executable file
View File

@ -58,7 +58,7 @@ class NumericScore implements Extension {
}
if($event instanceof ImageDeletionEvent) {
$database->execute("DELETE FROM numeric_score_votes WHERE image_id=?", array($event->image->id));
$database->execute("DELETE FROM numeric_score_votes WHERE image_id=:id", array("id" => $event->image->id));
}
if($event instanceof ParseLinkTemplateEvent) {
@ -79,8 +79,8 @@ class NumericScore implements Extension {
"Can't find the user named ".html_escape($matches[1]));
}
$event->add_querylet(new Querylet(
"images.id in (SELECT image_id FROM numeric_score_votes WHERE user_id=? AND score=1)",
array($duser->id)));
"images.id in (SELECT image_id FROM numeric_score_votes WHERE user_id=:userid AND score=1)",
array("userid" => $duser->id)));
}
if(preg_match("/^downvoted_by=(.*)$/", $event->term, $matches)) {
$duser = User::by_name($matches[1]);
@ -89,20 +89,20 @@ class NumericScore implements Extension {
"Can't find the user named ".html_escape($matches[1]));
}
$event->add_querylet(new Querylet(
"images.id in (SELECT image_id FROM numeric_score_votes WHERE user_id=? AND score=-1)",
array($duser->id)));
"images.id in (SELECT image_id FROM numeric_score_votes WHERE user_id=:userid AND score=-1)",
array("userid" => $duser->id)));
}
if(preg_match("/^upvoted_by_id=(\d+)$/", $event->term, $matches)) {
$iid = int_escape($matches[1]);
$event->add_querylet(new Querylet(
"images.id in (SELECT image_id FROM numeric_score_votes WHERE user_id=? AND score=1)",
array($iid)));
"images.id in (SELECT image_id FROM numeric_score_votes WHERE user_id=:userid AND score=1)",
array("userid" => $iid)));
}
if(preg_match("/^downvoted_by_id=(\d+)$/", $event->term, $matches)) {
$iid = int_escape($matches[1]);
$event->add_querylet(new Querylet(
"images.id in (SELECT image_id FROM numeric_score_votes WHERE user_id=? AND score=-1)",
array($iid)));
"images.id in (SELECT image_id FROM numeric_score_votes WHERE user_id=:userid AND score=-1)",
array("userid" => $iid)));
}
}
}
@ -112,8 +112,8 @@ class NumericScore implements Extension {
global $config;
if($config->get_int("ext_numeric_score_version") < 1) {
$database->Execute("ALTER TABLE images ADD COLUMN numeric_score INTEGER NOT NULL DEFAULT 0");
$database->Execute("CREATE INDEX images__numeric_score ON images(numeric_score)");
$database->execute("ALTER TABLE images ADD COLUMN numeric_score INTEGER NOT NULL DEFAULT 0");
$database->execute("CREATE INDEX images__numeric_score ON images(numeric_score)");
$database->create_table("numeric_score_votes", "
image_id INTEGER NOT NULL,
user_id INTEGER NOT NULL,
@ -126,24 +126,24 @@ class NumericScore implements Extension {
$config->set_int("ext_numeric_score_version", 1);
}
if($config->get_int("ext_numeric_score_version") < 2) {
$database->Execute("CREATE INDEX numeric_score_votes__user_votes ON numeric_score_votes(user_id, score)");
$database->execute("CREATE INDEX numeric_score_votes__user_votes ON numeric_score_votes(user_id, score)");
$config->set_int("ext_numeric_score_version", 2);
}
}
private function add_vote($image_id, $user_id, $score) {
global $database;
$database->Execute(
"DELETE FROM numeric_score_votes WHERE image_id=? AND user_id=?",
array($image_id, $user_id));
$database->execute(
"DELETE FROM numeric_score_votes WHERE image_id=:imageid AND user_id=:userid",
array("imageid" => $image_id, "userid" => $user_id));
if($score != 0) {
$database->Execute(
"INSERT INTO numeric_score_votes(image_id, user_id, score) VALUES(?, ?, ?)",
array($image_id, $user_id, $score));
$database->execute(
"INSERT INTO numeric_score_votes(image_id, user_id, score) VALUES(:imageid, :userid, :score)",
array("imageid" => $image_id, "userid" => $user_id, "score" => $score));
}
$database->Execute(
"UPDATE images SET numeric_score=(SELECT SUM(score) FROM numeric_score_votes WHERE image_id=?) WHERE id=?",
array($image_id, $image_id));
"UPDATE images SET numeric_score=(SELECT SUM(score) FROM numeric_score_votes WHERE image_id=:imageid) WHERE id=:id",
array("imageid" => $image_id, "id" => $image_id));
}
}
add_event_listener(new NumericScore());