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));
}
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)));
$result = $database->execute($querylet->sql, $querylet->variables);
}
@ -83,7 +83,7 @@ class Image {
return $database->db->GetOne("SELECT COUNT(*) FROM images");
}
else {
$querylet = $this->build_search_querylet($tags);
$querylet = Image::build_search_querylet($config, $database, $tags);
$result = $database->execute($querylet->sql, $querylet->variables);
return $result->RecordCount();
}
@ -95,8 +95,6 @@ class Image {
}
public function get_next($tags=array(), $next=true) {
assert(is_array($tags));
assert(is_bool($next));
@ -115,7 +113,7 @@ class Image {
}
else {
$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");
$row = $this->db->GetRow($querylet->sql, $querylet->variables);
}
@ -230,7 +228,7 @@ class Image {
return $tmpl;
}
private function build_search_querylet($terms) {
private static function build_search_querylet(Config $config, Database $database, $terms) {
$tag_querylets = array();
$img_querylets = array();
@ -244,7 +242,7 @@ class Image {
$term = substr($term, 1);
}
$term = $this->resolve_alias($term);
$term = $database->resolve_alias($term);
$stpe = new SearchTermParseEvent($term);
send_event($stpe);
@ -305,7 +303,7 @@ class Image {
$tags_ok = true;
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) {
$positive_tag_id_array = array_merge($positive_tag_id_array, $tag_ids);
$tags_ok = count($tag_ids) > 0;