Skip to content

Commit

Permalink
Added 'last_commented' sort option to search
Browse files Browse the repository at this point in the history
Closes #440
  • Loading branch information
ssddanbrown committed Oct 1, 2017
1 parent c943eb4 commit 481aa5b
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions app/Services/SearchService.php
Original file line number Diff line number Diff line change
Expand Up @@ -481,4 +481,23 @@ protected function filterNotViewedByMe(\Illuminate\Database\Eloquent\Builder $qu
});
}

protected function filterSortBy(\Illuminate\Database\Eloquent\Builder $query, Entity $model, $input)
{
$functionName = camel_case('sort_by_' . $input);
if (method_exists($this, $functionName)) $this->$functionName($query, $model);
}


/**
* Sorting filter options
*/

protected function sortByLastCommented(\Illuminate\Database\Eloquent\Builder $query, Entity $model)
{
$commentsTable = $this->db->getTablePrefix() . 'comments';
$morphClass = str_replace('\\', '\\\\', $model->getMorphClass());
$commentQuery = $this->db->raw('(SELECT c1.entity_id, c1.entity_type, c1.created_at as last_commented FROM '.$commentsTable.' c1 LEFT JOIN '.$commentsTable.' c2 ON (c1.entity_id = c2.entity_id AND c1.entity_type = c2.entity_type AND c1.created_at < c2.created_at) WHERE c1.entity_type = \''. $morphClass .'\' AND c2.created_at IS NULL) as comments');

$query->join($commentQuery, $model->getTable() . '.id', '=', 'comments.entity_id')->orderBy('last_commented', 'desc');
}
}

0 comments on commit 481aa5b

Please sign in to comment.