add date sorting
[phinde.git] / www / index.php
index 6f4ec8fd15f0286b535dd0ba9208060ceec307a5..54d5da80f4ba2afcdb455a4294854acd6b77d9a6 100644 (file)
@@ -16,6 +16,7 @@ if (isset($_GET['page'])) {
     //PEAR Pager begins at 1
     $page = (int)$_GET['page'] - 1;
 }
+
 $perPage = 10;//$GLOBALS['phinde']['perPage'];
 $site = null;
 $siteParam = false;
@@ -34,6 +35,13 @@ if (preg_match('#site:([^ ]*)#', $query, $matches)) {
     $cleanQuery = $query;
 }
 
+if (isset($_GET['sort']) && $_GET['sort'] == 'date') {
+    $sort = 'date';
+    $baseLink .= '&sort=date';
+} else {
+    $sort = '';
+}
+
 $filters = array();
 if (isset($_GET['filter'])) {
     $allowedFilter = array('domain', 'language', 'tags', 'term');
@@ -80,7 +88,7 @@ if (preg_match('#site:([^ ]*)#', $query, $matches)) {
 
 $timeBegin = microtime(true);
 $es = new Elasticsearch($GLOBALS['phinde']['elasticsearch']);
-$res = $es->search($cleanQuery, $filters, $site, $page, $perPage);
+$res = $es->search($cleanQuery, $filters, $site, $page, $perPage, $sort);
 $timeEnd = microtime(true);
 
 $pager = new Html_Pager(
@@ -124,6 +132,11 @@ if ($site !== null) {
     $urlNoSite = null;
 }
 
+$urlSortRelevance = buildLink(
+    str_replace('&sort=date', '', $baseLink), $filters, null, null
+);
+$urlSortDate = $urlSortRelevance . '&sort=date';
+
 render(
     'search',
     array(
@@ -137,7 +150,10 @@ render(
         'hits' => $res->hits->hits,
         'aggregations' => $res->aggregations,
         'activeFilters' => $activeFilters,
-        'pager' => $pager
+        'pager' => $pager,
+        'sort' => $sort,
+        'urlSortRelevance' => $urlSortRelevance,
+        'urlSortDate' => $urlSortDate,
     )
 );
 ?>