This commit is contained in:
2023-11-28 04:39:36 +08:00
parent a9ac0e48b3
commit dc37274b6c
86 changed files with 2106 additions and 191 deletions

View 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

View File

@@ -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

View File

@@ -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

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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

View 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>

View 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>

View 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

View 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">&lsaquo;</span>
</li>
@else
<li class="page-item">
<a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev"
aria-label="@lang('pagination.previous')">&lsaquo;</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')">&rsaquo;</a>
</li>
@else
<li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.next')">
<span class="page-link" aria-hidden="true">&rsaquo;</span>
</li>
@endif
</ul>
</nav>
@endif

View 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">&lsaquo;</span>
</li>
@else
<li class="page-item">
<a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev"
aria-label="@lang('pagination.previous')">&lsaquo;</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')">&rsaquo;</a>
</li>
@else
<li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.next')">
<span class="page-link" aria-hidden="true">&rsaquo;</span>
</li>
@endif
</ul>
</div>
</div>
</nav>
@endif

View 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">&lsaquo;</span>
</li>
@else
<li class="page-item">
<a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev"
aria-label="@lang('pagination.previous')">&lsaquo;</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')">&rsaquo;</a>
</li>
@else
<li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.next')">
<span class="page-link" aria-hidden="true">&rsaquo;</span>
</li>
@endif
</ul>
</div>
</div>
</nav>
@endif

View 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

View 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">&lsaquo;</span>
</li>
@else
<li class="page-item">
<a class="page-link" href="{{ $paginator->previousPageUrl() }}" rel="prev"
aria-label="@lang('pagination.previous')">&lsaquo;</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')">&rsaquo;</a>
</li>
@else
<li class="page-item disabled" aria-disabled="true" aria-label="@lang('pagination.next')">
<span class="page-link" aria-hidden="true">&rsaquo;</span>
</li>
@endif
</ul>
</div>
</div>
</nav>
@endif

View 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">&lsaquo;</span>
</li>
@else
<li>
<a href="{{ $paginator->previousPageUrl() }}" rel="prev"
aria-label="@lang('pagination.previous')">&lsaquo;</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')">&rsaquo;</a>
</li>
@else
<li class="disabled" aria-disabled="true" aria-label="@lang('pagination.next')">
<span aria-hidden="true">&rsaquo;</span>
</li>
@endif
</ul>
</nav>
@endif

View 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

View 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

View 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

View 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

View 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

View 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