publicise Ratings functions because Pools wants to do the same thing
This commit is contained in:
parent
36812d085a
commit
5c2515151a
@ -101,20 +101,7 @@ class Ratings implements Extension {
|
||||
if($event instanceof SearchTermParseEvent) {
|
||||
$matches = array();
|
||||
if(is_null($event->term) && $this->no_rating_query($event->context)) {
|
||||
if($user->is_anonymous()) {
|
||||
$sqes = $config->get_string("ext_rating_anon_privs");
|
||||
}
|
||||
else if($user->is_admin()) {
|
||||
$sqes = $config->get_string("ext_rating_admin_privs");
|
||||
}
|
||||
else {
|
||||
$sqes = $config->get_string("ext_rating_user_privs");
|
||||
}
|
||||
$arr = array();
|
||||
for($i=0; $i<strlen($sqes); $i++) {
|
||||
$arr[] = "'" . $sqes[$i] . "'";
|
||||
}
|
||||
$set = join(', ', $arr);
|
||||
$set = Ratings::privs_to_sql(Ratings::get_user_privs($user));
|
||||
$event->add_querylet(new Querylet("rating IN ($set)"));
|
||||
}
|
||||
if(preg_match("/^rating=([sqeu]+)$/", $event->term, $matches)) {
|
||||
@ -134,6 +121,29 @@ class Ratings implements Extension {
|
||||
}
|
||||
}
|
||||
|
||||
public static function get_user_privs($user) {
|
||||
global $config;
|
||||
if($user->is_anonymous()) {
|
||||
$sqes = $config->get_string("ext_rating_anon_privs");
|
||||
}
|
||||
else if($user->is_admin()) {
|
||||
$sqes = $config->get_string("ext_rating_admin_privs");
|
||||
}
|
||||
else {
|
||||
$sqes = $config->get_string("ext_rating_user_privs");
|
||||
}
|
||||
return $sqes;
|
||||
}
|
||||
|
||||
public static function privs_to_sql($sqes) {
|
||||
$arr = array();
|
||||
for($i=0; $i<strlen($sqes); $i++) {
|
||||
$arr[] = "'" . $sqes[$i] . "'";
|
||||
}
|
||||
$set = join(', ', $arr);
|
||||
return $set;
|
||||
}
|
||||
|
||||
// FIXME: this is a bit ugly and guessey, should have proper options
|
||||
private function can_rate() {
|
||||
global $config, $user;
|
||||
|
Loading…
x
Reference in New Issue
Block a user