function set_sort_mode($mode)
{
- if ('chron' === $mode)
- return $this->target->orderBy('created desc');
+ switch ($mode) {
+ case 'chron':
+ return $this->target->orderBy('created DESC');
+ break;
+ case 'reverse_chron':
+ return $this->target->orderBy('created ASC');
+ break;
+ case 'nickname_desc':
+ if ($this->table != 'profile') {
+ throw new Exception(
+ 'nickname_desc sort mode can only be use when searching profile.'
+ );
+ } else {
+ return $this->target->orderBy('nickname DESC');
+ }
+ break;
+ case 'nickname_asc':
+ if ($this->table != 'profile') {
+ throw new Exception(
+ 'nickname_desc sort mode can only be use when searching profile.'
+ );
+ } else {
+ return $this->target->orderBy('nickname ASC');
+ }
+ break;
+ default:
+ return $this->target->orderBy('created DESC');
+ break;
+ }
}
}
$this->target->whereAdd('MATCH(nickname, fullname, location, bio, homepage) ' .
'AGAINST (\''.$this->target->escape(strtolower($q)).'\' IN BOOLEAN MODE)', 'OR');
}
- return true;
} else if ('notice' === $this->table) {
// Don't show imported notices
'AGAINST (\''.$this->target->escape($q).'\' IN BOOLEAN MODE)');
}
- return true;
} else {
throw new ServerException('Unknown table: ' . $this->table);
}
+
+ return true;
}
}