random image function, at last

git-svn-id: file:///home/shish/svn/shimmie2/trunk@863 7f39781d-f577-437e-ae19-be835c7a54ca
This commit is contained in:
shish 2008-05-19 03:17:31 +00:00
parent 1fba968ffe
commit 8cae5831a9

View File

@ -123,19 +123,23 @@ class Database {
} }
// }}} // }}}
// misc {{{ // misc {{{
public function count_pages($tags=array()) { public function count_images($tags=array()) {
global $config;
$images_per_page = $config->get_int('index_width') * $config->get_int('index_height');
if(count($tags) == 0) { if(count($tags) == 0) {
return ceil($this->db->GetOne("SELECT COUNT(*) FROM images") / $images_per_page); return $this->db->GetOne("SELECT COUNT(*) FROM images");
} }
else { else {
$querylet = $this->build_search_querylet($tags); $querylet = $this->build_search_querylet($tags);
$result = $this->execute($querylet->sql, $querylet->variables); $result = $this->execute($querylet->sql, $querylet->variables);
return ceil($result->RecordCount() / $images_per_page); return $result->RecordCount();
} }
} }
public function count_pages($tags=array()) {
global $config;
$images_per_page = $config->get_int('index_width') * $config->get_int('index_height');
return ceil($thi->count_images($tags) / $images_per_page);
}
public function execute($query, $args=array()) { public function execute($query, $args=array()) {
$result = $this->db->Execute($query, $args); $result = $this->db->Execute($query, $args);
if($result === False) { if($result === False) {
@ -395,6 +399,14 @@ class Database {
return ($row ? new Image($row) : null); return ($row ? new Image($row) : null);
} }
public function get_random_image($tags=array()) {
$max = $this->count_images($tags);
$rand = mt_rand(0, $max);
$set = $this->get_images($rand, 1, $tags);
if(count($set) > 0) return $set[0];
else return null;
}
public function get_image_by_hash($hash) { public function get_image_by_hash($hash) {
$image = null; $image = null;
$row = $this->db->GetRow("{$this->get_images} WHERE hash=?", array($hash)); $row = $this->db->GetRow("{$this->get_images} WHERE hash=?", array($hash));