added Open Graph Tags to models

updated markup
pull/49/head
A1Gard 5 months ago
parent 545045005c
commit e19c37c1f8

@ -69,4 +69,41 @@ class Clip extends Model
return $this->morphMany(Comment::class, 'commentable')->where('status', 1);
}
public function markup(){
$app = config('app.name');
$logo = asset('upload/images/logo.png');
$desc = str_replace('"','',strip_tags($this->body));
$count = $this->comments()->count() ;
return <<<RESULT
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "VideoObject",
"name": "{$this->title}",
"description": "{$desc}",
"thumbnailUrl": "{$this->imgUrl()}",
"uploadDate": "{$this->updated_at}",
"contentUrl": "{$this->fileUrl()}",
"embedUrl": "{$this->webUrl()}",
"interactionStatistic": {
"@type": "InteractionCounter",
"interactionType": "http://schema.org/PlayAction",
"userInteractionCount": {$count}
},
"publisher": {
"@type": "Organization",
"name": "$app",
"logo": {
"@type": "ImageObject",
"url": "$logo"
}
}
}
</script>
RESULT;
}
}

@ -170,6 +170,11 @@ class Post extends Model implements HasMedia
"@type": "ImageObject",
"url": "$logo"
}
},
"interactionStatistic": {
"@type": "InteractionCounter",
"interactionType": "http://schema.org/PlayAction",
"userInteractionCount": {$this->view}
},
"datePublished": "{$this->created_at}",
"dateModified": "{$this->updated_at}"

@ -376,6 +376,11 @@ class Product extends Model implements HasMedia
"url": "{$this->webUrl()}",
"priceCurrency": "$currency",
"price": "{{$this->price}}"
},
"interactionStatistic": {
"@type": "InteractionCounter",
"interactionType": "http://schema.org/PlayAction",
"userInteractionCount": {$this->view}
},
"aggregateRating": {
"@type": "AggregateRating",
@ -389,4 +394,20 @@ class Product extends Model implements HasMedia
RESULT;
}
public function seoDesc()
{
$template = getSetting('product_description');
if ($template == null || $template == ''){
$template = __('%name% sale in our shop by %price% %category.name%');
}
$template = str_replace('%name%', $this->name,$template);
$template = str_replace('%price%', $this->getPrice() ,$template);
$template = str_replace('%excerpt%', $this->excerpt,$template);
$template = str_replace('%stock_quantity%', $this->stock_quantity,$template);
$template = str_replace('%category.name%', $this->category->name,$template);
return $template;
}
}

@ -118,6 +118,11 @@ class SettingSeeder extends Seeder
'key' => 'site_image',
'type' => 'FILE',
],
[
'title' => __("%name% sale in our shop by %price% %category.name%"),
'key' => 'product_description',
'type' => 'text',
],
],
'Media' => [
[

@ -17,14 +17,48 @@
@yield('custom-head')
{{-- WIP rtl or ltr--}}
{{-- seo --}}
<meta property="og:site_name" content="{{config('app.name')}}" />
<meta property="og:locale" content="{{config('app.locale')}}">
@if(isset($breadcrumb))
{!! markUpBreadcrumbList($breadcrumb) !!}
@endif
@if(isset($post))
{!! $post->markup() !!}
<meta property="og:title" content="{{$post->title}}" />
<meta property="og:description" content="{{$post->subtitle}}" />
<meta property="og:image" content="{{$post->imgUrl()}}" />
<meta property="og:url" content="{{$post->webUrl()}}" />
<meta property="og:type" content="article" />
@endif
@if(isset($product))
{!! $product->markup() !!}
<meta property="og:title" content="{{$product->name}}"/>
<meta property="og:description" content="{{$product->seoDesc()}}"/>
<meta property="og:image" content="{{$product->imgUrl()}}"/>
<meta property="og:url" content="{{$product->webUrl()}}"/>
@endif
@if(isset($clip))
{!! $clip->markup() !!}
<meta property="og:title" content="{{$clip->title}}" />
<meta property="og:description" content="{{Str::limit(strip_tags($clip->body),12)}}" />
<meta property="og:type" content="video.other" />
<meta property="og:url" content="{{$clip->webUrl()}}" />
<meta property="og:image" content="{{$clip->imgUrl()}}" />
<meta property="og:video" content="{{$clip->fileUrl()}}" />
<meta property="og:video:type" content="video/mp4" />
{{-- <meta property="og:video:width" content="1280" />--}}
{{-- <meta property="og:video:height" content="720" />--}}
@endif
@if(isset($gallery))
<meta property="og:title" content="{{$gallery->title}}">
<meta property="og:description" content="{{Str::limit(strip_tags($gallery->body),12)}}" />
<meta property="og:image" content="{{$gallery->imgUrl()}}">
<meta property="og:image:alt" content="{{$gallery->slug}}">
<meta property="og:url" content="{{$gallery->webUrl()}}">
<meta property="og:type" content="website">
@endif
</head>
<body @yield('body-attr')>

Loading…
Cancel
Save