165
resources/views/seo/title-page/prerender.blade.php
Executable file
165
resources/views/seo/title-page/prerender.blade.php
Executable file
@@ -0,0 +1,165 @@
|
||||
@extends('common::prerender.base')
|
||||
|
||||
@section('head')
|
||||
@include('seo.title-page.seo-tags')
|
||||
@endsection
|
||||
|
||||
@section('body')
|
||||
@include('seo.menu')
|
||||
|
||||
<h1>{{ $title->name }}</h1>
|
||||
|
||||
@if ($title->poster)
|
||||
<img src="{{ urls()->image($title->poster) }}" alt="Title poster" width="270px" />
|
||||
@endif
|
||||
|
||||
@if ($seasonCount = $title->seasons_count)
|
||||
<div>
|
||||
<h3>{{ __('Seasons') }}</h3>
|
||||
<ul>
|
||||
@foreach (range(0, $seasonCount) as $number)
|
||||
<li>
|
||||
<a
|
||||
href="{{ urls()->season(['title_id' => $title->id, 'number' => $number], $title) }}"
|
||||
>
|
||||
Season: {{ $number + 1 }}
|
||||
</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if ($title->genres)
|
||||
<div>
|
||||
<h3>{{ __('Genres') }}</h3>
|
||||
<ul>
|
||||
@foreach ($title->genres as $genre)
|
||||
<li>
|
||||
<a href="{{ urls()->genre($genre) }}">
|
||||
{{ $genre['display_name'] }}
|
||||
</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
<dl>
|
||||
<dt>{{ __('User Rating') }}</dt>
|
||||
<dd>{{ $title->rating }}</dd>
|
||||
|
||||
<dt>{{ __('Running Time') }}</dt>
|
||||
<dd>{{ $title->runtime }}</dd>
|
||||
|
||||
@if ($cert = $title->certification)
|
||||
<dt>{{ __('Certification') }}</dt>
|
||||
<dd>{{ $cert }}</dd>
|
||||
@endif
|
||||
|
||||
@if ($tagline = $title->tagline)
|
||||
<dt>{{ __('Tagline') }}</dt>
|
||||
<dd>{{ $tagline }}</dd>
|
||||
@endif
|
||||
|
||||
@if ($originalTitle = $title->original_title)
|
||||
<dt>{{ __('Original Title') }}</dt>
|
||||
<dd>{{ $originalTitle }}</dd>
|
||||
@endif
|
||||
|
||||
<dt>{{ __('Release Date') }}</dt>
|
||||
<dd>{{$title->release_date}}</dd>
|
||||
|
||||
@if (! $title->is_series)
|
||||
<dt>{{ __('Budget') }}</dt>
|
||||
<dd>{{ $title->budget }}</dd>
|
||||
|
||||
<dt>{{ __('Revenue') }}</dt>
|
||||
<dd>{{ $title->revenue }}</dd>
|
||||
@endif
|
||||
</dl>
|
||||
|
||||
<p>{{ $title->description }}</p>
|
||||
|
||||
@if ($credits)
|
||||
<div>
|
||||
<h3>{{ __('Credits') }}</h3>
|
||||
<ul style="display: flex; flex-wrap: wrap">
|
||||
@foreach ($credits->flatten(1) as $credit)
|
||||
<li>
|
||||
<div>
|
||||
@if ($credit['poster'])
|
||||
<img
|
||||
src="{{ urls()->image($credit['poster']) }}"
|
||||
alt="Credit poster"
|
||||
width="270px"
|
||||
/>
|
||||
@endif
|
||||
|
||||
<div>
|
||||
<dl>
|
||||
<dt>{{ __('Job') }}</dt>
|
||||
<dd>{{ $credit['pivot']['job'] }}</dd>
|
||||
<dt>{{ __('Department') }}</dt>
|
||||
<dd>
|
||||
{{ $credit['pivot']['department'] }}
|
||||
</dd>
|
||||
@if ($credit['pivot']['character'])
|
||||
<dt>{{ __('Character') }}</dt>
|
||||
<dd>
|
||||
{{ $credit['pivot']['character'] }}
|
||||
</dd>
|
||||
@endif
|
||||
</dl>
|
||||
<a href="{{ urls()->person($credit) }}">
|
||||
{{ $credit['name'] }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if ($videos = $title->videos)
|
||||
<div>
|
||||
<h3>{{ __('Videos') }}</h3>
|
||||
<ul style="display: flex; flex-wrap: wrap">
|
||||
@foreach ($videos as $video)
|
||||
<li>
|
||||
<figure>
|
||||
<img
|
||||
src="{{ urls()->image($video['thumbnail'] ?: $title->poster) }}"
|
||||
alt="Video thumbnail"
|
||||
width="180px"
|
||||
/>
|
||||
<figcaption>
|
||||
<a href="{{ urls()->watch($video) }}">
|
||||
{{ $video['name'] }}
|
||||
</a>
|
||||
</figcaption>
|
||||
</figure>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if ($images = $title->images)
|
||||
<div>
|
||||
<h3>{{ __('Images') }}</h3>
|
||||
<ul style="display: flex; flex-wrap: wrap">
|
||||
@foreach ($images as $image)
|
||||
<li>
|
||||
<img
|
||||
src="{{ urls()->image($image['url']) }}"
|
||||
alt="Media image"
|
||||
width="270px"
|
||||
/>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
@endsection
|
||||
71
resources/views/seo/title-page/seo-tags.blade.php
Executable file
71
resources/views/seo/title-page/seo-tags.blade.php
Executable file
@@ -0,0 +1,71 @@
|
||||
<meta property="og:site_name" content="{{ settings('branding.site_name') }}" />
|
||||
<meta property="twitter:card" content="summary" />
|
||||
<title>
|
||||
{{ $title->name }} ({{ $title->year }}) -
|
||||
{{ settings('branding.site_name') }}
|
||||
</title>
|
||||
<meta property="og:url" content="{{ urls()->title($title) }}" />
|
||||
<link rel="canonical" href="{{ urls()->title($title) }}" />
|
||||
<meta
|
||||
property="og:title"
|
||||
content="{{ $title->name }} ({{ $title->year }}) - {{ settings('branding.site_name') }}"
|
||||
/>
|
||||
|
||||
@if ($title->poster)
|
||||
<meta property="og:image" content="{{ urls()->image($title->poster) }}" />
|
||||
<meta property="og:width" content="300" />
|
||||
<meta property="og:height" content="450" />
|
||||
@endif
|
||||
|
||||
<meta property="og:description" content="{{ $title->description }}" />
|
||||
<meta name="description" content="{{ $title->description }}" />
|
||||
<meta
|
||||
property="keywords"
|
||||
content="reviews,photos,user ratings,synopsis,trailers,credits"
|
||||
/>
|
||||
<meta property="og:type" content="video.movie" />
|
||||
|
||||
<script type="application/ld+json">
|
||||
{!! collect([
|
||||
'@context' => 'http://schema.org',
|
||||
'@type' => 'Movie',
|
||||
'name' => $title->name,
|
||||
'@id' => urls()->title($title),
|
||||
'url' => urls()->title($title),
|
||||
'image' => urls()->image($title->poster),
|
||||
'description' => $title->description,
|
||||
'genre' => $title->genres->pluck('name')->toArray(),
|
||||
'keywords' => $title->keywords->pluck('name')->join(','),
|
||||
'contentRating' => $title->certification,
|
||||
'actor' => isset($credits['actors']) ? $credits['actors']->slice(0, 10)->map(function ($actor) {
|
||||
return [
|
||||
'@type' => 'Person',
|
||||
'name' => $actor->name,
|
||||
'url' => urls()->person($actor),
|
||||
];
|
||||
}) : null,
|
||||
'director' => isset($credits['directing']) ? $credits['directing']->map(function ($director) {
|
||||
return [
|
||||
'@type' => 'Person',
|
||||
'name' => $director->name,
|
||||
'url' => urls()->person($director),
|
||||
];
|
||||
}) : null,
|
||||
'creator' => isset($credits['creators']) ? $credits['creators']->map(function ($creator) {
|
||||
return [
|
||||
'@type' => 'Person',
|
||||
'name' => $creator->name,
|
||||
'url' => urls()->person($creator),
|
||||
];
|
||||
}) : null,
|
||||
'datePublished' => $title->year,
|
||||
'duration' => $title->runtime,
|
||||
'aggregateRating' => $title->rating ? [
|
||||
'@type' => 'AggregateRating',
|
||||
'ratingValue' => $title->rating,
|
||||
'ratingCount' => $title->vote_count,
|
||||
'bestRating' => '10',
|
||||
'worstRating' => '1',
|
||||
] : null,
|
||||
])->filter()->toJson() !!}
|
||||
</script>
|
||||
Reference in New Issue
Block a user