working ratings
git-svn-id: file:///home/shish/svn/shimmie2/trunk@1079 7f39781d-f577-437e-ae19-be835c7a54ca
This commit is contained in:
parent
13fb0356c2
commit
dba8e76830
@ -69,6 +69,21 @@ class Ratings implements Extension {
|
|||||||
|
|
||||||
if($event instanceof SearchTermParseEvent) {
|
if($event instanceof SearchTermParseEvent) {
|
||||||
$matches = array();
|
$matches = array();
|
||||||
|
if(is_null($event->term) && $this->no_rating_query($event->context)) {
|
||||||
|
global $user, $config;
|
||||||
|
if($user->is_anonymous()) {
|
||||||
|
$sqes = $config->get_string("ext_rating_anon_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);
|
||||||
|
$event->add_querylet(new Querylet("rating IN ($set)"));
|
||||||
|
}
|
||||||
if(preg_match("/rating=([sqe]+)/", $event->term, $matches)) {
|
if(preg_match("/rating=([sqe]+)/", $event->term, $matches)) {
|
||||||
$sqes = $matches[1];
|
$sqes = $matches[1];
|
||||||
$arr = array();
|
$arr = array();
|
||||||
@ -76,11 +91,20 @@ class Ratings implements Extension {
|
|||||||
$arr[] = "'" . $sqes[$i] . "'";
|
$arr[] = "'" . $sqes[$i] . "'";
|
||||||
}
|
}
|
||||||
$set = join(', ', $arr);
|
$set = join(', ', $arr);
|
||||||
$event->set_querylet(new Querylet("rating IN ($set)"));
|
$event->add_querylet(new Querylet("rating IN ($set)"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function no_rating_query($context) {
|
||||||
|
foreach($context as $term) {
|
||||||
|
if(preg_match("/rating=([sqe]+)/", $term)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
private function install() {
|
private function install() {
|
||||||
global $database;
|
global $database;
|
||||||
global $config;
|
global $config;
|
||||||
|
@ -269,7 +269,7 @@ class ThumbnailGenerationEvent extends Event {
|
|||||||
class SearchTermParseEvent extends Event {
|
class SearchTermParseEvent extends Event {
|
||||||
var $term = null;
|
var $term = null;
|
||||||
var $context = null;
|
var $context = null;
|
||||||
var $querylet = null;
|
var $querylets = array();
|
||||||
|
|
||||||
public function SearchTermParseEvent($term, $context) {
|
public function SearchTermParseEvent($term, $context) {
|
||||||
$this->term = $term;
|
$this->term = $term;
|
||||||
@ -277,15 +277,15 @@ class SearchTermParseEvent extends Event {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public function is_querylet_set() {
|
public function is_querylet_set() {
|
||||||
return !is_null($this->querylet);
|
return (count($this->querylets) > 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function get_querylet() {
|
public function get_querylets() {
|
||||||
return $this->querylet;
|
return $this->querylets;
|
||||||
}
|
}
|
||||||
|
|
||||||
public function set_querylet($q) {
|
public function add_querylet($q) {
|
||||||
$this->querylet = $q;
|
$this->querylets[] = $q;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
|
@ -231,7 +231,9 @@ class Image {
|
|||||||
$stpe = new SearchTermParseEvent(null, $terms);
|
$stpe = new SearchTermParseEvent(null, $terms);
|
||||||
send_event($stpe);
|
send_event($stpe);
|
||||||
if($stpe->is_querylet_set()) {
|
if($stpe->is_querylet_set()) {
|
||||||
$img_querylets[] = new ImgQuerylet($stpe->get_querylet(), $positive);
|
foreach($stpe->get_querylets() as $querylet) {
|
||||||
|
$img_querylets[] = new ImgQuerylet($querylet, true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// parse the words that are searched for into
|
// parse the words that are searched for into
|
||||||
@ -248,7 +250,9 @@ class Image {
|
|||||||
$stpe = new SearchTermParseEvent($term, $terms);
|
$stpe = new SearchTermParseEvent($term, $terms);
|
||||||
send_event($stpe);
|
send_event($stpe);
|
||||||
if($stpe->is_querylet_set()) {
|
if($stpe->is_querylet_set()) {
|
||||||
$img_querylets[] = new ImgQuerylet($stpe->get_querylet(), $positive);
|
foreach($stpe->get_querylets() as $querylet) {
|
||||||
|
$img_querylets[] = new ImgQuerylet($querylet, $positive);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$term = str_replace("*", "%", $term);
|
$term = str_replace("*", "%", $term);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user