ParseLinkTemplateEvent, and handlers for text_score, numeric_score and rating

git-svn-id: file:///home/shish/svn/shimmie2/trunk@611 7f39781d-f577-437e-ae19-be835c7a54ca
This commit is contained in:
shish 2007-11-04 08:16:41 +00:00
parent d880c8cac0
commit ac2af2d1c0
7 changed files with 54 additions and 7 deletions

View File

@ -69,6 +69,10 @@ class NumericScore extends Extension {
$sb->add_bool_option("numeric_score_anon", "Allow anonymous votes: ");
$event->panel->add_block($sb);
}
if(is_a($event, 'ParseLinkTemplateEvent')) {
$event->replace('$score', $event->image->numeric_score);
}
}
private function install() {

View File

@ -67,6 +67,10 @@ class Ratings extends Extension {
$sb->add_choice_option("ext_rating_user_privs", $privs, "<br>Logged in: ");
$event->panel->add_block($sb);
}
if(is_a($event, 'ParseLinkTemplateEvent')) {
$event->replace('$rating', $this->theme->rating_to_name($event->image->rating));
}
}
private function install() {

View File

@ -17,6 +17,15 @@ class RatingsTheme extends Themelet {
";
$page->add_block(new Block(null, $html, "main", 7));
}
public function rating_to_name($rating) {
switch($rating) {
case 's': return "Safe";
case 'q': return "Questionable";
case 'e': return "Explicit";
default: return "Unknown";
}
}
}
?>

View File

@ -69,6 +69,10 @@ class TextScore extends Extension {
$sb->add_bool_option("text_score_anon", "Allow anonymous votes: ");
$event->panel->add_block($sb);
}
if(is_a($event, 'ParseLinkTemplateEvent')) {
$event->replace('$text_score', $this->theme->score_to_name($event->image->text_score));
}
}
private function install() {

View File

@ -4,13 +4,7 @@ class TextScoreTheme extends Themelet {
public function display_scorer($page, $image_id, $score) {
$i_image_id = int_escape($image_id);
$words = array();
$words[-2] = "Delete";
$words[-1] = "Bad";
$words[ 0] = "Ok";
$words[ 1] = "Good";
$words[ 2] = "Favourite";
$s_score = $words[$score];
$s_score = $this->score_to_name($score);
$html = "
Current score is \"$s_score\"
<br><form action='".make_link("text_score/vote")."' method='POST'>
@ -25,6 +19,17 @@ class TextScoreTheme extends Themelet {
";
$page->add_block(new Block(null, $html, "main", 7));
}
public function score_to_name($score) {
$words = array();
$words[-2] = "Delete";
$words[-1] = "Bad";
$words[ 0] = "Ok";
$words[ 1] = "Good";
$words[ 2] = "Favourite";
$s_score = $words[$score];
return $s_score;
}
}
?>

View File

@ -0,0 +1,17 @@
<?php
class ParseLinkTemplateEvent extends Event {
var $link;
var $original;
var $image;
public function ParseLinkTemplateEvent($link, $image) {
$this->link = $link;
$this->original = $link;
$this->image = $image;
}
public function replace($needle, $replace) {
$this->link = str_replace($needle, $replace, $this->link);
}
}
?>

View File

@ -155,6 +155,10 @@ class Image {
$tmpl = str_replace('$filename', $_escape($base_fname), $tmpl);
$tmpl = str_replace('$title', $_escape($config->get_string("title")), $tmpl);
$plte = new ParseLinkTemplateEvent($tmpl, $this);
send_event($plte);
$tmpl = $plte->link;
return $tmpl;
}
}