show.blade.php 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. @extends('layouts.app', [
  2. 'title' => $desc ?? "{$user->username} shared a post",
  3. 'ogTitle' => $ogTitle
  4. ])
  5. @php
  6. $s = \App\Services\StatusService::get($status->id);
  7. $displayName = $s && $s['account'] ? $s['account']['display_name'] : false;
  8. $captionPreview = false;
  9. $domain = $displayName ? '@' . parse_url($s['account']['url'], PHP_URL_HOST) : '';
  10. $wf = $displayName ? $s['account']['username'] . $domain : '';
  11. $ogTitle = $displayName ? $displayName . ' (@' . $s['account']['username'] . $domain . ')' : '';
  12. $mediaCount = $s['media_attachments'] && count($s['media_attachments']) ? count($s['media_attachments']) : 0;
  13. $mediaSuffix = $mediaCount < 2 ? '' : 's';
  14. $ogDescription = $s['content_text'] ? $s['content_text'] : 'Attached: ' . $mediaCount . ' ' . $s['media_attachments'][0]['type'] . $mediaSuffix;
  15. if($s['content_text']) {
  16. $captionLen = strlen($s['content_text']);
  17. $captionPreview = $captionLen > 40 ? substr($s['content_text'], 0, 40) . '…' : $s['content_text'];
  18. }
  19. $desc = false;
  20. if($displayName && $captionPreview) {
  21. $desc = $displayName . ': "' . $captionPreview . '" - Pixelfed';
  22. } else if($displayName) {
  23. $desc = $displayName . ': Shared a new post - Pixelfed';
  24. }
  25. @endphp
  26. @section('content')
  27. <noscript>
  28. <div class="container">
  29. <p class="pt-5 text-center lead">Please enable javascript to view this content.</p>
  30. </div>
  31. </noscript>
  32. <div class="mt-md-4"></div>
  33. <post-component
  34. status-template="{{$status->viewType()}}"
  35. status-id="{{$status->id}}"
  36. status-username="{{$s['account']['username']}}"
  37. status-url="{{$s['url']}}"
  38. status-profile-url="{{$s['account']['url']}}"
  39. status-avatar="{{$s['account']['avatar']}}"
  40. status-profile-id="{{$status->profile_id}}"
  41. profile-layout="metro" />
  42. @endsection
  43. @push('meta')@if($mediaCount && $s['pf_type'] === "photo" || $s['pf_type'] === "photo:album")
  44. <meta property="og:image" content="{{$s['media_attachments'][0]['url']}}">
  45. @elseif($mediaCount && $s['pf_type'] === "video" || $s['pf_type'] === "video:album")<meta property="og:video" content="{{$s['media_attachments'][0]['url']}}">
  46. @endif<meta property="og:description" content="{{ $ogDescription }}">
  47. <meta property="og:published_time" content="{{$s['created_at']}}">
  48. <meta property="profile:username" content="{{ $wf }}">
  49. <link href='{{$s['url']}}' rel='alternate' type='application/activity+json'>
  50. <meta name="twitter:card" content="summary">
  51. <meta name="description" content="{{ $ogDescription }}">
  52. @endpush
  53. @push('scripts')
  54. <script type="text/javascript" src="{{ mix('js/status.js') }}"></script>
  55. <script type="text/javascript">App.boot();</script>
  56. @endpush