FEATURE: add search form with results
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -222,6 +222,9 @@ Route::group([
|
||||
Route::post('settings', 'Settings@saveSettings')
|
||||
->name('settings.save');
|
||||
|
||||
Route::get('search', 'Search@getSearch')->name('search');
|
||||
|
||||
|
||||
// custom fields
|
||||
// ------------------------------
|
||||
|
||||
|
||||
Vendored
+4
@@ -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>
|
||||
Reference in New Issue
Block a user