Sync
This commit is contained in:
160
resources/views/front/aitool.blade.php
Normal file
160
resources/views/front/aitool.blade.php
Normal file
@@ -0,0 +1,160 @@
|
||||
@extends('front.layouts.app')
|
||||
|
||||
@section('content')
|
||||
<div class="container-lg pt-3">
|
||||
<div class="mb-3">
|
||||
@include('front.partials.breadcrumbs')
|
||||
<h1 class="fw-bold mb-0">{{ $ai_tool->tool_name }}</h1>
|
||||
<h2 class="text-secondary"><span class="h6">{{ $ai_tool->tagline }}</span></h2>
|
||||
</div>
|
||||
<div class="row mb-3 g-3">
|
||||
<div class="col-12 col-sm-7 col-md-8 col-lg-8 col-xl-9">
|
||||
<div class="mb-3">
|
||||
<ul class="nav nav-underline gap-4 h5">
|
||||
@if (!is_empty($ai_tool->screenshot_img))
|
||||
<li class="nav-item">
|
||||
<a class="text-decoration-none nav-link active instant-scroll" aria-current="page"
|
||||
href="#screenshot">Screenshot</a>
|
||||
</li>
|
||||
@endif
|
||||
<li class="nav-item">
|
||||
<a title="Details about {{ $ai_tool->category->name }} AI tool: {{ $ai_tool->tool_name }}"
|
||||
class="text-decoration-none nav-link instant-scroll" href="#details">Details</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a title="Embed {{ $ai_tool->tool_name }}" class="text-decoration-none nav-link instant-scroll"
|
||||
href="#embed">Embed</a>
|
||||
</li>
|
||||
@if (count($ai_tool->qna) > 0)
|
||||
<li class="nav-item">
|
||||
<a title="Frequently asked questions about the AI tool {{ $ai_tool->tool_name }}"
|
||||
class="text-decoration-none nav-link instant-scroll" href="#faq">FAQ</a>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
|
||||
@if (!is_empty($ai_tool->screenshot_img))
|
||||
<div id="screenshot" class="ratio ratio-16x9 mb-5">
|
||||
<figure class="text-center">
|
||||
<img class="img-fluid rounded-3 shadow mb-2" src="{{ $ai_tool->screenshot_img }}"
|
||||
alt="Screenshot of {{ $ai_tool->tool_name }} website">
|
||||
<figcaption class="small text-secondary">Screenshot of {{ $ai_tool->tool_name }} ({{ get_domain_from_url($ai_tool->external_url) }}) website
|
||||
</figcaption>
|
||||
</figure>
|
||||
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div id="embed">
|
||||
|
||||
<div class="card border-2 border-primary mb-4">
|
||||
<div class="card-body text-center">
|
||||
|
||||
<div class="mb-3">This AI tool, <span
|
||||
class="fw-semibold">{{ $ai_tool->tool_name }}</span>
|
||||
was first featured in AiBuddyTool.com
|
||||
on {{ dmy($ai_tool->created_at) }}.</div>
|
||||
|
||||
<get-embed-code name="{{ $ai_tool->tool_name }}"
|
||||
url="{{ route('front.aitool.show', ['ai_tool_slug' => $ai_tool->slug, 'ref' => get_domain_from_url($ai_tool->external_url)]) }}"></get-embed-code>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div id="details" class="card mb-4">
|
||||
<div class="card-body">
|
||||
<h3 class="mb-2 fw-bold h5 text-primary">{{ $ai_tool->tool_name }} summary by AIToolBuddy</h3>
|
||||
<div>{!! $ai_tool->summary !!}</div>
|
||||
<br>
|
||||
|
||||
<h3 class="mb-2 fw-bold h5 text-primary">Details</h3>
|
||||
<table class="table">
|
||||
<tbody>
|
||||
<tr>
|
||||
<th scope="row">Pricing Structure</th>
|
||||
<td>{{ $ai_tool->pricing_type }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th scope="row">AI Tool Platform</th>
|
||||
<td>
|
||||
@if ($ai_tool->is_app_web_both == 'both')
|
||||
App & Web
|
||||
@else
|
||||
{{ ucwords($ai_tool->is_app_web_both) }} Only
|
||||
@endif
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<br>
|
||||
<h3 class="mb-2 fw-bold h5 text-primary">{{ $ai_tool->tool_name }} Features</h3>
|
||||
<div class="d-flex flex-wrap gap-1">
|
||||
@foreach ($ai_tool->keywords as $keyword)
|
||||
<a href="{{ get_route_search_result($keyword->value_lowercased) }}"
|
||||
class="btn btn-outline-dark btn-sm border-2 px-2 py-1 rounded-pill text-decoration-none text-nowrap">{{ $keyword->value }}
|
||||
</a>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@if (count($ai_tool->qna) > 0)
|
||||
<div id="faq" class="mb-4">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h3 class="mb-2 fw-bold h5 text-primary">Frequently Asked Questions about
|
||||
{{ $ai_tool->tool_name }}</h3>
|
||||
|
||||
<div class="accordion" id="accordionAiToolFaq">
|
||||
|
||||
@foreach ($ai_tool->qna as $key => $faq)
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed fw-semibold" type="button"
|
||||
data-bs-toggle="collapse" data-bs-target="#collapse{{ $key }}"
|
||||
{{ $key == 0 ? 'aria-expanded="true"' : '' }}
|
||||
aria-controls="collapse{{ $key }}">
|
||||
{{ $faq->q }}
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapse{{ $key }}"
|
||||
class="accordion-collapse collapse {{ $key == 0 ? 'show' : '' }}"
|
||||
data-bs-parent="#accordionAiToolFaq">
|
||||
<div class="accordion-body">
|
||||
{!! $faq->a !!}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
<div class="col-12 col-sm-5 col-md-4 col-lg-4 col-xl-3">
|
||||
|
||||
<div class="d-grid">
|
||||
<a class="btn btn-primary breathing-effect text-decoration-none px-4 mb-4" href="{{ add_params_to_url($ai_tool->external_url, ['ref' => 'aibuddytool.com']) }}">Visit {{ $ai_tool->tool_name }} page ({{ get_domain_from_url($ai_tool->external_url) }})</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
@include('front.partials.sidebar')
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@push('top_head')
|
||||
{!! $faq_context !!}
|
||||
@endpush
|
||||
@@ -10,6 +10,12 @@
|
||||
Discover over <span class="bg-highlighter-yellow fw-bold px-2">{{ $tools_count }} AI Tools</span> Today
|
||||
@endif
|
||||
</h1>
|
||||
<div class="row justify-content-center">
|
||||
|
||||
<div class="col-12 col-md-9 col-lg-8 col-xl-7 mx-auto mb-4">
|
||||
@include('front.partials.search')
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="container-lg pb-5">
|
||||
@@ -19,15 +25,20 @@
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
|
||||
data-bs-target="#collapseCategory" aria-controls="collapseCategory">
|
||||
<span class="h5 fw-bold mb-0">Filter by Category ({{ $parent_categories->count() }})</span>
|
||||
<span class="h5 mb-0">Filter by {{ $parent_categories->count() }} AI Tool Categories </span>
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapseCategory" class="accordion-collapse collapse" data-bs-parent="#accordionCategory">
|
||||
<div class="accordion-body">
|
||||
<div class="accordion-body d-inline-flex justify-content-center flex-wrap gap-1">
|
||||
<h3 class="d-inline mb-0">
|
||||
<a href="{{ route('front.discover.home') }}"
|
||||
class="btn btn-outline-dark text-decoration-none btn-sm border-2 fw-bold mb-0 rounded-pill px-3 {{ is_null($category) ? 'active' : '' }}">All
|
||||
Categories</a>
|
||||
</h3>
|
||||
@foreach ($parent_categories as $parent_category)
|
||||
<h3 class="d-inline">
|
||||
<h3 class="d-inline mb-0">
|
||||
<a href="{{ route('front.discover.category', ['category_slug' => $parent_category->slug]) }}"
|
||||
class="btn btn-outline-dark text-decoration-none btn-sm border-2 fw-bold mb-1 rounded-pill px-3 {{ !is_null($category) && $category->slug == $parent_category->slug ? 'active' : '' }}">{{ $parent_category->name }}
|
||||
class="btn btn-outline-dark text-decoration-none btn-sm border-2 fw-bold mb-0 rounded-pill px-3 {{ !is_null($category) && $category->slug == $parent_category->slug ? 'active' : '' }}">{{ $parent_category->name }}
|
||||
{{ $parent_category->emoji }}</a>
|
||||
</h3>
|
||||
@endforeach
|
||||
@@ -36,12 +47,46 @@ class="btn btn-outline-dark text-decoration-none btn-sm border-2 fw-bold mb-1 ro
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row justify-content-center g-3">
|
||||
@for ($i = 1; $i <= 18; $i++)
|
||||
<div class="col-6 col-lg-4">
|
||||
@include('front.partials.ai-tool-card')
|
||||
@if ($ai_tools->count() > 0)
|
||||
<div class="row justify-content-center g-3 mb-4">
|
||||
@foreach ($ai_tools as $ai_tool)
|
||||
<div class="col-6 col-lg-4">
|
||||
@include('front.partials.ai-tool-card')
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
@else
|
||||
<div class="card">
|
||||
<div class="card-body text-center p-5">
|
||||
<p class="h4 fw-bold">😱 Yikes!</p>
|
||||
<p class="h5 mb-3">This is embarassing, there are no AI tools in this category yet.<br> We will find
|
||||
more AI to add here. In the meantime:</p>
|
||||
<a class="btn btn-primary btn-lg rounded-pill px-4 text-decoration-none"
|
||||
href="{{ route('front.discover.home') }}">See more AI Tools</a>
|
||||
|
||||
</div>
|
||||
@endfor
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<div class="mb-2">
|
||||
@if ($ai_tools instanceof \Illuminate\Pagination\LengthAwarePaginator)
|
||||
@if ($ai_tools->hasPages())
|
||||
<div class="d-flex justify-content-center">
|
||||
{{ $ai_tools->onEachSide(1)->links('pagination::bootstrap-5-pagination-limit-10') }}
|
||||
</div>
|
||||
@endif
|
||||
@elseif ($ai_tools instanceof \Illuminate\Pagination\CursorPaginator)
|
||||
@if ($ai_tools->hasPages())
|
||||
<div class="d-flex justify-content-center">
|
||||
{{ $ai_tools->links('pagination::simple-bootstrap-5') }}
|
||||
</div>
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
<div class="d-flex justify-content-center text-center text-secondary">
|
||||
<small>Use <b>Search</b> to discover AI tools by brand, task or features.</small>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@@ -1,7 +0,0 @@
|
||||
@extends('front.layouts.app')
|
||||
|
||||
@section('content')
|
||||
<h1 class="display-5 text-body-emphasis font-family-zilla-slab">
|
||||
Discover Art AI Tools Today
|
||||
</h1>
|
||||
@endsection
|
||||
@@ -8,42 +8,43 @@ class="bg-highlighter-pink fw-bold px-2">Any Task</span>
|
||||
</h1>
|
||||
<h2 class="lead h4 mb-4">Curating over 750+ AI tools and growing 🛠️</h2>
|
||||
|
||||
<div class="col-12 col-md-9 col-lg-8 col-xl-7 mx-auto mb-4">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-12 col-md-9 col-lg-8 col-xl-7 mx-auto mb-4">
|
||||
@include('front.partials.search')
|
||||
</div>
|
||||
|
||||
<form class="form-inline d-flex justify-content-center border rounded-pill p-2">
|
||||
<input class="form-control form-control-lg border-0 rounded-pill" type="search" placeholder="Search AI Tools"
|
||||
aria-label="Search">
|
||||
<button class="btn btn-lg btn-primary bg-gradient text-white rounded-pill ms-2 text-nowrap px-4 fw-bold"
|
||||
type="submit">Search with AI ✨</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div class="col-12 col-md-9 col-lg-9 col-xl-9 mx-auto">
|
||||
Filter by
|
||||
@foreach ($top_parent_categories as $category)
|
||||
<a href="{{ route('front.discover.category', ['category_slug' => $category->slug]) }}"
|
||||
class="btn btn-outline-dark text-decoration-none border-2 fw-bold mb-1 rounded-pill px-3">{{ $category->name }}
|
||||
{{ $category->emoji }}</a>
|
||||
@endforeach
|
||||
<a href="{{ route('front.discover.home') }}"
|
||||
class="btn btn-outline-dark text-decoration-none border-2 fw-bold mb-1 rounded-pill px-3">and
|
||||
{{ $non_top_parent_categories->count() }} more top categories!</a>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="container-lg">
|
||||
<p class="text-center h3 fw-bold mb-3">Featured AI Tools</p>
|
||||
<div class="row justify-content-center g-3">
|
||||
@for ($i = 1; $i <= 18; $i++)
|
||||
<div class="col-6 col-lg-4">
|
||||
@include('front.partials.ai-tool-card')
|
||||
<div class="col-12 col-md-9 col-lg-9 col-xl-9 mx-auto">
|
||||
<div class="d-inline-flex justify-content-center flex-wrap gap-1">
|
||||
<span class="align-self-center">Filter by</span>
|
||||
@foreach ($top_parent_categories as $category)
|
||||
<a href="{{ route('front.discover.category', ['category_slug' => $category->slug]) }}"
|
||||
class="btn btn-outline-dark text-decoration-none border-2 fw-bold rounded-pill px-3">{{ $category->name }}
|
||||
{{ $category->emoji }}</a>
|
||||
@endforeach
|
||||
<a href="{{ route('front.discover.home') }}"
|
||||
class="btn btn-outline-dark text-decoration-none border-2 fw-bold rounded-pill px-3">and
|
||||
{{ $non_top_parent_categories->count() }} more top categories!</a>
|
||||
</div>
|
||||
@endfor
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@if ($latest_ai_tools->count() > 0)
|
||||
<div class="container-lg">
|
||||
<p class="text-center h3 fw-bold mb-3">Featured AI Tools</p>
|
||||
<div class="row justify-content-center g-3">
|
||||
@foreach ($latest_ai_tools as $ai_tool)
|
||||
<div class="col-6 col-lg-4">
|
||||
@include('front.partials.ai-tool-card', ['ai_tool' => $ai_tool])
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
<div class="container-lg mt-3 mb-3 text-center">
|
||||
<a class="btn btn-primary rounded-pill px-4 breathing-effect btn-lg text-decoration-none bg-gradient"
|
||||
href="{{ route('front.discover.home') }}">Discover {{ $tools_count }} More AI Tools</a>
|
||||
|
||||
@@ -13,15 +13,14 @@
|
||||
<meta property="fb:app_id" content="{{ config('seotools.fb_app_id') }}" />
|
||||
<meta name="csrf-token" content="{{ csrf_token() }}">
|
||||
|
||||
|
||||
<link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}">
|
||||
<link rel="icon" href="{{ asset('ai-buddy-tool-logo-512x512.svg') }}" type="image/svg+xml">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="{{ asset('apple-touch-icon.png') }}">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="{{ asset('favicon-32x32.png') }}">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="{{ asset('favicon-16x16.png') }}">
|
||||
<link rel="manifest" href="{{ asset('site.webmanifest') }}">
|
||||
|
||||
@vite('resources/sass/app-front.scss')
|
||||
|
||||
@stack('top_head')
|
||||
|
||||
<!-- Custom styles for this Page-->
|
||||
@yield('custom_styles')
|
||||
|
||||
@@ -31,19 +30,23 @@
|
||||
|
||||
<body>
|
||||
|
||||
@include('googletagmanager::body')
|
||||
<div id="app">
|
||||
|
||||
@include('front.layouts.navigation')
|
||||
@include('googletagmanager::body')
|
||||
|
||||
@yield('content')
|
||||
@include('front.layouts.navigation')
|
||||
|
||||
@include('front.layouts.footer')
|
||||
@yield('content')
|
||||
|
||||
<!-- Core plugin JavaScript-->
|
||||
@vite('resources/js/app-front.js')
|
||||
@include('front.layouts.footer')
|
||||
|
||||
<!-- Page level custom scripts -->
|
||||
@yield('custom_scripts')
|
||||
<!-- Core plugin JavaScript-->
|
||||
@vite('resources/js/app-front.js')
|
||||
|
||||
<!-- Page level custom scripts -->
|
||||
@yield('custom_scripts')
|
||||
|
||||
</div>
|
||||
|
||||
</body>
|
||||
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
<div class="container-fluid shadow-sm">
|
||||
<header class="d-flex flex-wrap align-items-center justify-content-center py-3">
|
||||
<header class="d-flex flex-wrap align-items-center justify-content-center py-2">
|
||||
<div class="col-auto">
|
||||
|
||||
<a href="{{ route('front.home') }}" class="btn btn-link d-inline-flex text-decoration-none text-center">
|
||||
<p class="display-6 mb-0 font-family-black-ops-one">
|
||||
<a href="{{ route('front.home') }}" class="btn btn-link d-inline-flex text-decoration-none hover-grow text-center gap-2">
|
||||
<img class="align-self-center" style="height:50px; width:auto;" src="{{ asset('ai-buddy-tool-logo-512x512.svg') }}" alt="AIBuddyTool.com Logo">
|
||||
<p class="align-self-center display-6 mb-0 font-family-zilla-slab fw-bold">
|
||||
{{ config('app.name') }}
|
||||
</p>
|
||||
</a>
|
||||
|
||||
@@ -1,22 +1,48 @@
|
||||
<div class="card border-0 shadow hover-grow">
|
||||
<div class="ratio ratio-16x9">
|
||||
<a href="#">
|
||||
<img class="card-img-top" src="https://placekitten.com/g/1024/576">
|
||||
<div class="card border-0 shadow hover-grow" style="height: 100%;">
|
||||
<div class="ratio ratio-16x9 shadow">
|
||||
<a href="{{ route('front.aitool.show', ['ai_tool_slug' => $ai_tool->slug]) }}">
|
||||
<img class="card-img-top" src="{{ $ai_tool->screenshot_img }}">
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
<a class="fw-bold" href="#">
|
||||
<h3 class="h5 fw-bold line-clamp-1">Yada {{ $i }}</h3>
|
||||
<a class="fw-bold" href="{{ route('front.aitool.show', ['ai_tool_slug' => $ai_tool->slug]) }}">
|
||||
<h3 class="h5 fw-bold line-clamp-1">{{ $ai_tool->tool_name }}</h3>
|
||||
</a>
|
||||
<p class="line-clamp-2">Rewin.ai is an AI tool that helps content creators generate unique and engaging scripts
|
||||
for their chicken rice that is very tasty.</p>
|
||||
|
||||
<div class="d-flex">
|
||||
<a class="btn btn-outline-dark btn-sm border-2 px-2 py-1 rounded-pill text-decoration-none">Light</a>
|
||||
<p class="line-clamp-2 mb-2">{!! str_first_sentence($ai_tool->summary) !!}</p>
|
||||
|
||||
<div class="mb-3 d-flex gap-1">
|
||||
<span class="badge rounded-pill text-bg-highlighter-yellow">
|
||||
<i class="bi bi-currency-dollar"></i> {{ $ai_tool->pricing_type }}
|
||||
</span>
|
||||
<span class="badge rounded-pill text-bg-highlighter-orange">
|
||||
<i class="bi bi-globe"></i>
|
||||
@if ($ai_tool->is_app_web_both == 'both')
|
||||
App & Web
|
||||
@else
|
||||
{{ ucwords($ai_tool->is_app_web_both) }}
|
||||
@endif
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="d-flex flex-wrap gap-1">
|
||||
@foreach ($ai_tool->keywords as $keyword)
|
||||
@if ($loop->iteration <= 3)
|
||||
<a href="{{ get_route_search_result($keyword->value_lowercased) }}"
|
||||
class="btn btn-outline-dark btn-sm border-2 px-2 py-1 rounded-pill text-decoration-none text-nowrap">{{ $keyword->value }}</a>
|
||||
@else
|
||||
<a href="{{ route('front.discover.home') }}"
|
||||
class="btn btn-outline-dark btn-sm border-2 px-2 py-1 rounded-pill text-decoration-none text-nowrap">
|
||||
+ {{ $ai_tool->keywords->count() - 3 }} more
|
||||
</a>
|
||||
@break
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -5,8 +5,17 @@
|
||||
@if ($loop->last)
|
||||
<li class="breadcrumb-item active" aria-current="page">{{ $breadcrumb['name'] }}</li>
|
||||
@else
|
||||
<li class="breadcrumb-item"><a href="{{ $breadcrumb['url'] }}">{{ $breadcrumb['name'] }}</a></li>
|
||||
@if (!is_empty($breadcrumb['url']))
|
||||
<li class="breadcrumb-item text-primary"><a
|
||||
href="{{ $breadcrumb['url'] }}">{{ $breadcrumb['name'] }}</a></li>
|
||||
@else
|
||||
<li class="breadcrumb-item text-secondary">{{ $breadcrumb['name'] }}</li>
|
||||
@endif
|
||||
@endif
|
||||
@endforeach
|
||||
</ol>
|
||||
</nav>
|
||||
|
||||
@push('top_head')
|
||||
{!! $breadcrumb_context !!}
|
||||
@endpush
|
||||
|
||||
8
resources/views/front/partials/search.blade.php
Normal file
8
resources/views/front/partials/search.blade.php
Normal file
@@ -0,0 +1,8 @@
|
||||
<form action="{{ route('front.search.post') }}" method="POST"
|
||||
class="form-inline d-flex justify-content-center border rounded-pill p-2">
|
||||
@csrf
|
||||
<input class="form-control form-control-lg border-0 rounded-pill" type="search" placeholder="Search AI Tools"
|
||||
name="query" value="{{ session()->get('query') }}" aria-label="Search">
|
||||
<button class="btn btn-lg btn-primary bg-gradient text-white rounded-pill ms-2 text-nowrap px-4 fw-bold"
|
||||
type="submit">Search with Buddy AI ✨</button>
|
||||
</form>
|
||||
34
resources/views/front/partials/sidebar.blade.php
Normal file
34
resources/views/front/partials/sidebar.blade.php
Normal file
@@ -0,0 +1,34 @@
|
||||
<aside class="p-4 mb-3 bg-white border-primary text-secondary rounded-3 shadow-sm">
|
||||
<p class="h4 font-family-roboto-condensed fw-bold text-primary">About aibuddytool.com</p>
|
||||
<p class="mb-0">
|
||||
AI Buddy Tool is your go-to platform for exploring the world of artificial intelligence. Centered around
|
||||
<b>Buddy AI</b>, our intuitive AI-powered search assistant, we make discovering and understanding AI tools
|
||||
effortless and engaging. Whether you're a tech enthusiast or a curious explorer, our platform simplifies AI,
|
||||
offering you a seamless experience in finding the perfect AI solutions for your needs. Join us to unlock AI's
|
||||
potential and see how it can transform your world. 🌟🤖💡
|
||||
</p>
|
||||
</aside>
|
||||
|
||||
<aside class="mb-3">
|
||||
<div class="text-secondary small mb-1">Our sponsors</div>
|
||||
<div style="--bs-aspect-ratio: 66.67%;" class="ratio ratio-1x1 rounded-2 shadow-sm">
|
||||
<a target="_blank" href="https://futurewalker.co?utm_source=external&utm_medium=sidebar&utm_campaign=aibuddytool&ref=aibuddytool">
|
||||
<img class="img-fluid rounded-2" src="https://cdn.futurewalker.co/futurewalker-600x400-banner.webp" alt="Futurewalker.co: 1 minute AI + tech news bites worth every second">
|
||||
|
||||
</a>
|
||||
</div>
|
||||
</aside>
|
||||
|
||||
<aside class="mb-3">
|
||||
<form action="{{ route('front.search.post') }}" method="POST"
|
||||
class="form-inline d-flex justify-content-center">
|
||||
@csrf
|
||||
<input class="form-control form-control-lg " type="search" placeholder="Search AI Tools"
|
||||
name="query" value="{{ session()->get('query') }}" aria-label="Search">
|
||||
<button class="btn btn-outline-primary bg-gradient ms-2 text-nowrap px-2 fw-bold border-2"
|
||||
type="submit">
|
||||
<i class="bi bi-search"></i><br>
|
||||
Search
|
||||
</button>
|
||||
</form>
|
||||
</aside>
|
||||
110
resources/views/front/search_results.blade.php
Normal file
110
resources/views/front/search_results.blade.php
Normal file
@@ -0,0 +1,110 @@
|
||||
@extends('front.layouts.app')
|
||||
|
||||
@section('content')
|
||||
<div class="container-lg pt-3 mb-3">
|
||||
@include('front.partials.breadcrumbs')
|
||||
|
||||
<div class="mb-3">
|
||||
@include('front.partials.search')
|
||||
</div>
|
||||
|
||||
<h1 class="h2 text-body-emphasis font-family-zilla-slab">
|
||||
<i class="bi bi-search"></i> <span class="fw-bold">{{ $query }}</span> AI tools
|
||||
</h1>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="container-lg pb-5">
|
||||
|
||||
<div class="row">
|
||||
<div class="col-12 col-lg-8 col-xl-9">
|
||||
@foreach ($results as $result)
|
||||
<div class="card mb-4 hover-grow shadow">
|
||||
<div class="card-body p-3 p-lg-3">
|
||||
<div class="row g-2 overflow-hidden flex-md-row h-md-250 position-relative">
|
||||
<div class="col-3 col-lg-3 d-none d-lg-flex" style="height:100%;">
|
||||
<div class="align-self-center p-1">
|
||||
<img class="img-fluid rounded-3 shadow-sm"
|
||||
src="{{ $result->ai_tool->screenshot_img }}" alt="{{ $result->tool_name }}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12 col-lg-9 d-flex flex-column position-static">
|
||||
<a class="fw-bold" href="#">
|
||||
<h3 class="h5 fw-bold line-clamp-1">{{ $result->ai_tool->tool_name }}</h3>
|
||||
</a>
|
||||
<p class="line-clamp-2 mb-2">
|
||||
@foreach (str_extract_sentences($result->ai_tool->summary, 2) as $sentence)
|
||||
{!! $sentence !!}
|
||||
@endforeach
|
||||
</p>
|
||||
|
||||
<div class="mb-3 d-flex gap-1">
|
||||
<span class="badge rounded-pill text-bg-highlighter-yellow">
|
||||
<i class="bi bi-currency-dollar"></i> {{ $result->ai_tool->pricing_type }}
|
||||
</span>
|
||||
<span class="badge rounded-pill text-bg-highlighter-orange">
|
||||
<i class="bi bi-globe"></i>
|
||||
@if ($result->ai_tool->is_app_web_both == 'both')
|
||||
App & Web
|
||||
@else
|
||||
{{ ucwords($result->ai_tool->is_app_web_both) }}
|
||||
@endif
|
||||
</span>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="d-flex flex-wrap gap-1">
|
||||
@foreach ($result->ai_tool->keywords as $keyword)
|
||||
@if ($loop->iteration <= 3)
|
||||
<a href="{{ get_route_search_result($keyword->value_lowercased) }}"
|
||||
class="btn btn-outline-dark btn-sm border-2 px-2 py-1 rounded-pill text-decoration-none text-nowrap">{{ $keyword->value }}</a>
|
||||
@else
|
||||
<a href="{{ route('front.discover.home') }}"
|
||||
class="btn btn-outline-dark btn-sm border-2 px-2 py-1 rounded-pill text-decoration-none text-nowrap">
|
||||
+ {{ $result->ai_tool->keywords->count() - 3 }} more
|
||||
</a>
|
||||
@break
|
||||
@endif
|
||||
@endforeach
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
|
||||
<div class="mb-2">
|
||||
@if ($results instanceof \Illuminate\Pagination\LengthAwarePaginator)
|
||||
@if ($results->hasPages())
|
||||
<div class="d-flex justify-content-center">
|
||||
{{ $results->onEachSide(1)->links('pagination::bootstrap-5-pagination-limit-10') }}
|
||||
</div>
|
||||
@endif
|
||||
@elseif ($results instanceof \Illuminate\Pagination\CursorPaginator)
|
||||
@if ($results->hasPages())
|
||||
<div class="d-flex justify-content-center">
|
||||
{{ $results->links('pagination::simple-bootstrap-5') }}
|
||||
</div>
|
||||
@endif
|
||||
@endif
|
||||
</div>
|
||||
<div class="d-flex justify-content-center text-center text-secondary mb-3">
|
||||
<small>Use <b>Search</b> to discover AI tools by brand, task or features.</small>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-12 col-lg-4 col-xl-3">
|
||||
@include('front.partials.sidebar')
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
@endsection
|
||||
51
resources/views/vendor/pagination/bootstrap-4.blade.php
vendored
Normal file
51
resources/views/vendor/pagination/bootstrap-4.blade.php
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
@if ($paginator->hasPages())
|
||||
<nav>
|
||||
<ul class="pagination">
|
||||
{{-- Previous Page Link --}}
|
||||
@if ($paginator->onFirstPage())
|
||||
<li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.previous')">
|
||||
<span class="page-link" aria-hidden="true">‹</span>
|
||||
</li>
|
||||
@else
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev"
|
||||
aria-label="@lang('pagination.previous')">‹</a>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
{{-- Pagination Elements --}}
|
||||
@foreach ($elements as $element)
|
||||
{{-- "Three Dots" Separator --}}
|
||||
@if (is_string($element))
|
||||
<li class="page-item disabled" aria-disabled="true"><span
|
||||
class="page-link">{{ $element }}</span></li>
|
||||
@endif
|
||||
|
||||
{{-- Array Of Links --}}
|
||||
@if (is_array($element))
|
||||
@foreach ($element as $page => $url)
|
||||
@if ($page == $paginator->currentPage())
|
||||
<li class="page-item active" aria-current="page"><span
|
||||
class="page-link">{{ $page }}</span></li>
|
||||
@else
|
||||
<li class="page-item"><a class="page-link"
|
||||
href="{{ $url }}">{{ $page }}</a></li>
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
@endforeach
|
||||
|
||||
{{-- Next Page Link --}}
|
||||
@if ($paginator->hasMorePages())
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next"
|
||||
aria-label="@lang('pagination.next')">›</a>
|
||||
</li>
|
||||
@else
|
||||
<li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.next')">
|
||||
<span class="page-link" aria-hidden="true">›</span>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
</nav>
|
||||
@endif
|
||||
73
resources/views/vendor/pagination/bootstrap-5-pagination-limit-10.blade.php
vendored
Normal file
73
resources/views/vendor/pagination/bootstrap-5-pagination-limit-10.blade.php
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
@if ($paginator->hasPages())
|
||||
<nav class="d-flex justify-items-center justify-content-between">
|
||||
<!-- Mobile View Pagination -->
|
||||
<div class="d-flex justify-content-between flex-fill d-sm-none">
|
||||
<ul class="pagination mb-0 pb-0">
|
||||
{{-- Previous Page Link --}}
|
||||
@if ($paginator->onFirstPage())
|
||||
<li class="page-item disabled" aria-disabled="true">
|
||||
<span class="page-link">@lang('pagination.previous')</span>
|
||||
</li>
|
||||
@else
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="{{ $paginator->previousPageUrl() }}"
|
||||
rel="prev">@lang('pagination.previous')</a>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
{{-- Next Page Link --}}
|
||||
@if ($paginator->hasMorePages() && $paginator->currentPage() < 10)
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next">@lang('pagination.next')</a>
|
||||
</li>
|
||||
@else
|
||||
<li class="page-item disabled" aria-disabled="true">
|
||||
<span class="page-link">@lang('pagination.next')</span>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<!-- Desktop View Pagination -->
|
||||
<div class="d-none flex-sm-fill d-sm-flex align-items-sm-center justify-content-sm-between">
|
||||
<div class="mx-1">
|
||||
<ul class="pagination pb-0 mb-0">
|
||||
{{-- Previous Page Link --}}
|
||||
@if ($paginator->onFirstPage())
|
||||
<li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.previous')">
|
||||
<span class="page-link" aria-hidden="true">‹</span>
|
||||
</li>
|
||||
@else
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev"
|
||||
aria-label="@lang('pagination.previous')">‹</a>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
{{-- Pagination Elements --}}
|
||||
@foreach (range(1, min(10, $paginator->lastPage())) as $i)
|
||||
@if ($i == $paginator->currentPage())
|
||||
<li class="page-item active" aria-current="page"><span
|
||||
class="page-link">{{ $i }}</span></li>
|
||||
@else
|
||||
<li class="page-item"><a class="page-link"
|
||||
href="{{ $paginator->url($i) }}">{{ $i }}</a></li>
|
||||
@endif
|
||||
@endforeach
|
||||
|
||||
{{-- Next Page Link --}}
|
||||
@if ($paginator->hasMorePages() && $paginator->currentPage() < 10)
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next"
|
||||
aria-label="@lang('pagination.next')">›</a>
|
||||
</li>
|
||||
@else
|
||||
<li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.next')">
|
||||
<span class="page-link" aria-hidden="true">›</span>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
@endif
|
||||
83
resources/views/vendor/pagination/bootstrap-5-pagination.blade.php
vendored
Normal file
83
resources/views/vendor/pagination/bootstrap-5-pagination.blade.php
vendored
Normal file
@@ -0,0 +1,83 @@
|
||||
@if ($paginator->hasPages())
|
||||
<nav class="d-flex justify-items-center justify-content-between">
|
||||
<div class="d-flex justify-content-between flex-fill d-sm-none">
|
||||
<ul class="pagination mb-0 pb-0">
|
||||
{{-- Previous Page Link --}}
|
||||
@if ($paginator->onFirstPage())
|
||||
<li class="page-item disabled" aria-disabled="true">
|
||||
<span class="page-link">@lang('pagination.previous')</span>
|
||||
</li>
|
||||
@else
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="{{ $paginator->previousPageUrl() }}"
|
||||
rel="prev">@lang('pagination.previous')</a>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
{{-- Next Page Link --}}
|
||||
@if ($paginator->hasMorePages())
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next">@lang('pagination.next')</a>
|
||||
</li>
|
||||
@else
|
||||
<li class="page-item disabled" aria-disabled="true">
|
||||
<span class="page-link">@lang('pagination.next')</span>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="d-none flex-sm-fill d-sm-flex align-items-sm-center justify-content-sm-between">
|
||||
|
||||
<div class="mx-1">
|
||||
<ul class="pagination pb-0 mb-0">
|
||||
{{-- Previous Page Link --}}
|
||||
@if ($paginator->onFirstPage())
|
||||
<li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.previous')">
|
||||
<span class="page-link" aria-hidden="true">‹</span>
|
||||
</li>
|
||||
@else
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev"
|
||||
aria-label="@lang('pagination.previous')">‹</a>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
{{-- Pagination Elements --}}
|
||||
@foreach ($elements as $element)
|
||||
{{-- "Three Dots" Separator --}}
|
||||
@if (is_string($element))
|
||||
<li class="page-item disabled" aria-disabled="true"><span
|
||||
class="page-link">{{ $element }}</span></li>
|
||||
@endif
|
||||
|
||||
{{-- Array Of Links --}}
|
||||
@if (is_array($element))
|
||||
@foreach ($element as $page => $url)
|
||||
@if ($page == $paginator->currentPage())
|
||||
<li class="page-item active" aria-current="page"><span
|
||||
class="page-link">{{ $page }}</span></li>
|
||||
@else
|
||||
<li class="page-item"><a class="page-link"
|
||||
href="{{ $url }}">{{ $page }}</a></li>
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
@endforeach
|
||||
|
||||
{{-- Next Page Link --}}
|
||||
@if ($paginator->hasMorePages())
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next"
|
||||
aria-label="@lang('pagination.next')">›</a>
|
||||
</li>
|
||||
@else
|
||||
<li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.next')">
|
||||
<span class="page-link" aria-hidden="true">›</span>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
@endif
|
||||
11
resources/views/vendor/pagination/bootstrap-5-showing.blade.php
vendored
Normal file
11
resources/views/vendor/pagination/bootstrap-5-showing.blade.php
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
@if ($paginator->hasPages())
|
||||
<p class="small text-muted mb-0 pb-0">
|
||||
{!! __('Showing') !!}
|
||||
<span class="fw-semibold">{{ $paginator->firstItem() }}</span>
|
||||
{!! __('to') !!}
|
||||
<span class="fw-semibold">{{ $paginator->lastItem() }}</span>
|
||||
{{-- {!! __('of') !!}
|
||||
<span class="fw-semibold">{{ $paginator->total() }}</span> --}}
|
||||
{!! __('results') !!}
|
||||
</p>
|
||||
@endif
|
||||
94
resources/views/vendor/pagination/bootstrap-5.blade.php
vendored
Normal file
94
resources/views/vendor/pagination/bootstrap-5.blade.php
vendored
Normal file
@@ -0,0 +1,94 @@
|
||||
@if ($paginator->hasPages())
|
||||
<nav class="d-flex justify-items-center justify-content-between">
|
||||
<div class="d-flex justify-content-between flex-fill d-sm-none">
|
||||
<ul class="pagination mb-0 pb-0">
|
||||
{{-- Previous Page Link --}}
|
||||
@if ($paginator->onFirstPage())
|
||||
<li class="page-item disabled" aria-disabled="true">
|
||||
<span class="page-link">@lang('pagination.previous')</span>
|
||||
</li>
|
||||
@else
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="{{ $paginator->previousPageUrl() }}"
|
||||
rel="prev">@lang('pagination.previous')</a>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
{{-- Next Page Link --}}
|
||||
@if ($paginator->hasMorePages())
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next">@lang('pagination.next')</a>
|
||||
</li>
|
||||
@else
|
||||
<li class="page-item disabled" aria-disabled="true">
|
||||
<span class="page-link">@lang('pagination.next')</span>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="d-none flex-sm-fill d-sm-flex align-items-sm-center justify-content-sm-between">
|
||||
<div class="mx-1">
|
||||
<p class="small text-muted mb-0 pb-0">
|
||||
{!! __('Showing') !!}
|
||||
<span class="fw-semibold">{{ $paginator->firstItem() }}</span>
|
||||
{!! __('to') !!}
|
||||
<span class="fw-semibold">{{ $paginator->lastItem() }}</span>
|
||||
{!! __('of') !!}
|
||||
<span class="fw-semibold">{{ $paginator->total() }}</span>
|
||||
{!! __('results') !!}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="mx-1">
|
||||
<ul class="pagination pb-0 mb-0">
|
||||
{{-- Previous Page Link --}}
|
||||
@if ($paginator->onFirstPage())
|
||||
<li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.previous')">
|
||||
<span class="page-link" aria-hidden="true">‹</span>
|
||||
</li>
|
||||
@else
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev"
|
||||
aria-label="@lang('pagination.previous')">‹</a>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
{{-- Pagination Elements --}}
|
||||
@foreach ($elements as $element)
|
||||
{{-- "Three Dots" Separator --}}
|
||||
@if (is_string($element))
|
||||
<li class="page-item disabled" aria-disabled="true"><span
|
||||
class="page-link">{{ $element }}</span></li>
|
||||
@endif
|
||||
|
||||
{{-- Array Of Links --}}
|
||||
@if (is_array($element))
|
||||
@foreach ($element as $page => $url)
|
||||
@if ($page == $paginator->currentPage())
|
||||
<li class="page-item active" aria-current="page"><span
|
||||
class="page-link">{{ $page }}</span></li>
|
||||
@else
|
||||
<li class="page-item"><a class="page-link"
|
||||
href="{{ $url }}">{{ $page }}</a></li>
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
@endforeach
|
||||
|
||||
{{-- Next Page Link --}}
|
||||
@if ($paginator->hasMorePages())
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next"
|
||||
aria-label="@lang('pagination.next')">›</a>
|
||||
</li>
|
||||
@else
|
||||
<li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.next')">
|
||||
<span class="page-link" aria-hidden="true">›</span>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
@endif
|
||||
47
resources/views/vendor/pagination/default.blade.php
vendored
Normal file
47
resources/views/vendor/pagination/default.blade.php
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
@if ($paginator->hasPages())
|
||||
<nav>
|
||||
<ul class="pagination">
|
||||
{{-- Previous Page Link --}}
|
||||
@if ($paginator->onFirstPage())
|
||||
<li class="disabled" aria-disabled="true" aria-label="@lang('pagination.previous')">
|
||||
<span aria-hidden="true">‹</span>
|
||||
</li>
|
||||
@else
|
||||
<li>
|
||||
<a href="{{ $paginator->previousPageUrl() }}" rel="prev"
|
||||
aria-label="@lang('pagination.previous')">‹</a>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
{{-- Pagination Elements --}}
|
||||
@foreach ($elements as $element)
|
||||
{{-- "Three Dots" Separator --}}
|
||||
@if (is_string($element))
|
||||
<li class="disabled" aria-disabled="true"><span>{{ $element }}</span></li>
|
||||
@endif
|
||||
|
||||
{{-- Array Of Links --}}
|
||||
@if (is_array($element))
|
||||
@foreach ($element as $page => $url)
|
||||
@if ($page == $paginator->currentPage())
|
||||
<li class="active" aria-current="page"><span>{{ $page }}</span></li>
|
||||
@else
|
||||
<li><a href="{{ $url }}">{{ $page }}</a></li>
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
@endforeach
|
||||
|
||||
{{-- Next Page Link --}}
|
||||
@if ($paginator->hasMorePages())
|
||||
<li>
|
||||
<a href="{{ $paginator->nextPageUrl() }}" rel="next" aria-label="@lang('pagination.next')">›</a>
|
||||
</li>
|
||||
@else
|
||||
<li class="disabled" aria-disabled="true" aria-label="@lang('pagination.next')">
|
||||
<span aria-hidden="true">›</span>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
</nav>
|
||||
@endif
|
||||
40
resources/views/vendor/pagination/semantic-ui.blade.php
vendored
Normal file
40
resources/views/vendor/pagination/semantic-ui.blade.php
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
@if ($paginator->hasPages())
|
||||
<div class="ui pagination menu" role="navigation">
|
||||
{{-- Previous Page Link --}}
|
||||
@if ($paginator->onFirstPage())
|
||||
<a class="icon item disabled" aria-disabled="true" aria-label="@lang('pagination.previous')"> <i
|
||||
class="left chevron icon"></i> </a>
|
||||
@else
|
||||
<a class="icon item" href="{{ $paginator->previousPageUrl() }}" rel="prev" aria-label="@lang('pagination.previous')">
|
||||
<i class="left chevron icon"></i> </a>
|
||||
@endif
|
||||
|
||||
{{-- Pagination Elements --}}
|
||||
@foreach ($elements as $element)
|
||||
{{-- "Three Dots" Separator --}}
|
||||
@if (is_string($element))
|
||||
<a class="icon item disabled" aria-disabled="true">{{ $element }}</a>
|
||||
@endif
|
||||
|
||||
{{-- Array Of Links --}}
|
||||
@if (is_array($element))
|
||||
@foreach ($element as $page => $url)
|
||||
@if ($page == $paginator->currentPage())
|
||||
<a class="item active" href="{{ $url }}" aria-current="page">{{ $page }}</a>
|
||||
@else
|
||||
<a class="item" href="{{ $url }}">{{ $page }}</a>
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
@endforeach
|
||||
|
||||
{{-- Next Page Link --}}
|
||||
@if ($paginator->hasMorePages())
|
||||
<a class="icon item" href="{{ $paginator->nextPageUrl() }}" rel="next" aria-label="@lang('pagination.next')">
|
||||
<i class="right chevron icon"></i> </a>
|
||||
@else
|
||||
<a class="icon item disabled" aria-disabled="true" aria-label="@lang('pagination.next')"> <i
|
||||
class="right chevron icon"></i> </a>
|
||||
@endif
|
||||
</div>
|
||||
@endif
|
||||
27
resources/views/vendor/pagination/simple-bootstrap-4.blade.php
vendored
Normal file
27
resources/views/vendor/pagination/simple-bootstrap-4.blade.php
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
@if ($paginator->hasPages())
|
||||
<nav>
|
||||
<ul class="pagination">
|
||||
{{-- Previous Page Link --}}
|
||||
@if ($paginator->onFirstPage())
|
||||
<li class="page-item disabled" aria-disabled="true">
|
||||
<span class="page-link">@lang('pagination.previous')</span>
|
||||
</li>
|
||||
@else
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev">@lang('pagination.previous')</a>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
{{-- Next Page Link --}}
|
||||
@if ($paginator->hasMorePages())
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="{{ $paginator->nextPageUrl() }}" rel="next">@lang('pagination.next')</a>
|
||||
</li>
|
||||
@else
|
||||
<li class="page-item disabled" aria-disabled="true">
|
||||
<span class="page-link">@lang('pagination.next')</span>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
</nav>
|
||||
@endif
|
||||
30
resources/views/vendor/pagination/simple-bootstrap-5.blade.php
vendored
Normal file
30
resources/views/vendor/pagination/simple-bootstrap-5.blade.php
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
@if ($paginator->hasPages())
|
||||
<nav role="navigation" aria-label="Pagination Navigation">
|
||||
<ul class="pagination">
|
||||
{{-- Previous Page Link --}}
|
||||
@if ($paginator->onFirstPage())
|
||||
<li class="page-item disabled" aria-disabled="true">
|
||||
<span class="page-link">{!! __('pagination.previous') !!}</span>
|
||||
</li>
|
||||
@else
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev">
|
||||
{!! __('pagination.previous') !!}
|
||||
</a>
|
||||
</li>
|
||||
@endif
|
||||
|
||||
{{-- Next Page Link --}}
|
||||
@if ($paginator->hasMorePages())
|
||||
<li class="page-item">
|
||||
<a class="page-link" href="{{ $paginator->nextPageUrl() }}"
|
||||
rel="next">{!! __('pagination.next') !!}</a>
|
||||
</li>
|
||||
@else
|
||||
<li class="page-item disabled" aria-disabled="true">
|
||||
<span class="page-link">{!! __('pagination.next') !!}</span>
|
||||
</li>
|
||||
@endif
|
||||
</ul>
|
||||
</nav>
|
||||
@endif
|
||||
19
resources/views/vendor/pagination/simple-default.blade.php
vendored
Normal file
19
resources/views/vendor/pagination/simple-default.blade.php
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
@if ($paginator->hasPages())
|
||||
<nav>
|
||||
<ul class="pagination">
|
||||
{{-- Previous Page Link --}}
|
||||
@if ($paginator->onFirstPage())
|
||||
<li class="disabled" aria-disabled="true"><span>@lang('pagination.previous')</span></li>
|
||||
@else
|
||||
<li><a href="{{ $paginator->previousPageUrl() }}" rel="prev">@lang('pagination.previous')</a></li>
|
||||
@endif
|
||||
|
||||
{{-- Next Page Link --}}
|
||||
@if ($paginator->hasMorePages())
|
||||
<li><a href="{{ $paginator->nextPageUrl() }}" rel="next">@lang('pagination.next')</a></li>
|
||||
@else
|
||||
<li class="disabled" aria-disabled="true"><span>@lang('pagination.next')</span></li>
|
||||
@endif
|
||||
</ul>
|
||||
</nav>
|
||||
@endif
|
||||
29
resources/views/vendor/pagination/simple-tailwind.blade.php
vendored
Normal file
29
resources/views/vendor/pagination/simple-tailwind.blade.php
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
@if ($paginator->hasPages())
|
||||
<nav role="navigation" aria-label="Pagination Navigation" class="flex justify-between">
|
||||
{{-- Previous Page Link --}}
|
||||
@if ($paginator->onFirstPage())
|
||||
<span
|
||||
class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5 rounded-md">
|
||||
{!! __('pagination.previous') !!}
|
||||
</span>
|
||||
@else
|
||||
<a href="{{ $paginator->previousPageUrl() }}" rel="prev"
|
||||
class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 rounded-md hover:text-gray-500 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150">
|
||||
{!! __('pagination.previous') !!}
|
||||
</a>
|
||||
@endif
|
||||
|
||||
{{-- Next Page Link --}}
|
||||
@if ($paginator->hasMorePages())
|
||||
<a href="{{ $paginator->nextPageUrl() }}" rel="next"
|
||||
class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 rounded-md hover:text-gray-500 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150">
|
||||
{!! __('pagination.next') !!}
|
||||
</a>
|
||||
@else
|
||||
<span
|
||||
class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5 rounded-md">
|
||||
{!! __('pagination.next') !!}
|
||||
</span>
|
||||
@endif
|
||||
</nav>
|
||||
@endif
|
||||
130
resources/views/vendor/pagination/tailwind.blade.php
vendored
Normal file
130
resources/views/vendor/pagination/tailwind.blade.php
vendored
Normal file
@@ -0,0 +1,130 @@
|
||||
@if ($paginator->hasPages())
|
||||
<nav role="navigation" aria-label="{{ __('Pagination Navigation') }}" class="flex items-center justify-between">
|
||||
<div class="flex justify-between flex-1 sm:hidden">
|
||||
@if ($paginator->onFirstPage())
|
||||
<span
|
||||
class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5 rounded-md">
|
||||
{!! __('pagination.previous') !!}
|
||||
</span>
|
||||
@else
|
||||
<a href="{{ $paginator->previousPageUrl() }}"
|
||||
class="relative inline-flex items-center px-4 py-2 text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 rounded-md hover:text-gray-500 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150">
|
||||
{!! __('pagination.previous') !!}
|
||||
</a>
|
||||
@endif
|
||||
|
||||
@if ($paginator->hasMorePages())
|
||||
<a href="{{ $paginator->nextPageUrl() }}"
|
||||
class="relative inline-flex items-center px-4 py-2 ml-3 text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 rounded-md hover:text-gray-500 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150">
|
||||
{!! __('pagination.next') !!}
|
||||
</a>
|
||||
@else
|
||||
<span
|
||||
class="relative inline-flex items-center px-4 py-2 ml-3 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5 rounded-md">
|
||||
{!! __('pagination.next') !!}
|
||||
</span>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<div class="hidden sm:flex-1 sm:flex sm:items-center sm:justify-between">
|
||||
<div>
|
||||
<p class="text-sm text-gray-700 leading-5">
|
||||
{!! __('Showing') !!}
|
||||
@if ($paginator->firstItem())
|
||||
<span class="font-medium">{{ $paginator->firstItem() }}</span>
|
||||
{!! __('to') !!}
|
||||
<span class="font-medium">{{ $paginator->lastItem() }}</span>
|
||||
@else
|
||||
{{ $paginator->count() }}
|
||||
@endif
|
||||
{!! __('of') !!}
|
||||
<span class="font-medium">{{ $paginator->total() }}</span>
|
||||
{!! __('results') !!}
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<span class="relative z-0 inline-flex shadow-sm rounded-md">
|
||||
{{-- Previous Page Link --}}
|
||||
@if ($paginator->onFirstPage())
|
||||
<span aria-disabled="true" aria-label="{{ __('pagination.previous') }}">
|
||||
<span
|
||||
class="relative inline-flex items-center px-2 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default rounded-l-md leading-5"
|
||||
aria-hidden="true">
|
||||
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd"
|
||||
d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z"
|
||||
clip-rule="evenodd" />
|
||||
</svg>
|
||||
</span>
|
||||
</span>
|
||||
@else
|
||||
<a href="{{ $paginator->previousPageUrl() }}" rel="prev"
|
||||
class="relative inline-flex items-center px-2 py-2 text-sm font-medium text-gray-500 bg-white border border-gray-300 rounded-l-md leading-5 hover:text-gray-400 focus:z-10 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-500 transition ease-in-out duration-150"
|
||||
aria-label="{{ __('pagination.previous') }}">
|
||||
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd"
|
||||
d="M12.707 5.293a1 1 0 010 1.414L9.414 10l3.293 3.293a1 1 0 01-1.414 1.414l-4-4a1 1 0 010-1.414l4-4a1 1 0 011.414 0z"
|
||||
clip-rule="evenodd" />
|
||||
</svg>
|
||||
</a>
|
||||
@endif
|
||||
|
||||
{{-- Pagination Elements --}}
|
||||
@foreach ($elements as $element)
|
||||
{{-- "Three Dots" Separator --}}
|
||||
@if (is_string($element))
|
||||
<span aria-disabled="true">
|
||||
<span
|
||||
class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 cursor-default leading-5">{{ $element }}</span>
|
||||
</span>
|
||||
@endif
|
||||
|
||||
{{-- Array Of Links --}}
|
||||
@if (is_array($element))
|
||||
@foreach ($element as $page => $url)
|
||||
@if ($page == $paginator->currentPage())
|
||||
<span aria-current="page">
|
||||
<span
|
||||
class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default leading-5">{{ $page }}</span>
|
||||
</span>
|
||||
@else
|
||||
<a href="{{ $url }}"
|
||||
class="relative inline-flex items-center px-4 py-2 -ml-px text-sm font-medium text-gray-700 bg-white border border-gray-300 leading-5 hover:text-gray-500 focus:z-10 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-700 transition ease-in-out duration-150"
|
||||
aria-label="{{ __('Go to page :page', ['page' => $page]) }}">
|
||||
{{ $page }}
|
||||
</a>
|
||||
@endif
|
||||
@endforeach
|
||||
@endif
|
||||
@endforeach
|
||||
|
||||
{{-- Next Page Link --}}
|
||||
@if ($paginator->hasMorePages())
|
||||
<a href="{{ $paginator->nextPageUrl() }}" rel="next"
|
||||
class="relative inline-flex items-center px-2 py-2 -ml-px text-sm font-medium text-gray-500 bg-white border border-gray-300 rounded-r-md leading-5 hover:text-gray-400 focus:z-10 focus:outline-none focus:ring ring-gray-300 focus:border-blue-300 active:bg-gray-100 active:text-gray-500 transition ease-in-out duration-150"
|
||||
aria-label="{{ __('pagination.next') }}">
|
||||
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd"
|
||||
d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
|
||||
clip-rule="evenodd" />
|
||||
</svg>
|
||||
</a>
|
||||
@else
|
||||
<span aria-disabled="true" aria-label="{{ __('pagination.next') }}">
|
||||
<span
|
||||
class="relative inline-flex items-center px-2 py-2 -ml-px text-sm font-medium text-gray-500 bg-white border border-gray-300 cursor-default rounded-r-md leading-5"
|
||||
aria-hidden="true">
|
||||
<svg class="w-5 h-5" fill="currentColor" viewBox="0 0 20 20">
|
||||
<path fill-rule="evenodd"
|
||||
d="M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z"
|
||||
clip-rule="evenodd" />
|
||||
</svg>
|
||||
</span>
|
||||
</span>
|
||||
@endif
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
@endif
|
||||
Reference in New Issue
Block a user