add config option for default order

This commit is contained in:
Daku 2014-01-03 08:24:47 +00:00
parent 2c2f27ca64
commit 152f5fbf26
2 changed files with 5 additions and 5 deletions

View File

@ -115,7 +115,7 @@ class Image {
assert(is_numeric($start)); assert(is_numeric($start));
assert(is_numeric($limit)); assert(is_numeric($limit));
assert(is_array($tags)); assert(is_array($tags));
global $database, $user, $order_sql; global $database, $user, $config, $order_sql;
$images = array(); $images = array();
@ -129,7 +129,7 @@ class Image {
} }
$querylet = Image::build_search_querylet($tags); $querylet = Image::build_search_querylet($tags);
$querylet->append(new Querylet($order_sql ?: " ORDER BY images.id DESC")); $querylet->append(new Querylet(" ORDER BY images.".($order_sql ?: $config->get_string("index_order"))));
$querylet->append(new Querylet(" LIMIT :limit OFFSET :offset", array("limit"=>$limit, "offset"=>$start))); $querylet->append(new Querylet(" LIMIT :limit OFFSET :offset", array("limit"=>$limit, "offset"=>$start)));
#var_dump($querylet->sql); var_dump($querylet->variables); #var_dump($querylet->sql); var_dump($querylet->variables);
$result = $database->execute($querylet->sql, $querylet->variables); $result = $database->execute($querylet->sql, $querylet->variables);

View File

@ -176,6 +176,7 @@ class Index extends Extension {
global $config; global $config;
$config->set_default_int("index_images", 24); $config->set_default_int("index_images", 24);
$config->set_default_bool("index_tips", true); $config->set_default_bool("index_tips", true);
$config->set_default_string("index_order", "id DESC");
} }
public function onPageRequest(PageRequestEvent $event) { public function onPageRequest(PageRequestEvent $event) {
@ -327,11 +328,10 @@ class Index extends Extension {
} }
else if(preg_match("/^order[=|:](id|width|height|filesize|filename)[_]?(desc|asc)?$/i", $event->term, $matches)){ else if(preg_match("/^order[=|:](id|width|height|filesize|filename)[_]?(desc|asc)?$/i", $event->term, $matches)){
global $order_sql; global $order_sql;
$order = strtolower($matches[1]); $ord = strtolower($matches[1]);
$sort = isset($matches[2]) ? strtoupper($matches[2]) : (preg_match("/^(id|filename)$/", $matches[1]) ? "ASC" : "DESC"); $sort = isset($matches[2]) ? strtoupper($matches[2]) : (preg_match("/^(id|filename)$/", $matches[1]) ? "ASC" : "DESC");
// $event->add_querylet(new Querylet("ORDER BY images.:order :sort", array("order" => $order, "sort" => $sort))); $order_sql = "$ord $sort";
$event->add_querylet(new Querylet("1=1")); //small hack to avoid metatag being treated as normal tag $event->add_querylet(new Querylet("1=1")); //small hack to avoid metatag being treated as normal tag
$order_sql = " ORDER BY images.$order $sort";
} }
$this->stpen++; $this->stpen++;