1
resources/views/app.blade.php
Executable file
1
resources/views/app.blade.php
Executable file
@@ -0,0 +1 @@
|
||||
@extends('common::framework')
|
||||
9
resources/views/paypal-popup.blade.php
Executable file
9
resources/views/paypal-popup.blade.php
Executable file
@@ -0,0 +1,9 @@
|
||||
<h1 style="text-align: center">Processing...</h1>
|
||||
|
||||
<script>
|
||||
var token = "{!! $token !!}";
|
||||
var status = "{!! $status !!}";
|
||||
|
||||
window.opener.postMessage({token: token, status: status}, '*');
|
||||
window.close();
|
||||
</script>
|
||||
43
resources/views/seo/channel-page/channel-content.blade.php
Executable file
43
resources/views/seo/channel-page/channel-content.blade.php
Executable file
@@ -0,0 +1,43 @@
|
||||
@if ($item['model_type'] === 'title')
|
||||
<figure>
|
||||
@if($image = urls()->image($item['poster']))
|
||||
<img
|
||||
src="{{ $image }}"
|
||||
alt="{{ $item['name'] }} poster"
|
||||
width="270px"
|
||||
/>
|
||||
@endif
|
||||
<figcaption>
|
||||
<a href="{{ urls()->title($item) }}">
|
||||
{{ $item['name'] }}
|
||||
</a>
|
||||
</figcaption>
|
||||
</figure>
|
||||
@elseif($item['model_type'] === 'newsArticle')
|
||||
<div>
|
||||
<h2><a href="{{urls()->article($item)}}">{{$item['title']}}</a></h2>
|
||||
<h3>{{$item['byline']}}</h3>
|
||||
<h4>{{$item['source']}}</h4>
|
||||
@if(isset($item['image']))
|
||||
<img src="{{urls()->image($item['image'])}}" alt="Article image">
|
||||
@endif
|
||||
<p>
|
||||
{!!$item['body']!!}
|
||||
</p>
|
||||
</div>
|
||||
@else
|
||||
<figure>
|
||||
@if($image = urls()->image($item['poster']))
|
||||
<img
|
||||
src="{{ $image }}"
|
||||
alt="{{ $item['name'] }} poster"
|
||||
width="270px"
|
||||
/>
|
||||
@endif
|
||||
<figcaption>
|
||||
<a href="{{ urls()->person($item) }}">
|
||||
{{ $item['name'] }}
|
||||
</a>
|
||||
</figcaption>
|
||||
</figure>
|
||||
@endif
|
||||
25
resources/views/seo/channel-page/prerender.blade.php
Executable file
25
resources/views/seo/channel-page/prerender.blade.php
Executable file
@@ -0,0 +1,25 @@
|
||||
@extends('common::prerender.base')
|
||||
|
||||
@section('head')
|
||||
@include('seo.channel-page.seo-tags')
|
||||
@endsection
|
||||
|
||||
@section('body')
|
||||
@include('seo.menu')
|
||||
|
||||
<h1>{{ $channel->name }}</h1>
|
||||
|
||||
<ul style="display: flex; flex-wrap: wrap">
|
||||
@foreach ($channel->content as $item)
|
||||
<li>
|
||||
@if ($item['model_type'] === 'channel')
|
||||
@foreach ($item->content as $subItem)
|
||||
@include('seo.channel-page.channel-content', ['item' => $subItem])
|
||||
@endforeach
|
||||
@else
|
||||
@include('seo.channel-page.channel-content', ['item' => $item])
|
||||
@endif
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endsection
|
||||
28
resources/views/seo/channel-page/seo-tags.blade.php
Executable file
28
resources/views/seo/channel-page/seo-tags.blade.php
Executable file
@@ -0,0 +1,28 @@
|
||||
<meta property="og:site_name" content="{{ settings('branding.site_name') }}" />
|
||||
<meta property="twitter:card" content="summary" />
|
||||
<meta property="og:type" content="website" />
|
||||
|
||||
@if (isset($channel->config['seoTitle']))
|
||||
<title>{{ $channel->config['seoTitle'] }}</title>
|
||||
<meta property="og:title" content="{{ $channel->config['seoTitle'] }}" />
|
||||
@else
|
||||
<title>{{ settings('branding.site_name') }}</title>
|
||||
@endif
|
||||
|
||||
<meta property="og:url" content="{{ urls()->channel($channel) }}" />
|
||||
<link rel="canonical" href="{{ urls()->channel($channel) }}" />
|
||||
|
||||
@if (isset($channel->config['seoDescription']))
|
||||
<meta
|
||||
property="og:description"
|
||||
content="{{ $channel->config['seoDescription'] }}"
|
||||
/>
|
||||
<meta
|
||||
name="description"
|
||||
content="{{ $channel->config['seoDescription'] }}"
|
||||
/>
|
||||
@endif
|
||||
|
||||
@if (! $channel->public)
|
||||
<meta name="robots" content="noindex" />
|
||||
@endif
|
||||
13
resources/views/seo/custom-page/prerender.blade.php
Executable file
13
resources/views/seo/custom-page/prerender.blade.php
Executable file
@@ -0,0 +1,13 @@
|
||||
@extends('common::prerender.base')
|
||||
|
||||
@section('head')
|
||||
@include('seo.custom-page.seo-tags')
|
||||
@endsection
|
||||
|
||||
@section('body')
|
||||
<h1>{{ $page->title }}</h1>
|
||||
|
||||
<main>
|
||||
{!! $page->body !!}
|
||||
</main>
|
||||
@endsection
|
||||
15
resources/views/seo/custom-page/seo-tags.blade.php
Executable file
15
resources/views/seo/custom-page/seo-tags.blade.php
Executable file
@@ -0,0 +1,15 @@
|
||||
<meta property="og:site_name" content="{{ settings('branding.site_name') }}" />
|
||||
<meta property="twitter:card" content="summary" />
|
||||
<meta property="og:type" content="website" />
|
||||
<title>{{ $page->title }} - {{ settings('branding.site_name') }}</title>
|
||||
<meta
|
||||
property="og:title"
|
||||
content="{{ $page->title }} - {{ settings('branding.site_name') }}"
|
||||
/>
|
||||
<meta property="og:url" content="{{ urls()->customPage($page) }}" />
|
||||
<link rel="canonical" href="{{ urls()->customPage($page) }}" />
|
||||
|
||||
@if ($page->description)
|
||||
<meta property="og:description" content="{{ $page->description }}" />
|
||||
<meta name="description" content="{{ $page->description }}" />
|
||||
@endif
|
||||
58
resources/views/seo/episode-page/prerender.blade.php
Executable file
58
resources/views/seo/episode-page/prerender.blade.php
Executable file
@@ -0,0 +1,58 @@
|
||||
@extends('common::prerender.base')
|
||||
|
||||
@section('head')
|
||||
@include('seo.episode-page.seo-tags')
|
||||
@endsection
|
||||
|
||||
@section('body')
|
||||
@include('seo.menu')
|
||||
|
||||
<h1>{{ $episode->name }}</h1>
|
||||
|
||||
@if($episode->poster)
|
||||
<img src="{{urls()->image($episode->poster)}}" alt="Episode poster" width="270px">
|
||||
@endif
|
||||
|
||||
<dl>
|
||||
@if($episode->rating)
|
||||
<dt>{{__('User Rating')}}</dt>
|
||||
<dd>{{$episode->rating}}</dd>
|
||||
@endif
|
||||
|
||||
<dt>{{__('Running Time')}}</dt>
|
||||
<dd>{{$episode->runtime ?? $title->runtime}}</dd>
|
||||
|
||||
<dt>{{__('Release Date')}}</dt>
|
||||
<dd>{{$episode->release_date}}</dd>
|
||||
</dl>
|
||||
|
||||
<p>{{ $episode->description }}</p>
|
||||
|
||||
<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>
|
||||
@endsection
|
||||
74
resources/views/seo/episode-page/seo-tags.blade.php
Executable file
74
resources/views/seo/episode-page/seo-tags.blade.php
Executable file
@@ -0,0 +1,74 @@
|
||||
<meta property="og:site_name" content="{{ settings('branding.site_name') }}" />
|
||||
<meta property="twitter:card" content="summary" />
|
||||
<title>
|
||||
{{ $title->name }} ({{ $title->year }}) - {{ $episode->name }} -
|
||||
{{ settings('branding.site_name') }}
|
||||
</title>
|
||||
<meta property="og:url" content="{{ urls()->episode($episode, $title) }}" />
|
||||
<link rel="canonical" href="{{ urls()->episode($episode, $title) }}" />
|
||||
<meta
|
||||
property="og:title"
|
||||
content="{{ $title->name }} ({{ $title->year }}) - {{ $episode->name }} -{{ settings('branding.site_name') }}"
|
||||
/>
|
||||
|
||||
@if ($episode->poster)
|
||||
<meta property="og:image" content="{{ urls()->image($episode->poster) }}" />
|
||||
<meta property="og:width" content="300" />
|
||||
<meta property="og:height" content="450" />
|
||||
@endif
|
||||
|
||||
<meta property="og:description" content="{{ $episode->description }}" />
|
||||
<meta name="description" content="{{ $episode->description }}" />
|
||||
<meta
|
||||
property="keywords"
|
||||
content="reviews,photos,user ratings,synopsis,trailers,credits"
|
||||
/>
|
||||
|
||||
<script type="application/ld+json">
|
||||
{!! collect([
|
||||
'@context' => 'http://schema.org',
|
||||
'@type' => 'TVEpisode',
|
||||
'@id' => urls()->episode($episode, $title),
|
||||
'url' => urls()->episode($episode, $title),
|
||||
'name' => $episode->name,
|
||||
'image' => urls()->image($episode->poster),
|
||||
'timeRequired' => $title->runtime,
|
||||
'contentRating' => $title->certification,
|
||||
'description' => $episode->description,
|
||||
'datePublished' => $episode->release_date,
|
||||
'partOfSeason' => [
|
||||
'@type' => 'TVSeason',
|
||||
'seasonNumber' => $episode->season_number,
|
||||
],
|
||||
'genre' => $title->genres->pluck('name')->toArray(),
|
||||
'keyword' => $title->keywords->pluck('name')->toArray(),
|
||||
'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,
|
||||
'aggregateRating' => $episode->rating ? [
|
||||
'@type' => 'AggregateRating',
|
||||
'ratingValue' => $episode->rating,
|
||||
'ratingCount' => $episode->vote_count,
|
||||
'bestRating' => '10',
|
||||
'worstRating' => '1',
|
||||
] : null,
|
||||
])->filter()->toJson() !!}
|
||||
</script>
|
||||
51
resources/views/seo/landing-page/prerender.blade.php
Executable file
51
resources/views/seo/landing-page/prerender.blade.php
Executable file
@@ -0,0 +1,51 @@
|
||||
@extends('common::prerender.base')
|
||||
|
||||
@section('head')
|
||||
@include('seo.landing-page.seo-tags')
|
||||
@endsection
|
||||
|
||||
@section('body')
|
||||
@if ($data = settings('homepage.appearance'))
|
||||
<h1>{{ $data['headerTitle'] }}</h1>
|
||||
<p>{{ $data['headerSubtitle'] }}</p>
|
||||
|
||||
@foreach ($data['actions'] as $action)
|
||||
@if (isset($action['action']))
|
||||
<a href="{{ $action['action'] }}">{{ $action['label'] }}</a>
|
||||
@endif
|
||||
@endforeach
|
||||
|
||||
@if (isset($data['primaryFeatures']))
|
||||
<ul>
|
||||
@foreach ($data['primaryFeatures'] as $primaryFeature)
|
||||
<li>
|
||||
<h2>{{ $primaryFeature['title'] }}</h2>
|
||||
<p>{{ $primaryFeature['subtitle'] }}</p>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endif
|
||||
|
||||
@if (isset($data['secondaryFeatures']))
|
||||
<ul>
|
||||
@foreach ($data['secondaryFeatures'] as $secondaryFeature)
|
||||
<li>
|
||||
<h3>{{ $secondaryFeature['title'] }}</h3>
|
||||
@if (isset($secondaryFeature['subtitle']))
|
||||
<small>{{ $secondaryFeature['subtitle'] }}</small>
|
||||
@endif
|
||||
|
||||
<p>{{ $secondaryFeature['description'] }}</p>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endif
|
||||
|
||||
@if (isset($data['footerTitle']))
|
||||
<footer>
|
||||
<div>{{ $data['footerTitle'] }}</div>
|
||||
<p>{{ $data['footerSubtitle'] }}</p>
|
||||
</footer>
|
||||
@endif
|
||||
@endif
|
||||
@endsection
|
||||
25
resources/views/seo/landing-page/seo-tags.blade.php
Executable file
25
resources/views/seo/landing-page/seo-tags.blade.php
Executable file
@@ -0,0 +1,25 @@
|
||||
<meta property="og:site_name" content="{{ settings('branding.site_name') }}" />
|
||||
<meta property="twitter:card" content="summary" />
|
||||
<meta property="og:type" content="website" />
|
||||
<title>
|
||||
{{ settings('branding.site_name') }} - Movies, TV and Celebrities
|
||||
</title>
|
||||
<meta
|
||||
property="og:title"
|
||||
content="{{ settings('branding.site_name') }} - Movies, TV and Celebrities"
|
||||
/>
|
||||
<meta property="og:url" content="{{ urls()->home() }}" />
|
||||
<link rel="canonical" href="{{ urls()->home() }}" />
|
||||
|
||||
<meta
|
||||
property="og:description"
|
||||
content="The Movie Database ({{ settings('branding.site_name') }}) is a popular database for movies, TV shows and celebrities."
|
||||
/>
|
||||
<meta
|
||||
name="description"
|
||||
content="The Movie Database ({{ settings('branding.site_name') }}) is a popular database for movies, TV shows and celebrities."
|
||||
/>
|
||||
<meta
|
||||
property="keywords"
|
||||
content="movies, films, movie database, actors, actresses, directors, stars, synopsis, trailers, credits, cast"
|
||||
/>
|
||||
11
resources/views/seo/menu.blade.php
Executable file
11
resources/views/seo/menu.blade.php
Executable file
@@ -0,0 +1,11 @@
|
||||
@if ($menu = settings()->getMenu('primary'))
|
||||
<ul class="menu">
|
||||
@foreach ($menu['items'] as $menuItem)
|
||||
<li>
|
||||
<a href="{{ url($menuItem['action']) }}">
|
||||
{{ $menuItem['label'] }}
|
||||
</a>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endif
|
||||
22
resources/views/seo/news-article-page/prerender.blade.php
Executable file
22
resources/views/seo/news-article-page/prerender.blade.php
Executable file
@@ -0,0 +1,22 @@
|
||||
@extends('common::prerender.base')
|
||||
|
||||
@section('head')
|
||||
@include('seo.news-article-page.seo-tags')
|
||||
@endsection
|
||||
|
||||
@section('body')
|
||||
@include('seo.menu')
|
||||
|
||||
<h1>{{$article->title}}</h1>
|
||||
|
||||
<h2>{{$article->byline}}</h2>
|
||||
<h3>{{$article->source}}</h3>
|
||||
|
||||
@if($article->image)
|
||||
<img src="{{urls()->image($article->image)}}" alt="Article image">
|
||||
@endif
|
||||
|
||||
<article>
|
||||
{!!$article->body!!}
|
||||
</article>
|
||||
@endsection
|
||||
22
resources/views/seo/news-article-page/seo-tags.blade.php
Executable file
22
resources/views/seo/news-article-page/seo-tags.blade.php
Executable file
@@ -0,0 +1,22 @@
|
||||
<meta property="og:site_name" content="{{ settings('branding.site_name') }}" />
|
||||
<meta property="twitter:card" content="summary" />
|
||||
<meta property="og:type" content="website" />
|
||||
<title>{{ $article->title }} - {{ settings('branding.site_name') }}</title>
|
||||
<meta property="og:url" content="{{ urls()->article($article) }}" />
|
||||
<link rel="canonical" href="{{ urls()->article($article) }}" />
|
||||
<meta
|
||||
property="og:title"
|
||||
content="{{ $article->title }} - {{ settings('branding.site_name') }}"
|
||||
/>
|
||||
|
||||
@if ($article->image)
|
||||
<meta property="og:image" content="{{ urls()->image($article->image) }}" />
|
||||
<meta property="og:width" content="300" />
|
||||
<meta property="og:height" content="450" />
|
||||
@endif
|
||||
|
||||
<meta
|
||||
property="og:description"
|
||||
content="{{ str($article->body)->limit(300) }}"
|
||||
/>
|
||||
<meta name="description" content="{{ str($article->body)->limit(300) }}" />
|
||||
145
resources/views/seo/person-page/prerender.blade.php
Executable file
145
resources/views/seo/person-page/prerender.blade.php
Executable file
@@ -0,0 +1,145 @@
|
||||
@extends('common::prerender.base')
|
||||
|
||||
@section('head')
|
||||
@include('seo.person-page.seo-tags')
|
||||
@endsection
|
||||
|
||||
@section('body')
|
||||
@include('seo.menu')
|
||||
|
||||
<h1>{{ $person->name }}</h1>
|
||||
|
||||
<img
|
||||
src="{{ urls()->image($person->poster) }}"
|
||||
alt="Poster"
|
||||
width="270px"
|
||||
/>
|
||||
|
||||
<div>
|
||||
<h3>{{ __('Biography') }}</h3>
|
||||
<p>{{ $person->description }}</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h3>{{ __('Personal Facts') }}</h3>
|
||||
<dl>
|
||||
<dt>{{ __('Known For') }}</dt>
|
||||
<dd>{{ $person->known_for }}</dd>
|
||||
|
||||
<dt>{{ __('Gender') }}</dt>
|
||||
<dd>{{ $person->gender }}</dd>
|
||||
|
||||
<dt>{{ __('Known Credits') }}</dt>
|
||||
<dd>{{ $total_credits_count }}</dd>
|
||||
|
||||
@if ($person->birth_date)
|
||||
<dt>{{ __('Birth Date') }}</dt>
|
||||
<dd>{{ $person->birth_date }}</dd>
|
||||
@endif
|
||||
|
||||
@if ($person->birth_place)
|
||||
<dt>{{ __('Birth Place') }}</dt>
|
||||
<dd>{{ $person->birth_place }}</dd>
|
||||
@endif
|
||||
</dl>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h3>{{ __('Known For') }}</h3>
|
||||
<ul style="display: flex; flex-wrap: wrap">
|
||||
@foreach ($knownFor as $credit)
|
||||
<li>
|
||||
<div>
|
||||
@if ($credit['poster'])
|
||||
<img
|
||||
src="{{ urls()->image($credit['poster']) }}"
|
||||
alt="Credit poster"
|
||||
width="270px"
|
||||
/>
|
||||
@endif
|
||||
|
||||
<div>
|
||||
<a href="{{ urls()->title($credit) }}">
|
||||
{{ $credit['name'] }}
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h3>{{ __('Credits') }}</h3>
|
||||
<ul>
|
||||
@foreach ($credits as $groupName => $creditGroup)
|
||||
<li style="margin-bottom: 15px">
|
||||
<h4 style="text-transform: capitalize">
|
||||
{{ $groupName }} ({{ count($creditGroup) }} credits)
|
||||
</h4>
|
||||
<ul>
|
||||
@foreach ($creditGroup as $credit)
|
||||
<li style="margin-bottom: 15px">
|
||||
<div class="meta">
|
||||
<a
|
||||
href="{{ urls()->title($credit) }}"
|
||||
>
|
||||
{{ $credit['name'] }}
|
||||
</a>
|
||||
@if (isset($credit['pivot']))
|
||||
<div>
|
||||
{{ $credit['pivot']['character'] }}
|
||||
</div>
|
||||
<div>
|
||||
{{ $credit['pivot']['job'] }}
|
||||
</div>
|
||||
<div>
|
||||
{{ $credit['pivot']['department'] }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if (isset($credit['episodes']))
|
||||
<div class="episode-list">
|
||||
@foreach ($credit['episodes'] as $episodeCredit)
|
||||
<div class="episode-credit">
|
||||
<div class="episode-name">
|
||||
<span>-</span>
|
||||
<a
|
||||
href="{{ urls()->episode($episodeCredit, $credit) }}"
|
||||
>
|
||||
{{ $episodeCredit['name'] }}
|
||||
</a>
|
||||
<span>
|
||||
({{ $episodeCredit['year'] }})
|
||||
</span>
|
||||
<span
|
||||
class="episode-separator"
|
||||
>
|
||||
...
|
||||
</span>
|
||||
<span>
|
||||
<span>
|
||||
{{ $episodeCredit['pivot']['character'] }}
|
||||
</span>
|
||||
<span>
|
||||
{{ $episodeCredit['pivot']['job'] }}
|
||||
</span>
|
||||
<span>
|
||||
{{ $episodeCredit['pivot']['department'] }}
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
@endforeach
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
<div class="year">{{ $credit['year'] }}</div>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endsection
|
||||
38
resources/views/seo/person-page/seo-tags.blade.php
Executable file
38
resources/views/seo/person-page/seo-tags.blade.php
Executable file
@@ -0,0 +1,38 @@
|
||||
<meta property="og:site_name" content="{{ settings('branding.site_name') }}" />
|
||||
<meta property="twitter:card" content="summary" />
|
||||
<meta property="og:type" content="profile" />
|
||||
<title>{{ $person->name }} - {{ settings('branding.site_name') }}</title>
|
||||
<meta property="og:url" content="{{ urls()->person($person) }}" />
|
||||
<link rel="canonical" href="{{ urls()->person($person) }}" />
|
||||
<meta
|
||||
property="og:title"
|
||||
content="{{ $person->name }} - {{ settings('branding.site_name') }}"
|
||||
/>
|
||||
|
||||
@if ($person->poster)
|
||||
<meta property="og:image" content="{{ urls()->image($person->poster) }}" />
|
||||
<meta property="og:width" content="300" />
|
||||
<meta property="og:height" content="450" />
|
||||
@endif
|
||||
|
||||
@if($person->description)
|
||||
<meta property="og:description" content="{{ str($person->description)->limit(400) }}" />
|
||||
<meta name="description" content="{{ str($person->description)->limit(400) }}" />
|
||||
@endif
|
||||
|
||||
<meta property="keywords" content="biography, facts, photos, credits" />
|
||||
|
||||
<script type="application/ld+json">
|
||||
{!! collect([
|
||||
'@context' => 'http://schema.org',
|
||||
'@type' => 'Person',
|
||||
'@id' => urls()->person($person),
|
||||
'url' => urls()->person($person),
|
||||
'name' => $person->name,
|
||||
'image' => urls()->image($person->poster),
|
||||
'description' => $person->description ? str($person->description)->limit(400) : null,
|
||||
'jobTitle' => $person->known_for,
|
||||
'birthDate' => $person->birth_date,
|
||||
'birthPlace' => $person->birth_place,
|
||||
])->filter()->toJson() !!}
|
||||
</script>
|
||||
37
resources/views/seo/search-page/prerender.blade.php
Executable file
37
resources/views/seo/search-page/prerender.blade.php
Executable file
@@ -0,0 +1,37 @@
|
||||
@extends('common::prerender.base')
|
||||
|
||||
@section('head')
|
||||
@include('seo.search-page.seo-tags')
|
||||
@endsection
|
||||
|
||||
@section('body')
|
||||
@include('seo.menu')
|
||||
|
||||
<h1>{{ __('Search results') }}</h1>
|
||||
|
||||
<ul>
|
||||
@foreach ($results as $item)
|
||||
<li>
|
||||
@if ($item['model_type'] === 'title')
|
||||
<figure>
|
||||
<img src="{{ urls()->image($item['poster']) }}" />
|
||||
<figcaption>
|
||||
<a href="{{ urls()->title($item) }}">
|
||||
{{ $item['name'] }}
|
||||
</a>
|
||||
</figcaption>
|
||||
</figure>
|
||||
@else
|
||||
<figure>
|
||||
<img src="{{ urls()->image($item['poster']) }}" />
|
||||
<figcaption>
|
||||
<a href="{{ urls()->person($item) }}">
|
||||
{{ $item['name'] }}
|
||||
</a>
|
||||
</figcaption>
|
||||
</figure>
|
||||
@endif
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
@endsection
|
||||
20
resources/views/seo/search-page/seo-tags.blade.php
Executable file
20
resources/views/seo/search-page/seo-tags.blade.php
Executable file
@@ -0,0 +1,20 @@
|
||||
<meta property="og:site_name" content="{{ settings('branding.site_name') }}" />
|
||||
<meta property="twitter:card" content="summary" />
|
||||
<meta property="og:type" content="profile" />
|
||||
<title>
|
||||
Search results for "{{ $query }}" - {{ settings('branding.site_name') }}
|
||||
</title>
|
||||
<meta property="og:url" content="{{ urls()->search($query) }}" />
|
||||
<link rel="canonical" href="{{ urls()->search($query) }}" />
|
||||
<meta
|
||||
property="og:title"
|
||||
content="Search results for '{{ $query }}' - {{ settings('branding.site_name') }}"
|
||||
/>
|
||||
<meta
|
||||
property="og:description"
|
||||
content="Search results for '{{ $query }}' - {{ settings('branding.site_name') }}"
|
||||
/>
|
||||
<meta
|
||||
name="description"
|
||||
content="Search results for '{{ $query }}' - {{ settings('branding.site_name') }}"
|
||||
/>
|
||||
57
resources/views/seo/season-page/prerender.blade.php
Executable file
57
resources/views/seo/season-page/prerender.blade.php
Executable file
@@ -0,0 +1,57 @@
|
||||
@extends('common::prerender.base')
|
||||
|
||||
@section('head')
|
||||
@include('seo.title-page.seo-tags')
|
||||
@endsection
|
||||
|
||||
@section('body')
|
||||
@include('seo.menu')
|
||||
|
||||
<h1>
|
||||
{{ $title->name }}: {{ __('Season') }}
|
||||
{{ $season->number }}
|
||||
</h1>
|
||||
|
||||
@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 ($episodes)
|
||||
<div>
|
||||
<ul>
|
||||
@foreach ($episodes as $episode)
|
||||
<li>
|
||||
<figure>
|
||||
<img
|
||||
src="{{ urls()->image($episode['poster']) }}"
|
||||
alt="Episode poster"
|
||||
width="270px"
|
||||
/>
|
||||
<figcaption>
|
||||
<a
|
||||
href="{{ urls()->episode($episode, $title) }}"
|
||||
>
|
||||
{{ $episode['name'] }}
|
||||
</a>
|
||||
</figcaption>
|
||||
</figure>
|
||||
<p>{{ $episode['description'] }}</p>
|
||||
</li>
|
||||
@endforeach
|
||||
</ul>
|
||||
</div>
|
||||
@endif
|
||||
@endsection
|
||||
25
resources/views/seo/season-page/seo-tags.blade.php
Executable file
25
resources/views/seo/season-page/seo-tags.blade.php
Executable file
@@ -0,0 +1,25 @@
|
||||
<meta property="og:site_name" content="{{ settings('branding.site_name') }}" />
|
||||
<meta property="twitter:card" content="summary" />
|
||||
<title>
|
||||
{{ $title->name }} ({{ $title->year }}) - Season {{ $season->number }} -
|
||||
{{ settings('branding.site_name') }}
|
||||
</title>
|
||||
<meta property="og:url" content="{{ urls()->season($season, $title) }}" />
|
||||
<link rel="canonical" href="{{ urls()->season($season, $title) }}" />
|
||||
<meta
|
||||
property="og:title"
|
||||
content="{{ $title->name }} ({{ $title->year }}) - Season {{ $season->number }} - {{ settings('branding.site_name') }}"
|
||||
/>
|
||||
|
||||
@if ($season->poster)
|
||||
<meta property="og:image" content="{{ urls()->image($season->poster) }}" />
|
||||
<meta property="og:width" content="300" />
|
||||
<meta property="og:height" content="450" />
|
||||
@endif
|
||||
|
||||
<meta property="og:description" content="List of episodes for {{$title->name}}: Season {{$season->number}}" />
|
||||
<meta name="description" content="List of episodes for {{$title->name}}: Season {{$season->number}}" />
|
||||
<meta
|
||||
property="keywords"
|
||||
content="reviews,photos,user ratings,synopsis,trailers,credits"
|
||||
/>
|
||||
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>
|
||||
46
resources/views/seo/watch-page/seo-tags.blade.php
Executable file
46
resources/views/seo/watch-page/seo-tags.blade.php
Executable file
@@ -0,0 +1,46 @@
|
||||
<meta property="og:site_name" content="{{ settings('branding.site_name') }}" />
|
||||
<meta property="twitter:card" content="summary" />
|
||||
<meta property="og:type" content="video.other" />
|
||||
<title>
|
||||
{{ $title->name }} - {{ $video->name }} -
|
||||
{{ settings('branding.site_name') }}
|
||||
</title>
|
||||
<meta property="og:url" content="{{ urls()->watch($video) }}" />
|
||||
<link rel="canonical" href="{{ urls()->watch($video) }}" />
|
||||
<meta
|
||||
property="og:title"
|
||||
content="{{ $title->name }} - {{ $video->name }} - {{ settings('branding.site_name') }}"
|
||||
/>
|
||||
|
||||
@if ($image = $video->image ?? $title->backdrop)
|
||||
<meta property="og:image" content="{{ urls()->image($image) }}" />
|
||||
<meta property="og:width" content="1280" />
|
||||
<meta property="og:height" content="720" />
|
||||
@endif
|
||||
|
||||
<meta
|
||||
property="og:description"
|
||||
content="Watch {{ $video->name }} on {{ settings('branding.site_name') }}"
|
||||
/>
|
||||
<meta
|
||||
name="description"
|
||||
content="Watch {{ $video->name }} on {{ settings('branding.site_name') }}"
|
||||
/>
|
||||
|
||||
<script type="application/ld+json">
|
||||
{!! collect([
|
||||
'@context' => 'http://schema.org',
|
||||
'@type' => 'VideoObject',
|
||||
'@id' => urls()->watch($video),
|
||||
'url' => urls()->watch($video),
|
||||
'embedUrl' => urls()->watch($video),
|
||||
'name' => $title->name . ' - ' . $video->name,
|
||||
'thumbnail' => [
|
||||
'@type' => 'ImageObject',
|
||||
'url' => urls()->image($video->image ?? $title->backdrop)
|
||||
],
|
||||
'thumbnailUrl' => $video->image ?? $title->backdrop,
|
||||
'description' => $title->description,
|
||||
'uploadDate' => $video->created_at,
|
||||
])->filter()->toJson() !!}
|
||||
</script>
|
||||
Reference in New Issue
Block a user