Loading app/Models/EpisodeModel.php +26 −0 Original line number Diff line number Diff line Loading @@ -268,6 +268,32 @@ class EpisodeModel extends Model : false; } public function getCurrentSeasonNumber(int $podcastId): ?int { $result = $this->select('MAX(season_number) as current_season_number') ->where([ 'podcast_id' => $podcastId, $this->deletedField => null, ]) ->get() ->getResultArray(); return $result[0]['current_season_number'] ? (int) $result[0]['current_season_number'] : null; } public function getNextEpisodeNumber(int $podcastId, ?int $seasonNumber): int { $result = $this->select('MAX(number) as next_episode_number') ->where([ 'podcast_id' => $podcastId, 'season_number' => $seasonNumber, $this->deletedField => null, ])->get() ->getResultArray(); return (int) $result[0]['next_episode_number'] + 1; } /** * @param mixed[] $data * Loading modules/Admin/Controllers/EpisodeController.php +11 −1 Original line number Diff line number Diff line Loading @@ -97,10 +97,12 @@ class EpisodeController extends BaseController { helper(['form']); $currentSeasonNumber = (new EpisodeModel())->getCurrentSeasonNumber($this->podcast->id); $data = [ 'podcast' => $this->podcast, 'currentSeasonNumber' => $currentSeasonNumber, 'nextEpisodeNumber' => (new EpisodeModel())->getNextEpisodeNumber($this->podcast->id, $currentSeasonNumber), ]; replace_breadcrumb_params([ 0 => $this->podcast->title, ]); Loading @@ -118,6 +120,10 @@ class EpisodeController extends BaseController 'chapters_file' => 'ext_in[chapters,json]|permit_empty', ]; if ($this->podcast->type === 'serial') { $rules['episode_number'] = 'required'; } if (! $this->validate($rules)) { return redirect() ->back() Loading Loading @@ -239,6 +245,10 @@ class EpisodeController extends BaseController 'chapters_file' => 'ext_in[chapters_file,json]|permit_empty', ]; if ($this->podcast->type === 'serial') { $rules['episode_number'] = 'required'; } if (! $this->validate($rules)) { return redirect() ->back() Loading themes/cp_admin/episode/create.php +5 −2 Original line number Diff line number Diff line Loading @@ -56,12 +56,15 @@ name="season_number" label="<?= lang('Episode.form.season_number') ?>" type="number" value="<?= $currentSeasonNumber ?>" /> <Forms.Field class="flex-1 w-0" name="episode_number" label="<?= lang('Episode.form.episode_number') ?>" type="number" value="<?= $nextEpisodeNumber ?>" required="<?= $podcast->type === 'serial' ? 'true' : 'false' ?>" /> </div> Loading themes/cp_admin/episode/edit.php +3 −2 Original line number Diff line number Diff line Loading @@ -68,6 +68,7 @@ label="<?= lang('Episode.form.episode_number') ?>" type="number" value="<?= $episode->number ?>" required="<?= $podcast->type === 'serial' ? 'true' : 'false' ?>" /> </div> Loading Loading
app/Models/EpisodeModel.php +26 −0 Original line number Diff line number Diff line Loading @@ -268,6 +268,32 @@ class EpisodeModel extends Model : false; } public function getCurrentSeasonNumber(int $podcastId): ?int { $result = $this->select('MAX(season_number) as current_season_number') ->where([ 'podcast_id' => $podcastId, $this->deletedField => null, ]) ->get() ->getResultArray(); return $result[0]['current_season_number'] ? (int) $result[0]['current_season_number'] : null; } public function getNextEpisodeNumber(int $podcastId, ?int $seasonNumber): int { $result = $this->select('MAX(number) as next_episode_number') ->where([ 'podcast_id' => $podcastId, 'season_number' => $seasonNumber, $this->deletedField => null, ])->get() ->getResultArray(); return (int) $result[0]['next_episode_number'] + 1; } /** * @param mixed[] $data * Loading
modules/Admin/Controllers/EpisodeController.php +11 −1 Original line number Diff line number Diff line Loading @@ -97,10 +97,12 @@ class EpisodeController extends BaseController { helper(['form']); $currentSeasonNumber = (new EpisodeModel())->getCurrentSeasonNumber($this->podcast->id); $data = [ 'podcast' => $this->podcast, 'currentSeasonNumber' => $currentSeasonNumber, 'nextEpisodeNumber' => (new EpisodeModel())->getNextEpisodeNumber($this->podcast->id, $currentSeasonNumber), ]; replace_breadcrumb_params([ 0 => $this->podcast->title, ]); Loading @@ -118,6 +120,10 @@ class EpisodeController extends BaseController 'chapters_file' => 'ext_in[chapters,json]|permit_empty', ]; if ($this->podcast->type === 'serial') { $rules['episode_number'] = 'required'; } if (! $this->validate($rules)) { return redirect() ->back() Loading Loading @@ -239,6 +245,10 @@ class EpisodeController extends BaseController 'chapters_file' => 'ext_in[chapters_file,json]|permit_empty', ]; if ($this->podcast->type === 'serial') { $rules['episode_number'] = 'required'; } if (! $this->validate($rules)) { return redirect() ->back() Loading
themes/cp_admin/episode/create.php +5 −2 Original line number Diff line number Diff line Loading @@ -56,12 +56,15 @@ name="season_number" label="<?= lang('Episode.form.season_number') ?>" type="number" value="<?= $currentSeasonNumber ?>" /> <Forms.Field class="flex-1 w-0" name="episode_number" label="<?= lang('Episode.form.episode_number') ?>" type="number" value="<?= $nextEpisodeNumber ?>" required="<?= $podcast->type === 'serial' ? 'true' : 'false' ?>" /> </div> Loading
themes/cp_admin/episode/edit.php +3 −2 Original line number Diff line number Diff line Loading @@ -68,6 +68,7 @@ label="<?= lang('Episode.form.episode_number') ?>" type="number" value="<?= $episode->number ?>" required="<?= $podcast->type === 'serial' ? 'true' : 'false' ?>" /> </div> Loading