@extends('layouts.app') @section('title', $course->name . ' — コース基本設定') @section('page-title', $course->name) @section('page-subtitle-heading', '【この画面でできること】') @section('page-subtitle') コース名・種類・サムネイル・受講スタイル・公開期間・オファーなどをまとめて設定します。レッスン共通の既定(公開状態・ボタン文言・コメント)は「レッスン基本設定」にまとめています。 @endsection @section('content') @php $cs = $courseSettings ?? \App\Support\BundleCourseSettings::merge(is_array($course->course_settings) ? $course->course_settings : null); $basic = $cs['basic'] ?? []; $offers = $cs['offers'] ?? []; $automation = $cs['automation'] ?? []; $lessonsDefaults = $cs['lessons'] ?? []; $comments = $cs['comments'] ?? []; $val = fn (string $path, mixed $default = '') => old($path, data_get($cs, str_replace('course_settings.', '', $path), $default)); $releaseStartMode = old('course_settings.automation.release_start_mode', $automation['release_start_mode'] ?? 'on_grant'); $releaseEndMode = old('course_settings.automation.release_end_mode', $automation['release_end_mode'] ?? 'none'); $releaseStartAt = old('course_settings.automation.release_start_at', $automation['release_start_at'] ?? ''); $releaseEndAt = old('course_settings.automation.release_end_at', $automation['release_end_at'] ?? ''); $buttonTextMode = old('course_settings.basic.button_text_mode', $basic['button_text_mode'] ?? 'default'); if (! in_array($buttonTextMode, ['default', 'custom'], true)) { $legacyBtn = (string) ($basic['button_text'] ?? 'start'); $buttonTextMode = ($legacyBtn === 'start' || $legacyBtn === '') ? 'default' : 'custom'; } $buttonTextCustom = old('course_settings.basic.button_text_custom', $basic['button_text_custom'] ?? ''); $courseCategoryOptions = $courseCategoryOptions ?? \App\Support\MembershipSiteCourseCategories::optionsForSelect($site->course_categories); $selectedCourseCategoryId = old('course_settings.basic.course_category_id', $basic['course_category_id'] ?? ''); $learningStyleSequentialLabel = '受講完了にすると次のレッスンが受講可能'; if ($releaseStartAt && str_contains((string) $releaseStartAt, ' ')) { $releaseStartAt = str_replace(' ', 'T', substr((string) $releaseStartAt, 0, 16)); } if ($releaseEndAt && str_contains((string) $releaseEndAt, ' ')) { $releaseEndAt = str_replace(' ', 'T', substr((string) $releaseEndAt, 0, 16)); } @endphp @include('site.course.partials._workspace_toolbar') @php $copySourceCourses = $copySourceCourses ?? collect(); @endphp @if($copySourceCourses->isNotEmpty())
同じサイト内の別コースから、受講スタイル・オファー・レッスン既定などをまとめてコピーできます(コース名・サムネイルは変わりません)。
@error('copy_settings_from_course_id')このコースと配下のレッスン・グループを削除します。このコースだけを含むコースの結合への受講生付与も解除されます。元に戻せません。