FEATURE: add search form with results

This commit is contained in:
Michal Kváček
2016-03-14 23:26:05 +01:00
parent 72d00c8e64
commit 81f6f4e46f
8 changed files with 101 additions and 0 deletions
+45
View File
@@ -0,0 +1,45 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use App\Http\Requests;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\Input;
class Search extends Controller
{
public function getSearch()
{
$results = [];
$term = Input::get('search');
if (!is_null($term)) {
$results = $this->performSearch($term);
}
return view('admin.search.page', ['search' => $term, 'results' => $results]);
}
protected function performSearch($term)
{
$engines = App::make('registerSearchEngine')
->get();
$resultsParts = [];
foreach ($engines as $engine) {
list ($search, $presenter) = $engine;
$results = $search->search($term);
$resultsParts[$search->getId()] = [
'name' => $search->getName(),
'content' => $presenter->render($results),
'count' => count($results)
];
}
return $resultsParts;
}
}
+3
View File
@@ -222,6 +222,9 @@ Route::group([
Route::post('settings', 'Settings@saveSettings')
->name('settings.save');
Route::get('search', 'Search@getSearch')->name('search');
// custom fields
// ------------------------------
+4
View File
@@ -26,6 +26,10 @@ code {
max-width: 100%;
}
.top-bar input {
width: 100%;
}
.login-form {
margin-top: 4em;
}
@@ -0,0 +1,9 @@
<form action="{{route('search')}}" method="get">
<div class="input-group">
<input type="text" class="input-group-field" value="@if(isset($search)) {{old('search', $search)}} @else {{old('search')}} @endif" placeholder="@lang('search.term')" name="search" />
<div class="input-group-button">
<button class="button success"><i class="fa fa-search"></i></button>
</div>
</div>
</form>
@@ -0,0 +1 @@
@include('admin.search.form')
@@ -0,0 +1,29 @@
@extends('admin.layout')
@section('pageName', @trans('search.pageTitle'))
@section('content')
<div class="row">
<h2>@lang('search.pageTitle')</h2>
</div>
@if ($search)
<div class="row">
<div class="column large-8">
<h3>@lang('search.results')</h3>
@include('admin.search.results')
</div>
<div class="column large-4">
<h3>@lang('search.term')</h3>
@include('admin.search.form')
</div>
</div>
@else
<div class="row">
@include('admin.search.form')
</div>
@endif
@stop
@@ -0,0 +1,7 @@
@foreach($results as $id => $result)
<div class="search-result" id="{{$id}}">
<h4>{{$result['name']}} ({{$result['count']}})</h4>
{!! $result['content'] !!}
</div>
@endforeach
@@ -0,0 +1,3 @@
<div class="content search-result">
<h3>{{$page->title}}</h3>
</div>