reorganising

git-svn-id: file:///home/shish/svn/shimmie2/trunk@1061 7f39781d-f577-437e-ae19-be835c7a54ca
This commit is contained in:
shish 2008-10-09 03:31:34 +00:00
parent 028896650a
commit 1d8999bf9c

View File

@ -66,7 +66,7 @@ class Image {
$result = $database->execute("SELECT images.* FROM images ORDER BY id DESC LIMIT ? OFFSET ?", array($limit, $start)); $result = $database->execute("SELECT images.* FROM images ORDER BY id DESC LIMIT ? OFFSET ?", array($limit, $start));
} }
else { else {
$querylet = $database->build_search_querylet($tags); $querylet = Image::build_search_querylet($config, $database, $tags);
$querylet->append(new Querylet("ORDER BY images.id DESC LIMIT ? OFFSET ?", array($limit, $start))); $querylet->append(new Querylet("ORDER BY images.id DESC LIMIT ? OFFSET ?", array($limit, $start)));
$result = $database->execute($querylet->sql, $querylet->variables); $result = $database->execute($querylet->sql, $querylet->variables);
} }
@ -83,7 +83,7 @@ class Image {
return $database->db->GetOne("SELECT COUNT(*) FROM images"); return $database->db->GetOne("SELECT COUNT(*) FROM images");
} }
else { else {
$querylet = $this->build_search_querylet($tags); $querylet = Image::build_search_querylet($config, $database, $tags);
$result = $database->execute($querylet->sql, $querylet->variables); $result = $database->execute($querylet->sql, $querylet->variables);
return $result->RecordCount(); return $result->RecordCount();
} }
@ -95,8 +95,6 @@ class Image {
} }
public function get_next($tags=array(), $next=true) { public function get_next($tags=array(), $next=true) {
assert(is_array($tags)); assert(is_array($tags));
assert(is_bool($next)); assert(is_bool($next));
@ -115,7 +113,7 @@ class Image {
} }
else { else {
$tags[] = "id$gtlt{$this->id}"; $tags[] = "id$gtlt{$this->id}";
$querylet = $this->database->build_search_querylet($tags); $querylet = Image::build_search_querylet($this->config, $this->database, $tags);
$querylet->append_sql(" ORDER BY images.id $dir LIMIT 1"); $querylet->append_sql(" ORDER BY images.id $dir LIMIT 1");
$row = $this->db->GetRow($querylet->sql, $querylet->variables); $row = $this->db->GetRow($querylet->sql, $querylet->variables);
} }
@ -230,7 +228,7 @@ class Image {
return $tmpl; return $tmpl;
} }
private function build_search_querylet($terms) { private static function build_search_querylet(Config $config, Database $database, $terms) {
$tag_querylets = array(); $tag_querylets = array();
$img_querylets = array(); $img_querylets = array();
@ -244,7 +242,7 @@ class Image {
$term = substr($term, 1); $term = substr($term, 1);
} }
$term = $this->resolve_alias($term); $term = $database->resolve_alias($term);
$stpe = new SearchTermParseEvent($term); $stpe = new SearchTermParseEvent($term);
send_event($stpe); send_event($stpe);
@ -305,7 +303,7 @@ class Image {
$tags_ok = true; $tags_ok = true;
foreach($tag_querylets as $tq) { foreach($tag_querylets as $tq) {
$tag_ids = $this->db->GetCol("SELECT id FROM tags WHERE lower(tag) = lower(?)", array($tq->tag)); $tag_ids = $database->db->GetCol("SELECT id FROM tags WHERE lower(tag) = lower(?)", array($tq->tag));
if($tq->positive) { if($tq->positive) {
$positive_tag_id_array = array_merge($positive_tag_id_array, $tag_ids); $positive_tag_id_array = array_merge($positive_tag_id_array, $tag_ids);
$tags_ok = count($tag_ids) > 0; $tags_ok = count($tag_ids) > 0;