@extends('layouts.member') @section('title', $lesson->browser_title ?: $lesson->name) @section('content') @if(! empty($showLessonCourseSidebar) && ! empty($lessonCourseNav))
@include('member.partials._lesson_course_sidebar', [ 'site' => $site, 'lessonCourseNav' => $lessonCourseNav, 'bundle' => $bundle, ])
@else
← {{ $bundle->name }}
@endif

{{ $lesson->name }}

@if(filled($lesson->thumbnail_url))
@include('partials._bundle_course_thumbnail', [ 'url' => $lesson->thumbnail_url, 'alt' => $lesson->name, 'variant' => 'card-top', ])
@endif @if(session('success'))
{{ session('success') }}
@endif @php $sequentialCompletion = $sequentialCompletion ?? false; $lessonCompleted = $lessonCompleted ?? false; $videoCompletionPercent = (int) ($videoCompletionPercent ?? 90); $videoUsesHtml5 = $videoUsesHtml5 ?? false; $showVideoOpts = filter_var(($courseSettings['basic']['show_video_options_hint'] ?? true), FILTER_VALIDATE_BOOLEAN); $isTestLesson = $isTestLesson ?? $lesson->isTestLesson(); @endphp @if($isTestLesson)
@if(!empty($isPreview))

プレビューではテストの回答送信はできません。設問の表示のみ確認できます。

@endif @include('member.partials._lesson_test', [ 'site' => $site, 'bundle' => $bundle, 'track' => $track, 'lesson' => $lesson, 'testSettings' => $testSettings ?? null, 'testResult' => $testResult ?? null, 'lessonCompleted' => $lessonCompleted, 'isPreview' => $isPreview ?? false, ])
@else
@if($lesson->video_url) @php $applyVideoOpts = filter_var(($courseSettings['basic']['show_video_options_hint'] ?? true), FILTER_VALIDATE_BOOLEAN); $lessonVideoSettings = $applyVideoOpts ? \App\Support\MembershipSiteLessonSettings::merge(is_array($lesson->lesson_settings) ? $lesson->lesson_settings : null) : \App\Support\MembershipSiteLessonSettings::defaults(); $videoEmbedUrl = null; if ($lesson->video_type === 'youtube') { if (preg_match('~(?:youtube\\.com/watch\\?v=|youtu\\.be/|youtube\\.com/embed/)([A-Za-z0-9_-]+)~', $lesson->video_url, $m)) { $videoEmbedUrl = 'https://www.youtube.com/embed/' . $m[1]; $ytParams = []; if ($lessonVideoSettings['video_autoplay'] ?? false) { $ytParams[] = 'autoplay=1'; $ytParams[] = 'mute=1'; } if (! ($lessonVideoSettings['video_show_seek'] ?? true)) { $ytParams[] = 'controls=0'; } if ($ytParams !== []) { $videoEmbedUrl .= '?' . implode('&', $ytParams); } } } elseif ($lesson->video_type === 'vimeo') { if (preg_match('~vimeo\\.com/(?:video/)?([0-9]+)~', $lesson->video_url, $m)) { $videoEmbedUrl = 'https://player.vimeo.com/video/' . $m[1]; if ($lessonVideoSettings['video_autoplay'] ?? false) { $videoEmbedUrl .= '?autoplay=1&muted=1'; } } } $html5Controls = ($lessonVideoSettings['video_show_seek'] ?? true) ? 'controls' : ''; if ($lessonVideoSettings['video_allow_playback_speed'] ?? true) { $html5Controls .= ' controlslist="nodownload"'; } @endphp
@if($videoEmbedUrl)
@elseif($lesson->video_type === 'embed') {!! $lesson->video_url !!} @else @endif
@endif {!! $lesson->content !!} @if($lesson->button_label && $lesson->button_url) @endif @php $applyVideoOpts = filter_var(($courseSettings['basic']['show_video_options_hint'] ?? true), FILTER_VALIDATE_BOOLEAN); $allowDownloads = $applyVideoOpts ? (\App\Support\MembershipSiteLessonSettings::merge(is_array($lesson->lesson_settings) ? $lesson->lesson_settings : null)['video_allow_download'] ?? true) : true; @endphp @if($allowDownloads && ($lesson->attachment_url || $lesson->link_url))
@if($lesson->attachment_url) {{ $lesson->attachment_label ?: '添付ファイル' }} @endif @if($lesson->link_url) {{ $lesson->link_label ?: '関連リンク' }} @endif
@endif
@endif @if(! $isTestLesson && empty($isPreview))
@if($lessonCompleted)
受講済みです
@if($sequentialCompletion)

次のレッスンが解放されています。

@endif
@else @if($sequentialCompletion)

受講完了にすると、次のレッスンが解放されます。

@if($videoUsesHtml5 && $showVideoOpts)

動画を {{ $videoCompletionPercent }}% 以上視聴すると、自動で受講完了になります。

@endif @else

内容を終えたら、受講完了として登録できます。

@endif
@csrf
@endif
@elseif($lessonCompleted)
テスト合格・受講済みです
@if($sequentialCompletion)

次のレッスンが解放されています。

@endif
@endif @if(! $isTestLesson && trim((string) ($site->lesson_footer_message ?? '')) !== '')

案内

{!! $site->lesson_footer_message !!}
@endif @if(! $isTestLesson && !empty($commentsEnabled) && empty($isPreview)) @include('member.partials._lesson_comments', [ 'site' => $site, 'bundle' => $bundle, 'track' => $track, 'lesson' => $lesson, 'lessonComments' => $lessonComments ?? collect(), 'lessonCommentTotal' => $lessonCommentTotal ?? null, ]) @endif @php $prev = $lessonNav['prev'] ?? null; $next = $lessonNav['next'] ?? null; @endphp @if($prev || $next)
@if($prev) ← {{ $prev['lesson']->name }} @else @endif @if($next) {{ $next['lesson']->name }} → @endif
@endif @push('head') @endpush @if(!empty($lessonPageSettings['custom_css'])) @push('head')@endpush @endif @if(!empty($lessonDisplaySettings['custom_css'] ?? '')) @push('head')@endpush @endif @if($sequentialCompletion && $videoUsesHtml5 && $showVideoOpts && ! $lessonCompleted) @push('scripts') @endpush @endif @endsection