add log file support
[phinde.git] / www / index.php
index 54d5da80f4ba2afcdb455a4294854acd6b77d9a6..33adfb0ac6a20ed04ed6c635f7fe9c284ef1a10a 100644 (file)
@@ -6,8 +6,8 @@ require 'www-header.php';
 if (!isset($_GET['q'])) {
     $_GET['q'] = '';
 }
+$query = trim($_GET['q']);
 
-$query = $_GET['q'];
 $page = 0;
 if (isset($_GET['page'])) {
     if (!is_numeric($_GET['page'])) {
@@ -35,11 +35,16 @@ if (preg_match('#site:([^ ]*)#', $query, $matches)) {
     $cleanQuery = $query;
 }
 
-if (isset($_GET['sort']) && $_GET['sort'] == 'date') {
-    $sort = 'date';
-    $baseLink .= '&sort=date';
+if (isset($_GET['sort'])
+    && ($_GET['sort'] === 'date' || $_GET['sort'] === 'score')
+) {
+    $sortMode = $_GET['sort'];
 } else {
-    $sort = '';
+    $sortMode = $GLOBALS['phinde']['defaultSort'];
+}
+$sort = $sortMode;
+if ($sortMode !== $GLOBALS['phinde']['defaultSort']) {
+    $baseLink .= '&sort=' . $sortMode;
 }
 
 $filters = array();
@@ -115,8 +120,8 @@ foreach ($res->hits->hits as &$hit) {
 
     $doc->extra = new \stdClass();
     $doc->extra->cleanUrl = preg_replace('#^.*://#', '', $doc->url);
-    if (isset($doc->modate)) {
-        $doc->extra->day = substr($doc->modate, 0, 10);
+    if (isset($doc->status->modate)) {
+        $doc->extra->day = substr($doc->status->modate, 0, 10);
     }
 }
 
@@ -132,16 +137,32 @@ if ($site !== null) {
     $urlNoSite = null;
 }
 
-$urlSortRelevance = buildLink(
-    str_replace('&sort=date', '', $baseLink), $filters, null, null
+$urlSortBase = buildLink(
+    preg_replace('#&sort=[^&]+#', '', $baseLink), $filters, null, null
 );
-$urlSortDate = $urlSortRelevance . '&sort=date';
+$urlSorts = [];
+foreach (['date', 'score'] as $sortMode) {
+    if ($sortMode === $GLOBALS['phinde']['defaultSort']) {
+        $urlSorts[$sortMode] = $urlSortBase;
+    } else {
+        $urlSorts[$sortMode] = $urlSortBase . '&sort=' . $sortMode;
+    }
+}
+
+if (isset($_GET['format']) && $_GET['format'] == 'opensearch') {
+    $template = 'opensearch';
+    $baseLink .= '&format=opensearch';
+    header('Content-type: application/atom+xml');
+} else {
+    $template = 'search';
+}
 
 render(
-    'search',
+    $template,
     array(
         'queryTime' => round($timeEnd - $timeBegin, 2) . 's',
         'query' => $query,
+        'fullUrl' => Helper::fullUrl($baseLink),
         'cleanQuery' => $cleanQuery,
         'urlNoSite' => $urlNoSite,
         'site' => $site,
@@ -152,8 +173,9 @@ render(
         'activeFilters' => $activeFilters,
         'pager' => $pager,
         'sort' => $sort,
-        'urlSortRelevance' => $urlSortRelevance,
-        'urlSortDate' => $urlSortDate,
+        'urlSorts' => $urlSorts,
+        'hitTemplate' => 'search/' . $GLOBALS['phinde']['hitTemplate'],
+        'sidebarinclude' => $GLOBALS['phinde']['sidebarinclude'],
     )
 );
 ?>